本文整理汇总了C++中LIB_PIN::PinStringNum方法的典型用法代码示例。如果您正苦于以下问题:C++ LIB_PIN::PinStringNum方法的具体用法?C++ LIB_PIN::PinStringNum怎么用?C++ LIB_PIN::PinStringNum使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类LIB_PIN
的用法示例。
在下文中一共展示了LIB_PIN::PinStringNum方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: OnCheckComponent
void LIB_EDIT_FRAME::OnCheckComponent( wxCommandEvent& event )
{
LIB_PART* part = GetCurPart();
if( !part )
return;
const int MIN_GRID_SIZE = 25;
LIB_PINS pinList;
part->GetPins( pinList );
if( pinList.size() == 0 )
{
DisplayInfoMessage( this, _( "No pins!" ) );
return;
}
// Sort pins by pin num, so 2 duplicate pins
// (pins with the same number) will be consecutive in list
sort( pinList.begin(), pinList.end(), sort_by_pin_number );
// Test for duplicates:
DIALOG_DISPLAY_HTML_TEXT_BASE error_display( this, wxID_ANY,
_( "Marker Information" ),
wxDefaultPosition,
wxSize( 750, 600 ) );
int dup_error = 0;
for( unsigned ii = 1; ii < pinList.size(); ii++ )
{
wxString stringPinNum, stringCurrPinNum;
LIB_PIN* curr_pin = pinList[ii];
LIB_PIN* pin = pinList[ii - 1];
if( pin->GetNumber() != curr_pin->GetNumber()
|| pin->GetConvert() != curr_pin->GetConvert()
|| pin->GetUnit() != curr_pin->GetUnit() )
continue;
dup_error++;
pin->PinStringNum( stringPinNum );
/* TODO I dare someone to find a way to make happy translators on
this thing! Lorenzo */
curr_pin->PinStringNum( stringCurrPinNum );
wxString msg = wxString::Format( _(
"<b>Duplicate pin %s</b> \"%s\" at location <b>(%.3f, %.3f)</b>"
" conflicts with pin %s \"%s\" at location <b>(%.3f, %.3f)</b>" ),
GetChars( stringCurrPinNum ),
GetChars( curr_pin->GetName() ),
curr_pin->GetPosition().x / 1000.0,
-curr_pin->GetPosition().y / 1000.0,
GetChars( stringPinNum ),
GetChars( pin->GetName() ),
pin->GetPosition().x / 1000.0,
-pin->GetPosition().y / 1000.0
);
if( part->GetUnitCount() > 1 )
{
msg += wxString::Format( _( " in part %c" ), 'A' + curr_pin->GetUnit() - 1 );
}
if( m_showDeMorgan )
{
if( curr_pin->GetConvert() )
msg += _( " of converted" );
else
msg += _( " of normal" );
}
msg += wxT( ".<br>" );
error_display.m_htmlWindow->AppendToPage( msg );
}
// Test for off grid pins:
int offgrid_error = 0;
for( unsigned ii = 0; ii < pinList.size(); ii++ )
{
LIB_PIN* pin = pinList[ii];
if( ( (pin->GetPosition().x % MIN_GRID_SIZE) == 0 ) &&
( (pin->GetPosition().y % MIN_GRID_SIZE) == 0 ) )
continue;
// "pin" is off grid here.
offgrid_error++;
wxString stringPinNum;
pin->PinStringNum( stringPinNum );
wxString msg = wxString::Format( _(
"<b>Off grid pin %s</b> \"%s\" at location <b>(%.3f, %.3f)</b>" ),
GetChars( stringPinNum ),
//.........这里部分代码省略.........
示例2: RepeatPinItem
// Create a new pin based on the previous pin with an incremented pin number.
void LIB_EDIT_FRAME::RepeatPinItem( wxDC* DC, LIB_PIN* SourcePin )
{
wxString msg;
LIB_PART* part = GetCurPart();
if( !part || !SourcePin || SourcePin->Type() != LIB_PIN_T )
return;
LIB_PIN* pin = (LIB_PIN*) SourcePin->Clone();
pin->ClearFlags();
pin->SetFlags( IS_NEW );
wxPoint step;
switch( pin->GetOrientation() )
{
case PIN_UP:
step.x = GetRepeatPinStep();
break;
case PIN_DOWN:
step.x = GetRepeatPinStep();
break;
case PIN_LEFT:
step.y = - GetRepeatPinStep();
break;
case PIN_RIGHT:
step.y = - GetRepeatPinStep();
break;
}
pin->Move( pin->GetPosition() + step );
wxString nextName = pin->GetName();
IncrementLabelMember( nextName, GetRepeatDeltaLabel() );
pin->SetName( nextName );
pin->PinStringNum( msg );
IncrementLabelMember( msg, GetRepeatDeltaLabel() );
pin->SetPinNumFromString( msg );
m_drawItem = pin;
if( SynchronizePins() )
pin->SetFlags( IS_LINKED );
wxPoint savepos = GetCrossHairPosition();
m_canvas->CrossHairOff( DC );
SetCrossHairPosition( wxPoint( pin->GetPosition().x, -pin->GetPosition().y ) );
// Add this new pin in list, and creates pins for others parts if needed
m_drawItem = pin;
ClearTempCopyComponent();
PlacePin();
m_lastDrawItem = pin;
SetCrossHairPosition( savepos );
m_canvas->CrossHairOn( DC );
MSG_PANEL_ITEMS items;
pin->GetMsgPanelInfo( items );
SetMsgPanel( items );
OnModify( );
}