Code reorganization, and change the way 3D viewer frame is managed (now using wxWidgets wxWindow::FindWindowByName() to know if it is existing) , to prepare others fixes.
This commit is contained in:
parent
4e99c9897e
commit
a11bbffe9b
|
@ -116,7 +116,7 @@ END_EVENT_TABLE()
|
||||||
EDA_3D_FRAME::EDA_3D_FRAME( KIWAY* aKiway, PCB_BASE_FRAME* aParent,
|
EDA_3D_FRAME::EDA_3D_FRAME( KIWAY* aKiway, PCB_BASE_FRAME* aParent,
|
||||||
const wxString& aTitle, long style ) :
|
const wxString& aTitle, long style ) :
|
||||||
KIWAY_PLAYER( aKiway, aParent, FRAME_PCB_DISPLAY3D, aTitle,
|
KIWAY_PLAYER( aKiway, aParent, FRAME_PCB_DISPLAY3D, aTitle,
|
||||||
wxDefaultPosition, wxDefaultSize, style, wxT( "Frame3D" ) )
|
wxDefaultPosition, wxDefaultSize, style, VIEWER3D_FRAMENAME )
|
||||||
{
|
{
|
||||||
m_canvas = NULL;
|
m_canvas = NULL;
|
||||||
m_reloadRequest = false;
|
m_reloadRequest = false;
|
||||||
|
@ -235,9 +235,6 @@ void EDA_3D_FRAME::Exit3DFrame( wxCommandEvent& event )
|
||||||
|
|
||||||
void EDA_3D_FRAME::OnCloseWindow( wxCloseEvent& Event )
|
void EDA_3D_FRAME::OnCloseWindow( wxCloseEvent& Event )
|
||||||
{
|
{
|
||||||
if( Parent() )
|
|
||||||
Parent()->m_Draw3DFrame = NULL;
|
|
||||||
|
|
||||||
Destroy();
|
Destroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -54,6 +54,8 @@ class wxColourData;
|
||||||
|
|
||||||
#define KICAD_DEFAULT_3D_DRAWFRAME_STYLE (wxDEFAULT_FRAME_STYLE | wxWANTS_CHARS)
|
#define KICAD_DEFAULT_3D_DRAWFRAME_STYLE (wxDEFAULT_FRAME_STYLE | wxWANTS_CHARS)
|
||||||
|
|
||||||
|
#define VIEWER3D_FRAMENAME wxT( "Viewer3DFrameName" )
|
||||||
|
|
||||||
|
|
||||||
class EDA_3D_FRAME : public KIWAY_PLAYER
|
class EDA_3D_FRAME : public KIWAY_PLAYER
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
///////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////
|
||||||
// C++ code generated with wxFormBuilder (version Nov 5 2013)
|
// C++ code generated with wxFormBuilder (version Jun 17 2015)
|
||||||
// http://www.wxformbuilder.org/
|
// http://www.wxformbuilder.org/
|
||||||
//
|
//
|
||||||
// PLEASE DO "NOT" EDIT THIS FILE!
|
// PLEASE DO "NOT" EDIT THIS FILE!
|
||||||
|
@ -14,7 +14,10 @@ DIALOG_GET_COMPONENT_BASE::DIALOG_GET_COMPONENT_BASE( wxWindow* parent, wxWindow
|
||||||
this->SetSizeHints( wxDefaultSize, wxDefaultSize );
|
this->SetSizeHints( wxDefaultSize, wxDefaultSize );
|
||||||
|
|
||||||
wxBoxSizer* bSizerMain;
|
wxBoxSizer* bSizerMain;
|
||||||
bSizerMain = new wxBoxSizer( wxHORIZONTAL );
|
bSizerMain = new wxBoxSizer( wxVERTICAL );
|
||||||
|
|
||||||
|
wxBoxSizer* bSizerUpper;
|
||||||
|
bSizerUpper = new wxBoxSizer( wxHORIZONTAL );
|
||||||
|
|
||||||
wxBoxSizer* bSizerLeft;
|
wxBoxSizer* bSizerLeft;
|
||||||
bSizerLeft = new wxBoxSizer( wxVERTICAL );
|
bSizerLeft = new wxBoxSizer( wxVERTICAL );
|
||||||
|
@ -34,24 +37,17 @@ DIALOG_GET_COMPONENT_BASE::DIALOG_GET_COMPONENT_BASE( wxWindow* parent, wxWindow
|
||||||
m_historyList = new wxListBox( this, ID_SEL_BY_LISTBOX, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
|
m_historyList = new wxListBox( this, ID_SEL_BY_LISTBOX, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 );
|
||||||
m_historyList->SetMinSize( wxSize( 200,100 ) );
|
m_historyList->SetMinSize( wxSize( 200,100 ) );
|
||||||
|
|
||||||
bSizerLeft->Add( m_historyList, 1, wxALL|wxEXPAND, 5 );
|
bSizerLeft->Add( m_historyList, 1, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
|
||||||
|
|
||||||
|
|
||||||
bSizerMain->Add( bSizerLeft, 1, wxEXPAND, 5 );
|
bSizerUpper->Add( bSizerLeft, 1, wxEXPAND, 5 );
|
||||||
|
|
||||||
wxBoxSizer* bSizerRight;
|
wxBoxSizer* bSizerRight;
|
||||||
bSizerRight = new wxBoxSizer( wxVERTICAL );
|
bSizerRight = new wxBoxSizer( wxVERTICAL );
|
||||||
|
|
||||||
m_buttonOK = new wxButton( this, wxID_OK, _("OK"), wxDefaultPosition, wxDefaultSize, 0 );
|
|
||||||
m_buttonOK->SetDefault();
|
|
||||||
bSizerRight->Add( m_buttonOK, 0, wxALL|wxEXPAND, 5 );
|
|
||||||
|
|
||||||
m_buttonKW = new wxButton( this, ID_ACCEPT_KEYWORD, _("Search by Keyword"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_buttonKW = new wxButton( this, ID_ACCEPT_KEYWORD, _("Search by Keyword"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
bSizerRight->Add( m_buttonKW, 0, wxALL|wxEXPAND, 5 );
|
bSizerRight->Add( m_buttonKW, 0, wxALL|wxEXPAND, 5 );
|
||||||
|
|
||||||
m_buttonCancel = new wxButton( this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxDefaultSize, 0 );
|
|
||||||
bSizerRight->Add( m_buttonCancel, 0, wxALL|wxEXPAND, 5 );
|
|
||||||
|
|
||||||
m_buttonList = new wxButton( this, ID_LIST_ALL, _("List All"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_buttonList = new wxButton( this, ID_LIST_ALL, _("List All"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
bSizerRight->Add( m_buttonList, 0, wxALL|wxEXPAND, 5 );
|
bSizerRight->Add( m_buttonList, 0, wxALL|wxEXPAND, 5 );
|
||||||
|
|
||||||
|
@ -59,32 +55,46 @@ DIALOG_GET_COMPONENT_BASE::DIALOG_GET_COMPONENT_BASE( wxWindow* parent, wxWindow
|
||||||
bSizerRight->Add( m_buttonBrowse, 0, wxALL|wxEXPAND, 5 );
|
bSizerRight->Add( m_buttonBrowse, 0, wxALL|wxEXPAND, 5 );
|
||||||
|
|
||||||
|
|
||||||
bSizerMain->Add( bSizerRight, 0, wxALIGN_CENTER_VERTICAL, 5 );
|
bSizerUpper->Add( bSizerRight, 0, wxALIGN_CENTER_VERTICAL, 5 );
|
||||||
|
|
||||||
|
|
||||||
|
bSizerMain->Add( bSizerUpper, 1, wxEXPAND, 5 );
|
||||||
|
|
||||||
|
m_staticline1 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
|
||||||
|
bSizerMain->Add( m_staticline1, 0, wxEXPAND|wxTOP|wxRIGHT, 5 );
|
||||||
|
|
||||||
|
m_sdbSizer = new wxStdDialogButtonSizer();
|
||||||
|
m_sdbSizerOK = new wxButton( this, wxID_OK );
|
||||||
|
m_sdbSizer->AddButton( m_sdbSizerOK );
|
||||||
|
m_sdbSizerCancel = new wxButton( this, wxID_CANCEL );
|
||||||
|
m_sdbSizer->AddButton( m_sdbSizerCancel );
|
||||||
|
m_sdbSizer->Realize();
|
||||||
|
|
||||||
|
bSizerMain->Add( m_sdbSizer, 0, wxEXPAND|wxALL, 5 );
|
||||||
|
|
||||||
|
|
||||||
this->SetSizer( bSizerMain );
|
this->SetSizer( bSizerMain );
|
||||||
this->Layout();
|
this->Layout();
|
||||||
bSizerMain->Fit( this );
|
|
||||||
|
|
||||||
this->Centre( wxBOTH );
|
this->Centre( wxBOTH );
|
||||||
|
|
||||||
// Connect Events
|
// Connect Events
|
||||||
m_historyList->Connect( wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler( DIALOG_GET_COMPONENT_BASE::Accept ), NULL, this );
|
m_historyList->Connect( wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler( DIALOG_GET_COMPONENT_BASE::Accept ), NULL, this );
|
||||||
m_buttonOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_GET_COMPONENT_BASE::Accept ), NULL, this );
|
|
||||||
m_buttonKW->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_GET_COMPONENT_BASE::Accept ), NULL, this );
|
m_buttonKW->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_GET_COMPONENT_BASE::Accept ), NULL, this );
|
||||||
m_buttonCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_GET_COMPONENT_BASE::OnCancel ), NULL, this );
|
|
||||||
m_buttonList->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_GET_COMPONENT_BASE::Accept ), NULL, this );
|
m_buttonList->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_GET_COMPONENT_BASE::Accept ), NULL, this );
|
||||||
m_buttonBrowse->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_GET_COMPONENT_BASE::GetExtraSelection ), NULL, this );
|
m_buttonBrowse->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_GET_COMPONENT_BASE::GetExtraSelection ), NULL, this );
|
||||||
|
m_sdbSizerCancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_GET_COMPONENT_BASE::OnCancel ), NULL, this );
|
||||||
|
m_sdbSizerOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_GET_COMPONENT_BASE::Accept ), NULL, this );
|
||||||
}
|
}
|
||||||
|
|
||||||
DIALOG_GET_COMPONENT_BASE::~DIALOG_GET_COMPONENT_BASE()
|
DIALOG_GET_COMPONENT_BASE::~DIALOG_GET_COMPONENT_BASE()
|
||||||
{
|
{
|
||||||
// Disconnect Events
|
// Disconnect Events
|
||||||
m_historyList->Disconnect( wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler( DIALOG_GET_COMPONENT_BASE::Accept ), NULL, this );
|
m_historyList->Disconnect( wxEVT_COMMAND_LISTBOX_SELECTED, wxCommandEventHandler( DIALOG_GET_COMPONENT_BASE::Accept ), NULL, this );
|
||||||
m_buttonOK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_GET_COMPONENT_BASE::Accept ), NULL, this );
|
|
||||||
m_buttonKW->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_GET_COMPONENT_BASE::Accept ), NULL, this );
|
m_buttonKW->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_GET_COMPONENT_BASE::Accept ), NULL, this );
|
||||||
m_buttonCancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_GET_COMPONENT_BASE::OnCancel ), NULL, this );
|
|
||||||
m_buttonList->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_GET_COMPONENT_BASE::Accept ), NULL, this );
|
m_buttonList->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_GET_COMPONENT_BASE::Accept ), NULL, this );
|
||||||
m_buttonBrowse->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_GET_COMPONENT_BASE::GetExtraSelection ), NULL, this );
|
m_buttonBrowse->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_GET_COMPONENT_BASE::GetExtraSelection ), NULL, this );
|
||||||
|
m_sdbSizerCancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_GET_COMPONENT_BASE::OnCancel ), NULL, this );
|
||||||
|
m_sdbSizerOK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_GET_COMPONENT_BASE::Accept ), NULL, this );
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
|
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
|
||||||
<wxFormBuilder_Project>
|
<wxFormBuilder_Project>
|
||||||
<FileVersion major="1" minor="11" />
|
<FileVersion major="1" minor="13" />
|
||||||
<object class="Project" expanded="1">
|
<object class="Project" expanded="1">
|
||||||
<property name="class_decoration"></property>
|
<property name="class_decoration"></property>
|
||||||
<property name="code_generation">C++</property>
|
<property name="code_generation">C++</property>
|
||||||
|
@ -44,7 +44,7 @@
|
||||||
<property name="minimum_size"></property>
|
<property name="minimum_size"></property>
|
||||||
<property name="name">DIALOG_GET_COMPONENT_BASE</property>
|
<property name="name">DIALOG_GET_COMPONENT_BASE</property>
|
||||||
<property name="pos"></property>
|
<property name="pos"></property>
|
||||||
<property name="size">-1,-1</property>
|
<property name="size">361,285</property>
|
||||||
<property name="style">wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER</property>
|
<property name="style">wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER</property>
|
||||||
<property name="subclass">DIALOG_SHIM; dialog_shim.h</property>
|
<property name="subclass">DIALOG_SHIM; dialog_shim.h</property>
|
||||||
<property name="title"></property>
|
<property name="title"></property>
|
||||||
|
@ -91,6 +91,15 @@
|
||||||
<object class="wxBoxSizer" expanded="1">
|
<object class="wxBoxSizer" expanded="1">
|
||||||
<property name="minimum_size"></property>
|
<property name="minimum_size"></property>
|
||||||
<property name="name">bSizerMain</property>
|
<property name="name">bSizerMain</property>
|
||||||
|
<property name="orient">wxVERTICAL</property>
|
||||||
|
<property name="permission">none</property>
|
||||||
|
<object class="sizeritem" expanded="1">
|
||||||
|
<property name="border">5</property>
|
||||||
|
<property name="flag">wxEXPAND</property>
|
||||||
|
<property name="proportion">1</property>
|
||||||
|
<object class="wxBoxSizer" expanded="1">
|
||||||
|
<property name="minimum_size"></property>
|
||||||
|
<property name="name">bSizerUpper</property>
|
||||||
<property name="orient">wxHORIZONTAL</property>
|
<property name="orient">wxHORIZONTAL</property>
|
||||||
<property name="permission">none</property>
|
<property name="permission">none</property>
|
||||||
<object class="sizeritem" expanded="1">
|
<object class="sizeritem" expanded="1">
|
||||||
|
@ -361,7 +370,7 @@
|
||||||
</object>
|
</object>
|
||||||
<object class="sizeritem" expanded="1">
|
<object class="sizeritem" expanded="1">
|
||||||
<property name="border">5</property>
|
<property name="border">5</property>
|
||||||
<property name="flag">wxALL|wxEXPAND</property>
|
<property name="flag">wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT</property>
|
||||||
<property name="proportion">1</property>
|
<property name="proportion">1</property>
|
||||||
<object class="wxListBox" expanded="1">
|
<object class="wxListBox" expanded="1">
|
||||||
<property name="BottomDockable">1</property>
|
<property name="BottomDockable">1</property>
|
||||||
|
@ -458,94 +467,6 @@
|
||||||
<property name="name">bSizerRight</property>
|
<property name="name">bSizerRight</property>
|
||||||
<property name="orient">wxVERTICAL</property>
|
<property name="orient">wxVERTICAL</property>
|
||||||
<property name="permission">none</property>
|
<property name="permission">none</property>
|
||||||
<object class="sizeritem" expanded="1">
|
|
||||||
<property name="border">5</property>
|
|
||||||
<property name="flag">wxALL|wxEXPAND</property>
|
|
||||||
<property name="proportion">0</property>
|
|
||||||
<object class="wxButton" expanded="1">
|
|
||||||
<property name="BottomDockable">1</property>
|
|
||||||
<property name="LeftDockable">1</property>
|
|
||||||
<property name="RightDockable">1</property>
|
|
||||||
<property name="TopDockable">1</property>
|
|
||||||
<property name="aui_layer"></property>
|
|
||||||
<property name="aui_name"></property>
|
|
||||||
<property name="aui_position"></property>
|
|
||||||
<property name="aui_row"></property>
|
|
||||||
<property name="best_size"></property>
|
|
||||||
<property name="bg"></property>
|
|
||||||
<property name="caption"></property>
|
|
||||||
<property name="caption_visible">1</property>
|
|
||||||
<property name="center_pane">0</property>
|
|
||||||
<property name="close_button">1</property>
|
|
||||||
<property name="context_help"></property>
|
|
||||||
<property name="context_menu">1</property>
|
|
||||||
<property name="default">1</property>
|
|
||||||
<property name="default_pane">0</property>
|
|
||||||
<property name="dock">Dock</property>
|
|
||||||
<property name="dock_fixed">0</property>
|
|
||||||
<property name="docking">Left</property>
|
|
||||||
<property name="enabled">1</property>
|
|
||||||
<property name="fg"></property>
|
|
||||||
<property name="floatable">1</property>
|
|
||||||
<property name="font"></property>
|
|
||||||
<property name="gripper">0</property>
|
|
||||||
<property name="hidden">0</property>
|
|
||||||
<property name="id">wxID_OK</property>
|
|
||||||
<property name="label">OK</property>
|
|
||||||
<property name="max_size"></property>
|
|
||||||
<property name="maximize_button">0</property>
|
|
||||||
<property name="maximum_size"></property>
|
|
||||||
<property name="min_size"></property>
|
|
||||||
<property name="minimize_button">0</property>
|
|
||||||
<property name="minimum_size"></property>
|
|
||||||
<property name="moveable">1</property>
|
|
||||||
<property name="name">m_buttonOK</property>
|
|
||||||
<property name="pane_border">1</property>
|
|
||||||
<property name="pane_position"></property>
|
|
||||||
<property name="pane_size"></property>
|
|
||||||
<property name="permission">protected</property>
|
|
||||||
<property name="pin_button">1</property>
|
|
||||||
<property name="pos"></property>
|
|
||||||
<property name="resize">Resizable</property>
|
|
||||||
<property name="show">1</property>
|
|
||||||
<property name="size"></property>
|
|
||||||
<property name="style"></property>
|
|
||||||
<property name="subclass"></property>
|
|
||||||
<property name="toolbar_pane">0</property>
|
|
||||||
<property name="tooltip"></property>
|
|
||||||
<property name="validator_data_type"></property>
|
|
||||||
<property name="validator_style">wxFILTER_NONE</property>
|
|
||||||
<property name="validator_type">wxDefaultValidator</property>
|
|
||||||
<property name="validator_variable"></property>
|
|
||||||
<property name="window_extra_style"></property>
|
|
||||||
<property name="window_name"></property>
|
|
||||||
<property name="window_style"></property>
|
|
||||||
<event name="OnButtonClick">Accept</event>
|
|
||||||
<event name="OnChar"></event>
|
|
||||||
<event name="OnEnterWindow"></event>
|
|
||||||
<event name="OnEraseBackground"></event>
|
|
||||||
<event name="OnKeyDown"></event>
|
|
||||||
<event name="OnKeyUp"></event>
|
|
||||||
<event name="OnKillFocus"></event>
|
|
||||||
<event name="OnLeaveWindow"></event>
|
|
||||||
<event name="OnLeftDClick"></event>
|
|
||||||
<event name="OnLeftDown"></event>
|
|
||||||
<event name="OnLeftUp"></event>
|
|
||||||
<event name="OnMiddleDClick"></event>
|
|
||||||
<event name="OnMiddleDown"></event>
|
|
||||||
<event name="OnMiddleUp"></event>
|
|
||||||
<event name="OnMotion"></event>
|
|
||||||
<event name="OnMouseEvents"></event>
|
|
||||||
<event name="OnMouseWheel"></event>
|
|
||||||
<event name="OnPaint"></event>
|
|
||||||
<event name="OnRightDClick"></event>
|
|
||||||
<event name="OnRightDown"></event>
|
|
||||||
<event name="OnRightUp"></event>
|
|
||||||
<event name="OnSetFocus"></event>
|
|
||||||
<event name="OnSize"></event>
|
|
||||||
<event name="OnUpdateUI"></event>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="sizeritem" expanded="1">
|
<object class="sizeritem" expanded="1">
|
||||||
<property name="border">5</property>
|
<property name="border">5</property>
|
||||||
<property name="flag">wxALL|wxEXPAND</property>
|
<property name="flag">wxALL|wxEXPAND</property>
|
||||||
|
@ -634,94 +555,6 @@
|
||||||
<event name="OnUpdateUI"></event>
|
<event name="OnUpdateUI"></event>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
<object class="sizeritem" expanded="1">
|
|
||||||
<property name="border">5</property>
|
|
||||||
<property name="flag">wxALL|wxEXPAND</property>
|
|
||||||
<property name="proportion">0</property>
|
|
||||||
<object class="wxButton" expanded="1">
|
|
||||||
<property name="BottomDockable">1</property>
|
|
||||||
<property name="LeftDockable">1</property>
|
|
||||||
<property name="RightDockable">1</property>
|
|
||||||
<property name="TopDockable">1</property>
|
|
||||||
<property name="aui_layer"></property>
|
|
||||||
<property name="aui_name"></property>
|
|
||||||
<property name="aui_position"></property>
|
|
||||||
<property name="aui_row"></property>
|
|
||||||
<property name="best_size"></property>
|
|
||||||
<property name="bg"></property>
|
|
||||||
<property name="caption"></property>
|
|
||||||
<property name="caption_visible">1</property>
|
|
||||||
<property name="center_pane">0</property>
|
|
||||||
<property name="close_button">1</property>
|
|
||||||
<property name="context_help"></property>
|
|
||||||
<property name="context_menu">1</property>
|
|
||||||
<property name="default">0</property>
|
|
||||||
<property name="default_pane">0</property>
|
|
||||||
<property name="dock">Dock</property>
|
|
||||||
<property name="dock_fixed">0</property>
|
|
||||||
<property name="docking">Left</property>
|
|
||||||
<property name="enabled">1</property>
|
|
||||||
<property name="fg"></property>
|
|
||||||
<property name="floatable">1</property>
|
|
||||||
<property name="font"></property>
|
|
||||||
<property name="gripper">0</property>
|
|
||||||
<property name="hidden">0</property>
|
|
||||||
<property name="id">wxID_CANCEL</property>
|
|
||||||
<property name="label">Cancel</property>
|
|
||||||
<property name="max_size"></property>
|
|
||||||
<property name="maximize_button">0</property>
|
|
||||||
<property name="maximum_size"></property>
|
|
||||||
<property name="min_size"></property>
|
|
||||||
<property name="minimize_button">0</property>
|
|
||||||
<property name="minimum_size"></property>
|
|
||||||
<property name="moveable">1</property>
|
|
||||||
<property name="name">m_buttonCancel</property>
|
|
||||||
<property name="pane_border">1</property>
|
|
||||||
<property name="pane_position"></property>
|
|
||||||
<property name="pane_size"></property>
|
|
||||||
<property name="permission">protected</property>
|
|
||||||
<property name="pin_button">1</property>
|
|
||||||
<property name="pos"></property>
|
|
||||||
<property name="resize">Resizable</property>
|
|
||||||
<property name="show">1</property>
|
|
||||||
<property name="size"></property>
|
|
||||||
<property name="style"></property>
|
|
||||||
<property name="subclass"></property>
|
|
||||||
<property name="toolbar_pane">0</property>
|
|
||||||
<property name="tooltip"></property>
|
|
||||||
<property name="validator_data_type"></property>
|
|
||||||
<property name="validator_style">wxFILTER_NONE</property>
|
|
||||||
<property name="validator_type">wxDefaultValidator</property>
|
|
||||||
<property name="validator_variable"></property>
|
|
||||||
<property name="window_extra_style"></property>
|
|
||||||
<property name="window_name"></property>
|
|
||||||
<property name="window_style"></property>
|
|
||||||
<event name="OnButtonClick">OnCancel</event>
|
|
||||||
<event name="OnChar"></event>
|
|
||||||
<event name="OnEnterWindow"></event>
|
|
||||||
<event name="OnEraseBackground"></event>
|
|
||||||
<event name="OnKeyDown"></event>
|
|
||||||
<event name="OnKeyUp"></event>
|
|
||||||
<event name="OnKillFocus"></event>
|
|
||||||
<event name="OnLeaveWindow"></event>
|
|
||||||
<event name="OnLeftDClick"></event>
|
|
||||||
<event name="OnLeftDown"></event>
|
|
||||||
<event name="OnLeftUp"></event>
|
|
||||||
<event name="OnMiddleDClick"></event>
|
|
||||||
<event name="OnMiddleDown"></event>
|
|
||||||
<event name="OnMiddleUp"></event>
|
|
||||||
<event name="OnMotion"></event>
|
|
||||||
<event name="OnMouseEvents"></event>
|
|
||||||
<event name="OnMouseWheel"></event>
|
|
||||||
<event name="OnPaint"></event>
|
|
||||||
<event name="OnRightDClick"></event>
|
|
||||||
<event name="OnRightDown"></event>
|
|
||||||
<event name="OnRightUp"></event>
|
|
||||||
<event name="OnSetFocus"></event>
|
|
||||||
<event name="OnSize"></event>
|
|
||||||
<event name="OnUpdateUI"></event>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="sizeritem" expanded="1">
|
<object class="sizeritem" expanded="1">
|
||||||
<property name="border">5</property>
|
<property name="border">5</property>
|
||||||
<property name="flag">wxALL|wxEXPAND</property>
|
<property name="flag">wxALL|wxEXPAND</property>
|
||||||
|
@ -902,5 +735,114 @@
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
|
<object class="sizeritem" expanded="1">
|
||||||
|
<property name="border">5</property>
|
||||||
|
<property name="flag">wxEXPAND|wxTOP|wxRIGHT</property>
|
||||||
|
<property name="proportion">0</property>
|
||||||
|
<object class="wxStaticLine" expanded="1">
|
||||||
|
<property name="BottomDockable">1</property>
|
||||||
|
<property name="LeftDockable">1</property>
|
||||||
|
<property name="RightDockable">1</property>
|
||||||
|
<property name="TopDockable">1</property>
|
||||||
|
<property name="aui_layer"></property>
|
||||||
|
<property name="aui_name"></property>
|
||||||
|
<property name="aui_position"></property>
|
||||||
|
<property name="aui_row"></property>
|
||||||
|
<property name="best_size"></property>
|
||||||
|
<property name="bg"></property>
|
||||||
|
<property name="caption"></property>
|
||||||
|
<property name="caption_visible">1</property>
|
||||||
|
<property name="center_pane">0</property>
|
||||||
|
<property name="close_button">1</property>
|
||||||
|
<property name="context_help"></property>
|
||||||
|
<property name="context_menu">1</property>
|
||||||
|
<property name="default_pane">0</property>
|
||||||
|
<property name="dock">Dock</property>
|
||||||
|
<property name="dock_fixed">0</property>
|
||||||
|
<property name="docking">Left</property>
|
||||||
|
<property name="enabled">1</property>
|
||||||
|
<property name="fg"></property>
|
||||||
|
<property name="floatable">1</property>
|
||||||
|
<property name="font"></property>
|
||||||
|
<property name="gripper">0</property>
|
||||||
|
<property name="hidden">0</property>
|
||||||
|
<property name="id">wxID_ANY</property>
|
||||||
|
<property name="max_size"></property>
|
||||||
|
<property name="maximize_button">0</property>
|
||||||
|
<property name="maximum_size"></property>
|
||||||
|
<property name="min_size"></property>
|
||||||
|
<property name="minimize_button">0</property>
|
||||||
|
<property name="minimum_size"></property>
|
||||||
|
<property name="moveable">1</property>
|
||||||
|
<property name="name">m_staticline1</property>
|
||||||
|
<property name="pane_border">1</property>
|
||||||
|
<property name="pane_position"></property>
|
||||||
|
<property name="pane_size"></property>
|
||||||
|
<property name="permission">protected</property>
|
||||||
|
<property name="pin_button">1</property>
|
||||||
|
<property name="pos"></property>
|
||||||
|
<property name="resize">Resizable</property>
|
||||||
|
<property name="show">1</property>
|
||||||
|
<property name="size"></property>
|
||||||
|
<property name="style">wxLI_HORIZONTAL</property>
|
||||||
|
<property name="subclass"></property>
|
||||||
|
<property name="toolbar_pane">0</property>
|
||||||
|
<property name="tooltip"></property>
|
||||||
|
<property name="window_extra_style"></property>
|
||||||
|
<property name="window_name"></property>
|
||||||
|
<property name="window_style"></property>
|
||||||
|
<event name="OnChar"></event>
|
||||||
|
<event name="OnEnterWindow"></event>
|
||||||
|
<event name="OnEraseBackground"></event>
|
||||||
|
<event name="OnKeyDown"></event>
|
||||||
|
<event name="OnKeyUp"></event>
|
||||||
|
<event name="OnKillFocus"></event>
|
||||||
|
<event name="OnLeaveWindow"></event>
|
||||||
|
<event name="OnLeftDClick"></event>
|
||||||
|
<event name="OnLeftDown"></event>
|
||||||
|
<event name="OnLeftUp"></event>
|
||||||
|
<event name="OnMiddleDClick"></event>
|
||||||
|
<event name="OnMiddleDown"></event>
|
||||||
|
<event name="OnMiddleUp"></event>
|
||||||
|
<event name="OnMotion"></event>
|
||||||
|
<event name="OnMouseEvents"></event>
|
||||||
|
<event name="OnMouseWheel"></event>
|
||||||
|
<event name="OnPaint"></event>
|
||||||
|
<event name="OnRightDClick"></event>
|
||||||
|
<event name="OnRightDown"></event>
|
||||||
|
<event name="OnRightUp"></event>
|
||||||
|
<event name="OnSetFocus"></event>
|
||||||
|
<event name="OnSize"></event>
|
||||||
|
<event name="OnUpdateUI"></event>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="sizeritem" expanded="1">
|
||||||
|
<property name="border">5</property>
|
||||||
|
<property name="flag">wxEXPAND|wxALL</property>
|
||||||
|
<property name="proportion">0</property>
|
||||||
|
<object class="wxStdDialogButtonSizer" expanded="1">
|
||||||
|
<property name="Apply">0</property>
|
||||||
|
<property name="Cancel">1</property>
|
||||||
|
<property name="ContextHelp">0</property>
|
||||||
|
<property name="Help">0</property>
|
||||||
|
<property name="No">0</property>
|
||||||
|
<property name="OK">1</property>
|
||||||
|
<property name="Save">0</property>
|
||||||
|
<property name="Yes">0</property>
|
||||||
|
<property name="minimum_size"></property>
|
||||||
|
<property name="name">m_sdbSizer</property>
|
||||||
|
<property name="permission">protected</property>
|
||||||
|
<event name="OnApplyButtonClick"></event>
|
||||||
|
<event name="OnCancelButtonClick">OnCancel</event>
|
||||||
|
<event name="OnContextHelpButtonClick"></event>
|
||||||
|
<event name="OnHelpButtonClick"></event>
|
||||||
|
<event name="OnNoButtonClick"></event>
|
||||||
|
<event name="OnOKButtonClick">Accept</event>
|
||||||
|
<event name="OnSaveButtonClick"></event>
|
||||||
|
<event name="OnYesButtonClick"></event>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
</object>
|
</object>
|
||||||
</wxFormBuilder_Project>
|
</wxFormBuilder_Project>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
///////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////
|
||||||
// C++ code generated with wxFormBuilder (version Nov 5 2013)
|
// C++ code generated with wxFormBuilder (version Jun 17 2015)
|
||||||
// http://www.wxformbuilder.org/
|
// http://www.wxformbuilder.org/
|
||||||
//
|
//
|
||||||
// PLEASE DO "NOT" EDIT THIS FILE!
|
// PLEASE DO "NOT" EDIT THIS FILE!
|
||||||
|
@ -24,6 +24,7 @@ class DIALOG_SHIM;
|
||||||
#include <wx/listbox.h>
|
#include <wx/listbox.h>
|
||||||
#include <wx/sizer.h>
|
#include <wx/sizer.h>
|
||||||
#include <wx/button.h>
|
#include <wx/button.h>
|
||||||
|
#include <wx/statline.h>
|
||||||
#include <wx/dialog.h>
|
#include <wx/dialog.h>
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
@ -45,21 +46,23 @@ class DIALOG_GET_COMPONENT_BASE : public DIALOG_SHIM
|
||||||
wxTextCtrl* m_textCmpNameCtrl;
|
wxTextCtrl* m_textCmpNameCtrl;
|
||||||
wxStaticText* m_staticTextHistory;
|
wxStaticText* m_staticTextHistory;
|
||||||
wxListBox* m_historyList;
|
wxListBox* m_historyList;
|
||||||
wxButton* m_buttonOK;
|
|
||||||
wxButton* m_buttonKW;
|
wxButton* m_buttonKW;
|
||||||
wxButton* m_buttonCancel;
|
|
||||||
wxButton* m_buttonList;
|
wxButton* m_buttonList;
|
||||||
wxButton* m_buttonBrowse;
|
wxButton* m_buttonBrowse;
|
||||||
|
wxStaticLine* m_staticline1;
|
||||||
|
wxStdDialogButtonSizer* m_sdbSizer;
|
||||||
|
wxButton* m_sdbSizerOK;
|
||||||
|
wxButton* m_sdbSizerCancel;
|
||||||
|
|
||||||
// Virtual event handlers, overide them in your derived class
|
// Virtual event handlers, overide them in your derived class
|
||||||
virtual void Accept( wxCommandEvent& event ) { event.Skip(); }
|
virtual void Accept( wxCommandEvent& event ) { event.Skip(); }
|
||||||
virtual void OnCancel( wxCommandEvent& event ) { event.Skip(); }
|
|
||||||
virtual void GetExtraSelection( wxCommandEvent& event ) { event.Skip(); }
|
virtual void GetExtraSelection( wxCommandEvent& event ) { event.Skip(); }
|
||||||
|
virtual void OnCancel( wxCommandEvent& event ) { event.Skip(); }
|
||||||
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
DIALOG_GET_COMPONENT_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxEmptyString, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
|
DIALOG_GET_COMPONENT_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxEmptyString, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 361,285 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
|
||||||
~DIALOG_GET_COMPONENT_BASE();
|
~DIALOG_GET_COMPONENT_BASE();
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
|
@ -149,8 +149,10 @@ DISPLAY_FOOTPRINTS_FRAME::~DISPLAY_FOOTPRINTS_FRAME()
|
||||||
|
|
||||||
void DISPLAY_FOOTPRINTS_FRAME::OnCloseWindow( wxCloseEvent& event )
|
void DISPLAY_FOOTPRINTS_FRAME::OnCloseWindow( wxCloseEvent& event )
|
||||||
{
|
{
|
||||||
if( m_Draw3DFrame )
|
EDA_3D_FRAME* draw3DFrame = Get3DViewerFrame();
|
||||||
m_Draw3DFrame->Close( true );
|
|
||||||
|
if( draw3DFrame )
|
||||||
|
draw3DFrame->Close( true );
|
||||||
|
|
||||||
Destroy();
|
Destroy();
|
||||||
}
|
}
|
||||||
|
@ -382,25 +384,27 @@ bool DISPLAY_FOOTPRINTS_FRAME::GeneralControl( wxDC* aDC, const wxPoint& aPositi
|
||||||
|
|
||||||
void DISPLAY_FOOTPRINTS_FRAME::Show3D_Frame( wxCommandEvent& event )
|
void DISPLAY_FOOTPRINTS_FRAME::Show3D_Frame( wxCommandEvent& event )
|
||||||
{
|
{
|
||||||
if( m_Draw3DFrame )
|
EDA_3D_FRAME* draw3DFrame = Get3DViewerFrame();
|
||||||
|
|
||||||
|
if( draw3DFrame )
|
||||||
{
|
{
|
||||||
// Raising the window does not show the window on Windows if iconized.
|
// Raising the window does not show the window on Windows if iconized.
|
||||||
// This should work on any platform.
|
// This should work on any platform.
|
||||||
if( m_Draw3DFrame->IsIconized() )
|
if( draw3DFrame->IsIconized() )
|
||||||
m_Draw3DFrame->Iconize( false );
|
draw3DFrame->Iconize( false );
|
||||||
|
|
||||||
m_Draw3DFrame->Raise();
|
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.
|
||||||
if( wxWindow::FindFocus() != m_Draw3DFrame )
|
if( wxWindow::FindFocus() != draw3DFrame )
|
||||||
m_Draw3DFrame->SetFocus();
|
draw3DFrame->SetFocus();
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_Draw3DFrame = new EDA_3D_FRAME( &Kiway(), this, _( "3D Viewer" ) );
|
draw3DFrame = new EDA_3D_FRAME( &Kiway(), this, _( "3D Viewer" ) );
|
||||||
m_Draw3DFrame->Raise(); // Needed with some Window Managers
|
draw3DFrame->Raise(); // Needed with some Window Managers
|
||||||
m_Draw3DFrame->Show( true );
|
draw3DFrame->Show( true );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -489,7 +493,8 @@ void DISPLAY_FOOTPRINTS_FRAME::InitDisplay()
|
||||||
msg.Printf( _( "Footprint: %s" ), GetChars( footprintName ) );
|
msg.Printf( _( "Footprint: %s" ), GetChars( footprintName ) );
|
||||||
|
|
||||||
SetTitle( msg );
|
SetTitle( msg );
|
||||||
const FOOTPRINT_INFO* module_info = parentframe->m_footprints.GetModuleInfo( footprintName );
|
const FOOTPRINT_INFO* module_info =
|
||||||
|
parentframe->m_footprints.GetModuleInfo( footprintName );
|
||||||
|
|
||||||
const wxChar* libname;
|
const wxChar* libname;
|
||||||
|
|
||||||
|
@ -530,8 +535,10 @@ void DISPLAY_FOOTPRINTS_FRAME::InitDisplay()
|
||||||
|
|
||||||
GetCanvas()->Refresh();
|
GetCanvas()->Refresh();
|
||||||
|
|
||||||
if( m_Draw3DFrame )
|
EDA_3D_FRAME* draw3DFrame = Get3DViewerFrame();
|
||||||
m_Draw3DFrame->NewDisplay();
|
|
||||||
|
if( draw3DFrame )
|
||||||
|
draw3DFrame->NewDisplay();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -910,7 +910,8 @@ COMPONENT* CVPCB_MAINFRAME::GetSelectedComponent()
|
||||||
DISPLAY_FOOTPRINTS_FRAME* CVPCB_MAINFRAME::GetFpViewerFrame()
|
DISPLAY_FOOTPRINTS_FRAME* CVPCB_MAINFRAME::GetFpViewerFrame()
|
||||||
{
|
{
|
||||||
// returns the Footprint Viewer frame, if exists, or NULL
|
// returns the Footprint Viewer frame, if exists, or NULL
|
||||||
return (DISPLAY_FOOTPRINTS_FRAME*) wxWindow::FindWindowByName( FOOTPRINTVIEWER_FRAME_NAME );
|
return dynamic_cast<DISPLAY_FOOTPRINTS_FRAME*>
|
||||||
|
( wxWindow::FindWindowByName( FOOTPRINTVIEWER_FRAME_NAME ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -76,9 +76,6 @@ public:
|
||||||
int m_FastGrid1; // 1st fast grid setting (index in EDA_DRAW_FRAME::m_gridSelectBox)
|
int m_FastGrid1; // 1st fast grid setting (index in EDA_DRAW_FRAME::m_gridSelectBox)
|
||||||
int m_FastGrid2; // 2nd fast grid setting (index in EDA_DRAW_FRAME::m_gridSelectBox)
|
int m_FastGrid2; // 2nd fast grid setting (index in EDA_DRAW_FRAME::m_gridSelectBox)
|
||||||
|
|
||||||
EDA_3D_FRAME* m_Draw3DFrame;
|
|
||||||
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
BOARD* m_Pcb;
|
BOARD* m_Pcb;
|
||||||
GENERAL_COLLECTOR* m_Collector;
|
GENERAL_COLLECTOR* m_Collector;
|
||||||
|
@ -111,6 +108,11 @@ public:
|
||||||
|
|
||||||
~PCB_BASE_FRAME();
|
~PCB_BASE_FRAME();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return a reference to the 3D viewer frame, when exists, or NULL
|
||||||
|
*/
|
||||||
|
EDA_3D_FRAME* Get3DViewerFrame();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function LoadFootprint
|
* Function LoadFootprint
|
||||||
* attempts to load \a aFootprintId from the footprint library table.
|
* attempts to load \a aFootprintId from the footprint library table.
|
||||||
|
|
|
@ -39,6 +39,8 @@
|
||||||
#include <base_units.h>
|
#include <base_units.h>
|
||||||
#include <msgpanel.h>
|
#include <msgpanel.h>
|
||||||
|
|
||||||
|
#include <3d_viewer.h>
|
||||||
|
|
||||||
#include <pcbnew.h>
|
#include <pcbnew.h>
|
||||||
#include <fp_lib_table.h>
|
#include <fp_lib_table.h>
|
||||||
#include <pcbnew_id.h>
|
#include <pcbnew_id.h>
|
||||||
|
@ -98,7 +100,6 @@ PCB_BASE_FRAME::PCB_BASE_FRAME( KIWAY* aKiway, wxWindow* aParent, FRAME_T aFrame
|
||||||
EDA_DRAW_FRAME( aKiway, aParent, aFrameType, aTitle, aPos, aSize, aStyle, aFrameName )
|
EDA_DRAW_FRAME( aKiway, aParent, aFrameType, aTitle, aPos, aSize, aStyle, aFrameName )
|
||||||
{
|
{
|
||||||
m_Pcb = NULL;
|
m_Pcb = NULL;
|
||||||
m_Draw3DFrame = NULL; // Display Window in 3D mode (OpenGL)
|
|
||||||
|
|
||||||
m_UserGridSize = wxRealPoint( 100.0, 100.0 );
|
m_UserGridSize = wxRealPoint( 100.0, 100.0 );
|
||||||
m_UserGridUnit = INCHES;
|
m_UserGridUnit = INCHES;
|
||||||
|
@ -123,6 +124,14 @@ PCB_BASE_FRAME::~PCB_BASE_FRAME()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
EDA_3D_FRAME* PCB_BASE_FRAME::Get3DViewerFrame()
|
||||||
|
{
|
||||||
|
// return the 3D viewer frame, when exists, or NULL
|
||||||
|
return dynamic_cast<EDA_3D_FRAME*>
|
||||||
|
( wxWindow::FindWindowByName( VIEWER3D_FRAMENAME ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
FP_LIB_TABLE* PROJECT::PcbFootprintLibs()
|
FP_LIB_TABLE* PROJECT::PcbFootprintLibs()
|
||||||
{
|
{
|
||||||
// This is a lazy loading function, it loads the project specific table when
|
// This is a lazy loading function, it loads the project specific table when
|
||||||
|
|
|
@ -0,0 +1,68 @@
|
||||||
|
/*
|
||||||
|
* This program source code file is part of KiCad, a free EDA CAD application.
|
||||||
|
*
|
||||||
|
* Copyright (C) 2015 Jean-Pierre Charras, jean-pierre.charras@ujf-grenoble.fr
|
||||||
|
* Copyright (C) 1992-2015 KiCad Developers, see AUTHORS.txt for contributors.
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU General Public License
|
||||||
|
* as published by the Free Software Foundation; either version 2
|
||||||
|
* of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program; if not, you may find one here:
|
||||||
|
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
||||||
|
* or you may search the http://www.gnu.org website for the version 2 license,
|
||||||
|
* or you may write to the Free Software Foundation, Inc.,
|
||||||
|
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @file dialog_get_footprint_by_name.h
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef DIALOG_GET_FOOTPRINT_BY_NAME_H
|
||||||
|
#define DIALOG_GET_FOOTPRINT_BY_NAME_H
|
||||||
|
|
||||||
|
#include <dialog_get_footprint_by_name_base.h>
|
||||||
|
|
||||||
|
/**
|
||||||
|
* DIALOG_GET_FOOTPRINT_BY_NAME is a helper dialog to select a footprint by its reference
|
||||||
|
* One can enter any reference or select it in the list of fp references
|
||||||
|
* Get a footprint ref from user and return a pointer to the corresponding footprint
|
||||||
|
*/
|
||||||
|
class DIALOG_GET_FOOTPRINT_BY_NAME: public DIALOG_GET_FOOTPRINT_BY_NAME_BASE
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
DIALOG_GET_FOOTPRINT_BY_NAME( PCB_BASE_FRAME* aParent, wxArrayString& aFpList ) :
|
||||||
|
DIALOG_GET_FOOTPRINT_BY_NAME_BASE( aParent )
|
||||||
|
{
|
||||||
|
m_sdbSizerOK->SetDefault();
|
||||||
|
m_choiceFpList->Append( aFpList );
|
||||||
|
|
||||||
|
// Dialog should not shrink beyond it's minimal size.
|
||||||
|
GetSizer()->SetSizeHints( this );
|
||||||
|
}
|
||||||
|
|
||||||
|
// returns the selected text (fp reference)
|
||||||
|
const wxString GetValue()
|
||||||
|
{
|
||||||
|
return m_SearchTextCtrl->GetValue();
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
// Called when selecting an item from the item list
|
||||||
|
void OnSelectFootprint( wxCommandEvent& aEvent )
|
||||||
|
{
|
||||||
|
if( m_choiceFpList->GetSelection() >= 0 )
|
||||||
|
m_SearchTextCtrl->SetValue(
|
||||||
|
m_choiceFpList->GetString( m_choiceFpList->GetSelection() ).BeforeFirst( ' ' ) );
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // #ifndef DIALOG_GET_FOOTPRINT_BY_NAME_H
|
|
@ -597,8 +597,10 @@ bool PCB_EDIT_FRAME::OpenProjectFiles( const std::vector<wxString>& aFileSet, in
|
||||||
SetMsgPanel( GetBoard() );
|
SetMsgPanel( GetBoard() );
|
||||||
|
|
||||||
// Refresh the 3D view, if any
|
// Refresh the 3D view, if any
|
||||||
if( m_Draw3DFrame )
|
EDA_3D_FRAME* draw3DFrame = Get3DViewerFrame();
|
||||||
m_Draw3DFrame->NewDisplay();
|
|
||||||
|
if( draw3DFrame )
|
||||||
|
draw3DFrame->NewDisplay();
|
||||||
|
|
||||||
#if 0 && defined(DEBUG)
|
#if 0 && defined(DEBUG)
|
||||||
// Output the board object tree to stdout, but please run from command prompt:
|
// Output the board object tree to stdout, but please run from command prompt:
|
||||||
|
|
|
@ -210,8 +210,10 @@ FOOTPRINT_WIZARD_FRAME::FOOTPRINT_WIZARD_FRAME( KIWAY* aKiway,
|
||||||
|
|
||||||
FOOTPRINT_WIZARD_FRAME::~FOOTPRINT_WIZARD_FRAME()
|
FOOTPRINT_WIZARD_FRAME::~FOOTPRINT_WIZARD_FRAME()
|
||||||
{
|
{
|
||||||
if( m_Draw3DFrame )
|
EDA_3D_FRAME* draw3DFrame = Get3DViewerFrame();
|
||||||
m_Draw3DFrame->Destroy();
|
|
||||||
|
if( draw3DFrame )
|
||||||
|
draw3DFrame->Destroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -513,26 +515,28 @@ bool FOOTPRINT_WIZARD_FRAME::GeneralControl( wxDC* aDC, const wxPoint& aPosition
|
||||||
|
|
||||||
void FOOTPRINT_WIZARD_FRAME::Show3D_Frame( wxCommandEvent& event )
|
void FOOTPRINT_WIZARD_FRAME::Show3D_Frame( wxCommandEvent& event )
|
||||||
{
|
{
|
||||||
if( m_Draw3DFrame )
|
EDA_3D_FRAME* draw3DFrame = Get3DViewerFrame();
|
||||||
|
|
||||||
|
if( draw3DFrame )
|
||||||
{
|
{
|
||||||
// Raising the window does not show the window on Windows if iconized.
|
// Raising the window does not show the window on Windows if iconized.
|
||||||
// This should work on any platform.
|
// This should work on any platform.
|
||||||
if( m_Draw3DFrame->IsIconized() )
|
if( draw3DFrame->IsIconized() )
|
||||||
m_Draw3DFrame->Iconize( false );
|
draw3DFrame->Iconize( false );
|
||||||
|
|
||||||
m_Draw3DFrame->Raise();
|
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.
|
||||||
if( wxWindow::FindFocus() != m_Draw3DFrame )
|
if( wxWindow::FindFocus() != draw3DFrame )
|
||||||
m_Draw3DFrame->SetFocus();
|
draw3DFrame->SetFocus();
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_Draw3DFrame = new EDA_3D_FRAME( &Kiway(), this, wxEmptyString );
|
draw3DFrame = new EDA_3D_FRAME( &Kiway(), this, wxEmptyString );
|
||||||
Update3D_Frame( false );
|
Update3D_Frame( false );
|
||||||
m_Draw3DFrame->Raise(); // Needed with some Window Managers
|
draw3DFrame->Raise(); // Needed with some Window Managers
|
||||||
m_Draw3DFrame->Show( true );
|
draw3DFrame->Show( true );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -543,20 +547,22 @@ void FOOTPRINT_WIZARD_FRAME::Show3D_Frame( wxCommandEvent& event )
|
||||||
*/
|
*/
|
||||||
void FOOTPRINT_WIZARD_FRAME::Update3D_Frame( bool aForceReloadFootprint )
|
void FOOTPRINT_WIZARD_FRAME::Update3D_Frame( bool aForceReloadFootprint )
|
||||||
{
|
{
|
||||||
if( m_Draw3DFrame == NULL )
|
EDA_3D_FRAME* draw3DFrame = Get3DViewerFrame();
|
||||||
|
|
||||||
|
if( draw3DFrame == NULL )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
wxString frm3Dtitle;
|
wxString frm3Dtitle;
|
||||||
frm3Dtitle.Printf( _( "ModView: 3D Viewer [%s]" ), GetChars( m_wizardName ) );
|
frm3Dtitle.Printf( _( "ModView: 3D Viewer [%s]" ), GetChars( m_wizardName ) );
|
||||||
m_Draw3DFrame->SetTitle( frm3Dtitle );
|
draw3DFrame->SetTitle( frm3Dtitle );
|
||||||
|
|
||||||
if( aForceReloadFootprint )
|
if( aForceReloadFootprint )
|
||||||
{
|
{
|
||||||
m_Draw3DFrame->ReloadRequest();
|
draw3DFrame->ReloadRequest();
|
||||||
|
|
||||||
// Force 3D screen refresh immediately
|
// Force 3D screen refresh immediately
|
||||||
if( GetBoard()->m_Modules )
|
if( GetBoard()->m_Modules )
|
||||||
m_Draw3DFrame->NewDisplay();
|
draw3DFrame->NewDisplay();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -192,8 +192,10 @@ void FOOTPRINT_EDIT_FRAME::LoadModuleFromBoard( wxCommandEvent& event )
|
||||||
GetScreen()->ClearUndoRedoList();
|
GetScreen()->ClearUndoRedoList();
|
||||||
GetScreen()->ClrModify();
|
GetScreen()->ClrModify();
|
||||||
|
|
||||||
if( m_Draw3DFrame )
|
EDA_3D_FRAME* draw3DFrame = Get3DViewerFrame();
|
||||||
m_Draw3DFrame->NewDisplay();
|
|
||||||
|
if( draw3DFrame )
|
||||||
|
draw3DFrame->NewDisplay();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -370,8 +372,10 @@ void FOOTPRINT_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event )
|
||||||
updateView();
|
updateView();
|
||||||
m_canvas->Refresh();
|
m_canvas->Refresh();
|
||||||
|
|
||||||
if( m_Draw3DFrame )
|
EDA_3D_FRAME* draw3DFrame = Get3DViewerFrame();
|
||||||
m_Draw3DFrame->NewDisplay();
|
|
||||||
|
if( draw3DFrame )
|
||||||
|
draw3DFrame->NewDisplay();
|
||||||
|
|
||||||
GetScreen()->ClrModify();
|
GetScreen()->ClrModify();
|
||||||
}
|
}
|
||||||
|
@ -513,9 +517,12 @@ void FOOTPRINT_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event )
|
||||||
GetScreen()->ClrModify();
|
GetScreen()->ClrModify();
|
||||||
Zoom_Automatique( false );
|
Zoom_Automatique( false );
|
||||||
m_canvas->Refresh();
|
m_canvas->Refresh();
|
||||||
|
{
|
||||||
|
EDA_3D_FRAME* draw3DFrame = Get3DViewerFrame();
|
||||||
|
|
||||||
if( m_Draw3DFrame )
|
if( draw3DFrame )
|
||||||
m_Draw3DFrame->NewDisplay();
|
draw3DFrame->NewDisplay();
|
||||||
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -572,8 +579,12 @@ void FOOTPRINT_EDIT_FRAME::Process_Special_Functions( wxCommandEvent& event )
|
||||||
|
|
||||||
Zoom_Automatique( false );
|
Zoom_Automatique( false );
|
||||||
|
|
||||||
if( m_Draw3DFrame )
|
{
|
||||||
m_Draw3DFrame->NewDisplay();
|
EDA_3D_FRAME* draw3DFrame = Get3DViewerFrame();
|
||||||
|
|
||||||
|
if( draw3DFrame )
|
||||||
|
draw3DFrame->NewDisplay();
|
||||||
|
}
|
||||||
|
|
||||||
GetScreen()->ClrModify();
|
GetScreen()->ClrModify();
|
||||||
|
|
||||||
|
|
|
@ -672,25 +672,27 @@ void FOOTPRINT_EDIT_FRAME::OnUpdateSelectCurrentLib( wxUpdateUIEvent& aEvent )
|
||||||
|
|
||||||
void FOOTPRINT_EDIT_FRAME::Show3D_Frame( wxCommandEvent& event )
|
void FOOTPRINT_EDIT_FRAME::Show3D_Frame( wxCommandEvent& event )
|
||||||
{
|
{
|
||||||
if( m_Draw3DFrame )
|
EDA_3D_FRAME* draw3DFrame = Get3DViewerFrame();
|
||||||
|
|
||||||
|
if( draw3DFrame )
|
||||||
{
|
{
|
||||||
// Raising the window does not show the window on Windows if iconized.
|
// Raising the window does not show the window on Windows if iconized.
|
||||||
// This should work on any platform.
|
// This should work on any platform.
|
||||||
if( m_Draw3DFrame->IsIconized() )
|
if( draw3DFrame->IsIconized() )
|
||||||
m_Draw3DFrame->Iconize( false );
|
draw3DFrame->Iconize( false );
|
||||||
|
|
||||||
m_Draw3DFrame->Raise();
|
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.
|
||||||
if( wxWindow::FindFocus() != m_Draw3DFrame )
|
if( wxWindow::FindFocus() != draw3DFrame )
|
||||||
m_Draw3DFrame->SetFocus();
|
draw3DFrame->SetFocus();
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_Draw3DFrame = new EDA_3D_FRAME( &Kiway(), this, _( "3D Viewer" ) );
|
draw3DFrame = new EDA_3D_FRAME( &Kiway(), this, _( "3D Viewer" ) );
|
||||||
m_Draw3DFrame->Raise(); // Needed with some Window Managers
|
draw3DFrame->Raise(); // Needed with some Window Managers
|
||||||
m_Draw3DFrame->Show( true );
|
draw3DFrame->Show( true );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -735,9 +737,10 @@ void FOOTPRINT_EDIT_FRAME::OnModify()
|
||||||
{
|
{
|
||||||
PCB_BASE_FRAME::OnModify();
|
PCB_BASE_FRAME::OnModify();
|
||||||
|
|
||||||
if( m_Draw3DFrame )
|
EDA_3D_FRAME* draw3DFrame = Get3DViewerFrame();
|
||||||
m_Draw3DFrame->ReloadRequest();
|
|
||||||
}
|
if( draw3DFrame )
|
||||||
|
draw3DFrame->ReloadRequest();}
|
||||||
|
|
||||||
|
|
||||||
void FOOTPRINT_EDIT_FRAME::updateTitle()
|
void FOOTPRINT_EDIT_FRAME::updateTitle()
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
/*
|
/*
|
||||||
* This program source code file is part of KiCad, a free EDA CAD application.
|
* This program source code file is part of KiCad, a free EDA CAD application.
|
||||||
*
|
*
|
||||||
* Copyright (C) 2012 Jean-Pierre Charras, jean-pierre.charras@ujf-grenoble.fr
|
* Copyright (C) 2015 Jean-Pierre Charras, jean-pierre.charras@ujf-grenoble.fr
|
||||||
* Copyright (C) 2012 SoftPLC Corporation, Dick Hollenbeck <dick@softplc.com>
|
* Copyright (C) 2012 SoftPLC Corporation, Dick Hollenbeck <dick@softplc.com>
|
||||||
* Copyright (C) 2012 Wayne Stambaugh <stambaughw@verizon.net>
|
* Copyright (C) 2012 Wayne Stambaugh <stambaughw@verizon.net>
|
||||||
* Copyright (C) 1992-2012 KiCad Developers, see AUTHORS.txt for contributors.
|
* Copyright (C) 1992-2015 KiCad Developers, see AUTHORS.txt for contributors.
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or
|
* This program is free software; you can redistribute it and/or
|
||||||
* modify it under the terms of the GNU General Public License
|
* modify it under the terms of the GNU General Public License
|
||||||
|
@ -41,7 +41,7 @@
|
||||||
|
|
||||||
#include <pcbnew.h>
|
#include <pcbnew.h>
|
||||||
#include <drag.h>
|
#include <drag.h>
|
||||||
|
#include <dialog_get_footprint_by_name.h>
|
||||||
|
|
||||||
static void MoveFootprint( EDA_DRAW_PANEL* aPanel, wxDC* aDC,
|
static void MoveFootprint( EDA_DRAW_PANEL* aPanel, wxDC* aDC,
|
||||||
const wxPoint& aPosition, bool aErase );
|
const wxPoint& aPosition, bool aErase );
|
||||||
|
@ -56,42 +56,6 @@ static PICKED_ITEMS_LIST s_PickedList; /* a picked list to
|
||||||
* and dragged tracks
|
* and dragged tracks
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
|
||||||
* Get a footprint ref from user and return a pointer to the corresponding footprint
|
|
||||||
*
|
|
||||||
* DIALOG_GET_FOOTPRINT_BY_NAME is a helper dialog to select afootprint by its ref
|
|
||||||
*/
|
|
||||||
#include <dialog_get_footprint_by_name_base.h>
|
|
||||||
|
|
||||||
class DIALOG_GET_FOOTPRINT_BY_NAME: public DIALOG_GET_FOOTPRINT_BY_NAME_BASE
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
DIALOG_GET_FOOTPRINT_BY_NAME( PCB_BASE_FRAME* aParent, wxArrayString& aFpList ) :
|
|
||||||
DIALOG_GET_FOOTPRINT_BY_NAME_BASE( aParent )
|
|
||||||
{
|
|
||||||
m_sdbSizerOK->SetDefault();
|
|
||||||
m_choiceFpList->Append( aFpList );
|
|
||||||
|
|
||||||
// Dialog should not shrink beyond it's minimal size.
|
|
||||||
GetSizer()->SetSizeHints( this );
|
|
||||||
}
|
|
||||||
|
|
||||||
// returns the selected text (fp reference)
|
|
||||||
const wxString GetValue()
|
|
||||||
{
|
|
||||||
return m_SearchTextCtrl->GetValue();
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
|
||||||
// Called when selecting an item from the item list
|
|
||||||
void OnSelectFootprint( wxCommandEvent& aEvent )
|
|
||||||
{
|
|
||||||
if( m_choiceFpList->GetSelection() >= 0 )
|
|
||||||
m_SearchTextCtrl->SetValue(
|
|
||||||
m_choiceFpList->GetString( m_choiceFpList->GetSelection() ).BeforeFirst( ' ' ) );
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
MODULE* PCB_BASE_FRAME::GetFootprintFromBoardByReference()
|
MODULE* PCB_BASE_FRAME::GetFootprintFromBoardByReference()
|
||||||
{
|
{
|
||||||
|
@ -99,6 +63,7 @@ MODULE* PCB_BASE_FRAME::GetFootprintFromBoardByReference()
|
||||||
MODULE* module = NULL;
|
MODULE* module = NULL;
|
||||||
wxArrayString fplist;
|
wxArrayString fplist;
|
||||||
|
|
||||||
|
// Build list of available fp references, to display them in dialog
|
||||||
for( MODULE* fp = GetBoard()->m_Modules; fp; fp = fp->Next() )
|
for( MODULE* fp = GetBoard()->m_Modules; fp; fp = fp->Next() )
|
||||||
fplist.Add( fp->GetReference() + wxT(" ( ") + fp->GetValue() + wxT(" )") );
|
fplist.Add( fp->GetReference() + wxT(" ( ") + fp->GetValue() + wxT(" )") );
|
||||||
|
|
||||||
|
@ -106,8 +71,8 @@ MODULE* PCB_BASE_FRAME::GetFootprintFromBoardByReference()
|
||||||
|
|
||||||
DIALOG_GET_FOOTPRINT_BY_NAME dlg( this, fplist );
|
DIALOG_GET_FOOTPRINT_BY_NAME dlg( this, fplist );
|
||||||
|
|
||||||
if( dlg.ShowModal() != wxID_OK )
|
if( dlg.ShowModal() != wxID_OK ) //Aborted by user
|
||||||
return NULL; //Aborted by user
|
return NULL;
|
||||||
|
|
||||||
moduleName = dlg.GetValue();
|
moduleName = dlg.GetValue();
|
||||||
moduleName.Trim( true );
|
moduleName.Trim( true );
|
||||||
|
|
|
@ -283,8 +283,10 @@ FOOTPRINT_VIEWER_FRAME::FOOTPRINT_VIEWER_FRAME( KIWAY* aKiway, wxWindow* aParent
|
||||||
|
|
||||||
FOOTPRINT_VIEWER_FRAME::~FOOTPRINT_VIEWER_FRAME()
|
FOOTPRINT_VIEWER_FRAME::~FOOTPRINT_VIEWER_FRAME()
|
||||||
{
|
{
|
||||||
if( m_Draw3DFrame )
|
EDA_3D_FRAME* draw3DFrame = Get3DViewerFrame();
|
||||||
m_Draw3DFrame->Destroy();
|
|
||||||
|
if( draw3DFrame )
|
||||||
|
draw3DFrame->Destroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -613,47 +615,51 @@ bool FOOTPRINT_VIEWER_FRAME::GeneralControl( wxDC* aDC, const wxPoint& aPosition
|
||||||
|
|
||||||
void FOOTPRINT_VIEWER_FRAME::Show3D_Frame( wxCommandEvent& event )
|
void FOOTPRINT_VIEWER_FRAME::Show3D_Frame( wxCommandEvent& event )
|
||||||
{
|
{
|
||||||
if( m_Draw3DFrame )
|
EDA_3D_FRAME* draw3DFrame = Get3DViewerFrame();
|
||||||
|
|
||||||
|
if( draw3DFrame )
|
||||||
{
|
{
|
||||||
// Raising the window does not show the window on Windows if iconized.
|
// Raising the window does not show the window on Windows if iconized.
|
||||||
// This should work on any platform.
|
// This should work on any platform.
|
||||||
if( m_Draw3DFrame->IsIconized() )
|
if( draw3DFrame->IsIconized() )
|
||||||
m_Draw3DFrame->Iconize( false );
|
draw3DFrame->Iconize( false );
|
||||||
|
|
||||||
m_Draw3DFrame->Raise();
|
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.
|
||||||
if( wxWindow::FindFocus() != m_Draw3DFrame )
|
if( wxWindow::FindFocus() != draw3DFrame )
|
||||||
m_Draw3DFrame->SetFocus();
|
draw3DFrame->SetFocus();
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_Draw3DFrame = new EDA_3D_FRAME( &Kiway(), this, wxEmptyString );
|
draw3DFrame = new EDA_3D_FRAME( &Kiway(), this, wxEmptyString );
|
||||||
Update3D_Frame( false );
|
Update3D_Frame( false );
|
||||||
m_Draw3DFrame->Raise(); // Needed with some Window Managers
|
draw3DFrame->Raise(); // Needed with some Window Managers
|
||||||
m_Draw3DFrame->Show( true );
|
draw3DFrame->Show( true );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void FOOTPRINT_VIEWER_FRAME::Update3D_Frame( bool aForceReloadFootprint )
|
void FOOTPRINT_VIEWER_FRAME::Update3D_Frame( bool aForceReloadFootprint )
|
||||||
{
|
{
|
||||||
if( m_Draw3DFrame == NULL )
|
EDA_3D_FRAME* draw3DFrame = Get3DViewerFrame();
|
||||||
|
|
||||||
|
if( draw3DFrame == NULL )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
wxString frm3Dtitle = wxString::Format(
|
wxString frm3Dtitle = wxString::Format(
|
||||||
_( "ModView: 3D Viewer [%s]" ),
|
_( "ModView: 3D Viewer [%s]" ),
|
||||||
GetChars( getCurFootprintName() ) );
|
GetChars( getCurFootprintName() ) );
|
||||||
|
|
||||||
m_Draw3DFrame->SetTitle( frm3Dtitle );
|
draw3DFrame->SetTitle( frm3Dtitle );
|
||||||
|
|
||||||
if( aForceReloadFootprint )
|
if( aForceReloadFootprint )
|
||||||
{
|
{
|
||||||
m_Draw3DFrame->ReloadRequest();
|
draw3DFrame->ReloadRequest();
|
||||||
|
|
||||||
// Force 3D screen refresh immediately
|
// Force 3D screen refresh immediately
|
||||||
if( GetBoard()->m_Modules )
|
if( GetBoard()->m_Modules )
|
||||||
m_Draw3DFrame->NewDisplay();
|
draw3DFrame->NewDisplay();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -637,26 +637,28 @@ void PCB_EDIT_FRAME::OnCloseWindow( wxCloseEvent& Event )
|
||||||
|
|
||||||
void PCB_EDIT_FRAME::Show3D_Frame( wxCommandEvent& event )
|
void PCB_EDIT_FRAME::Show3D_Frame( wxCommandEvent& event )
|
||||||
{
|
{
|
||||||
if( m_Draw3DFrame )
|
EDA_3D_FRAME* draw3DFrame = Get3DViewerFrame();
|
||||||
|
|
||||||
|
if( draw3DFrame )
|
||||||
{
|
{
|
||||||
// Raising the window does not show the window on Windows if iconized.
|
// Raising the window does not show the window on Windows if iconized.
|
||||||
// This should work on any platform.
|
// This should work on any platform.
|
||||||
if( m_Draw3DFrame->IsIconized() )
|
if( draw3DFrame->IsIconized() )
|
||||||
m_Draw3DFrame->Iconize( false );
|
draw3DFrame->Iconize( false );
|
||||||
|
|
||||||
m_Draw3DFrame->Raise();
|
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.
|
||||||
if( wxWindow::FindFocus() != m_Draw3DFrame )
|
if( wxWindow::FindFocus() != draw3DFrame )
|
||||||
m_Draw3DFrame->SetFocus();
|
draw3DFrame->SetFocus();
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_Draw3DFrame = new EDA_3D_FRAME( &Kiway(), this, _( "3D Viewer" ) );
|
draw3DFrame = new EDA_3D_FRAME( &Kiway(), this, _( "3D Viewer" ) );
|
||||||
m_Draw3DFrame->SetDefaultFileName( GetBoard()->GetFileName() );
|
draw3DFrame->SetDefaultFileName( GetBoard()->GetFileName() );
|
||||||
m_Draw3DFrame->Raise(); // Needed with some Window Managers
|
draw3DFrame->Raise(); // Needed with some Window Managers
|
||||||
m_Draw3DFrame->Show( true );
|
draw3DFrame->Show( true );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -937,8 +939,10 @@ void PCB_EDIT_FRAME::OnModify( )
|
||||||
{
|
{
|
||||||
PCB_BASE_FRAME::OnModify();
|
PCB_BASE_FRAME::OnModify();
|
||||||
|
|
||||||
if( m_Draw3DFrame )
|
EDA_3D_FRAME* draw3DFrame = Get3DViewerFrame();
|
||||||
m_Draw3DFrame->ReloadRequest();
|
|
||||||
|
if( draw3DFrame )
|
||||||
|
draw3DFrame->ReloadRequest();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue