@ -73,18 +73,23 @@ void WinEDA_PcbFrame::PrepareLayerIndicator()
/* get colors, and redraw bitmap button only on changes */
active_layer_color = GetBoard ( ) - > GetLayerColor ( getActiveLayer ( ) ) ;
if ( previous_active_layer_color ! = active_layer_color )
{
previous_active_layer_color = active_layer_color ;
change = true ;
}
Route_Layer_TOP_color = g_ColorsSettings . GetLayerColor ( ( ( PCB_SCREEN * ) GetScreen ( ) ) - > m_Route_Layer_TOP ) ;
if ( previous_Route_Layer_TOP_color ! = Route_Layer_TOP_color )
{
previous_Route_Layer_TOP_color = Route_Layer_TOP_color ;
change = true ;
}
Route_Layer_BOTTOM_color = g_ColorsSettings . GetLayerColor ( ( ( PCB_SCREEN * ) GetScreen ( ) ) - > m_Route_Layer_BOTTOM ) ;
if ( previous_Route_Layer_BOTTOM_color ! = Route_Layer_BOTTOM_color )
{
previous_Route_Layer_BOTTOM_color = Route_Layer_BOTTOM_color ;
@ -93,6 +98,7 @@ void WinEDA_PcbFrame::PrepareLayerIndicator()
int via_type = GetBoard ( ) - > GetBoardDesignSettings ( ) - > m_CurrentViaType ;
via_color = GetBoard ( ) - > GetVisibleElementColor ( VIAS_VISIBLE + via_type ) ;
if ( previous_via_color ! = via_color )
{
previous_via_color = via_color ;
@ -145,11 +151,9 @@ void WinEDA_PcbFrame::PrepareLayerIndicator()
}
color & = MASKCOLOR ;
pen . SetColour (
ColorRefs [ color ] . m_Red ,
ColorRefs [ color ] . m_Green ,
ColorRefs [ color ] . m_Blue
) ;
pen . SetColour ( ColorRefs [ color ] . m_Red ,
ColorRefs [ color ] . m_Green ,
ColorRefs [ color ] . m_Blue ) ;
iconDC . SetPen ( pen ) ;
}
iconDC . DrawPoint ( jj , ii ) ;
@ -162,8 +166,7 @@ void WinEDA_PcbFrame::PrepareLayerIndicator()
if ( m_HToolBar )
{
m_HToolBar - > SetToolBitmap ( ID_AUX_TOOLBAR_PCB_SELECT_LAYER_PAIR ,
* LayerPairBitmap ) ;
m_HToolBar - > SetToolBitmap ( ID_AUX_TOOLBAR_PCB_SELECT_LAYER_PAIR , * LayerPairBitmap ) ;
m_HToolBar - > Realize ( ) ;
}
}
@ -175,13 +178,10 @@ void WinEDA_PcbFrame::ReCreateHToolbar()
{
wxString msg ;
if ( m_HToolBar ! = NULL )
{
SetToolbars ( ) ;
if ( m_HToolBar )
return ;
}
wxWindowUpdateLocker dummy ( this ) ;
wxWindowUpdateLocker dummy ( this ) ;
m_HToolBar = new WinEDA_Toolbar ( TOOLBAR_MAIN , this , ID_H_TOOLBAR , true ) ;
m_HToolBar - > SetRows ( 1 ) ;
@ -199,8 +199,7 @@ void WinEDA_PcbFrame::ReCreateHToolbar()
_ ( " Page settings (size, texts) " ) ) ;
m_HToolBar - > AddSeparator ( ) ;
m_HToolBar - > AddTool ( ID_OPEN_MODULE_EDITOR , wxEmptyString ,
wxBitmap ( modedit_xpm ) ,
m_HToolBar - > AddTool ( ID_OPEN_MODULE_EDITOR , wxEmptyString , wxBitmap ( modedit_xpm ) ,
_ ( " Open module editor " ) ) ;
m_HToolBar - > AddSeparator ( ) ;
@ -216,14 +215,10 @@ void WinEDA_PcbFrame::ReCreateHToolbar()
# endif
m_HToolBar - > AddSeparator ( ) ;
msg = AddHotkeyName ( HELP_UNDO , g_Board_Editor_Hokeys_Descr ,
HK_UNDO , false ) ;
m_HToolBar - > AddTool ( wxID_UNDO , wxEmptyString , wxBitmap ( undo_xpm ) ,
HELP_UNDO ) ;
msg = AddHotkeyName ( HELP_REDO , g_Board_Editor_Hokeys_Descr ,
HK_REDO , false ) ;
m_HToolBar - > AddTool ( wxID_REDO , wxEmptyString , wxBitmap ( redo_xpm ) ,
HELP_REDO ) ;
msg = AddHotkeyName ( HELP_UNDO , g_Board_Editor_Hokeys_Descr , HK_UNDO , false ) ;
m_HToolBar - > AddTool ( wxID_UNDO , wxEmptyString , wxBitmap ( undo_xpm ) , HELP_UNDO ) ;
msg = AddHotkeyName ( HELP_REDO , g_Board_Editor_Hokeys_Descr , HK_REDO , false ) ;
m_HToolBar - > AddTool ( wxID_REDO , wxEmptyString , wxBitmap ( redo_xpm ) , HELP_REDO ) ;
m_HToolBar - > AddSeparator ( ) ;
m_HToolBar - > AddTool ( wxID_PRINT , wxEmptyString , wxBitmap ( print_button ) ,
@ -232,32 +227,21 @@ void WinEDA_PcbFrame::ReCreateHToolbar()
_ ( " Plot (HPGL, PostScript, or GERBER format) " ) ) ;
m_HToolBar - > AddSeparator ( ) ;
msg = AddHotkeyName ( HELP_ZOOM_IN , g_Board_Editor_Hokeys_Descr ,
HK_ZOOM_IN , false ) ;
m_HToolBar - > AddTool ( ID_ZOOM_IN , wxEmptyString , wxBitmap ( zoom_in_xpm ) ,
msg ) ;
msg = AddHotkeyName ( HELP_ZOOM_OUT , g_Board_Editor_Hokeys_Descr ,
HK_ZOOM_OUT , false ) ;
m_HToolBar - > AddTool ( ID_ZOOM_OUT , wxEmptyString ,
wxBitmap ( zoom_out_xpm ) , msg ) ;
msg = AddHotkeyName ( HELP_ZOOM_REDRAW , g_Board_Editor_Hokeys_Descr ,
HK_ZOOM_REDRAW , false ) ;
m_HToolBar - > AddTool ( ID_ZOOM_REDRAW , wxEmptyString ,
wxBitmap ( zoom_redraw_xpm ) , msg ) ;
msg = AddHotkeyName ( HELP_ZOOM_FIT , g_Board_Editor_Hokeys_Descr ,
HK_ZOOM_AUTO , false ) ;
m_HToolBar - > AddTool ( ID_ZOOM_PAGE , wxEmptyString ,
wxBitmap ( zoom_auto_xpm ) , msg ) ;
msg = AddHotkeyName ( HELP_ZOOM_IN , g_Board_Editor_Hokeys_Descr , HK_ZOOM_IN , false ) ;
m_HToolBar - > AddTool ( ID_ZOOM_IN , wxEmptyString , wxBitmap ( zoom_in_xpm ) , msg ) ;
msg = AddHotkeyName ( HELP_ZOOM_OUT , g_Board_Editor_Hokeys_Descr , HK_ZOOM_OUT , false ) ;
m_HToolBar - > AddTool ( ID_ZOOM_OUT , wxEmptyString , wxBitmap ( zoom_out_xpm ) , msg ) ;
msg = AddHotkeyName ( HELP_ZOOM_REDRAW , g_Board_Editor_Hokeys_Descr , HK_ZOOM_REDRAW , false ) ;
m_HToolBar - > AddTool ( ID_ZOOM_REDRAW , wxEmptyString , wxBitmap ( zoom_redraw_xpm ) , msg ) ;
msg = AddHotkeyName ( HELP_ZOOM_FIT , g_Board_Editor_Hokeys_Descr , HK_ZOOM_AUTO , false ) ;
m_HToolBar - > AddTool ( ID_ZOOM_PAGE , wxEmptyString , wxBitmap ( zoom_auto_xpm ) , msg ) ;
m_HToolBar - > AddSeparator ( ) ;
msg = AddHotkeyName ( HELP_FIND , // Find components and texts
g_Board_Editor_Hokeys_Descr ,
HK_FIND_ITEM , false ) ;
m_HToolBar - > AddTool ( ID_FIND_ITEMS , wxEmptyString , wxBitmap ( find_xpm ) ,
msg ) ;
msg = AddHotkeyName ( HELP_FIND , g_Board_Editor_Hokeys_Descr , HK_FIND_ITEM , false ) ;
m_HToolBar - > AddTool ( ID_FIND_ITEMS , wxEmptyString , wxBitmap ( find_xpm ) , msg ) ;
m_HToolBar - > AddSeparator ( ) ;
m_HToolBar - > AddTool ( ID_GET_NETLIST , wxEmptyString , wxBitmap ( netlist_xpm ) ,
@ -267,8 +251,8 @@ void WinEDA_PcbFrame::ReCreateHToolbar()
m_HToolBar - > AddSeparator ( ) ;
if ( m_SelLayerBox = = NULL )
m_SelLayerBox = new WinEDALayerChoiceBox ( m_HToolBar , ID_TOOLBARH_PCB_SELECT_LAYER ) ;
if ( m_SelLayerBox = = NULL )
m_SelLayerBox = new WinEDALayerChoiceBox ( m_HToolBar , ID_TOOLBARH_PCB_SELECT_LAYER ) ;
ReCreateLayerBox ( m_HToolBar ) ;
m_HToolBar - > AddControl ( m_SelLayerBox ) ;
@ -279,12 +263,10 @@ void WinEDA_PcbFrame::ReCreateHToolbar()
* LayerPairBitmap , SEL_LAYER_HELP ) ;
m_HToolBar - > AddSeparator ( ) ;
m_HToolBar - > AddTool ( ID_TOOLBARH_PCB_MODE_MODULE , wxEmptyString ,
wxBitmap ( mode_module_xpm ) ,
m_HToolBar - > AddTool ( ID_TOOLBARH_PCB_MODE_MODULE , wxEmptyString , wxBitmap ( mode_module_xpm ) ,
_ ( " Mode footprint: manual and automatic move and place modules " ) ,
wxITEM_CHECK ) ;
m_HToolBar - > AddTool ( ID_TOOLBARH_PCB_MODE_TRACKS , wxEmptyString ,
wxBitmap ( mode_track_xpm ) ,
m_HToolBar - > AddTool ( ID_TOOLBARH_PCB_MODE_TRACKS , wxEmptyString , wxBitmap ( mode_track_xpm ) ,
_ ( " Mode track: autorouting " ) , wxITEM_CHECK ) ;
// Fast call to FreeROUTE Web Bases router
@ -294,9 +276,8 @@ void WinEDA_PcbFrame::ReCreateHToolbar()
_ ( " Fast access to the Web Based FreeROUTE advanced router " ) ) ;
m_HToolBar - > AddSeparator ( ) ;
// after adding the buttons to the toolbar, must call Realize() to reflect
// the changes
// after adding the buttons to the toolbar, must call Realize() to reflect the changes
m_HToolBar - > Realize ( ) ;
}
@ -306,17 +287,13 @@ void WinEDA_PcbFrame::ReCreateOptToolbar()
if ( m_OptionsToolBar )
return ;
wxWindowUpdateLocker dummy ( this ) ;
wxWindowUpdateLocker dummy ( this ) ;
m_OptionsToolBar = new WinEDA_Toolbar ( TOOLBAR_OPTION , this ,
ID_OPT_TOOLBAR , FALSE ) ;
m_OptionsToolBar = new WinEDA_Toolbar ( TOOLBAR_OPTION , this , ID_OPT_TOOLBAR , false ) ;
m_OptionsToolBar - > AddTool ( ID_TB_OPTIONS_DRC_OFF , wxEmptyString ,
wxBitmap ( drc_off_xpm ) ,
_ ( " Enable design rule checking " ) ,
wxITEM_CHECK ) ;
m_OptionsToolBar - > AddTool ( ID_TB_OPTIONS_SHOW_GRID , wxEmptyString ,
wxBitmap ( grid_xpm ) ,
m_OptionsToolBar - > AddTool ( ID_TB_OPTIONS_DRC_OFF , wxEmptyString , wxBitmap ( drc_off_xpm ) ,
_ ( " Enable design rule checking " ) , wxITEM_CHECK ) ;
m_OptionsToolBar - > AddTool ( ID_TB_OPTIONS_SHOW_GRID , wxEmptyString , wxBitmap ( grid_xpm ) ,
_ ( " Hide grid " ) , wxITEM_CHECK ) ;
m_OptionsToolBar - > AddTool ( ID_TB_OPTIONS_SHOW_POLAR_COORD , wxEmptyString ,
wxBitmap ( polar_coord_xpm ) ,
@ -350,15 +327,11 @@ void WinEDA_PcbFrame::ReCreateOptToolbar()
m_OptionsToolBar - > AddRadioTool ( ID_TB_OPTIONS_SHOW_ZONES , wxEmptyString ,
wxBitmap ( show_zone_xpm ) , wxNullBitmap ,
_ ( " Show filled areas in zones " ) ) ;
m_OptionsToolBar - > AddRadioTool ( ID_TB_OPTIONS_SHOW_ZONES_DISABLE ,
wxEmptyString ,
m_OptionsToolBar - > AddRadioTool ( ID_TB_OPTIONS_SHOW_ZONES_DISABLE , wxEmptyString ,
wxBitmap ( show_zone_disable_xpm ) ,
wxNullBitmap ,
_ ( " Do not show filled areas in zones " ) ) ;
m_OptionsToolBar - > AddRadioTool ( ID_TB_OPTIONS_SHOW_ZONES_OUTLINES_ONLY ,
wxEmptyString ,
wxBitmap ( show_zone_outline_only_xpm ) ,
wxNullBitmap ,
wxNullBitmap , _ ( " Do not show filled areas in zones " ) ) ;
m_OptionsToolBar - > AddRadioTool ( ID_TB_OPTIONS_SHOW_ZONES_OUTLINES_ONLY , wxEmptyString ,
wxBitmap ( show_zone_outline_only_xpm ) , wxNullBitmap ,
_ ( " Show outlines of filled areas only in zones " ) ) ;
m_OptionsToolBar - > AddSeparator ( ) ;
@ -375,21 +348,18 @@ void WinEDA_PcbFrame::ReCreateOptToolbar()
_ ( " Show tracks in outline mode " ) ,
wxITEM_CHECK ) ;
m_OptionsToolBar - > AddTool ( ID_TB_OPTIONS_SHOW_HIGH_CONTRAST_MODE ,
wxEmptyString ,
m_OptionsToolBar - > AddTool ( ID_TB_OPTIONS_SHOW_HIGH_CONTRAST_MODE , wxEmptyString ,
wxBitmap ( palette_xpm ) ,
_ ( " Enable high contrast display mode " ) ,
wxITEM_CHECK ) ;
m_OptionsToolBar - > ToggleTool ( ID_TB_OPTIONS_SHOW_HIGH_CONTRAST_MODE ,
DisplayOpt . ContrastModeDisplay ) ;
// Tools to show/hide toolbars:
m_OptionsToolBar - > AddSeparator ( ) ;
m_OptionsToolBar - > AddTool ( ID_TB_OPTIONS_SHOW_MANAGE_LAYERS_VERTICAL_TOOLBAR ,
wxEmptyString ,
wxBitmap ( layers_manager_xpm ) ,
HELP_SHOW_HIDE_LAYERMANAGER ,
wxITEM_CHECK ) ;
wxEmptyString ,
wxBitmap ( layers_manager_xpm ) ,
HELP_SHOW_HIDE_LAYERMANAGER ,
wxITEM_CHECK ) ;
m_OptionsToolBar - > AddTool ( ID_TB_OPTIONS_SHOW_EXTRA_VERTICAL_TOOLBAR1 ,
wxEmptyString ,
wxBitmap ( mw_toolbar_xpm ) ,
@ -409,72 +379,57 @@ void WinEDA_PcbFrame::ReCreateVToolbar()
if ( m_VToolBar )
return ;
wxWindowUpdateLocker dummy ( this ) ;
wxWindowUpdateLocker dummy ( this ) ;
m_VToolBar = new WinEDA_Toolbar ( TOOLBAR_TOOL , this , ID_V_TOOLBAR , FALSE ) ;
m_VToolBar = new WinEDA_Toolbar ( TOOLBAR_TOOL , this , ID_V_TOOLBAR , false ) ;
// Set up toolbar
m_VToolBar - > AddTool ( ID_NO_SELECT_BUTT , wxEmptyString ,
wxBitmap ( cursor_xpm ) , wxEmptyString , wxITEM_CHECK ) ;
m_VToolBar - > ToggleTool ( ID_NO_SELECT_BUTT , true ) ;
m_VToolBar - > AddTool ( ID_PCB_NO_TOOL , wxEmptyString , wxBitmap ( cursor_xpm ) ,
wxEmptyString , wxITEM_CHECK ) ;
m_VToolBar - > AddSeparator ( ) ;
m_VToolBar - > AddTool ( ID_PCB_HIGHLIGHT_BUTT , wxEmptyString ,
wxBitmap ( net_highlight_xpm ) , _ ( " Highlight net " ) ,
wxITEM_CHECK ) ;
m_VToolBar - > AddTool ( ID_PCB_HIGHLIGHT_BUTT , wxEmptyString , wxBitmap ( net_highlight_xpm ) ,
_ ( " Highlight net " ) , wxITEM_CHECK ) ;
m_VToolBar - > AddTool ( ID_PCB_SHOW_1_RATSNEST_BUTT , wxEmptyString ,
wxBitmap ( tool_ratsnet_xpm ) ,
_ ( " Display local ratsnest " ) ,
wxITEM_CHECK ) ;
m_VToolBar - > AddTool ( ID_PCB_SHOW_1_RATSNEST_BUTT , wxEmptyString , wxBitmap ( tool_ratsnet_xpm ) ,
_ ( " Display local ratsnest " ) , wxITEM_CHECK ) ;
m_VToolBar - > AddSeparator ( ) ;
m_VToolBar - > AddTool ( ID_COMPONENT_BUTT , wxEmptyString ,
wxBitmap ( module_xpm ) ,
m_VToolBar - > AddTool ( ID_PCB_MODULE_BUTT , wxEmptyString , wxBitmap ( module_xpm ) ,
_ ( " Add modules " ) , wxITEM_CHECK ) ;
m_VToolBar - > AddTool ( ID_TRACK_BUTT , wxEmptyString ,
wxBitmap ( add_tracks_xpm ) ,
m_VToolBar - > AddTool ( ID_TRACK_BUTT , wxEmptyString , wxBitmap ( add_tracks_xpm ) ,
_ ( " Add tracks and vias " ) , wxITEM_CHECK ) ;
m_VToolBar - > AddTool ( ID_PCB_ZONES_BUTT , wxEmptyString ,
wxBitmap ( add_zone_xpm ) ,
m_VToolBar - > AddTool ( ID_PCB_ZONES_BUTT , wxEmptyString , wxBitmap ( add_zone_xpm ) ,
_ ( " Add filled zones " ) , wxITEM_CHECK ) ;
m_VToolBar - > AddSeparator ( ) ;
m_VToolBar - > AddTool ( ID_PCB_ADD_LINE_BUTT , wxEmptyString ,
wxBitmap ( add_dashed_line_xpm ) ,
m_VToolBar - > AddTool ( ID_PCB_ADD_LINE_BUTT , wxEmptyString , wxBitmap ( add_dashed_line_xpm ) ,
_ ( " Add graphic line or polygon " ) , wxITEM_CHECK ) ;
m_VToolBar - > AddTool ( ID_PCB_CIRCLE_BUTT , wxEmptyString ,
wxBitmap ( add_circle_xpm ) ,
m_VToolBar - > AddTool ( ID_PCB_CIRCLE_BUTT , wxEmptyString , wxBitmap ( add_circle_xpm ) ,
_ ( " Add graphic circle " ) , wxITEM_CHECK ) ;
m_VToolBar - > AddTool ( ID_PCB_ARC_BUTT , wxEmptyString ,
wxBitmap ( add_arc_xpm ) ,
m_VToolBar - > AddTool ( ID_PCB_ARC_BUTT , wxEmptyString , wxBitmap ( add_arc_xpm ) ,
_ ( " Add graphic arc " ) , wxITEM_CHECK ) ;
m_VToolBar - > AddTool ( ID_PCB_ADD_TEXT_BUTT , wxEmptyString ,
wxBitmap ( add_text_xpm ) ,
m_VToolBar - > AddTool ( ID_PCB_ADD_TEXT_BUTT , wxEmptyString , wxBitmap ( add_text_xpm ) ,
_ ( " Add text on copper layers or graphic text " ) , wxITEM_CHECK ) ;
m_VToolBar - > AddSeparator ( ) ;
m_VToolBar - > AddTool ( ID_PCB_DIMENSION_BUTT , wxEmptyString ,
wxBitmap ( add_dimension_xpm ) ,
m_VToolBar - > AddTool ( ID_PCB_DIMENSION_BUTT , wxEmptyString , wxBitmap ( add_dimension_xpm ) ,
_ ( " Add dimension " ) , wxITEM_CHECK ) ;
m_VToolBar - > AddTool ( ID_PCB_MIRE_BUTT , wxEmptyString ,
wxBitmap ( add_mires_xpm ) ,
m_VToolBar - > AddTool ( ID_PCB_MIRE_BUTT , wxEmptyString , wxBitmap ( add_mires_xpm ) ,
_ ( " Add layer alignment target " ) , wxITEM_CHECK ) ;
m_VToolBar - > AddSeparator ( ) ;
m_VToolBar - > AddTool ( ID_PCB_DELETE_ITEM_BUTT , wxEmptyString ,
wxBitmap ( delete_body_xpm ) ,
m_VToolBar - > AddTool ( ID_PCB_DELETE_ITEM_BUTT , wxEmptyString , wxBitmap ( delete_body_xpm ) ,
_ ( " Delete items " ) , wxITEM_CHECK ) ;
m_VToolBar - > AddSeparator ( ) ;
m_VToolBar - > AddTool ( ID_PCB_PLACE_OFFSET_COORD_BUTT , wxEmptyString ,
wxBitmap ( pcb_offset_xpm ) ,
m_VToolBar - > AddTool ( ID_PCB_PLACE_OFFSET_COORD_BUTT , wxEmptyString , wxBitmap ( pcb_offset_xpm ) ,
_ ( " Place the origin point for drill and place files " ) ,
wxITEM_CHECK ) ;
@ -497,8 +452,7 @@ void WinEDA_PcbFrame::ReCreateMicrowaveVToolbar()
wxWindowUpdateLocker dummy ( this ) ;
m_AuxVToolBar = new WinEDA_Toolbar ( TOOLBAR_TOOL , this ,
ID_MICROWAVE_V_TOOLBAR , FALSE ) ;
m_AuxVToolBar = new WinEDA_Toolbar ( TOOLBAR_TOOL , this , ID_MICROWAVE_V_TOOLBAR , false ) ;
// Set up toolbar
m_AuxVToolBar - > AddTool ( ID_PCB_MUWAVE_TOOL_SELF_CMD , wxEmptyString ,
@ -539,149 +493,189 @@ void WinEDA_PcbFrame::ReCreateMicrowaveVToolbar()
*/
void WinEDA_PcbFrame : : ReCreateAuxiliaryToolbar ( )
{
size_t i ;
wxString msg ;
wxWindowUpdateLocker dummy ( this ) ;
wxWindowUpdateLocker dummy ( this ) ;
if ( m_AuxiliaryToolBar = = NULL )
{
m_AuxiliaryToolBar = new WinEDA_Toolbar ( TOOLBAR_AUX , this ,
ID_AUX_TOOLBAR , true ) ;
m_TrackAndViasSizesList_Changed = true ;
/* Set up toolbar items */
// Creates box to display and choose tracks widths:
m_SelTrackWidthBox = new WinEDAChoiceBox ( m_AuxiliaryToolBar ,
ID_AUX_TOOLBAR_PCB_TRACK_WIDTH ,
wxPoint ( - 1 , - 1 ) ,
wxSize ( LISTBOX_WIDTH , - 1 ) ) ;
m_AuxiliaryToolBar - > AddControl ( m_SelTrackWidthBox ) ;
m_AuxiliaryToolBar - > AddSeparator ( ) ;
// Creates box to display and choose vias diameters:
m_SelViaSizeBox = new WinEDAChoiceBox ( m_AuxiliaryToolBar ,
ID_AUX_TOOLBAR_PCB_VIA_SIZE ,
wxPoint ( - 1 , - 1 ) ,
wxSize ( ( LISTBOX_WIDTH * 12 ) / 10 , - 1 ) ) ;
m_AuxiliaryToolBar - > AddControl ( m_SelViaSizeBox ) ;
m_AuxiliaryToolBar - > AddSeparator ( ) ;
// Creates box to display tracks and vias clearance:
m_ClearanceBox = new wxTextCtrl ( m_AuxiliaryToolBar , - 1 ,
wxEmptyString , wxPoint ( - 1 , - 1 ) ,
wxSize ( LISTBOX_WIDTH + 10 , - 1 ) ,
wxTE_READONLY ) ;
m_ClearanceBox - > SetToolTip ( _ ( " Current NetClass clearance value " ) ) ;
m_AuxiliaryToolBar - > AddControl ( m_ClearanceBox ) ;
m_AuxiliaryToolBar - > AddSeparator ( ) ;
// Creates box to display the current NetClass:
m_NetClassSelectedBox = new wxTextCtrl ( m_AuxiliaryToolBar , - 1 ,
wxEmptyString , wxPoint ( - 1 , - 1 ) ,
wxSize ( LISTBOX_WIDTH , - 1 ) ,
wxTE_READONLY ) ;
m_NetClassSelectedBox - > SetToolTip ( _ ( " Name of the current NetClass " ) ) ;
m_AuxiliaryToolBar - > AddControl ( m_NetClassSelectedBox ) ;
m_AuxiliaryToolBar - > AddSeparator ( ) ;
// Creates box to display and choose strategy to handle tracks an
// vias sizes:
m_AuxiliaryToolBar - > AddTool ( ID_AUX_TOOLBAR_PCB_SELECT_AUTO_WIDTH ,
wxEmptyString ,
wxBitmap ( auto_track_width_xpm ) ,
_ ( " Auto track width: when starting on \
if ( m_AuxiliaryToolBar )
return ;
m_AuxiliaryToolBar = new WinEDA_Toolbar ( TOOLBAR_AUX , this , ID_AUX_TOOLBAR , true ) ;
m_TrackAndViasSizesList_Changed = true ;
/* Set up toolbar items */
// Creates box to display and choose tracks widths:
m_SelTrackWidthBox = new WinEDAChoiceBox ( m_AuxiliaryToolBar ,
ID_AUX_TOOLBAR_PCB_TRACK_WIDTH ,
wxPoint ( - 1 , - 1 ) ,
wxSize ( LISTBOX_WIDTH , - 1 ) ) ;
m_AuxiliaryToolBar - > AddControl ( m_SelTrackWidthBox ) ;
m_AuxiliaryToolBar - > AddSeparator ( ) ;
// Creates box to display and choose vias diameters:
m_SelViaSizeBox = new WinEDAChoiceBox ( m_AuxiliaryToolBar ,
ID_AUX_TOOLBAR_PCB_VIA_SIZE ,
wxPoint ( - 1 , - 1 ) ,
wxSize ( ( LISTBOX_WIDTH * 12 ) / 10 , - 1 ) ) ;
m_AuxiliaryToolBar - > AddControl ( m_SelViaSizeBox ) ;
m_AuxiliaryToolBar - > AddSeparator ( ) ;
// Creates box to display tracks and vias clearance:
m_ClearanceBox = new wxTextCtrl ( m_AuxiliaryToolBar , - 1 ,
wxEmptyString , wxPoint ( - 1 , - 1 ) ,
wxSize ( LISTBOX_WIDTH + 10 , - 1 ) ,
wxTE_READONLY ) ;
m_ClearanceBox - > SetToolTip ( _ ( " Current NetClass clearance value " ) ) ;
m_AuxiliaryToolBar - > AddControl ( m_ClearanceBox ) ;
m_AuxiliaryToolBar - > AddSeparator ( ) ;
// Creates box to display the current NetClass:
m_NetClassSelectedBox = new wxTextCtrl ( m_AuxiliaryToolBar , - 1 ,
wxEmptyString , wxPoint ( - 1 , - 1 ) ,
wxSize ( LISTBOX_WIDTH , - 1 ) ,
wxTE_READONLY ) ;
m_NetClassSelectedBox - > SetToolTip ( _ ( " Name of the current NetClass " ) ) ;
m_AuxiliaryToolBar - > AddControl ( m_NetClassSelectedBox ) ;
m_AuxiliaryToolBar - > AddSeparator ( ) ;
// Creates box to display and choose strategy to handle tracks an vias sizes:
m_AuxiliaryToolBar - > AddTool ( ID_AUX_TOOLBAR_PCB_SELECT_AUTO_WIDTH ,
wxEmptyString ,
wxBitmap ( auto_track_width_xpm ) ,
_ ( " Auto track width: when starting on \
an existing track use its width \ notherwise , use current width setting " ),
wxITEM_CHECK ) ;
// Add the box to display and select the current grid size:
m_AuxiliaryToolBar - > AddSeparator ( ) ;
m_SelGridBox = new WinEDAChoiceBox ( m_AuxiliaryToolBar ,
ID_ON_GRID_SELECT ,
wxPoint ( - 1 , - 1 ) ,
wxSize ( LISTBOX_WIDTH , - 1 ) ) ;
m_AuxiliaryToolBar - > AddControl ( m_SelGridBox ) ;
// Add the box to display and select the current Zoom
m_AuxiliaryToolBar - > AddSeparator ( ) ;
m_SelZoomBox = new WinEDAChoiceBox ( m_AuxiliaryToolBar ,
ID_ON_ZOOM_SELECT ,
wxPoint ( - 1 , - 1 ) ,
wxSize ( LISTBOX_WIDTH , - 1 ) ) ;
msg = _ ( " Auto " ) ;
m_SelZoomBox - > Append ( msg ) ;
for ( int i = 0 ; i < ( int ) GetScreen ( ) - > m_ZoomList . GetCount ( ) ; i + + )
{
msg = _ ( " Zoom " ) ;
if ( ( GetScreen ( ) - > m_ZoomList [ i ] % GetScreen ( ) - > m_ZoomScalar ) = = 0 )
msg < < GetScreen ( ) - > m_ZoomList [ i ] / GetScreen ( ) - > m_ZoomScalar ;
else
{
wxString value ;
value . Printf ( wxT ( " %.1f " ) ,
( float ) GetScreen ( ) - > m_ZoomList [ i ] /
GetScreen ( ) - > m_ZoomScalar ) ;
msg + = value ;
}
m_SelZoomBox - > Append ( msg ) ;
}
wxITEM_CHECK ) ;
// Add the box to display and select the current grid size:
m_AuxiliaryToolBar - > AddSeparator ( ) ;
m_SelGridBox = new WinEDAChoiceBox ( m_AuxiliaryToolBar ,
ID_ON_GRID_SELECT ,
wxPoint ( - 1 , - 1 ) ,
wxSize ( LISTBOX_WIDTH , - 1 ) ) ;
m_AuxiliaryToolBar - > AddControl ( m_SelGridBox ) ;
// Add the box to display and select the current Zoom
m_AuxiliaryToolBar - > AddSeparator ( ) ;
m_SelZoomBox = new WinEDAChoiceBox ( m_AuxiliaryToolBar ,
ID_ON_ZOOM_SELECT ,
wxPoint ( - 1 , - 1 ) ,
wxSize ( LISTBOX_WIDTH , - 1 ) ) ;
m_AuxiliaryToolBar - > AddControl ( m_SelZoomBox ) ;
m_AuxiliaryToolBar - > AddControl ( m_SelZoomBox ) ;
updateZoomSelectBox ( ) ;
updateGridSelectBox ( ) ;
updateTraceWidthSelectBox ( ) ;
updateViaSizeSelectBox ( ) ;
updateDesignRulesSelectBoxes ( ) ;
// after adding the buttons to the toolbar, must call Realize()
m_AuxiliaryToolBar - > Realize ( ) ;
// after adding the buttons to the toolbar, must call Realize()
m_AuxiliaryToolBar - > Realize ( ) ;
m_TrackAndViasSizesList_Changed = true ;
m_AuxiliaryToolBar - > AddSeparator ( ) ;
}
/* helper to convert an integer value to a string, using mils or mm
* according to g_UserUnit value
*/
static wxString ReturnStringValue ( int aValue )
{
wxString text ;
const wxChar * format ;
double value = To_User_Unit ( g_UserUnit , aValue , PCB_INTERNAL_UNIT ) ;
if ( g_UserUnit = = INCHES )
{
format = wxT ( " %.1f " ) ;
value * = 1000 ;
}
else
format = wxT ( " %.3f " ) ;
text . Printf ( format , value ) ;
if ( g_UserUnit = = INCHES )
text + = _ ( " mils " ) ;
else
text + = _ ( " mm " ) ;
// Update displayed values
m_SelGridBox - > Clear ( ) ;
wxString format = _ ( " Grid " ) ;
switch ( g_UserUnit )
return text ;
}
void WinEDA_PcbFrame : : updateTraceWidthSelectBox ( )
{
if ( m_SelTrackWidthBox = = NULL )
return ;
wxString msg ;
m_SelTrackWidthBox - > Clear ( ) ;
for ( unsigned ii = 0 ; ii < GetBoard ( ) - > m_TrackWidthList . size ( ) ; ii + + )
{
case INCHES :
format + = wxT ( " %.1f " ) ;
break ;
msg = _ ( " Track " ) + ReturnStringValue ( GetBoard ( ) - > m_TrackWidthList [ ii ] ) ;
case MILLIMETRES :
format + = wxT ( " %.3f " ) ;
break ;
if ( ii = = 0 )
msg < < _ ( " * " ) ;
case UNSCALED_UNITS :
format + = wxT ( " %f " ) ;
break ;
m_SelTrackWidthBox - > Append ( msg ) ;
}
}
for ( i = 0 ; i < GetScreen ( ) - > GetGridCount ( ) ; i + + )
void WinEDA_PcbFrame : : updateViaSizeSelectBox ( )
{
if ( m_SelViaSizeBox = = NULL )
return ;
wxString msg ;
m_SelViaSizeBox - > Clear ( ) ;
for ( unsigned ii = 0 ; ii < GetBoard ( ) - > m_ViasDimensionsList . size ( ) ; ii + + )
{
GRID_TYPE & grid = GetScreen ( ) - > GetGrid ( i ) ;
double value = To_User_Unit ( g_UserUnit , grid . m_Size . x , m_InternalUnits ) ;
msg = _ ( " Via " ) ;
msg < < ReturnStringValue ( GetBoard ( ) - > m_ViasDimensionsList [ ii ] . m_Diameter ) ;
if ( grid . m_Id ! = ID_POPUP_GRID_USER )
{
switch ( g_UserUnit )
{
case INCHES :
msg . Printf ( format . GetData ( ) , value * 1000 ) ;
break ;
case MILLIMETRES :
case UNSCALED_UNITS :
msg . Printf ( format . GetData ( ) , value ) ;
break ;
}
}
else
msg = _ ( " User Grid " ) ;
if ( GetBoard ( ) - > m_ViasDimensionsList [ ii ] . m_Drill )
msg < < wxT ( " / " ) < < ReturnStringValue ( GetBoard ( ) - > m_ViasDimensionsList [ ii ] . m_Drill ) ;
m_SelGridBox - > Append ( msg , ( void * ) & grid . m_Id ) ;
if ( ii = = 0 )
msg < < _ ( " * " ) ;
if ( m_LastGridSizeId = = GetScreen ( ) - > GetGrid ( i ) . m_Id )
m_SelGridBox - > SetSelection ( i ) ;
m_SelViaSizeBox - > Append ( msg ) ;
}
}
m_TrackAndViasSizesList_Changed = true ;
m_AuxiliaryToolBar - > AddSeparator ( ) ;
/**
* Function updateDesignRulesSelectBoxes
* update the displayed values : track widths , via sizes , clearance , Netclass name
* used when a netclass is selected
*/
void WinEDA_PcbFrame : : updateDesignRulesSelectBoxes ( )
{
wxString nclname = GetBoard ( ) - > m_CurrentNetClassName ;
wxString msg = _ ( " NetClass: " ) + nclname ;
if ( m_NetClassSelectedBox )
{
m_NetClassSelectedBox - > Clear ( ) ;
m_NetClassSelectedBox - > AppendText ( msg ) ;
}
NETCLASS * netclass = GetBoard ( ) - > m_NetClasses . Find ( nclname ) ;
if ( m_ClearanceBox )
{
wxString msg = _ ( " Clearance " ) + ReturnStringValue ( netclass - > GetClearance ( ) ) ;
m_ClearanceBox - > Clear ( ) ;
m_ClearanceBox - > AppendText ( msg ) ;
}
}