void FOOTPRINT_VIEWER_FRAME::ClickOnFootprintList( wxCommandEvent& event ) { if( m_footprintList->GetCount() == 0 ) return; int ii = m_footprintList->GetSelection(); if( ii < 0 ) return; wxString name = m_footprintList->GetString( ii ); if( m_footprintName.CmpNoCase( name ) != 0 ) { m_footprintName = name; SetCurItem( NULL ); // Delete the current footprint GetBoard()->m_Modules.DeleteAll(); FPID id; id.SetLibNickname( m_libraryName ); id.SetFootprintName( m_footprintName ); try { GetBoard()->Add( loadFootprint( id ) ); } catch( IO_ERROR ioe ) { wxString msg; msg.Printf( _( "Could not load footprint \"%s\" from library \"%s\".\n\n" "Error %s." ), GetChars( m_footprintName ), GetChars( m_libraryName ), GetChars( ioe.errorText ) ); DisplayError( this, msg ); } UpdateTitle(); Zoom_Automatique( false ); m_canvas->Refresh(); Update3D_Frame(); } }
void FOOTPRINT_VIEWER_FRAME::SelectAndViewFootprint( int aMode ) { if( !m_libraryName ) return; int selection = m_footprintList->FindString( m_footprintName ); if( aMode == NEXT_PART ) { if( selection != wxNOT_FOUND && selection < (int)m_footprintList->GetCount()-1 ) selection++; } if( aMode == PREVIOUS_PART ) { if( selection != wxNOT_FOUND && selection > 0 ) selection--; } if( selection != wxNOT_FOUND ) { m_footprintList->SetSelection( selection ); m_footprintName = m_footprintList->GetString( selection ); SetCurItem( NULL ); // Delete the current footprint GetBoard()->m_Modules.DeleteAll(); MODULE* footprint = FootprintLibs()->FootprintLoad( m_libraryName, m_footprintName ); if( footprint ) GetBoard()->Add( footprint, ADD_APPEND ); Update3D_Frame(); } UpdateTitle(); Zoom_Automatique( false ); m_canvas->Refresh(); }
void FOOTPRINT_WIZARD_FRAME::Show3D_Frame( wxCommandEvent& event ) { if( m_Draw3DFrame ) { // Raising the window does not show the window on Windows if iconized. // This should work on any platform. if( m_Draw3DFrame->IsIconized() ) m_Draw3DFrame->Iconize( false ); m_Draw3DFrame->Raise(); // Raising the window does not set the focus on Linux. This should work on any platform. if( wxWindow::FindFocus() != m_Draw3DFrame ) m_Draw3DFrame->SetFocus(); return; } m_Draw3DFrame = new EDA_3D_FRAME( &Kiway(), this, wxEmptyString ); Update3D_Frame( false ); m_Draw3DFrame->Show( true ); }