Add OSX layout hack to PAGED_DIALOG for preferences.
This commit is contained in:
parent
4966ab802e
commit
811968716c
|
@ -78,6 +78,8 @@ PAGED_DIALOG::PAGED_DIALOG( wxWindow* aParent, const wxString& aTitle,
|
||||||
|
|
||||||
if( m_auxiliaryButton )
|
if( m_auxiliaryButton )
|
||||||
m_auxiliaryButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PAGED_DIALOG::OnAuxiliaryAction ), nullptr, this );
|
m_auxiliaryButton->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PAGED_DIALOG::OnAuxiliaryAction ), nullptr, this );
|
||||||
|
|
||||||
|
m_treebook->Connect( wxEVT_TREEBOOK_PAGE_CHANGED, wxBookCtrlEventHandler( PAGED_DIALOG::OnPageChange ), NULL, this );
|
||||||
Connect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( PAGED_DIALOG::OnUpdateUI ), nullptr, this );
|
Connect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( PAGED_DIALOG::OnUpdateUI ), nullptr, this );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -98,7 +100,10 @@ void PAGED_DIALOG::finishInitialization()
|
||||||
m_treebook->Fit();
|
m_treebook->Fit();
|
||||||
m_treebook->Layout();
|
m_treebook->Layout();
|
||||||
|
|
||||||
FinishDialogSettings();
|
for( int i = 0; i < m_treebook->GetPageCount(); ++i )
|
||||||
|
m_macHack.push_back( true );
|
||||||
|
|
||||||
|
FinishDialogSettings();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -133,6 +138,9 @@ PAGED_DIALOG::~PAGED_DIALOG()
|
||||||
|
|
||||||
if( m_auxiliaryButton )
|
if( m_auxiliaryButton )
|
||||||
m_auxiliaryButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PAGED_DIALOG::OnAuxiliaryAction ), nullptr, this );
|
m_auxiliaryButton->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PAGED_DIALOG::OnAuxiliaryAction ), nullptr, this );
|
||||||
|
|
||||||
|
m_treebook->Disconnect( wxEVT_TREEBOOK_PAGE_CHANGED, wxBookCtrlEventHandler( PAGED_DIALOG::OnPageChange ), NULL, this );
|
||||||
|
|
||||||
Disconnect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( PAGED_DIALOG::OnUpdateUI ), nullptr, this );
|
Disconnect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( PAGED_DIALOG::OnUpdateUI ), nullptr, this );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -266,3 +274,25 @@ void PAGED_DIALOG::OnUpdateUI( wxUpdateUIEvent& event )
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void PAGED_DIALOG::OnPageChange( wxBookCtrlEvent& event )
|
||||||
|
{
|
||||||
|
#ifdef __WXMAC__
|
||||||
|
// Work around an OSX bug where the wxGrid children don't get placed correctly until
|
||||||
|
// the first resize event
|
||||||
|
int page = event.GetSelection();
|
||||||
|
|
||||||
|
if( page + 1 <= m_macHack.size() && m_macHack[ page ] )
|
||||||
|
{
|
||||||
|
wxSize pageSize = m_treebook->GetPage( page )->GetSize();
|
||||||
|
pageSize.x -= 3;
|
||||||
|
pageSize.y += 2;
|
||||||
|
|
||||||
|
m_treebook->GetPage( page )->SetSize( pageSize );
|
||||||
|
m_macHack[ page ] = false;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -35,6 +35,8 @@ private:
|
||||||
int m_errorRow; // the row if m_errorCtrl is a grid
|
int m_errorRow; // the row if m_errorCtrl is a grid
|
||||||
int m_errorCol; // the column if m_errorCtrl is a grid
|
int m_errorCol; // the column if m_errorCtrl is a grid
|
||||||
|
|
||||||
|
std::vector<bool> m_macHack;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
PAGED_DIALOG( wxWindow* aParent, const wxString& aTitle,
|
PAGED_DIALOG( wxWindow* aParent, const wxString& aTitle,
|
||||||
const wxString& aAuxiliaryAction = wxEmptyString );
|
const wxString& aAuxiliaryAction = wxEmptyString );
|
||||||
|
@ -55,6 +57,7 @@ protected:
|
||||||
|
|
||||||
virtual void OnAuxiliaryAction( wxCommandEvent& event ) { event.Skip(); }
|
virtual void OnAuxiliaryAction( wxCommandEvent& event ) { event.Skip(); }
|
||||||
void OnUpdateUI( wxUpdateUIEvent& event );
|
void OnUpdateUI( wxUpdateUIEvent& event );
|
||||||
|
void OnPageChange( wxBookCtrlEvent& event );
|
||||||
|
|
||||||
wxTreebook* m_treebook;
|
wxTreebook* m_treebook;
|
||||||
wxButton* m_auxiliaryButton;
|
wxButton* m_auxiliaryButton;
|
||||||
|
|
Loading…
Reference in New Issue