Fixed uninstalled toolbars in native toolbar mode, with a method for
specifying non-native if required Added code to toolbar sample for testing uninstalled toolbar git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@46558 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -47,6 +47,12 @@
|
||||
#error You need to enable XPM support to use XPM bitmaps with toolbar!
|
||||
#endif // USE_XPM_BITMAPS
|
||||
|
||||
// If this is 1, the sample will test an extra toolbar identical to the
|
||||
// main one, but not managed by the frame. This can test subtle differences
|
||||
// in the way toolbars are handled, especially on Mac where there is one
|
||||
// native, 'installed' toolbar.
|
||||
#define USE_UNMANAGED_TOOLBAR 0
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// resources
|
||||
// ----------------------------------------------------------------------------
|
||||
@@ -96,6 +102,7 @@ public:
|
||||
const wxSize& size = wxDefaultSize,
|
||||
long style = wxDEFAULT_FRAME_STYLE|wxCLIP_CHILDREN|wxNO_FULL_REPAINT_ON_RESIZE);
|
||||
|
||||
void PopulateToolbar(wxToolBarBase* toolBar);
|
||||
void RecreateToolbar();
|
||||
|
||||
void OnQuit(wxCommandEvent& event);
|
||||
@@ -155,6 +162,9 @@ private:
|
||||
|
||||
wxTextCtrl *m_textWindow;
|
||||
|
||||
wxPanel *m_panel;
|
||||
wxToolBar *m_extraToolBar;
|
||||
|
||||
wxToolBar *m_tbar;
|
||||
|
||||
// the path to the custom bitmap for the test toolbar tool
|
||||
@@ -337,6 +347,11 @@ void MyFrame::RecreateToolbar()
|
||||
toolBar = CreateToolBar(style, ID_TOOLBAR);
|
||||
#endif
|
||||
|
||||
PopulateToolbar(toolBar);
|
||||
}
|
||||
|
||||
void MyFrame::PopulateToolbar(wxToolBarBase* toolBar)
|
||||
{
|
||||
// Set up toolbar
|
||||
enum
|
||||
{
|
||||
@@ -591,10 +606,25 @@ MyFrame::MyFrame(wxFrame* parent,
|
||||
|
||||
menuBar->Check(IDM_TOOLBAR_TOP_ORIENTATION, true );
|
||||
m_toolbarPosition = TOOLBAR_TOP;
|
||||
|
||||
// Create the toolbar
|
||||
RecreateToolbar();
|
||||
|
||||
m_textWindow = new wxTextCtrl(this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE);
|
||||
m_panel = new wxPanel(this, wxID_ANY);
|
||||
#if USE_UNMANAGED_TOOLBAR
|
||||
m_extraToolBar = new wxToolBar(m_panel, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTB_TEXT|wxTB_FLAT|wxTB_TOP);
|
||||
PopulateToolbar(m_extraToolBar);
|
||||
#else
|
||||
m_extraToolBar = NULL;
|
||||
#endif
|
||||
|
||||
m_textWindow = new wxTextCtrl(m_panel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE);
|
||||
|
||||
wxBoxSizer* sizer = new wxBoxSizer(wxVERTICAL);
|
||||
m_panel->SetSizer(sizer);
|
||||
if (m_extraToolBar)
|
||||
sizer->Add(m_extraToolBar, 0, wxEXPAND, 0);
|
||||
sizer->Add(m_textWindow, 1, wxEXPAND, 0);
|
||||
}
|
||||
|
||||
void MyFrame::LayoutChildren()
|
||||
@@ -613,7 +643,7 @@ void MyFrame::LayoutChildren()
|
||||
offset = 0;
|
||||
}
|
||||
|
||||
m_textWindow->SetSize(offset, 0, size.x - offset, size.y);
|
||||
m_panel->SetSize(offset, 0, size.x - offset, size.y);
|
||||
}
|
||||
|
||||
void MyFrame::OnSize(wxSizeEvent& event)
|
||||
|
Reference in New Issue
Block a user