void LIB_VIEW_FRAME::RedrawActiveWindow( wxDC* DC, bool EraseBg ) { LIB_ALIAS* entry = Prj().SchLibs()->FindLibraryAlias( m_entryName, m_libraryName ); if( !entry ) return; LIB_PART* part = entry->GetPart(); if( !part ) return; wxString msg; wxString tmp; m_canvas->DrawBackGround( DC ); if( !entry->IsRoot() ) { // Temporarily change the name field text to reflect the alias name. msg = entry->GetName(); tmp = part->GetName(); part->SetName( msg ); if( m_unit < 1 ) m_unit = 1; if( m_convert < 1 ) m_convert = 1; } else msg = _( "None" ); part->Draw( m_canvas, DC, wxPoint( 0, 0 ), m_unit, m_convert, GR_DEFAULT_DRAWMODE ); // Redraw the cursor m_canvas->DrawCrossHair( DC ); if( !tmp.IsEmpty() ) part->SetName( tmp ); ClearMsgPanel(); AppendMsgPanel( _( "Part" ), part->GetName(), BLUE, 6 ); AppendMsgPanel( _( "Alias" ), msg, RED, 6 ); AppendMsgPanel( _( "Description" ), entry->GetDescription(), CYAN, 6 ); AppendMsgPanel( _( "Key words" ), entry->GetKeyWords(), DARKDARKGRAY ); }
void LIB_EDIT_FRAME::RedrawComponent( wxDC* aDC, wxPoint aOffset ) { LIB_PART* part = GetCurPart(); if( part ) { // display reference like in schematic (a reference U is shown U? or U?A) // although it is stored without ? and part id. // So temporary change the reference by a schematic like reference LIB_FIELD* field = part->GetField( REFERENCE ); wxString fieldText = field->GetText(); wxString fieldfullText = field->GetFullText( m_unit ); field->EDA_TEXT::SetText( fieldfullText ); // change the field text string only part->Draw( m_canvas, aDC, aOffset, m_unit, m_convert, GR_DEFAULT_DRAWMODE ); field->EDA_TEXT::SetText( fieldText ); // restore the field text string } }
void LIB_EDIT_FRAME::PrintPage( wxDC* aDC, LSET aPrintMask, bool aPrintMirrorMode, void* aData) { LIB_PART* part = GetCurPart(); if( !part ) return; wxSize pagesize = GetScreen()->GetPageSettings().GetSizeIU(); /* Plot item centered to the page * In libedit, the component is centered at 0,0 coordinates. * So we must plot it with an offset = pagesize/2. */ wxPoint plot_offset; plot_offset.x = pagesize.x/2; plot_offset.y = pagesize.y/2; part->Draw( m_canvas, aDC, plot_offset, m_unit, m_convert, PART_DRAW_OPTIONS::Default() ); }