Commit 902e5cce authored by jean-pierre charras's avatar jean-pierre charras

pcb layer box selector: ajust size when modifying the layer names, to show the full name.

parent 047749a8
...@@ -542,7 +542,15 @@ public: ...@@ -542,7 +542,15 @@ public:
void ReCreateMicrowaveVToolbar(); void ReCreateMicrowaveVToolbar();
void ReCreateOptToolbar(); void ReCreateOptToolbar();
void ReCreateMenuBar(); void ReCreateMenuBar();
PCB_LAYER_BOX_SELECTOR* ReCreateLayerBox( wxAuiToolBar* parent );
/**
* Re create the layer Box by clearing the old list, and building
* le new one, from the new layers names and cole layers
* @param aForceResizeToolbar = true to resize the parent toolbar
* false if not needed (mainly in parent toolbar creation,
* or when the layers names are not modified)
*/
void ReCreateLayerBox( bool aForceResizeToolbar = true );
/** /**
* Function OnModify * Function OnModify
......
...@@ -51,10 +51,8 @@ void PCB_LAYER_BOX_SELECTOR::Resync() ...@@ -51,10 +51,8 @@ void PCB_LAYER_BOX_SELECTOR::Resync()
static DECLARE_LAYERS_HOTKEY( layerhk ); static DECLARE_LAYERS_HOTKEY( layerhk );
// Tray to fix a minimum width fot the BitmapComboBox // Tray to fix a minimum width fot the BitmapComboBox
int minwidth, h; int minwidth = 80, h;
wxClientDC dc( GetParent() ); // The DC for "this" is not always initialized wxClientDC dc( GetParent() ); // The DC for "this" is not always initialized
wxString dummyText( wxT("XXXXXXXXXXXX") );
dc.GetTextExtent ( dummyText, &minwidth, &h );
#define BM_SIZE 14 #define BM_SIZE 14
for( LAYER_NUM i = FIRST_LAYER; i < NB_LAYERS; ++i ) for( LAYER_NUM i = FIRST_LAYER; i < NB_LAYERS; ++i )
...@@ -83,14 +81,11 @@ void PCB_LAYER_BOX_SELECTOR::Resync() ...@@ -83,14 +81,11 @@ void PCB_LAYER_BOX_SELECTOR::Resync()
Append( layername, layerbmp, (void*)(intptr_t) layerid ); Append( layername, layerbmp, (void*)(intptr_t) layerid );
int w; int w;
dc.GetTextExtent ( layername, &w, &h ); dc.GetTextExtent ( layername, &w, &h );
minwidth = std::max( minwidth, w ); minwidth = std::max( minwidth, w );
} }
minwidth += BM_SIZE + 12; // Take in account the bitmap size and margins minwidth += BM_SIZE + 35; // Take in account the bitmap size and margins
wxLogMessage( "minw %d min %d", minwidth, GetMinClientSize().x ); SetMinClientSize( wxSize( minwidth, -1 ) );
// SetMinClientSize( wxSize( minwidth, -1 ) );
Layout();
} }
......
...@@ -341,7 +341,7 @@ void PCB_LAYER_WIDGET::ReFill() ...@@ -341,7 +341,7 @@ void PCB_LAYER_WIDGET::ReFill()
void PCB_LAYER_WIDGET::OnLayerColorChange( LAYER_NUM aLayer, EDA_COLOR_T aColor ) void PCB_LAYER_WIDGET::OnLayerColorChange( LAYER_NUM aLayer, EDA_COLOR_T aColor )
{ {
myframe->GetBoard()->SetLayerColor( aLayer, aColor ); myframe->GetBoard()->SetLayerColor( aLayer, aColor );
myframe->ReCreateLayerBox( NULL ); myframe->ReCreateLayerBox( false );
myframe->GetCanvas()->Refresh(); myframe->GetCanvas()->Refresh();
} }
......
...@@ -560,7 +560,7 @@ void DIALOG_LAYERS_SETUP::OnOkButtonClick( wxCommandEvent& event ) ...@@ -560,7 +560,7 @@ void DIALOG_LAYERS_SETUP::OnOkButtonClick( wxCommandEvent& event )
} }
m_Parent->OnModify(); m_Parent->OnModify();
m_Parent->ReCreateLayerBox( NULL ); m_Parent->ReCreateLayerBox();
m_Parent->ReFillLayerWidget(); m_Parent->ReFillLayerWidget();
EndModal( wxID_OK ); EndModal( wxID_OK );
......
...@@ -141,7 +141,7 @@ void PCB_EDIT_FRAME::Files_io( wxCommandEvent& event ) ...@@ -141,7 +141,7 @@ void PCB_EDIT_FRAME::Files_io( wxCommandEvent& event )
fn.SetExt( PcbFileExtension ); fn.SetExt( PcbFileExtension );
GetBoard()->SetFileName( fn.GetFullPath() ); GetBoard()->SetFileName( fn.GetFullPath() );
UpdateTitle(); UpdateTitle();
ReCreateLayerBox( NULL ); ReCreateLayerBox();
} }
break; break;
...@@ -396,8 +396,7 @@ bool PCB_EDIT_FRAME::LoadOnePcbFile( const wxString& aFileName, bool aAppend, ...@@ -396,8 +396,7 @@ bool PCB_EDIT_FRAME::LoadOnePcbFile( const wxString& aFileName, bool aAppend,
// Update info shown by the horizontal toolbars // Update info shown by the horizontal toolbars
GetBoard()->SetCurrentNetClass( NETCLASS::Default ); GetBoard()->SetCurrentNetClass( NETCLASS::Default );
ReFillLayerWidget(); ReFillLayerWidget();
ReCreateLayerBox();
ReCreateLayerBox( NULL );
// upate the layer widget to match board visibility states, both layers and render columns. // upate the layer widget to match board visibility states, both layers and render columns.
syncLayerVisibilities(); syncLayerVisibilities();
......
...@@ -589,7 +589,7 @@ void PCB_EDIT_FRAME::ShowDesignRulesEditor( wxCommandEvent& event ) ...@@ -589,7 +589,7 @@ void PCB_EDIT_FRAME::ShowDesignRulesEditor( wxCommandEvent& event )
if( returncode == wxID_OK ) // New rules, or others changes. if( returncode == wxID_OK ) // New rules, or others changes.
{ {
ReCreateLayerBox( NULL ); ReCreateLayerBox();
updateTraceWidthSelectBox(); updateTraceWidthSelectBox();
updateViaSizeSelectBox(); updateViaSizeSelectBox();
OnModify(); OnModify();
......
...@@ -301,7 +301,7 @@ bool EDA_APP::OnInit() ...@@ -301,7 +301,7 @@ bool EDA_APP::OnInit()
frame->Clear_Pcb( false ); frame->Clear_Pcb( false );
// update the layer names in the listbox // update the layer names in the listbox
frame->ReCreateLayerBox( NULL ); frame->ReCreateLayerBox( false );
/* For an obscure reason the focus is lost after loading a board file /* For an obscure reason the focus is lost after loading a board file
* when starting (i.e. only at this point) * when starting (i.e. only at this point)
......
...@@ -281,7 +281,7 @@ void PCB_EDIT_FRAME::ReCreateHToolbar() ...@@ -281,7 +281,7 @@ void PCB_EDIT_FRAME::ReCreateHToolbar()
m_SelLayerBox = new PCB_LAYER_BOX_SELECTOR( m_mainToolBar, ID_TOOLBARH_PCB_SELECT_LAYER ); m_SelLayerBox = new PCB_LAYER_BOX_SELECTOR( m_mainToolBar, ID_TOOLBARH_PCB_SELECT_LAYER );
m_SelLayerBox->SetBoardFrame( this ); m_SelLayerBox->SetBoardFrame( this );
} }
ReCreateLayerBox( m_mainToolBar ); ReCreateLayerBox( false );
m_mainToolBar->AddControl( m_SelLayerBox ); m_mainToolBar->AddControl( m_SelLayerBox );
PrepareLayerIndicator(); // Initialize the bitmap with current PrepareLayerIndicator(); // Initialize the bitmap with current
...@@ -663,14 +663,19 @@ void PCB_EDIT_FRAME::updateViaSizeSelectBox() ...@@ -663,14 +663,19 @@ void PCB_EDIT_FRAME::updateViaSizeSelectBox()
} }
PCB_LAYER_BOX_SELECTOR* PCB_EDIT_FRAME::ReCreateLayerBox( wxAuiToolBar* parent ) void PCB_EDIT_FRAME::ReCreateLayerBox( bool aForceResizeToolbar )
{ {
if( m_SelLayerBox == NULL ) if( m_SelLayerBox == NULL || m_mainToolBar == NULL )
return NULL; return;
m_SelLayerBox->SetToolTip( _( "+/- to switch" ) );
m_SelLayerBox->m_hotkeys = g_Board_Editor_Hokeys_Descr; m_SelLayerBox->m_hotkeys = g_Board_Editor_Hokeys_Descr;
m_SelLayerBox->Resync(); m_SelLayerBox->Resync();
m_SelLayerBox->SetToolTip( _( "+/- to switch" ) );
return m_SelLayerBox; if( aForceResizeToolbar )
{
// the layer box can have its size changed
// Update the aui manager, to take in account the new size
m_auimgr.Update();
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment