Mac needs different font size handling than MSW & GTK.

Mac already uses diverse font sizes (for instance, smaller fonts for
radio button groups), and the anti-aliasing is a lot better.  The
other platforms need a more limited range of sizes.

Fixes https://gitlab.com/kicad/code/kicad/issues/8608
This commit is contained in:
Jeff Young 2021-09-11 20:07:33 +01:00
parent 769ca2d255
commit 9c78e4cf54
32 changed files with 121 additions and 87 deletions

View File

@ -136,7 +136,7 @@ PANEL_SETUP_NETCLASSES::PANEL_SETUP_NETCLASSES( PAGED_DIALOG* aParent, NETCLASSE
attr->SetEditor( new GRID_CELL_ICON_TEXT_POPUP( g_lineStyleIcons, g_lineStyleNames ) ); attr->SetEditor( new GRID_CELL_ICON_TEXT_POPUP( g_lineStyleIcons, g_lineStyleNames ) );
m_netclassGrid->SetColAttr( GRID_LINESTYLE, attr ); m_netclassGrid->SetColAttr( GRID_LINESTYLE, attr );
m_colorDefaultHelpText->SetFont( KIUI::GetGUIFont( this, -1 ) ); m_colorDefaultHelpText->SetFont( KIUI::GetInfoFont( this ) );
} }
else else
{ {

View File

@ -145,7 +145,7 @@ EDA_DRAW_FRAME::EDA_DRAW_FRAME( KIWAY* aKiway, wxWindow* aParent, FRAME_T aFrame
}; };
SetStatusWidths( arrayDim( dims ), dims ); SetStatusWidths( arrayDim( dims ), dims );
stsbar->SetFont( KIUI::GetGUIFont( this, -2 ) ); stsbar->SetFont( KIUI::GetStatusFont( this ) );
// Create child subwindows. // Create child subwindows.
GetClientSize( &m_frameSize.x, &m_frameSize.y ); GetClientSize( &m_frameSize.x, &m_frameSize.y );

View File

@ -43,7 +43,7 @@ EDA_MSG_PANEL::EDA_MSG_PANEL( wxWindow* aParent, int aId,
long style, const wxString &name ) : long style, const wxString &name ) :
wxPanel( aParent, aId, aPosition, aSize, style, name ) wxPanel( aParent, aId, aPosition, aSize, style, name )
{ {
SetFont( KIUI::GetGUIFont( this, -2 ) ); SetFont( KIUI::GetStatusFont( this ) );
SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) ); SetBackgroundColour( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
// informs wx not to paint the background itself as we will paint it later in erase() // informs wx not to paint the background itself as we will paint it later in erase()
@ -90,7 +90,7 @@ void EDA_MSG_PANEL::OnPaint( wxPaintEvent& aEvent )
dc.SetBackground( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) ); dc.SetBackground( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
dc.SetBackgroundMode( wxSOLID ); dc.SetBackgroundMode( wxSOLID );
dc.SetTextBackground( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) ); dc.SetTextBackground( wxSystemSettings::GetColour( wxSYS_COLOUR_BTNFACE ) );
dc.SetFont( KIUI::GetGUIFont( this ) ); dc.SetFont( KIUI::GetControlFont( this ) );
for( const MSG_PANEL_ITEM& item : m_Items ) for( const MSG_PANEL_ITEM& item : m_Items )
showItem( dc, item ); showItem( dc, item );

View File

@ -95,15 +95,10 @@ wxFont KIUI::GetMonospacedUIFont()
} }
wxFont KIUI::GetGUIFont( wxWindow* aWindow, int aRelativeSize ) wxFont getGUIFont( wxWindow* aWindow, int aRelativeSize )
{ {
wxFont font = aWindow->GetFont(); wxFont font = aWindow->GetFont();
#ifdef __WXMSW__
// -2 is too small on MSW
aRelativeSize = std::max( aRelativeSize, -1 );
#endif
font.SetPointSize( font.GetPointSize() + aRelativeSize ); font.SetPointSize( font.GetPointSize() + aRelativeSize );
// Both wxFont::SetSymbolicSize() and wxWindow::ConvertDialogToPixels() fail on some GTKs // Both wxFont::SetSymbolicSize() and wxWindow::ConvertDialogToPixels() fail on some GTKs
@ -131,6 +126,30 @@ wxFont KIUI::GetGUIFont( wxWindow* aWindow, int aRelativeSize )
} }
wxFont KIUI::GetStatusFont( wxWindow* aWindow )
{
#ifdef __WXMAC__
int scale = -2;
#else
int scale = -1;
#endif
return getGUIFont( aWindow, scale );
}
wxFont KIUI::GetInfoFont( wxWindow* aWindow )
{
return getGUIFont( aWindow, -1 );
}
wxFont KIUI::GetControlFont( wxWindow* aWindow )
{
return getGUIFont( aWindow, 0 );
}
bool KIUI::EnsureTextCtrlWidth( wxTextCtrl* aCtrl, const wxString* aString ) bool KIUI::EnsureTextCtrlWidth( wxTextCtrl* aCtrl, const wxString* aString )
{ {
wxWindow* window = aCtrl->GetParent(); wxWindow* window = aCtrl->GetParent();

View File

@ -40,7 +40,7 @@ WX_GRID::WX_GRID( wxWindow *parent, wxWindowID id, const wxPoint& pos, const wxS
SetDefaultCellOverflow( false ); SetDefaultCellOverflow( false );
// Make sure the GUI font scales properly on GTK // Make sure the GUI font scales properly on GTK
SetDefaultCellFont( KIUI::GetGUIFont( this ) ); SetDefaultCellFont( KIUI::GetControlFont( this ) );
} }
@ -60,7 +60,7 @@ void WX_GRID::SetColLabelSize( int aHeight )
} }
// Make sure the GUI font scales properly on GTK // Make sure the GUI font scales properly on GTK
wxFont headingFont = KIUI::GetGUIFont( this ); wxFont headingFont = KIUI::GetControlFont( this );
headingFont.MakeBold(); headingFont.MakeBold();
SetLabelFont( headingFont ); SetLabelFont( headingFont );

View File

@ -132,9 +132,9 @@ CVPCB_MAINFRAME::CVPCB_MAINFRAME( KIWAY* aKiway, wxWindow* aParent ) :
wxStaticLine* staticline1 = new wxStaticLine( bottomPanel ); wxStaticLine* staticline1 = new wxStaticLine( bottomPanel );
panelSizer->Add( staticline1, 0, wxEXPAND, 5 ); panelSizer->Add( staticline1, 0, wxEXPAND, 5 );
m_statusLine1->SetFont( KIUI::GetGUIFont( this, -1 ) ); m_statusLine1->SetFont( KIUI::GetStatusFont( this ) );
m_statusLine2->SetFont( KIUI::GetGUIFont( this, -1 ) ); m_statusLine2->SetFont( KIUI::GetStatusFont( this ) );
m_statusLine3->SetFont( KIUI::GetGUIFont( this, -1 ) ); m_statusLine3->SetFont( KIUI::GetStatusFont( this ) );
// Add buttons: // Add buttons:
auto buttonsSizer = new wxBoxSizer( wxHORIZONTAL ); auto buttonsSizer = new wxBoxSizer( wxHORIZONTAL );

View File

@ -37,8 +37,8 @@ DIALOG_JUNCTION_PROPS::DIALOG_JUNCTION_PROPS( SCH_EDIT_FRAME* aParent,
m_colorSwatch->SetDefaultColor( COLOR4D::UNSPECIFIED ); m_colorSwatch->SetDefaultColor( COLOR4D::UNSPECIFIED );
m_helpLabel1->SetFont( KIUI::GetGUIFont( this, -1 ) ); m_helpLabel1->SetFont( KIUI::GetInfoFont( this ) );
m_helpLabel2->SetFont( KIUI::GetGUIFont( this, -1 ) ); m_helpLabel2->SetFont( KIUI::GetInfoFont( this ) );
SetInitialFocus( m_textCtrlDiameter ); SetInitialFocus( m_textCtrlDiameter );

View File

@ -45,7 +45,7 @@ DIALOG_LIB_TEXT_PROPERTIES::DIALOG_LIB_TEXT_PROPERTIES( SYMBOL_EDIT_FRAME* aPare
m_TextValueSelectButton->Hide(); m_TextValueSelectButton->Hide();
m_PowerComponentValues->Show( false ); m_PowerComponentValues->Show( false );
m_PowerComponentValues->SetFont( KIUI::GetGUIFont( this, -1 ) ); m_PowerComponentValues->SetFont( KIUI::GetInfoFont( this ) );
SetInitialFocus( m_TextCtrl ); SetInitialFocus( m_TextCtrl );
m_StyledTextCtrl->Show( false ); m_StyledTextCtrl->Show( false );

View File

@ -64,8 +64,8 @@ DIALOG_LINE_WIRE_BUS_PROPERTIES::DIALOG_LINE_WIRE_BUS_PROPERTIES( SCH_EDIT_FRAME
m_colorSwatch->SetDefaultColor( COLOR4D::UNSPECIFIED ); m_colorSwatch->SetDefaultColor( COLOR4D::UNSPECIFIED );
m_helpLabel1->SetFont( KIUI::GetGUIFont( this, -1 ) ); m_helpLabel1->SetFont( KIUI::GetInfoFont( this ) );
m_helpLabel2->SetFont( KIUI::GetGUIFont( this, -1 ) ); m_helpLabel2->SetFont( KIUI::GetInfoFont( this ) );
SetInitialFocus( m_lineWidth ); SetInitialFocus( m_lineWidth );

View File

@ -81,7 +81,7 @@ DIALOG_SHEET_PROPERTIES::DIALOG_SHEET_PROPERTIES( SCH_EDIT_FRAME* aParent, SCH_S
m_bpMoveDown->SetBitmap( KiBitmap( BITMAPS::small_down ) ); m_bpMoveDown->SetBitmap( KiBitmap( BITMAPS::small_down ) );
// Set font sizes // Set font sizes
m_hierarchicalPathLabel->SetFont( KIUI::GetGUIFont( this, -2 ) ); m_hierarchicalPathLabel->SetFont( KIUI::GetInfoFont( this ) );
// wxFormBuilder doesn't include this event... // wxFormBuilder doesn't include this event...
m_grid->Connect( wxEVT_GRID_CELL_CHANGING, m_grid->Connect( wxEVT_GRID_CELL_CHANGING,

View File

@ -116,8 +116,8 @@ DIALOG_TEXT_AND_LABEL_PROPERTIES::DIALOG_TEXT_AND_LABEL_PROPERTIES( SCH_EDIT_FRA
if( m_CurrentText->Type() == SCH_GLOBAL_LABEL_T ) if( m_CurrentText->Type() == SCH_GLOBAL_LABEL_T )
{ {
m_note1->SetFont( KIUI::GetGUIFont( this, -1 ) ); m_note1->SetFont( KIUI::GetInfoFont( this ) );
m_note2->SetFont( KIUI::GetGUIFont( this, -1 ) ); m_note2->SetFont( KIUI::GetInfoFont( this ) );
} }
else else
{ {

View File

@ -37,7 +37,7 @@ PANEL_EESCHEMA_DISPLAY_OPTIONS::PANEL_EESCHEMA_DISPLAY_OPTIONS( SCH_EDIT_FRAME*
m_galOptionsSizer->Add( m_galOptsPanel, 1, wxEXPAND, 0 ); m_galOptionsSizer->Add( m_galOptsPanel, 1, wxEXPAND, 0 );
m_highlightColorNote->SetFont( KIUI::GetGUIFont( this, -1 ) ); m_highlightColorNote->SetFont( KIUI::GetInfoFont( this ) );
} }

View File

@ -52,7 +52,9 @@ wxSize GetTextSize( const wxString& aSingleLine, wxWindow* aWindow );
wxFont GetMonospacedUIFont(); wxFont GetMonospacedUIFont();
wxFont GetGUIFont( wxWindow* aWindow, int aRelativeSize = 0 ); wxFont GetControlFont( wxWindow* aWindow );
wxFont GetInfoFont( wxWindow* aWindow );
wxFont GetStatusFont( wxWindow* aWindow );
/** /**
* Set the minimum pixel width on a text control in order to make a text * Set the minimum pixel width on a text control in order to make a text

View File

@ -126,7 +126,7 @@ KICAD_MANAGER_FRAME::KICAD_MANAGER_FRAME( wxWindow* parent, const wxString& titl
// Create the status line (bottom of the frame). Left half is for project name; right half // Create the status line (bottom of the frame). Left half is for project name; right half
// is for Reporter (currently used by archiver/unarchiver). // is for Reporter (currently used by archiver/unarchiver).
CreateStatusBar( 2 ); CreateStatusBar( 2 );
GetStatusBar()->SetFont( KIUI::GetGUIFont( this, -2 ) ); GetStatusBar()->SetFont( KIUI::GetStatusFont( this ) );
// Give an icon // Give an icon
wxIcon icon; wxIcon icon;

View File

@ -49,7 +49,7 @@ PROJECT_TREE::PROJECT_TREE( PROJECT_TREE_PANE* parent ) :
m_projectTreePane = parent; m_projectTreePane = parent;
// Make sure the GUI font scales properly on GTK // Make sure the GUI font scales properly on GTK
SetFont( KIUI::GetGUIFont( this ) ); SetFont( KIUI::GetControlFont( this ) );
// icons size is not know (depending on they are built) // icons size is not know (depending on they are built)
// so get it: // so get it:

View File

@ -78,7 +78,7 @@ PROPERTIES_FRAME::PROPERTIES_FRAME( PL_EDITOR_FRAME* aParent ) :
m_stcText->SetUseHorizontalScrollBar( false ); m_stcText->SetUseHorizontalScrollBar( false );
m_scintillaTricks = new SCINTILLA_TRICKS( m_stcText, wxT( "{}" ), false ); m_scintillaTricks = new SCINTILLA_TRICKS( m_stcText, wxT( "{}" ), false );
m_staticTextSizeInfo->SetFont( KIUI::GetGUIFont( this, -1 ) ); m_staticTextSizeInfo->SetFont( KIUI::GetInfoFont( this ) );
m_buttonOK->SetDefault(); m_buttonOK->SetDefault();

View File

@ -74,7 +74,7 @@ PCB_CALCULATOR_FRAME::PCB_CALCULATOR_FRAME( KIWAY* aKiway, wxWindow* aParent ) :
m_attenuator_list.push_back( new ATTENUATOR_SPLITTER() ); m_attenuator_list.push_back( new ATTENUATOR_SPLITTER() );
m_currAttenuator = m_attenuator_list[0]; m_currAttenuator = m_attenuator_list[0];
m_staticTextAttMsg->SetFont( KIUI::GetGUIFont( this, -1 ) ); m_staticTextAttMsg->SetFont( KIUI::GetInfoFont( this ) );
m_IadjUnitLabel->SetLabel( wxT( "µA" ) ); m_IadjUnitLabel->SetLabel( wxT( "µA" ) );

View File

@ -91,7 +91,7 @@ DIALOG_BOARD_STATISTICS::DIALOG_BOARD_STATISTICS( PCB_EDIT_FRAME* aParentFrame )
m_checkBoxSubtractHoles->SetValue( s_savedDialogState.subtractHoles ); m_checkBoxSubtractHoles->SetValue( s_savedDialogState.subtractHoles );
// Make labels for grids // Make labels for grids
wxFont headingFont = KIUI::GetGUIFont( this, -1 ); wxFont headingFont = KIUI::GetStatusFont( this );
m_gridComponents->SetCellValue( ROW_LABEL, COL_FRONT_SIDE, _( "Front Side" ) ); m_gridComponents->SetCellValue( ROW_LABEL, COL_FRONT_SIDE, _( "Front Side" ) );
m_gridComponents->SetCellFont( ROW_LABEL, COL_FRONT_SIDE, headingFont ); m_gridComponents->SetCellFont( ROW_LABEL, COL_FRONT_SIDE, headingFont );
m_gridComponents->SetCellValue( ROW_LABEL, COL_BOTTOM_SIDE, _( "Back Side" ) ); m_gridComponents->SetCellValue( ROW_LABEL, COL_BOTTOM_SIDE, _( "Back Side" ) );

View File

@ -109,7 +109,7 @@ DIALOG_FOOTPRINT_PROPERTIES::DIALOG_FOOTPRINT_PROPERTIES( PCB_EDIT_FRAME* aParen
m_orientValidator.SetWindow( m_OrientValueCtrl ); m_orientValidator.SetWindow( m_OrientValueCtrl );
// Set font size for items showing long strings: // Set font size for items showing long strings:
wxFont infoFont = KIUI::GetGUIFont( this, -1 ); wxFont infoFont = KIUI::GetInfoFont( this );
#if __WXMAC__ #if __WXMAC__
m_allow90Label->SetFont( infoFont ); m_allow90Label->SetFont( infoFont );
m_allow180Label->SetFont( infoFont ); m_allow180Label->SetFont( infoFont );

View File

@ -100,7 +100,7 @@ DIALOG_FOOTPRINT_PROPERTIES_FP_EDITOR::DIALOG_FOOTPRINT_PROPERTIES_FP_EDITOR(
m_FootprintNameCtrl->SetValidator( FOOTPRINT_NAME_VALIDATOR() ); m_FootprintNameCtrl->SetValidator( FOOTPRINT_NAME_VALIDATOR() );
// Set font sizes // Set font sizes
wxFont infoFont = KIUI::GetGUIFont( this, -1 ); wxFont infoFont = KIUI::GetInfoFont( this );
#if __WXMAC__ #if __WXMAC__
m_allow90Label->SetFont( infoFont ); m_allow90Label->SetFont( infoFont );
m_allow180Label->SetFont( infoFont ); m_allow180Label->SetFont( infoFont );

View File

@ -46,7 +46,7 @@ public:
m_sdbSizerOK->SetDefault(); m_sdbSizerOK->SetDefault();
m_choiceFpList->Append( aFpList ); m_choiceFpList->Append( aFpList );
m_multipleHint->SetFont( KIUI::GetGUIFont( this, -1 ) ); m_multipleHint->SetFont( KIUI::GetInfoFont( this ) );
// Hide help string until someone implements successive placement (#2227) // Hide help string until someone implements successive placement (#2227)
m_multipleHint->Show( false ); m_multipleHint->Show( false );

View File

@ -139,7 +139,7 @@ DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS::DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS( PCB_
m_LayerCtrl->Resync(); m_LayerCtrl->Resync();
m_grid->SetCellHighlightPenWidth( 0 ); m_grid->SetCellHighlightPenWidth( 0 );
m_grid->SetDefaultCellFont( KIUI::GetGUIFont( this, -1 ) ); m_grid->SetDefaultCellFont( KIUI::GetInfoFont( this ) );
m_sdbSizerButtonsOK->SetDefault(); m_sdbSizerButtonsOK->SetDefault();

View File

@ -129,7 +129,7 @@ DIALOG_GLOBAL_EDIT_TRACKS_AND_VIAS::DIALOG_GLOBAL_EDIT_TRACKS_AND_VIAS( PCB_EDIT
m_layerBox->SetUndefinedLayerName( INDETERMINATE_ACTION ); m_layerBox->SetUndefinedLayerName( INDETERMINATE_ACTION );
m_layerBox->Resync(); m_layerBox->Resync();
m_netclassGrid->SetDefaultCellFont( KIUI::GetGUIFont( this, -1 ) ); m_netclassGrid->SetDefaultCellFont( KIUI::GetInfoFont( this ) );
buildNetclassesGrid(); buildNetclassesGrid();
m_netclassGrid->SetCellHighlightPenWidth( 0 ); m_netclassGrid->SetCellHighlightPenWidth( 0 );

View File

@ -205,7 +205,7 @@ DIALOG_PAD_PROPERTIES::DIALOG_PAD_PROPERTIES( PCB_BASE_FRAME* aParent, PAD* aPad
initValues(); initValues();
wxFont infoFont = KIUI::GetGUIFont( this, -1 ); wxFont infoFont = KIUI::GetInfoFont( this );
m_copperLayersLabel->SetFont( infoFont ); m_copperLayersLabel->SetFont( infoFont );
m_techLayersLabel->SetFont( infoFont ); m_techLayersLabel->SetFont( infoFont );
m_parentInfo->SetFont( infoFont ); m_parentInfo->SetFont( infoFont );

View File

@ -131,7 +131,7 @@ DIALOG_TEXT_PROPERTIES::DIALOG_TEXT_PROPERTIES( PCB_BASE_EDIT_FRAME* aParent, BO
m_OrientCtrl->SetString( ii, wxString::Format( "%.1f", rot_list[ii] ) ); m_OrientCtrl->SetString( ii, wxString::Format( "%.1f", rot_list[ii] ) );
// Set font sizes // Set font sizes
m_statusLine->SetFont( KIUI::GetGUIFont( this, -2 ) ); m_statusLine->SetFont( KIUI::GetInfoFont( this ) );
m_sdbSizerOK->SetDefault(); m_sdbSizerOK->SetDefault();

View File

@ -199,7 +199,7 @@ PANEL_FP_EDITOR_DEFAULTS::PANEL_FP_EDITOR_DEFAULTS( FOOTPRINT_EDIT_FRAME* aFrame
m_graphicsGrid->PushEventHandler( new GRID_TRICKS( m_graphicsGrid ) ); m_graphicsGrid->PushEventHandler( new GRID_TRICKS( m_graphicsGrid ) );
m_staticTextInfo->SetFont( KIUI::GetGUIFont( this, -1 ) ); m_staticTextInfo->SetFont( KIUI::GetInfoFont( this ) );
} }

View File

@ -51,7 +51,7 @@ PANEL_SETUP_CONSTRAINTS::PANEL_SETUP_CONSTRAINTS( PAGED_DIALOG* aParent, PCB_EDI
m_Frame = aFrame; m_Frame = aFrame;
m_BrdSettings = &m_Frame->GetBoard()->GetDesignSettings(); m_BrdSettings = &m_Frame->GetBoard()->GetDesignSettings();
m_stCircleToPolyWarning->SetFont( KIUI::GetGUIFont( this, -1 ) ); m_stCircleToPolyWarning->SetFont( KIUI::GetInfoFont( this ) );
} }

View File

@ -429,6 +429,17 @@ APPEARANCE_CONTROLS::APPEARANCE_CONTROLS( PCB_BASE_FRAME* aParent, wxWindow* aFo
m_windowObjects->SetScrollRate( 0, 5 ); m_windowObjects->SetScrollRate( 0, 5 );
m_windowObjects->Bind( wxEVT_SET_FOCUS, &APPEARANCE_CONTROLS::OnSetFocus, this ); m_windowObjects->Bind( wxEVT_SET_FOCUS, &APPEARANCE_CONTROLS::OnSetFocus, this );
wxFont infoFont = KIUI::GetInfoFont( this );
m_staticTextNets->SetFont( infoFont );
m_staticTextNetClasses->SetFont( infoFont );
m_panelLayers->SetFont( infoFont );
m_windowLayers->SetFont( infoFont );
m_windowObjects->SetFont( infoFont );
infoFont = KIUI::GetStatusFont( this );
m_presetsLabel->SetFont( infoFont );
m_presetsHotkey->SetFont( infoFont );
createControls(); createControls();
m_btnNetInspector->SetBitmap( KiBitmap( BITMAPS::list_nets_16 ) ); m_btnNetInspector->SetBitmap( KiBitmap( BITMAPS::list_nets_16 ) );
@ -855,11 +866,9 @@ void APPEARANCE_CONTROLS::OnNetGridRightClick( wxGridEvent& event )
menu.Append( new wxMenuItem( &menu, ID_SHOW_ALL_NETS, menu.Append( new wxMenuItem( &menu, ID_SHOW_ALL_NETS,
_( "Show All Nets" ), wxEmptyString, wxITEM_NORMAL ) ); _( "Show All Nets" ), wxEmptyString, wxITEM_NORMAL ) );
menu.Append( new wxMenuItem( &menu, ID_HIDE_OTHER_NETS, menu.Append( new wxMenuItem( &menu, ID_HIDE_OTHER_NETS,
_( "Hide All Other Nets" ), wxEmptyString, _( "Hide All Other Nets" ), wxEmptyString, wxITEM_NORMAL ) );
wxITEM_NORMAL ) );
menu.Bind( wxEVT_COMMAND_MENU_SELECTED, menu.Bind( wxEVT_COMMAND_MENU_SELECTED, &APPEARANCE_CONTROLS::onNetContextMenu, this );
&APPEARANCE_CONTROLS::onNetContextMenu, this );
PopupMenu( &menu ); PopupMenu( &menu );
} }
@ -1287,9 +1296,11 @@ std::vector<LAYER_PRESET> APPEARANCE_CONTROLS::GetUserLayerPresets() const
{ {
std::vector<LAYER_PRESET> ret; std::vector<LAYER_PRESET> ret;
for( const auto& pair : m_layerPresets ) for( const std::pair<const wxString, LAYER_PRESET>& pair : m_layerPresets )
{
if( !pair.second.readOnly ) if( !pair.second.readOnly )
ret.emplace_back( pair.second ); ret.emplace_back( pair.second );
}
return ret; return ret;
} }
@ -1981,7 +1992,7 @@ void APPEARANCE_CONTROLS::rebuildObjects()
wxDefaultPosition, wxDefaultSize, wxDefaultPosition, wxDefaultSize,
wxSL_HORIZONTAL ); wxSL_HORIZONTAL );
#ifdef __WXMAC__ #ifdef __WXMAC__
slider->SetMinSize( wxSize( 80, 22 ) ); slider->SetMinSize( wxSize( 80, 16 ) );
#else #else
slider->SetMinSize( wxSize( 80, -1 ) ); slider->SetMinSize( wxSize( 80, -1 ) );
#endif #endif
@ -2013,7 +2024,9 @@ void APPEARANCE_CONTROLS::rebuildObjects()
aSetting->ctl_text = label; aSetting->ctl_text = label;
m_objectsOuterSizer->Add( sizer, 0, wxEXPAND | wxLEFT | wxRIGHT, 5 ); m_objectsOuterSizer->Add( sizer, 0, wxEXPAND | wxLEFT | wxRIGHT, 5 );
m_objectsOuterSizer->AddSpacer( 1 );
if( !aSetting->can_control_opacity )
m_objectsOuterSizer->AddSpacer( 2 );
}; };
for( const APPEARANCE_SETTING& s_setting : s_objectSettings ) for( const APPEARANCE_SETTING& s_setting : s_objectSettings )
@ -2035,7 +2048,7 @@ void APPEARANCE_CONTROLS::rebuildObjects()
if( setting->can_control_opacity ) if( setting->can_control_opacity )
{ {
int width = m_windowObjects->GetTextExtent( setting->label ).x; int width = m_windowObjects->GetTextExtent( setting->label ).x + 5;
labelWidth = std::max( labelWidth, width ); labelWidth = std::max( labelWidth, width );
} }
@ -2134,9 +2147,10 @@ void APPEARANCE_CONTROLS::rebuildNets()
if( isDefaultClass ) if( isDefaultClass )
setting->ctl_color->Hide(); setting->ctl_color->Hide();
setting->ctl_visibility = setting->ctl_visibility = new BITMAP_TOGGLE( setting->ctl_panel, aId,
new BITMAP_TOGGLE( setting->ctl_panel, aId, KiBitmap( BITMAPS::visibility ), KiBitmap( BITMAPS::visibility ),
KiBitmap( BITMAPS::visibility_off ), true ); KiBitmap( BITMAPS::visibility_off ),
true );
wxString tip; wxString tip;
tip.Printf( _( "Show or hide ratsnest for nets in %s" ), name ); tip.Printf( _( "Show or hide ratsnest for nets in %s" ), name );

View File

@ -14,7 +14,6 @@
APPEARANCE_CONTROLS_BASE::APPEARANCE_CONTROLS_BASE( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style, const wxString& name ) : wxPanel( parent, id, pos, size, style, name ) APPEARANCE_CONTROLS_BASE::APPEARANCE_CONTROLS_BASE( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style, const wxString& name ) : wxPanel( parent, id, pos, size, style, name )
{ {
this->SetFont( wxFont( 10, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false, wxEmptyString ) );
this->SetMinSize( wxSize( 200,360 ) ); this->SetMinSize( wxSize( 200,360 ) );
m_sizerOuter = new wxBoxSizer( wxVERTICAL ); m_sizerOuter = new wxBoxSizer( wxVERTICAL );
@ -61,19 +60,17 @@ APPEARANCE_CONTROLS_BASE::APPEARANCE_CONTROLS_BASE( wxWindow* parent, wxWindowID
m_staticTextNets = new wxStaticText( m_panelNets, wxID_ANY, _("Nets"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticTextNets = new wxStaticText( m_panelNets, wxID_ANY, _("Nets"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticTextNets->Wrap( -1 ); m_staticTextNets->Wrap( -1 );
m_staticTextNets->SetFont( wxFont( 9, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) ); bSizer17->Add( m_staticTextNets, 1, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
bSizer17->Add( m_staticTextNets, 1, wxALL, 5 );
m_txtNetFilter = new wxTextCtrl( m_panelNets, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); m_txtNetFilter = new wxTextCtrl( m_panelNets, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
m_txtNetFilter->Hide(); m_txtNetFilter->Hide();
bSizer17->Add( m_txtNetFilter, 1, wxLEFT|wxTOP, 5 ); bSizer17->Add( m_txtNetFilter, 1, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
m_btnNetInspector = new BITMAP_BUTTON( m_panelNets, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 ); m_btnNetInspector = new BITMAP_BUTTON( m_panelNets, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
m_btnNetInspector->SetToolTip( _("Show the Net Inspector") ); m_btnNetInspector->SetToolTip( _("Show the Net Inspector") );
bSizer17->Add( m_btnNetInspector, 0, wxLEFT|wxRIGHT|wxTOP, 5 ); bSizer17->Add( m_btnNetInspector, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
bSizer192->Add( bSizer17, 0, wxEXPAND, 5 ); bSizer192->Add( bSizer17, 0, wxEXPAND, 5 );
@ -118,16 +115,14 @@ APPEARANCE_CONTROLS_BASE::APPEARANCE_CONTROLS_BASE( wxWindow* parent, wxWindowID
wxBoxSizer* bSizer20; wxBoxSizer* bSizer20;
bSizer20 = new wxBoxSizer( wxHORIZONTAL ); bSizer20 = new wxBoxSizer( wxHORIZONTAL );
m_staticText14 = new wxStaticText( m_panelNetclasses, wxID_ANY, _("Net Classes"), wxDefaultPosition, wxDefaultSize, 0 ); m_staticTextNetClasses = new wxStaticText( m_panelNetclasses, wxID_ANY, _("Net Classes"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticText14->Wrap( -1 ); m_staticTextNetClasses->Wrap( -1 );
m_staticText14->SetFont( wxFont( 9, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD, false, wxEmptyString ) ); bSizer20->Add( m_staticTextNetClasses, 1, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
bSizer20->Add( m_staticText14, 1, wxALL, 5 );
m_btnConfigureNetClasses = new BITMAP_BUTTON( m_panelNetclasses, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 ); m_btnConfigureNetClasses = new BITMAP_BUTTON( m_panelNetclasses, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
m_btnConfigureNetClasses->SetToolTip( _("Configure net classes") ); m_btnConfigureNetClasses->SetToolTip( _("Configure net classes") );
bSizer20->Add( m_btnConfigureNetClasses, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxTOP, 5 ); bSizer20->Add( m_btnConfigureNetClasses, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 );
bSizerNetClasses->Add( bSizer20, 0, wxEXPAND, 5 ); bSizerNetClasses->Add( bSizer20, 0, wxEXPAND, 5 );
@ -166,13 +161,13 @@ APPEARANCE_CONTROLS_BASE::APPEARANCE_CONTROLS_BASE( wxWindow* parent, wxWindowID
wxBoxSizer* bPresetsLabels; wxBoxSizer* bPresetsLabels;
bPresetsLabels = new wxBoxSizer( wxHORIZONTAL ); bPresetsLabels = new wxBoxSizer( wxHORIZONTAL );
presetsLabel = new wxStaticText( this, wxID_ANY, _("Presets:"), wxDefaultPosition, wxDefaultSize, 0 ); m_presetsLabel = new wxStaticText( this, wxID_ANY, _("Presets:"), wxDefaultPosition, wxDefaultSize, 0 );
presetsLabel->Wrap( -1 ); m_presetsLabel->Wrap( -1 );
bPresetsLabels->Add( presetsLabel, 1, wxRIGHT|wxLEFT, 2 ); bPresetsLabels->Add( m_presetsLabel, 1, wxRIGHT|wxLEFT, 2 );
presetsHotkey = new wxStaticText( this, wxID_ANY, _("(Ctrl+Tab)"), wxDefaultPosition, wxDefaultSize, 0 ); m_presetsHotkey = new wxStaticText( this, wxID_ANY, _("(Ctrl+Tab)"), wxDefaultPosition, wxDefaultSize, 0 );
presetsHotkey->Wrap( -1 ); m_presetsHotkey->Wrap( -1 );
bPresetsLabels->Add( presetsHotkey, 0, wxRIGHT|wxLEFT, 2 ); bPresetsLabels->Add( m_presetsHotkey, 0, wxRIGHT|wxLEFT, 2 );
bPresets->Add( bPresetsLabels, 1, wxEXPAND|wxTOP, 7 ); bPresets->Add( bPresetsLabels, 1, wxEXPAND|wxTOP, 7 );

View File

@ -36,7 +36,7 @@
<property name="enabled">1</property> <property name="enabled">1</property>
<property name="event_handler">impl_virtual</property> <property name="event_handler">impl_virtual</property>
<property name="fg"></property> <property name="fg"></property>
<property name="font">,90,90,10,70,0</property> <property name="font"></property>
<property name="hidden">0</property> <property name="hidden">0</property>
<property name="id">wxID_ANY</property> <property name="id">wxID_ANY</property>
<property name="maximum_size"></property> <property name="maximum_size"></property>
@ -490,7 +490,7 @@
<property name="window_name"></property> <property name="window_name"></property>
<property name="window_style"></property> <property name="window_style"></property>
<object class="splitteritem" expanded="1"> <object class="splitteritem" expanded="1">
<object class="wxPanel" expanded="0"> <object class="wxPanel" expanded="1">
<property name="BottomDockable">1</property> <property name="BottomDockable">1</property>
<property name="LeftDockable">1</property> <property name="LeftDockable">1</property>
<property name="RightDockable">1</property> <property name="RightDockable">1</property>
@ -542,23 +542,23 @@
<property name="window_name"></property> <property name="window_name"></property>
<property name="window_style">wxTAB_TRAVERSAL</property> <property name="window_style">wxTAB_TRAVERSAL</property>
<event name="OnSetFocus">OnSetFocus</event> <event name="OnSetFocus">OnSetFocus</event>
<object class="wxBoxSizer" expanded="0"> <object class="wxBoxSizer" expanded="1">
<property name="minimum_size"></property> <property name="minimum_size"></property>
<property name="name">bSizer192</property> <property name="name">bSizer192</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="0"> <object class="sizeritem" expanded="1">
<property name="border">5</property> <property name="border">5</property>
<property name="flag">wxEXPAND</property> <property name="flag">wxEXPAND</property>
<property name="proportion">0</property> <property name="proportion">0</property>
<object class="wxBoxSizer" expanded="0"> <object class="wxBoxSizer" expanded="1">
<property name="minimum_size"></property> <property name="minimum_size"></property>
<property name="name">bSizer17</property> <property name="name">bSizer17</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="0"> <object class="sizeritem" expanded="0">
<property name="border">5</property> <property name="border">5</property>
<property name="flag">wxALL</property> <property name="flag">wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT</property>
<property name="proportion">1</property> <property name="proportion">1</property>
<object class="wxStaticText" expanded="0"> <object class="wxStaticText" expanded="0">
<property name="BottomDockable">1</property> <property name="BottomDockable">1</property>
@ -584,7 +584,7 @@
<property name="enabled">1</property> <property name="enabled">1</property>
<property name="fg"></property> <property name="fg"></property>
<property name="floatable">1</property> <property name="floatable">1</property>
<property name="font">,90,92,9,70,0</property> <property name="font"></property>
<property name="gripper">0</property> <property name="gripper">0</property>
<property name="hidden">0</property> <property name="hidden">0</property>
<property name="id">wxID_ANY</property> <property name="id">wxID_ANY</property>
@ -619,7 +619,7 @@
</object> </object>
<object class="sizeritem" expanded="0"> <object class="sizeritem" expanded="0">
<property name="border">5</property> <property name="border">5</property>
<property name="flag">wxLEFT|wxTOP</property> <property name="flag">wxALIGN_CENTER_VERTICAL|wxLEFT</property>
<property name="proportion">1</property> <property name="proportion">1</property>
<object class="wxTextCtrl" expanded="0"> <object class="wxTextCtrl" expanded="0">
<property name="BottomDockable">1</property> <property name="BottomDockable">1</property>
@ -683,7 +683,7 @@
</object> </object>
<object class="sizeritem" expanded="0"> <object class="sizeritem" expanded="0">
<property name="border">5</property> <property name="border">5</property>
<property name="flag">wxLEFT|wxRIGHT|wxTOP</property> <property name="flag">wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT</property>
<property name="proportion">0</property> <property name="proportion">0</property>
<object class="CustomControl" expanded="0"> <object class="CustomControl" expanded="0">
<property name="BottomDockable">1</property> <property name="BottomDockable">1</property>
@ -909,7 +909,7 @@
<property name="permission">none</property> <property name="permission">none</property>
<object class="sizeritem" expanded="0"> <object class="sizeritem" expanded="0">
<property name="border">5</property> <property name="border">5</property>
<property name="flag">wxALL</property> <property name="flag">wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL</property>
<property name="proportion">1</property> <property name="proportion">1</property>
<object class="wxStaticText" expanded="0"> <object class="wxStaticText" expanded="0">
<property name="BottomDockable">1</property> <property name="BottomDockable">1</property>
@ -935,7 +935,7 @@
<property name="enabled">1</property> <property name="enabled">1</property>
<property name="fg"></property> <property name="fg"></property>
<property name="floatable">1</property> <property name="floatable">1</property>
<property name="font">,90,92,9,70,0</property> <property name="font"></property>
<property name="gripper">0</property> <property name="gripper">0</property>
<property name="hidden">0</property> <property name="hidden">0</property>
<property name="id">wxID_ANY</property> <property name="id">wxID_ANY</property>
@ -948,7 +948,7 @@
<property name="minimize_button">0</property> <property name="minimize_button">0</property>
<property name="minimum_size"></property> <property name="minimum_size"></property>
<property name="moveable">1</property> <property name="moveable">1</property>
<property name="name">m_staticText14</property> <property name="name">m_staticTextNetClasses</property>
<property name="pane_border">1</property> <property name="pane_border">1</property>
<property name="pane_position"></property> <property name="pane_position"></property>
<property name="pane_size"></property> <property name="pane_size"></property>
@ -970,7 +970,7 @@
</object> </object>
<object class="sizeritem" expanded="0"> <object class="sizeritem" expanded="0">
<property name="border">5</property> <property name="border">5</property>
<property name="flag">wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxRIGHT|wxTOP</property> <property name="flag">wxALIGN_CENTER_VERTICAL|wxRIGHT</property>
<property name="proportion">0</property> <property name="proportion">0</property>
<object class="CustomControl" expanded="0"> <object class="CustomControl" expanded="0">
<property name="BottomDockable">1</property> <property name="BottomDockable">1</property>
@ -1175,7 +1175,7 @@
<property name="minimize_button">0</property> <property name="minimize_button">0</property>
<property name="minimum_size"></property> <property name="minimum_size"></property>
<property name="moveable">1</property> <property name="moveable">1</property>
<property name="name">presetsLabel</property> <property name="name">m_presetsLabel</property>
<property name="pane_border">1</property> <property name="pane_border">1</property>
<property name="pane_position"></property> <property name="pane_position"></property>
<property name="pane_size"></property> <property name="pane_size"></property>
@ -1236,7 +1236,7 @@
<property name="minimize_button">0</property> <property name="minimize_button">0</property>
<property name="minimum_size"></property> <property name="minimum_size"></property>
<property name="moveable">1</property> <property name="moveable">1</property>
<property name="name">presetsHotkey</property> <property name="name">m_presetsHotkey</property>
<property name="pane_border">1</property> <property name="pane_border">1</property>
<property name="pane_position"></property> <property name="pane_position"></property>
<property name="pane_size"></property> <property name="pane_size"></property>

View File

@ -59,12 +59,12 @@ class APPEARANCE_CONTROLS_BASE : public wxPanel
BITMAP_BUTTON* m_btnNetInspector; BITMAP_BUTTON* m_btnNetInspector;
WX_GRID* m_netsGrid; WX_GRID* m_netsGrid;
wxPanel* m_panelNetclasses; wxPanel* m_panelNetclasses;
wxStaticText* m_staticText14; wxStaticText* m_staticTextNetClasses;
BITMAP_BUTTON* m_btnConfigureNetClasses; BITMAP_BUTTON* m_btnConfigureNetClasses;
wxScrolledWindow* m_netclassScrolledWindow; wxScrolledWindow* m_netclassScrolledWindow;
wxBoxSizer* m_netclassOuterSizer; wxBoxSizer* m_netclassOuterSizer;
wxStaticText* presetsLabel; wxStaticText* m_presetsLabel;
wxStaticText* presetsHotkey; wxStaticText* m_presetsHotkey;
wxChoice* m_cbLayerPresets; wxChoice* m_cbLayerPresets;
// Virtual event handlers, overide them in your derived class // Virtual event handlers, overide them in your derived class

View File

@ -29,7 +29,11 @@ PANEL_SELECTION_FILTER::PANEL_SELECTION_FILTER( wxWindow* aParent ) :
m_frame( dynamic_cast<PCB_BASE_EDIT_FRAME*>( aParent ) ), m_frame( dynamic_cast<PCB_BASE_EDIT_FRAME*>( aParent ) ),
m_onlyCheckbox( nullptr ) m_onlyCheckbox( nullptr )
{ {
wxFont font = KIUI::GetGUIFont( this, -2 ); #ifdef __WXMAC__
wxFont font = KIUI::GetStatusFont( this );
#else
wxFont font = KIUI::GetInfoFont( this );
#endif
m_cbLockedItems->SetFont( font ); m_cbLockedItems->SetFont( font );
m_cbFootprints->SetFont( font ); m_cbFootprints->SetFont( font );
m_cbText->SetFont( font ); m_cbText->SetFont( font );