Loading pcbnew/layer_panel_base.cpp +70 −54 Original line number Diff line number Diff line Loading @@ -7,6 +7,8 @@ #include "layer_panel_base.h" #include <wx/settings.h> /////////////////////////////////////////////////////////////////////////// LAYER_PANEL_BASE::LAYER_PANEL_BASE( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style ) : wxPanel( parent, id, pos, size, style ) Loading @@ -14,33 +16,47 @@ LAYER_PANEL_BASE::LAYER_PANEL_BASE( wxWindow* parent, wxWindowID id, const wxPoi wxBoxSizer* boxSizer; boxSizer = new wxBoxSizer( wxVERTICAL ); m_notebook = new wxNotebook( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 ); // m_notebook = new wxNotebook( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 ); m_notebook = new wxAuiNotebook( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxAUI_NB_TOP ); // wxFont font = wxSystemSettings::GetFont( wxSYS_DEFAULT_GUI_FONT ); wxFont font = m_notebook->GetFont(); font.SetPointSize( (font.GetPointSize() * 8) / 10 ); m_notebook->SetFont( font ); m_notebook->SetNormalFont( font ); m_notebook->SetSelectedFont( font ); m_notebook->SetMeasuringFont( font ); m_LayerPanel = new wxPanel( m_notebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer3; bSizer3 = new wxBoxSizer( wxVERTICAL ); m_LayerScrolledWindow = new wxScrolledWindow( m_LayerPanel, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxNO_BORDER ); m_LayerScrolledWindow->SetScrollRate( 5, 5 ); m_LayersFlexGridSizer = new wxFlexGridSizer( 0, 4, 1, 3 ); m_LayersFlexGridSizer = new wxFlexGridSizer( 0, 4, 0, 1 ); m_LayersFlexGridSizer->SetFlexibleDirection( wxHORIZONTAL ); m_LayersFlexGridSizer->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); m_LayerScrolledWindow->SetSizer( m_LayersFlexGridSizer ); m_LayerScrolledWindow->Layout(); m_LayersFlexGridSizer->Fit( m_LayerScrolledWindow ); bSizer3->Add( m_LayerScrolledWindow, 1, wxBOTTOM|wxEXPAND|wxTOP, 5 ); bSizer3->Add( m_LayerScrolledWindow, 1, wxBOTTOM|wxEXPAND|wxLEFT|wxTOP, 2 ); m_LayerPanel->SetSizer( bSizer3 ); m_LayerPanel->Layout(); bSizer3->Fit( m_LayerPanel ); m_notebook->AddPage( m_LayerPanel, _("Layers"), true ); m_notebook->AddPage( m_LayerPanel, _("Layer"), true ); m_RenderingPanel = new wxPanel( m_notebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer4; bSizer4 = new wxBoxSizer( wxVERTICAL ); m_RenderScrolledWindow = new wxScrolledWindow( m_RenderingPanel, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxNO_BORDER ); m_RenderScrolledWindow->SetScrollRate( 5, 5 ); m_RenderFlexGridSizer = new wxFlexGridSizer( 0, 2, 1, 3 ); m_RenderFlexGridSizer = new wxFlexGridSizer( 0, 2, 0, 1 ); m_RenderFlexGridSizer->SetFlexibleDirection( wxHORIZONTAL ); m_RenderFlexGridSizer->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_NONE ); Loading @@ -52,7 +68,7 @@ LAYER_PANEL_BASE::LAYER_PANEL_BASE( wxWindow* parent, wxWindowID id, const wxPoi m_RenderingPanel->SetSizer( bSizer4 ); m_RenderingPanel->Layout(); bSizer4->Fit( m_RenderingPanel ); m_notebook->AddPage( m_RenderingPanel, _("Rendering"), false ); m_notebook->AddPage( m_RenderingPanel, _("Render"), false ); boxSizer->Add( m_notebook, 1, wxEXPAND | wxALL, 5 ); Loading pcbnew/layer_panel_base.h +25 −22 Original line number Diff line number Diff line Loading @@ -21,7 +21,8 @@ #include <wx/bitmap.h> #include <wx/image.h> #include <wx/icon.h> #include <wx/notebook.h> //#include <wx/notebook.h> #include <wx/aui/auibook.h> /////////////////////////////////////////////////////////////////////////// Loading @@ -34,7 +35,9 @@ class LAYER_PANEL_BASE : public wxPanel private: protected: wxNotebook* m_notebook; // wxNotebook* m_notebook; wxAuiNotebook* m_notebook; wxPanel* m_LayerPanel; wxScrolledWindow* m_LayerScrolledWindow; wxFlexGridSizer* m_LayersFlexGridSizer; Loading pcbnew/layer_widget.cpp +83 −53 Original line number Diff line number Diff line Loading @@ -49,9 +49,9 @@ #define LYR_COLUMN_COUNT 4 ///< Layer tab column count #define RND_COLUMN_COUNT 2 ///< Rendering tab column count #define BUTT_SIZE_X 32 #define BUTT_SIZE_Y 22 #define BUTT_VOID 6 #define BUTT_SIZE_X 20 #define BUTT_SIZE_Y 18 #define BUTT_VOID 4 #define ID_SHOW_ALL_COPPERS wxID_HIGHEST Loading @@ -60,7 +60,7 @@ /* XPM */ static const char * clear_xpm[] = { "28 14 1 1", "10 14 1 1", " c None", " ", " ", Loading @@ -79,28 +79,27 @@ static const char * clear_xpm[] = { /* XPM */ static const char * rightarrow_xpm[] = { "28 14 5 1", "10 14 5 1", " c None", ". c white", "X c #8080ff", "o c BLUE", "O c gray56", " .X ", " .XX ", " .XXX ", " .XXXX ", " ................XXXXX ", " XXXXXXXXXXXXXXXXXXXXXX ", " XXXXXXXXXXXXXXXXXXXXXXX ", " oooooooooooooooooooooooO", " ooooooooooooooooooooooO ", " OOOOOOOOOOOOOOOoooooO ", " X ", " XX ", " XXX ", " XXXX ", " XXXXX ", " XXXXXX ", " XXXXXXX ", " oooooooO", " ooooooO ", " oooooO ", " ooooO ", " oooO ", " ooO ", " oO "}; /** * Function encodeId * is here to allow saving a layer index within a control as its wxControl id, Loading Loading @@ -139,6 +138,17 @@ static wxString makeColorTxt( int aColor ) } /** * Function shrinkFont * reduces the size of the wxFont associated with \a aControl */ static void shrinkFont( wxWindow* aControl ) { wxFont font = aControl->GetFont(); font.SetPointSize( (font.GetPointSize() * 8) / 10 ); // go to 80% of original. aControl->SetFont( font ); } wxBitmap LAYER_WIDGET::makeBitmap( int aColor ) { // the bitmap will be BUTT_VOID*2 pixels smaller than the button, leaving a Loading Loading @@ -353,10 +363,10 @@ void LAYER_WIDGET::OnRenderCheckBox( wxCommandEvent& event ) void LAYER_WIDGET::OnTabChange( wxNotebookEvent& event ) { // printf("OnTabChange\n"); // passOnFocus(); // this segfaults, cannot enable it. // maybe we need to find a way to call the stock tab change event handler // first, then call passOnFocus() before we consider this event done. // wxFocusEvent event( wxEVT_SET_FOCUS ); // m_FocusOwner->AddPendingEvent( event ); passOnFocus(); // does not work in this context, probably because we have receive control here too early. } Loading Loading @@ -411,6 +421,7 @@ void LAYER_WIDGET::insertLayerRow( int aRow, const ROW& aSpec ) // column 2 col = 2; wxStaticText* st = new wxStaticText( m_LayerScrolledWindow, encodeId( col, aSpec.id ), aSpec.rowName ); shrinkFont( st ); st->Connect( wxEVT_LEFT_DOWN, wxMouseEventHandler( LAYER_WIDGET::OnLeftDownLayers ), NULL, this ); st->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( LAYER_WIDGET::OnRightDownLayers ), NULL, this ); st->SetToolTip( aSpec.tooltip ); Loading Loading @@ -456,6 +467,7 @@ void LAYER_WIDGET::insertRenderRow( int aRow, const ROW& aSpec ) col = 1; wxCheckBox* cb = new wxCheckBox( m_RenderScrolledWindow, encodeId( col, aSpec.id ), aSpec.rowName, wxDefaultPosition, wxDefaultSize, wxALIGN_LEFT ); shrinkFont( cb ); cb->SetValue( aSpec.state ); cb->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( LAYER_WIDGET::OnRenderCheckBox ), NULL, this ); Loading Loading @@ -496,12 +508,22 @@ LAYER_WIDGET::LAYER_WIDGET( wxWindow* aParent, wxWindow* aFocusOwner ) : // trap the tab changes so that we can call passOnFocus(). m_notebook->Connect( -1, wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED, wxNotebookEventHandler( LAYER_WIDGET::OnTabChange ) ); wxNotebookEventHandler( LAYER_WIDGET::OnTabChange ), NULL, this ); } wxSize LAYER_WIDGET::GetBestSize() const { #if 0 wxSize layerz = m_LayersFlexGridSizer->GetMinSize(); wxSize renderz = m_RenderFlexGridSizer->GetMinSize(); wxSize clientz( max(renderz.x,layerz.x), max(renderz.y,layerz.y) ); return ClientToWindowSize( clientz ); #else // size of m_LayerScrolledWindow -------------- wxArrayInt widths = m_LayersFlexGridSizer->GetColWidths(); int totWidth = 0; Loading @@ -527,7 +549,6 @@ wxSize LAYER_WIDGET::GetBestSize() const totHeight += heights[i] + m_LayersFlexGridSizer->GetVGap(); // printf("heights[%d]:%d\n", i, heights[i] ); } totHeight += 2 * heights[0]; // use 2 row heights to approximate tab height } else Loading @@ -535,6 +556,8 @@ wxSize LAYER_WIDGET::GetBestSize() const wxSize layerz( totWidth, totHeight ); layerz += m_LayerPanel->GetWindowBorderSize(); // size of m_RenderScrolledWindow -------------- widths = m_RenderFlexGridSizer->GetColWidths(); Loading Loading @@ -568,7 +591,17 @@ wxSize LAYER_WIDGET::GetBestSize() const wxSize renderz( totWidth, totHeight ); return wxSize( max(renderz.x,layerz.x), max(renderz.y,layerz.y) ); renderz += m_RenderingPanel->GetWindowBorderSize(); wxSize clientz( max(renderz.x,layerz.x), max(renderz.y,layerz.y) ); // wxSize diffz( GetSize() - GetClientSize() ); // clientz += diffz; return clientz; #endif } Loading Loading @@ -617,7 +650,7 @@ void LAYER_WIDGET::ClearRenderRows() void LAYER_WIDGET::SelectLayerRow( int aRow ) { // enable the layer tab at index 0 m_notebook->ChangeSelection( 0 ); m_notebook->SetSelection( 0 ); int oldNdx = LYR_COLUMN_COUNT * m_CurrentRow; int newNdx = LYR_COLUMN_COUNT * aRow; Loading Loading @@ -699,15 +732,12 @@ class MYFRAME : public wxFrame // abstract methods. class MYLAYERS : public LAYER_WIDGET { MYFRAME* frame; public: // your constructor could take a BOARD argument. here I leave it // out because this source module wants to know nothing of BOARDs // to maximize re-use. MYLAYERS( wxWindow* aParent, MYFRAME* aFrame ) : LAYER_WIDGET( aParent ), frame( aFrame ) MYLAYERS( wxWindow* aParent ) : LAYER_WIDGET( aParent, aParent ) { } Loading Loading @@ -755,7 +785,7 @@ public: // notify wxAUI which frame to use m_mgr.SetManagedWindow( this ); MYLAYERS* lw = new MYLAYERS( this, this ); MYLAYERS* lw = new MYLAYERS( this ); // add some layer rows static const LAYER_WIDGET::ROW layerRows[] = { Loading pcbnew/panel_layer_select.fbp +10 −10 Original line number Diff line number Diff line Loading @@ -117,14 +117,14 @@ <event name="OnUpdateUI"></event> <object class="notebookpage" expanded="1"> <property name="bitmap">layerbitmap; Load From File</property> <property name="label">Layers</property> <property name="label">Layer</property> <property name="select">1</property> <object class="wxPanel" expanded="1"> <property name="bg"></property> <property name="context_help"></property> <property name="enabled">1</property> <property name="fg"></property> <property name="font"></property> <property name="font">,90,90,10,70,0</property> <property name="hidden">0</property> <property name="id">wxID_ANY</property> <property name="maximum_size"></property> Loading Loading @@ -167,8 +167,8 @@ <property name="orient">wxVERTICAL</property> <property name="permission">none</property> <object class="sizeritem" expanded="1"> <property name="border">5</property> <property name="flag">wxBOTTOM|wxEXPAND|wxTOP</property> <property name="border">2</property> <property name="flag">wxBOTTOM|wxEXPAND|wxLEFT|wxTOP</property> <property name="proportion">1</property> <object class="wxScrolledWindow" expanded="1"> <property name="bg"></property> Loading Loading @@ -219,13 +219,13 @@ <property name="flexible_direction">wxHORIZONTAL</property> <property name="growablecols"></property> <property name="growablerows"></property> <property name="hgap">3</property> <property name="hgap">1</property> <property name="minimum_size"></property> <property name="name">m_LayersFlexGridSizer</property> <property name="non_flexible_grow_mode">wxFLEX_GROWMODE_SPECIFIED</property> <property name="permission">protected</property> <property name="rows">0</property> <property name="vgap">1</property> <property name="vgap">0</property> </object> </object> </object> Loading @@ -234,14 +234,14 @@ </object> <object class="notebookpage" expanded="1"> <property name="bitmap">; Load From File</property> <property name="label">Rendering</property> <property name="label">Render</property> <property name="select">0</property> <object class="wxPanel" expanded="1"> <property name="bg"></property> <property name="context_help"></property> <property name="enabled">1</property> <property name="fg"></property> <property name="font"></property> <property name="font">,90,90,10,70,0</property> <property name="hidden">0</property> <property name="id">wxID_ANY</property> <property name="maximum_size"></property> Loading Loading @@ -336,13 +336,13 @@ <property name="flexible_direction">wxHORIZONTAL</property> <property name="growablecols"></property> <property name="growablerows"></property> <property name="hgap">3</property> <property name="hgap">1</property> <property name="minimum_size"></property> <property name="name">m_RenderFlexGridSizer</property> <property name="non_flexible_grow_mode">wxFLEX_GROWMODE_NONE</property> <property name="permission">protected</property> <property name="rows">0</property> <property name="vgap">1</property> <property name="vgap">0</property> </object> </object> </object> Loading pcbnew/pcbframe.cpp +9 −6 Original line number Diff line number Diff line Loading @@ -327,7 +327,7 @@ WinEDA_PcbFrame::WinEDA_PcbFrame( wxWindow* father, lyrs.MinSize( m_Layers->GetBestSize() ); // updated in ReFillLayerWidget lyrs.BestSize( m_Layers->GetBestSize() ); lyrs.CloseButton( false ); lyrs.Caption( wxT( "Layers" ) ); lyrs.Caption( _( "Visibles" ) ); lyrs.IsFloatable(); Loading Loading @@ -520,6 +520,8 @@ void WinEDA_PcbFrame::ReFillLayerWidget() int layerId; wxString tooltip; } techLayerSeq[] = { /* some layers are not visible nor editable, don't show them for now: { ADHESIVE_N_FRONT, _("Adhesive on board's front") }, { ADHESIVE_N_BACK, _("Adhesive on board's back") }, { SOLDERPASTE_N_FRONT, _("Solder paste on board's front") }, Loading @@ -528,6 +530,7 @@ void WinEDA_PcbFrame::ReFillLayerWidget() { SILKSCREEN_N_BACK, _("Silkscreen on board's back") }, { SOLDERMASK_N_FRONT, _("Solder mask on board's front") }, { SOLDERMASK_N_BACK, _("Solder mask on board's back") }, */ { DRAW_N, _( "Explanatory drawings" ) }, { COMMENT_N, _( "Explanatory comments" ) }, { ECO1_N, _( "TDB" ) }, Loading Loading
pcbnew/layer_panel_base.cpp +70 −54 Original line number Diff line number Diff line Loading @@ -7,6 +7,8 @@ #include "layer_panel_base.h" #include <wx/settings.h> /////////////////////////////////////////////////////////////////////////// LAYER_PANEL_BASE::LAYER_PANEL_BASE( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style ) : wxPanel( parent, id, pos, size, style ) Loading @@ -14,33 +16,47 @@ LAYER_PANEL_BASE::LAYER_PANEL_BASE( wxWindow* parent, wxWindowID id, const wxPoi wxBoxSizer* boxSizer; boxSizer = new wxBoxSizer( wxVERTICAL ); m_notebook = new wxNotebook( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 ); // m_notebook = new wxNotebook( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 ); m_notebook = new wxAuiNotebook( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxAUI_NB_TOP ); // wxFont font = wxSystemSettings::GetFont( wxSYS_DEFAULT_GUI_FONT ); wxFont font = m_notebook->GetFont(); font.SetPointSize( (font.GetPointSize() * 8) / 10 ); m_notebook->SetFont( font ); m_notebook->SetNormalFont( font ); m_notebook->SetSelectedFont( font ); m_notebook->SetMeasuringFont( font ); m_LayerPanel = new wxPanel( m_notebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer3; bSizer3 = new wxBoxSizer( wxVERTICAL ); m_LayerScrolledWindow = new wxScrolledWindow( m_LayerPanel, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxNO_BORDER ); m_LayerScrolledWindow->SetScrollRate( 5, 5 ); m_LayersFlexGridSizer = new wxFlexGridSizer( 0, 4, 1, 3 ); m_LayersFlexGridSizer = new wxFlexGridSizer( 0, 4, 0, 1 ); m_LayersFlexGridSizer->SetFlexibleDirection( wxHORIZONTAL ); m_LayersFlexGridSizer->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); m_LayerScrolledWindow->SetSizer( m_LayersFlexGridSizer ); m_LayerScrolledWindow->Layout(); m_LayersFlexGridSizer->Fit( m_LayerScrolledWindow ); bSizer3->Add( m_LayerScrolledWindow, 1, wxBOTTOM|wxEXPAND|wxTOP, 5 ); bSizer3->Add( m_LayerScrolledWindow, 1, wxBOTTOM|wxEXPAND|wxLEFT|wxTOP, 2 ); m_LayerPanel->SetSizer( bSizer3 ); m_LayerPanel->Layout(); bSizer3->Fit( m_LayerPanel ); m_notebook->AddPage( m_LayerPanel, _("Layers"), true ); m_notebook->AddPage( m_LayerPanel, _("Layer"), true ); m_RenderingPanel = new wxPanel( m_notebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); wxBoxSizer* bSizer4; bSizer4 = new wxBoxSizer( wxVERTICAL ); m_RenderScrolledWindow = new wxScrolledWindow( m_RenderingPanel, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxNO_BORDER ); m_RenderScrolledWindow->SetScrollRate( 5, 5 ); m_RenderFlexGridSizer = new wxFlexGridSizer( 0, 2, 1, 3 ); m_RenderFlexGridSizer = new wxFlexGridSizer( 0, 2, 0, 1 ); m_RenderFlexGridSizer->SetFlexibleDirection( wxHORIZONTAL ); m_RenderFlexGridSizer->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_NONE ); Loading @@ -52,7 +68,7 @@ LAYER_PANEL_BASE::LAYER_PANEL_BASE( wxWindow* parent, wxWindowID id, const wxPoi m_RenderingPanel->SetSizer( bSizer4 ); m_RenderingPanel->Layout(); bSizer4->Fit( m_RenderingPanel ); m_notebook->AddPage( m_RenderingPanel, _("Rendering"), false ); m_notebook->AddPage( m_RenderingPanel, _("Render"), false ); boxSizer->Add( m_notebook, 1, wxEXPAND | wxALL, 5 ); Loading
pcbnew/layer_panel_base.h +25 −22 Original line number Diff line number Diff line Loading @@ -21,7 +21,8 @@ #include <wx/bitmap.h> #include <wx/image.h> #include <wx/icon.h> #include <wx/notebook.h> //#include <wx/notebook.h> #include <wx/aui/auibook.h> /////////////////////////////////////////////////////////////////////////// Loading @@ -34,7 +35,9 @@ class LAYER_PANEL_BASE : public wxPanel private: protected: wxNotebook* m_notebook; // wxNotebook* m_notebook; wxAuiNotebook* m_notebook; wxPanel* m_LayerPanel; wxScrolledWindow* m_LayerScrolledWindow; wxFlexGridSizer* m_LayersFlexGridSizer; Loading
pcbnew/layer_widget.cpp +83 −53 Original line number Diff line number Diff line Loading @@ -49,9 +49,9 @@ #define LYR_COLUMN_COUNT 4 ///< Layer tab column count #define RND_COLUMN_COUNT 2 ///< Rendering tab column count #define BUTT_SIZE_X 32 #define BUTT_SIZE_Y 22 #define BUTT_VOID 6 #define BUTT_SIZE_X 20 #define BUTT_SIZE_Y 18 #define BUTT_VOID 4 #define ID_SHOW_ALL_COPPERS wxID_HIGHEST Loading @@ -60,7 +60,7 @@ /* XPM */ static const char * clear_xpm[] = { "28 14 1 1", "10 14 1 1", " c None", " ", " ", Loading @@ -79,28 +79,27 @@ static const char * clear_xpm[] = { /* XPM */ static const char * rightarrow_xpm[] = { "28 14 5 1", "10 14 5 1", " c None", ". c white", "X c #8080ff", "o c BLUE", "O c gray56", " .X ", " .XX ", " .XXX ", " .XXXX ", " ................XXXXX ", " XXXXXXXXXXXXXXXXXXXXXX ", " XXXXXXXXXXXXXXXXXXXXXXX ", " oooooooooooooooooooooooO", " ooooooooooooooooooooooO ", " OOOOOOOOOOOOOOOoooooO ", " X ", " XX ", " XXX ", " XXXX ", " XXXXX ", " XXXXXX ", " XXXXXXX ", " oooooooO", " ooooooO ", " oooooO ", " ooooO ", " oooO ", " ooO ", " oO "}; /** * Function encodeId * is here to allow saving a layer index within a control as its wxControl id, Loading Loading @@ -139,6 +138,17 @@ static wxString makeColorTxt( int aColor ) } /** * Function shrinkFont * reduces the size of the wxFont associated with \a aControl */ static void shrinkFont( wxWindow* aControl ) { wxFont font = aControl->GetFont(); font.SetPointSize( (font.GetPointSize() * 8) / 10 ); // go to 80% of original. aControl->SetFont( font ); } wxBitmap LAYER_WIDGET::makeBitmap( int aColor ) { // the bitmap will be BUTT_VOID*2 pixels smaller than the button, leaving a Loading Loading @@ -353,10 +363,10 @@ void LAYER_WIDGET::OnRenderCheckBox( wxCommandEvent& event ) void LAYER_WIDGET::OnTabChange( wxNotebookEvent& event ) { // printf("OnTabChange\n"); // passOnFocus(); // this segfaults, cannot enable it. // maybe we need to find a way to call the stock tab change event handler // first, then call passOnFocus() before we consider this event done. // wxFocusEvent event( wxEVT_SET_FOCUS ); // m_FocusOwner->AddPendingEvent( event ); passOnFocus(); // does not work in this context, probably because we have receive control here too early. } Loading Loading @@ -411,6 +421,7 @@ void LAYER_WIDGET::insertLayerRow( int aRow, const ROW& aSpec ) // column 2 col = 2; wxStaticText* st = new wxStaticText( m_LayerScrolledWindow, encodeId( col, aSpec.id ), aSpec.rowName ); shrinkFont( st ); st->Connect( wxEVT_LEFT_DOWN, wxMouseEventHandler( LAYER_WIDGET::OnLeftDownLayers ), NULL, this ); st->Connect( wxEVT_RIGHT_DOWN, wxMouseEventHandler( LAYER_WIDGET::OnRightDownLayers ), NULL, this ); st->SetToolTip( aSpec.tooltip ); Loading Loading @@ -456,6 +467,7 @@ void LAYER_WIDGET::insertRenderRow( int aRow, const ROW& aSpec ) col = 1; wxCheckBox* cb = new wxCheckBox( m_RenderScrolledWindow, encodeId( col, aSpec.id ), aSpec.rowName, wxDefaultPosition, wxDefaultSize, wxALIGN_LEFT ); shrinkFont( cb ); cb->SetValue( aSpec.state ); cb->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( LAYER_WIDGET::OnRenderCheckBox ), NULL, this ); Loading Loading @@ -496,12 +508,22 @@ LAYER_WIDGET::LAYER_WIDGET( wxWindow* aParent, wxWindow* aFocusOwner ) : // trap the tab changes so that we can call passOnFocus(). m_notebook->Connect( -1, wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED, wxNotebookEventHandler( LAYER_WIDGET::OnTabChange ) ); wxNotebookEventHandler( LAYER_WIDGET::OnTabChange ), NULL, this ); } wxSize LAYER_WIDGET::GetBestSize() const { #if 0 wxSize layerz = m_LayersFlexGridSizer->GetMinSize(); wxSize renderz = m_RenderFlexGridSizer->GetMinSize(); wxSize clientz( max(renderz.x,layerz.x), max(renderz.y,layerz.y) ); return ClientToWindowSize( clientz ); #else // size of m_LayerScrolledWindow -------------- wxArrayInt widths = m_LayersFlexGridSizer->GetColWidths(); int totWidth = 0; Loading @@ -527,7 +549,6 @@ wxSize LAYER_WIDGET::GetBestSize() const totHeight += heights[i] + m_LayersFlexGridSizer->GetVGap(); // printf("heights[%d]:%d\n", i, heights[i] ); } totHeight += 2 * heights[0]; // use 2 row heights to approximate tab height } else Loading @@ -535,6 +556,8 @@ wxSize LAYER_WIDGET::GetBestSize() const wxSize layerz( totWidth, totHeight ); layerz += m_LayerPanel->GetWindowBorderSize(); // size of m_RenderScrolledWindow -------------- widths = m_RenderFlexGridSizer->GetColWidths(); Loading Loading @@ -568,7 +591,17 @@ wxSize LAYER_WIDGET::GetBestSize() const wxSize renderz( totWidth, totHeight ); return wxSize( max(renderz.x,layerz.x), max(renderz.y,layerz.y) ); renderz += m_RenderingPanel->GetWindowBorderSize(); wxSize clientz( max(renderz.x,layerz.x), max(renderz.y,layerz.y) ); // wxSize diffz( GetSize() - GetClientSize() ); // clientz += diffz; return clientz; #endif } Loading Loading @@ -617,7 +650,7 @@ void LAYER_WIDGET::ClearRenderRows() void LAYER_WIDGET::SelectLayerRow( int aRow ) { // enable the layer tab at index 0 m_notebook->ChangeSelection( 0 ); m_notebook->SetSelection( 0 ); int oldNdx = LYR_COLUMN_COUNT * m_CurrentRow; int newNdx = LYR_COLUMN_COUNT * aRow; Loading Loading @@ -699,15 +732,12 @@ class MYFRAME : public wxFrame // abstract methods. class MYLAYERS : public LAYER_WIDGET { MYFRAME* frame; public: // your constructor could take a BOARD argument. here I leave it // out because this source module wants to know nothing of BOARDs // to maximize re-use. MYLAYERS( wxWindow* aParent, MYFRAME* aFrame ) : LAYER_WIDGET( aParent ), frame( aFrame ) MYLAYERS( wxWindow* aParent ) : LAYER_WIDGET( aParent, aParent ) { } Loading Loading @@ -755,7 +785,7 @@ public: // notify wxAUI which frame to use m_mgr.SetManagedWindow( this ); MYLAYERS* lw = new MYLAYERS( this, this ); MYLAYERS* lw = new MYLAYERS( this ); // add some layer rows static const LAYER_WIDGET::ROW layerRows[] = { Loading
pcbnew/panel_layer_select.fbp +10 −10 Original line number Diff line number Diff line Loading @@ -117,14 +117,14 @@ <event name="OnUpdateUI"></event> <object class="notebookpage" expanded="1"> <property name="bitmap">layerbitmap; Load From File</property> <property name="label">Layers</property> <property name="label">Layer</property> <property name="select">1</property> <object class="wxPanel" expanded="1"> <property name="bg"></property> <property name="context_help"></property> <property name="enabled">1</property> <property name="fg"></property> <property name="font"></property> <property name="font">,90,90,10,70,0</property> <property name="hidden">0</property> <property name="id">wxID_ANY</property> <property name="maximum_size"></property> Loading Loading @@ -167,8 +167,8 @@ <property name="orient">wxVERTICAL</property> <property name="permission">none</property> <object class="sizeritem" expanded="1"> <property name="border">5</property> <property name="flag">wxBOTTOM|wxEXPAND|wxTOP</property> <property name="border">2</property> <property name="flag">wxBOTTOM|wxEXPAND|wxLEFT|wxTOP</property> <property name="proportion">1</property> <object class="wxScrolledWindow" expanded="1"> <property name="bg"></property> Loading Loading @@ -219,13 +219,13 @@ <property name="flexible_direction">wxHORIZONTAL</property> <property name="growablecols"></property> <property name="growablerows"></property> <property name="hgap">3</property> <property name="hgap">1</property> <property name="minimum_size"></property> <property name="name">m_LayersFlexGridSizer</property> <property name="non_flexible_grow_mode">wxFLEX_GROWMODE_SPECIFIED</property> <property name="permission">protected</property> <property name="rows">0</property> <property name="vgap">1</property> <property name="vgap">0</property> </object> </object> </object> Loading @@ -234,14 +234,14 @@ </object> <object class="notebookpage" expanded="1"> <property name="bitmap">; Load From File</property> <property name="label">Rendering</property> <property name="label">Render</property> <property name="select">0</property> <object class="wxPanel" expanded="1"> <property name="bg"></property> <property name="context_help"></property> <property name="enabled">1</property> <property name="fg"></property> <property name="font"></property> <property name="font">,90,90,10,70,0</property> <property name="hidden">0</property> <property name="id">wxID_ANY</property> <property name="maximum_size"></property> Loading Loading @@ -336,13 +336,13 @@ <property name="flexible_direction">wxHORIZONTAL</property> <property name="growablecols"></property> <property name="growablerows"></property> <property name="hgap">3</property> <property name="hgap">1</property> <property name="minimum_size"></property> <property name="name">m_RenderFlexGridSizer</property> <property name="non_flexible_grow_mode">wxFLEX_GROWMODE_NONE</property> <property name="permission">protected</property> <property name="rows">0</property> <property name="vgap">1</property> <property name="vgap">0</property> </object> </object> </object> Loading
pcbnew/pcbframe.cpp +9 −6 Original line number Diff line number Diff line Loading @@ -327,7 +327,7 @@ WinEDA_PcbFrame::WinEDA_PcbFrame( wxWindow* father, lyrs.MinSize( m_Layers->GetBestSize() ); // updated in ReFillLayerWidget lyrs.BestSize( m_Layers->GetBestSize() ); lyrs.CloseButton( false ); lyrs.Caption( wxT( "Layers" ) ); lyrs.Caption( _( "Visibles" ) ); lyrs.IsFloatable(); Loading Loading @@ -520,6 +520,8 @@ void WinEDA_PcbFrame::ReFillLayerWidget() int layerId; wxString tooltip; } techLayerSeq[] = { /* some layers are not visible nor editable, don't show them for now: { ADHESIVE_N_FRONT, _("Adhesive on board's front") }, { ADHESIVE_N_BACK, _("Adhesive on board's back") }, { SOLDERPASTE_N_FRONT, _("Solder paste on board's front") }, Loading @@ -528,6 +530,7 @@ void WinEDA_PcbFrame::ReFillLayerWidget() { SILKSCREEN_N_BACK, _("Silkscreen on board's back") }, { SOLDERMASK_N_FRONT, _("Solder mask on board's front") }, { SOLDERMASK_N_BACK, _("Solder mask on board's back") }, */ { DRAW_N, _( "Explanatory drawings" ) }, { COMMENT_N, _( "Explanatory comments" ) }, { ECO1_N, _( "TDB" ) }, Loading