KiCad PCB EDA Suite
eeschema/cross-probing.cpp File Reference
#include <fctsys.h>
#include <pgm_base.h>
#include <kiface_i.h>
#include <kiway_express.h>
#include <macros.h>
#include <eda_dde.h>
#include <sch_draw_panel.h>
#include <sch_edit_frame.h>
#include <general.h>
#include <eeschema_id.h>
#include <lib_draw_item.h>
#include <lib_pin.h>
#include <sch_component.h>
#include <sch_sheet.h>
#include <sch_view.h>

Go to the source code of this file.

Functions

std::string FormatProbeItem (EDA_ITEM *aItem, SCH_COMPONENT *aPart)
 

Function Documentation

std::string FormatProbeItem ( EDA_ITEM aItem,
SCH_COMPONENT aPart 
)

Definition at line 143 of file eeschema/cross-probing.cpp.

References SCH_COMPONENT::GetField(), LIB_PIN::GetNumber(), EDA_TEXT::GetText(), EDA_ITEM::GetTimeStamp(), LIB_FIELD_T, LIB_PIN_T, REFERENCE, SCH_COMPONENT_T, SCH_FIELD_T, SCH_SHEET_T, numEval::StrPrintf(), TO_UTF8, and EDA_ITEM::Type().

Referenced by SCH_EDIT_FRAME::SendMessageToPCBNEW().

144 {
145  // Cross probing to Pcbnew if a pin or a component is found
146  switch( aItem->Type() )
147  {
148  case SCH_FIELD_T:
149  case LIB_FIELD_T:
150  if( aPart )
151  return StrPrintf( "$PART: %s", TO_UTF8( aPart->GetField( REFERENCE )->GetText() ) );
152  break;
153 
154  case SCH_COMPONENT_T:
155  aPart = (SCH_COMPONENT*) aItem;
156  return StrPrintf( "$PART: %s", TO_UTF8( aPart->GetField( REFERENCE )->GetText() ) );
157 
158  case SCH_SHEET_T:
159  {
160  SCH_SHEET* sheet = (SCH_SHEET*)aItem;
161  return StrPrintf( "$SHEET: %8.8lX", (unsigned long) sheet->GetTimeStamp() );
162  }
163 
164  case LIB_PIN_T:
165  {
166  if( !aPart )
167  break;
168 
169  LIB_PIN* pin = (LIB_PIN*) aItem;
170 
171  if( !pin->GetNumber().IsEmpty() )
172  {
173  return StrPrintf( "$PIN: %s $PART: %s", TO_UTF8( pin->GetNumber() ),
174  TO_UTF8( aPart->GetField( REFERENCE )->GetText() ) );
175  }
176  else
177  {
178  return StrPrintf( "$PART: %s", TO_UTF8( aPart->GetField( REFERENCE )->GetText() ) );
179  }
180  }
181  break;
182 
183  default:
184  break;
185  }
186 
187  return "";
188 }
KICAD_T Type() const
Function Type()
Definition: base_struct.h:201
int StrPrintf(std::string *aResult, const char *aFormat,...)
Function StrPrintf is like sprintf() but the output is appended to a std::string instead of to a char...
Definition: richio.cpp:74
Field Reference of part, i.e. "IC21".
const wxString & GetNumber() const
Definition: lib_pin.h:194
#define TO_UTF8(wxstring)
Macro TO_UTF8 converts a wxString to a UTF8 encoded C string for all wxWidgets build modes...
Definition: macros.h:47
SCH_FIELD * GetField(int aFieldNdx) const
Returns a field in this symbol.
const wxString & GetText() const
Function GetText returns the string associated with the text object.
Definition: eda_text.h:143
Sheet symbol placed in a schematic, and is the entry point for a sub schematic.
Definition: sch_sheet.h:209
Class SCH_COMPONENT describes a real schematic component.
Definition: sch_component.h:69
timestamp_t GetTimeStamp() const
Definition: base_struct.h:207