Fix 3D frame issue when iconized (Windows only).
This commit is contained in:
parent
04bf11c229
commit
0b9f39fa43
Binary file not shown.
Binary file not shown.
|
@ -106,7 +106,7 @@ DISPLAY_FOOTPRINTS_FRAME::DISPLAY_FOOTPRINTS_FRAME( CVPCB_MAINFRAME* father,
|
||||||
wxAuiPaneInfo( vert ).Name( wxT( "m_VToolBar" ) ).Right() );
|
wxAuiPaneInfo( vert ).Name( wxT( "m_VToolBar" ) ).Right() );
|
||||||
|
|
||||||
m_auimgr.AddPane( DrawPanel,
|
m_auimgr.AddPane( DrawPanel,
|
||||||
wxAuiPaneInfo().Name( wxT( "DrawFrame" ) ).CentrePane() );
|
wxAuiPaneInfo().Name( wxT( "DisplayFrame" ) ).CentrePane() );
|
||||||
|
|
||||||
m_auimgr.AddPane( MsgPanel,
|
m_auimgr.AddPane( MsgPanel,
|
||||||
wxAuiPaneInfo( horiz ).Name( wxT( "MsgPanel" ) ).Bottom() );
|
wxAuiPaneInfo( horiz ).Name( wxT( "MsgPanel" ) ).Bottom() );
|
||||||
|
@ -126,7 +126,7 @@ DISPLAY_FOOTPRINTS_FRAME::~DISPLAY_FOOTPRINTS_FRAME()
|
||||||
delete GetScreen();
|
delete GetScreen();
|
||||||
SetScreen( NULL );
|
SetScreen( NULL );
|
||||||
|
|
||||||
( (CVPCB_MAINFRAME*) wxGetApp().GetTopWindow() )->DrawFrame = NULL;
|
( (CVPCB_MAINFRAME*) wxGetApp().GetTopWindow() )->m_DisplayFootprintFrame = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Called when the frame is closed
|
/* Called when the frame is closed
|
||||||
|
@ -134,12 +134,8 @@ DISPLAY_FOOTPRINTS_FRAME::~DISPLAY_FOOTPRINTS_FRAME()
|
||||||
*/
|
*/
|
||||||
void DISPLAY_FOOTPRINTS_FRAME::OnCloseWindow( wxCloseEvent& event )
|
void DISPLAY_FOOTPRINTS_FRAME::OnCloseWindow( wxCloseEvent& event )
|
||||||
{
|
{
|
||||||
wxPoint pos;
|
if( m_Draw3DFrame )
|
||||||
wxSize size;
|
m_Draw3DFrame->Close(true);
|
||||||
|
|
||||||
size = GetSize();
|
|
||||||
pos = GetPosition();
|
|
||||||
|
|
||||||
SaveSettings();
|
SaveSettings();
|
||||||
Destroy();
|
Destroy();
|
||||||
}
|
}
|
||||||
|
@ -408,6 +404,10 @@ void DISPLAY_FOOTPRINTS_FRAME::Show3D_Frame( wxCommandEvent& event )
|
||||||
{
|
{
|
||||||
if( m_Draw3DFrame )
|
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();
|
m_Draw3DFrame->Raise();
|
||||||
|
|
||||||
// Raising the window does not set the focus on Linux. This should work on any platform.
|
// Raising the window does not set the focus on Linux. This should work on any platform.
|
||||||
|
|
|
@ -244,7 +244,7 @@ void FOOTPRINTS_LISTBOX::OnLeftClick( wxListEvent& event )
|
||||||
|
|
||||||
Module = GetParent()->m_footprints.GetModuleInfo( FootprintName );
|
Module = GetParent()->m_footprints.GetModuleInfo( FootprintName );
|
||||||
wxASSERT(Module);
|
wxASSERT(Module);
|
||||||
if( GetParent()->DrawFrame )
|
if( GetParent()->m_DisplayFootprintFrame )
|
||||||
{
|
{
|
||||||
GetParent()->CreateScreenCmp(); /* refresh general */
|
GetParent()->CreateScreenCmp(); /* refresh general */
|
||||||
}
|
}
|
||||||
|
|
|
@ -57,28 +57,17 @@ BEGIN_EVENT_TABLE( CVPCB_MAINFRAME, EDA_BASE_FRAME )
|
||||||
CVPCB_MAINFRAME::SetLanguage )
|
CVPCB_MAINFRAME::SetLanguage )
|
||||||
|
|
||||||
// Toolbar events
|
// Toolbar events
|
||||||
EVT_TOOL( ID_CVPCB_QUIT,
|
EVT_TOOL( ID_CVPCB_QUIT, CVPCB_MAINFRAME::OnQuit )
|
||||||
CVPCB_MAINFRAME::OnQuit )
|
EVT_TOOL( ID_CVPCB_READ_INPUT_NETLIST, CVPCB_MAINFRAME::LoadNetList )
|
||||||
EVT_TOOL( ID_CVPCB_READ_INPUT_NETLIST,
|
EVT_TOOL( ID_CVPCB_SAVEQUITCVPCB, CVPCB_MAINFRAME::SaveQuitCvpcb )
|
||||||
CVPCB_MAINFRAME::LoadNetList )
|
EVT_TOOL( ID_CVPCB_CREATE_CONFIGWINDOW, CVPCB_MAINFRAME::ConfigCvpcb )
|
||||||
EVT_TOOL( ID_CVPCB_SAVEQUITCVPCB,
|
EVT_TOOL( ID_CVPCB_CREATE_SCREENCMP, CVPCB_MAINFRAME::DisplayModule )
|
||||||
CVPCB_MAINFRAME::SaveQuitCvpcb )
|
EVT_TOOL( ID_CVPCB_GOTO_FIRSTNA, CVPCB_MAINFRAME::ToFirstNA )
|
||||||
EVT_TOOL( ID_CVPCB_CREATE_CONFIGWINDOW,
|
EVT_TOOL( ID_CVPCB_GOTO_PREVIOUSNA, CVPCB_MAINFRAME::ToPreviousNA )
|
||||||
CVPCB_MAINFRAME::ConfigCvpcb )
|
EVT_TOOL( ID_CVPCB_DEL_ASSOCIATIONS, CVPCB_MAINFRAME::DelAssociations )
|
||||||
EVT_TOOL( ID_CVPCB_CREATE_SCREENCMP,
|
EVT_TOOL( ID_CVPCB_AUTO_ASSOCIE, CVPCB_MAINFRAME::AssocieModule )
|
||||||
CVPCB_MAINFRAME::DisplayModule )
|
EVT_TOOL( ID_CVPCB_CREATE_STUFF_FILE, CVPCB_MAINFRAME::WriteStuffList )
|
||||||
EVT_TOOL( ID_CVPCB_GOTO_FIRSTNA,
|
EVT_TOOL( ID_PCB_DISPLAY_FOOTPRINT_DOC, CVPCB_MAINFRAME::DisplayDocFile )
|
||||||
CVPCB_MAINFRAME::ToFirstNA )
|
|
||||||
EVT_TOOL( ID_CVPCB_GOTO_PREVIOUSNA,
|
|
||||||
CVPCB_MAINFRAME::ToPreviousNA )
|
|
||||||
EVT_TOOL( ID_CVPCB_DEL_ASSOCIATIONS,
|
|
||||||
CVPCB_MAINFRAME::DelAssociations )
|
|
||||||
EVT_TOOL( ID_CVPCB_AUTO_ASSOCIE,
|
|
||||||
CVPCB_MAINFRAME::AssocieModule )
|
|
||||||
EVT_TOOL( ID_CVPCB_CREATE_STUFF_FILE,
|
|
||||||
CVPCB_MAINFRAME::WriteStuffList )
|
|
||||||
EVT_TOOL( ID_PCB_DISPLAY_FOOTPRINT_DOC,
|
|
||||||
CVPCB_MAINFRAME::DisplayDocFile )
|
|
||||||
EVT_TOOL( ID_CVPCB_FOOTPRINT_DISPLAY_FILTERED_LIST,
|
EVT_TOOL( ID_CVPCB_FOOTPRINT_DISPLAY_FILTERED_LIST,
|
||||||
CVPCB_MAINFRAME::OnSelectFilteringFootprint )
|
CVPCB_MAINFRAME::OnSelectFilteringFootprint )
|
||||||
EVT_TOOL( ID_CVPCB_FOOTPRINT_DISPLAY_FULL_LIST,
|
EVT_TOOL( ID_CVPCB_FOOTPRINT_DISPLAY_FULL_LIST,
|
||||||
|
@ -90,25 +79,20 @@ BEGIN_EVENT_TABLE( CVPCB_MAINFRAME, EDA_BASE_FRAME )
|
||||||
EVT_SIZE( CVPCB_MAINFRAME::OnSize )
|
EVT_SIZE( CVPCB_MAINFRAME::OnSize )
|
||||||
|
|
||||||
// List item events
|
// List item events
|
||||||
EVT_LIST_ITEM_SELECTED( ID_CVPCB_FOOTPRINT_LIST,
|
EVT_LIST_ITEM_SELECTED( ID_CVPCB_FOOTPRINT_LIST, CVPCB_MAINFRAME::OnLeftClick )
|
||||||
CVPCB_MAINFRAME::OnLeftClick )
|
EVT_LIST_ITEM_ACTIVATED( ID_CVPCB_FOOTPRINT_LIST, CVPCB_MAINFRAME::OnLeftDClick )
|
||||||
EVT_LIST_ITEM_ACTIVATED( ID_CVPCB_FOOTPRINT_LIST,
|
EVT_LIST_ITEM_SELECTED( ID_CVPCB_COMPONENT_LIST, CVPCB_MAINFRAME::OnSelectComponent )
|
||||||
CVPCB_MAINFRAME::OnLeftDClick )
|
|
||||||
EVT_LIST_ITEM_SELECTED( ID_CVPCB_COMPONENT_LIST,
|
|
||||||
CVPCB_MAINFRAME::OnSelectComponent )
|
|
||||||
|
|
||||||
EVT_UPDATE_UI( ID_CVPCB_CONFIG_KEEP_OPEN_ON_SAVE,
|
EVT_UPDATE_UI( ID_CVPCB_CONFIG_KEEP_OPEN_ON_SAVE,
|
||||||
CVPCB_MAINFRAME::OnUpdateKeepOpenOnSave )
|
CVPCB_MAINFRAME::OnUpdateKeepOpenOnSave )
|
||||||
END_EVENT_TABLE()
|
END_EVENT_TABLE() CVPCB_MAINFRAME::CVPCB_MAINFRAME( const wxString& title, long style ) :
|
||||||
|
|
||||||
CVPCB_MAINFRAME::CVPCB_MAINFRAME( const wxString& title, long style ) :
|
|
||||||
EDA_BASE_FRAME( NULL, CVPCB_FRAME, title, wxDefaultPosition, wxDefaultSize, style )
|
EDA_BASE_FRAME( NULL, CVPCB_FRAME, title, wxDefaultPosition, wxDefaultSize, style )
|
||||||
{
|
{
|
||||||
m_FrameName = wxT( "CvpcbFrame" );
|
m_FrameName = wxT( "CvpcbFrame" );
|
||||||
|
|
||||||
m_ListCmp = NULL;
|
m_ListCmp = NULL;
|
||||||
m_FootprintList = NULL;
|
m_FootprintList = NULL;
|
||||||
DrawFrame = NULL;
|
m_DisplayFootprintFrame = NULL;
|
||||||
m_HToolBar = NULL;
|
m_HToolBar = NULL;
|
||||||
m_modified = false;
|
m_modified = false;
|
||||||
m_isEESchemaNetlist = false;
|
m_isEESchemaNetlist = false;
|
||||||
|
@ -129,7 +113,7 @@ CVPCB_MAINFRAME::CVPCB_MAINFRAME( const wxString& title, long style ) :
|
||||||
SetIcon( wxICON( icon_cvpcb ) );
|
SetIcon( wxICON( icon_cvpcb ) );
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
SetAutoLayout( TRUE );
|
SetAutoLayout( true );
|
||||||
|
|
||||||
LoadSettings();
|
LoadSettings();
|
||||||
if( m_FrameSize.x < FRAME_MIN_SIZE_X )
|
if( m_FrameSize.x < FRAME_MIN_SIZE_X )
|
||||||
|
@ -245,7 +229,7 @@ void CVPCB_MAINFRAME::OnSize( wxSizeEvent& event )
|
||||||
|
|
||||||
void CVPCB_MAINFRAME::OnQuit( wxCommandEvent& event )
|
void CVPCB_MAINFRAME::OnQuit( wxCommandEvent& event )
|
||||||
{
|
{
|
||||||
Close( TRUE );
|
Close( true );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -295,7 +279,7 @@ void CVPCB_MAINFRAME::OnCloseWindow( wxCloseEvent& Event )
|
||||||
{
|
{
|
||||||
if( wxGetApp().m_HtmlCtrl->GetFrame() ) // returns NULL if no help
|
if( wxGetApp().m_HtmlCtrl->GetFrame() ) // returns NULL if no help
|
||||||
// frame active
|
// frame active
|
||||||
wxGetApp().m_HtmlCtrl->GetFrame()->Close( TRUE );
|
wxGetApp().m_HtmlCtrl->GetFrame()->Close( true );
|
||||||
}
|
}
|
||||||
|
|
||||||
if( m_NetlistFileName.IsOk() )
|
if( m_NetlistFileName.IsOk() )
|
||||||
|
@ -303,6 +287,9 @@ void CVPCB_MAINFRAME::OnCloseWindow( wxCloseEvent& Event )
|
||||||
UpdateFileHistory( m_NetlistFileName.GetFullPath() );
|
UpdateFileHistory( m_NetlistFileName.GetFullPath() );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Close module display frame
|
||||||
|
if( m_DisplayFootprintFrame )
|
||||||
|
m_DisplayFootprintFrame->Close( true );
|
||||||
m_modified = false;
|
m_modified = false;
|
||||||
SaveSettings();
|
SaveSettings();
|
||||||
Destroy();
|
Destroy();
|
||||||
|
@ -344,8 +331,7 @@ void CVPCB_MAINFRAME::ToFirstNA( wxCommandEvent& event )
|
||||||
if( selection < 0 )
|
if( selection < 0 )
|
||||||
selection = 0;
|
selection = 0;
|
||||||
|
|
||||||
BOOST_FOREACH( COMPONENT & component, m_components )
|
BOOST_FOREACH( COMPONENT & component, m_components ) {
|
||||||
{
|
|
||||||
if( component.m_Module.IsEmpty() && ii > selection )
|
if( component.m_Module.IsEmpty() && ii > selection )
|
||||||
{
|
{
|
||||||
m_ListCmp->SetSelection( ii );
|
m_ListCmp->SetSelection( ii );
|
||||||
|
@ -372,8 +358,7 @@ void CVPCB_MAINFRAME::ToPreviousNA( wxCommandEvent& event )
|
||||||
if( selection < 0 )
|
if( selection < 0 )
|
||||||
selection = m_ListCmp->GetCount() - 1;
|
selection = m_ListCmp->GetCount() - 1;
|
||||||
|
|
||||||
BOOST_REVERSE_FOREACH( COMPONENT & component, m_components )
|
BOOST_REVERSE_FOREACH( COMPONENT & component, m_components ) {
|
||||||
{
|
|
||||||
if( component.m_Module.IsEmpty() && ii < selection )
|
if( component.m_Module.IsEmpty() && ii < selection )
|
||||||
{
|
{
|
||||||
m_ListCmp->SetSelection( ii );
|
m_ListCmp->SetSelection( ii );
|
||||||
|
@ -391,7 +376,7 @@ void CVPCB_MAINFRAME::SaveQuitCvpcb( wxCommandEvent& event )
|
||||||
{
|
{
|
||||||
m_modified = false;
|
m_modified = false;
|
||||||
if( !m_KeepCvpcbOpen )
|
if( !m_KeepCvpcbOpen )
|
||||||
Close( TRUE );
|
Close( true );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -407,8 +392,7 @@ void CVPCB_MAINFRAME::DelAssociations( wxCommandEvent& event )
|
||||||
{
|
{
|
||||||
m_ListCmp->SetSelection( 0 );
|
m_ListCmp->SetSelection( 0 );
|
||||||
|
|
||||||
BOOST_FOREACH( COMPONENT & component, m_components )
|
BOOST_FOREACH( COMPONENT & component, m_components ) {
|
||||||
{
|
|
||||||
component.m_Module.Empty();
|
component.m_Module.Empty();
|
||||||
SetNewPkg( wxEmptyString );
|
SetNewPkg( wxEmptyString );
|
||||||
}
|
}
|
||||||
|
@ -488,7 +472,7 @@ void CVPCB_MAINFRAME::OnKeepOpenOnSave( wxCommandEvent& event )
|
||||||
void CVPCB_MAINFRAME::DisplayModule( wxCommandEvent& event )
|
void CVPCB_MAINFRAME::DisplayModule( wxCommandEvent& event )
|
||||||
{
|
{
|
||||||
CreateScreenCmp();
|
CreateScreenCmp();
|
||||||
DrawFrame->RedrawScreen( wxPoint( 0, 0 ), false );
|
m_DisplayFootprintFrame->RedrawScreen( wxPoint( 0, 0 ), false );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -526,20 +510,20 @@ void CVPCB_MAINFRAME::OnSelectComponent( wxListEvent& event )
|
||||||
|
|
||||||
if( !m_HToolBar->GetToolState( ID_CVPCB_FOOTPRINT_DISPLAY_FILTERED_LIST ) )
|
if( !m_HToolBar->GetToolState( ID_CVPCB_FOOTPRINT_DISPLAY_FILTERED_LIST ) )
|
||||||
{
|
{
|
||||||
m_FootprintList->SetActiveFootprintList( TRUE, TRUE );
|
m_FootprintList->SetActiveFootprintList( true, true );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
selection = m_ListCmp->GetSelection();
|
selection = m_ListCmp->GetSelection();
|
||||||
if( selection < 0 )
|
if( selection < 0 )
|
||||||
{
|
{
|
||||||
m_FootprintList->SetActiveFootprintList( TRUE, TRUE );
|
m_FootprintList->SetActiveFootprintList( true, true );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( &m_components[ selection ] == NULL )
|
if( &m_components[ selection ] == NULL )
|
||||||
{
|
{
|
||||||
m_FootprintList->SetActiveFootprintList( TRUE, TRUE );
|
m_FootprintList->SetActiveFootprintList( true, true );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -558,12 +542,15 @@ void CVPCB_MAINFRAME::OnSelectFilteringFootprint( wxCommandEvent& event )
|
||||||
case ID_CVPCB_FOOTPRINT_DISPLAY_FILTERED_LIST:
|
case ID_CVPCB_FOOTPRINT_DISPLAY_FILTERED_LIST:
|
||||||
m_HToolBar->ToggleTool( ID_CVPCB_FOOTPRINT_DISPLAY_FULL_LIST, false );
|
m_HToolBar->ToggleTool( ID_CVPCB_FOOTPRINT_DISPLAY_FULL_LIST, false );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ID_CVPCB_FOOTPRINT_DISPLAY_FULL_LIST:
|
case ID_CVPCB_FOOTPRINT_DISPLAY_FULL_LIST:
|
||||||
m_HToolBar->ToggleTool( ID_CVPCB_FOOTPRINT_DISPLAY_FILTERED_LIST, false );
|
m_HToolBar->ToggleTool( ID_CVPCB_FOOTPRINT_DISPLAY_FILTERED_LIST, false );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
wxListEvent l_event;
|
wxListEvent l_event;
|
||||||
|
|
||||||
OnSelectComponent( l_event );
|
OnSelectComponent( l_event );
|
||||||
|
@ -582,6 +569,7 @@ void CVPCB_MAINFRAME::OnUpdateKeepOpenOnSave( wxUpdateUIEvent& event )
|
||||||
void CVPCB_MAINFRAME::DisplayStatus()
|
void CVPCB_MAINFRAME::DisplayStatus()
|
||||||
{
|
{
|
||||||
wxString msg;
|
wxString msg;
|
||||||
|
|
||||||
msg.Printf( _( "Components: %d (free: %d)" ),
|
msg.Printf( _( "Components: %d (free: %d)" ),
|
||||||
m_components.size(), m_undefinedComponentCnt );
|
m_components.size(), m_undefinedComponentCnt );
|
||||||
SetStatusText( msg, 0 );
|
SetStatusText( msg, 0 );
|
||||||
|
@ -602,6 +590,7 @@ void CVPCB_MAINFRAME::DisplayStatus()
|
||||||
SetStatusText( msg, 2 );
|
SetStatusText( msg, 2 );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Read the list of libraries (*.mod files) and populates m_footprints
|
* Read the list of libraries (*.mod files) and populates m_footprints
|
||||||
* ( list of availaible modules in libs ).
|
* ( list of availaible modules in libs ).
|
||||||
|
|
|
@ -17,7 +17,6 @@ class COMPONENTS_LISTBOX;
|
||||||
class DISPLAY_FOOTPRINTS_FRAME;
|
class DISPLAY_FOOTPRINTS_FRAME;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The CVPcb application main window.
|
* The CVPcb application main window.
|
||||||
*/
|
*/
|
||||||
|
@ -28,7 +27,7 @@ public:
|
||||||
bool m_KeepCvpcbOpen;
|
bool m_KeepCvpcbOpen;
|
||||||
FOOTPRINTS_LISTBOX* m_FootprintList;
|
FOOTPRINTS_LISTBOX* m_FootprintList;
|
||||||
COMPONENTS_LISTBOX* m_ListCmp;
|
COMPONENTS_LISTBOX* m_ListCmp;
|
||||||
DISPLAY_FOOTPRINTS_FRAME* DrawFrame;
|
DISPLAY_FOOTPRINTS_FRAME* m_DisplayFootprintFrame;
|
||||||
EDA_TOOLBAR* m_HToolBar;
|
EDA_TOOLBAR* m_HToolBar;
|
||||||
wxFileName m_NetlistFileName;
|
wxFileName m_NetlistFileName;
|
||||||
wxArrayString m_ModuleLibNames;
|
wxArrayString m_ModuleLibNames;
|
||||||
|
@ -45,8 +44,7 @@ protected:
|
||||||
bool m_isEESchemaNetlist;
|
bool m_isEESchemaNetlist;
|
||||||
PARAM_CFG_ARRAY m_projectFileParams;
|
PARAM_CFG_ARRAY m_projectFileParams;
|
||||||
|
|
||||||
public:
|
public: CVPCB_MAINFRAME( const wxString& title,
|
||||||
CVPCB_MAINFRAME( const wxString& title,
|
|
||||||
long style = KICAD_DEFAULT_DRAWFRAME_STYLE );
|
long style = KICAD_DEFAULT_DRAWFRAME_STYLE );
|
||||||
~CVPCB_MAINFRAME();
|
~CVPCB_MAINFRAME();
|
||||||
|
|
||||||
|
|
|
@ -31,28 +31,32 @@ void CVPCB_MAINFRAME::CreateScreenCmp()
|
||||||
|
|
||||||
FootprintName = m_FootprintList->GetSelectedFootprint();
|
FootprintName = m_FootprintList->GetSelectedFootprint();
|
||||||
|
|
||||||
if( DrawFrame == NULL )
|
if( m_DisplayFootprintFrame == NULL )
|
||||||
{
|
{
|
||||||
DrawFrame = new DISPLAY_FOOTPRINTS_FRAME( this, _( "Module" ),
|
m_DisplayFootprintFrame = new DISPLAY_FOOTPRINTS_FRAME( this, _( "Module" ),
|
||||||
wxPoint( 0, 0 ),
|
wxPoint( 0, 0 ),
|
||||||
wxSize( 600, 400 ),
|
wxSize( 600, 400 ),
|
||||||
KICAD_DEFAULT_DRAWFRAME_STYLE );
|
KICAD_DEFAULT_DRAWFRAME_STYLE );
|
||||||
IsNew = true;
|
IsNew = true;
|
||||||
DrawFrame->Show( true );
|
m_DisplayFootprintFrame->Show( true );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
DrawFrame->Raise();
|
// Raising the window does not show the window on Windows if iconized.
|
||||||
|
// This should work on any platform.
|
||||||
|
if( m_DisplayFootprintFrame->IsIconized() )
|
||||||
|
m_DisplayFootprintFrame->Iconize( false );
|
||||||
|
m_DisplayFootprintFrame->Raise();
|
||||||
|
|
||||||
// Raising the window does not set the focus on Linux. This should work on any platform.
|
// Raising the window does not set the focus on Linux. This should work on any platform.
|
||||||
if( wxWindow::FindFocus() != DrawFrame )
|
if( wxWindow::FindFocus() != m_DisplayFootprintFrame )
|
||||||
DrawFrame->SetFocus();
|
m_DisplayFootprintFrame->SetFocus();
|
||||||
}
|
}
|
||||||
|
|
||||||
if( !FootprintName.IsEmpty() )
|
if( !FootprintName.IsEmpty() )
|
||||||
{
|
{
|
||||||
msg = _( "Footprint: " ) + FootprintName;
|
msg = _( "Footprint: " ) + FootprintName;
|
||||||
DrawFrame->SetTitle( msg );
|
m_DisplayFootprintFrame->SetTitle( msg );
|
||||||
FOOTPRINT_INFO* Module = m_footprints.GetModuleInfo( FootprintName );
|
FOOTPRINT_INFO* Module = m_footprints.GetModuleInfo( FootprintName );
|
||||||
msg = _( "Lib: " );
|
msg = _( "Lib: " );
|
||||||
|
|
||||||
|
@ -61,32 +65,32 @@ void CVPCB_MAINFRAME::CreateScreenCmp()
|
||||||
else
|
else
|
||||||
msg += wxT( "???" );
|
msg += wxT( "???" );
|
||||||
|
|
||||||
DrawFrame->SetStatusText( msg, 0 );
|
m_DisplayFootprintFrame->SetStatusText( msg, 0 );
|
||||||
|
|
||||||
if( DrawFrame->GetBoard()->m_Modules.GetCount() )
|
if( m_DisplayFootprintFrame->GetBoard()->m_Modules.GetCount() )
|
||||||
{
|
{
|
||||||
// there is only one module in the list
|
// there is only one module in the list
|
||||||
DrawFrame->GetBoard()->m_Modules.DeleteAll();
|
m_DisplayFootprintFrame->GetBoard()->m_Modules.DeleteAll();
|
||||||
}
|
}
|
||||||
|
|
||||||
MODULE* mod = DrawFrame->Get_Module( FootprintName );
|
MODULE* mod = m_DisplayFootprintFrame->Get_Module( FootprintName );
|
||||||
|
|
||||||
if( mod )
|
if( mod )
|
||||||
DrawFrame->GetBoard()->m_Modules.PushBack( mod );
|
m_DisplayFootprintFrame->GetBoard()->m_Modules.PushBack( mod );
|
||||||
|
|
||||||
DrawFrame->Zoom_Automatique( false );
|
m_DisplayFootprintFrame->Zoom_Automatique( false );
|
||||||
DrawFrame->DrawPanel->Refresh();
|
m_DisplayFootprintFrame->DrawPanel->Refresh();
|
||||||
DrawFrame->UpdateStatusBar(); /* Display new cursor coordinates and zoom value */
|
m_DisplayFootprintFrame->UpdateStatusBar(); /* Display new cursor coordinates and zoom value */
|
||||||
|
|
||||||
if( DrawFrame->m_Draw3DFrame )
|
if( m_DisplayFootprintFrame->m_Draw3DFrame )
|
||||||
DrawFrame->m_Draw3DFrame->NewDisplay();
|
m_DisplayFootprintFrame->m_Draw3DFrame->NewDisplay();
|
||||||
}
|
}
|
||||||
else if( !IsNew )
|
else if( !IsNew )
|
||||||
{
|
{
|
||||||
DrawFrame->Refresh();
|
m_DisplayFootprintFrame->Refresh();
|
||||||
|
|
||||||
if( DrawFrame->m_Draw3DFrame )
|
if( m_DisplayFootprintFrame->m_Draw3DFrame )
|
||||||
DrawFrame->m_Draw3DFrame->NewDisplay();
|
m_DisplayFootprintFrame->m_Draw3DFrame->NewDisplay();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -168,6 +168,8 @@ void PCB_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event )
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
if( m_ModuleEditFrame->IsIconized() )
|
||||||
|
m_ModuleEditFrame->Iconize( false );
|
||||||
m_ModuleEditFrame->Raise();
|
m_ModuleEditFrame->Raise();
|
||||||
|
|
||||||
// Raising the window does not set the focus on Linux. This should work on
|
// Raising the window does not set the focus on Linux. This should work on
|
||||||
|
|
|
@ -325,6 +325,10 @@ void WinEDA_ModuleEditFrame::Show3D_Frame( wxCommandEvent& event )
|
||||||
{
|
{
|
||||||
if( m_Draw3DFrame )
|
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();
|
m_Draw3DFrame->Raise();
|
||||||
|
|
||||||
// Raising the window does not set the focus on Linux. This should work on any platform.
|
// Raising the window does not set the focus on Linux. This should work on any platform.
|
||||||
|
|
|
@ -483,6 +483,10 @@ void PCB_EDIT_FRAME::Show3D_Frame( wxCommandEvent& event )
|
||||||
{
|
{
|
||||||
if( m_Draw3DFrame )
|
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();
|
m_Draw3DFrame->Raise();
|
||||||
|
|
||||||
// Raising the window does not set the focus on Linux. This should work on any platform.
|
// Raising the window does not set the focus on Linux. This should work on any platform.
|
||||||
|
|
Loading…
Reference in New Issue