From 980662342f10c5254360f89aa1416771be5a1342 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Wed, 15 Dec 1999 01:54:39 +0000 Subject: [PATCH] support for multiple rows in Win32 native toolbar git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@4953 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- samples/toolbar/toolbar.cpp | 33 ++++++++++++++++++++++++--------- 1 file changed, 24 insertions(+), 9 deletions(-) diff --git a/samples/toolbar/toolbar.cpp b/samples/toolbar/toolbar.cpp index e7feb997ea..22c7e26383 100644 --- a/samples/toolbar/toolbar.cpp +++ b/samples/toolbar/toolbar.cpp @@ -76,6 +76,7 @@ public: void OnToggleToolbarSize(wxCommandEvent& event); void OnToggleToolbarOrient(wxCommandEvent& event); + void OnToggleToolbarRows(wxCommandEvent& event); void OnEnablePrint(wxCommandEvent& event) { DoEnablePrint(); } void OnDeletePrint(wxCommandEvent& event) { DoDeletePrint(); } @@ -96,6 +97,8 @@ private: bool m_smallToolbar, m_horzToolbar; + size_t m_rows; // 1 or 2 only + wxTextCtrl* m_textWindow; DECLARE_EVENT_TABLE() @@ -111,6 +114,7 @@ enum { IDM_TOOLBAR_TOGGLETOOLBARSIZE = 200, IDM_TOOLBAR_TOGGLETOOLBARORIENT, + IDM_TOOLBAR_TOGGLETOOLBARROWS, IDM_TOOLBAR_ENABLEPRINT, IDM_TOOLBAR_DELETEPRINT, IDM_TOOLBAR_INSERTPRINT, @@ -132,6 +136,7 @@ BEGIN_EVENT_TABLE(MyFrame, wxFrame) EVT_MENU(IDM_TOOLBAR_TOGGLETOOLBARSIZE, MyFrame::OnToggleToolbarSize) EVT_MENU(IDM_TOOLBAR_TOGGLETOOLBARORIENT, MyFrame::OnToggleToolbarOrient) + EVT_MENU(IDM_TOOLBAR_TOGGLETOOLBARROWS, MyFrame::OnToggleToolbarRows) EVT_MENU(IDM_TOOLBAR_ENABLEPRINT, MyFrame::OnEnablePrint) EVT_MENU(IDM_TOOLBAR_DELETEPRINT, MyFrame::OnDeletePrint) @@ -167,14 +172,6 @@ bool MyApp::OnInit() "wxToolBar Sample", wxPoint(100, 100), wxSize(450, 300)); - // VZ: what's this for?? -#if 0 - // Force a resize. This should probably be replaced by a call to a wxFrame - // function that lays out default decorations and the remaining content window. - wxSizeEvent event(wxSize(-1, -1), frame->GetId()); - frame->OnSize(event); -#endif // 0 - frame->Show(TRUE); frame->SetStatusText("Hello, wxWindows"); @@ -257,6 +254,8 @@ void MyFrame::RecreateToolbar() // after adding the buttons to the toolbar, must call Realize() to reflect // the changes toolBar->Realize(); + + toolBar->SetRows(m_horzToolbar ? m_rows : 10 / m_rows); } // ---------------------------------------------------------------------------- @@ -273,8 +272,10 @@ MyFrame::MyFrame(wxFrame* parent, : wxFrame(parent, id, title, pos, size, style) { m_textWindow = new wxTextCtrl(this, -1, "", wxPoint(0, 0), wxSize(-1, -1), wxTE_MULTILINE); + m_smallToolbar = FALSE; - m_horzToolbar = FALSE; + m_horzToolbar = TRUE; + m_rows = 1; // Give it a status line CreateStatusBar(); @@ -292,6 +293,10 @@ MyFrame::MyFrame(wxFrame* parent, "Toggle toolbar &orientation\tCtrl-O", "Toggle toolbar orientation", TRUE); + tbarMenu->Append(IDM_TOOLBAR_TOGGLETOOLBARROWS, + "Toggle number of &rows\tCtrl-R", + "Toggle number of toolbar rows between 1 and 2", + TRUE); tbarMenu->AppendSeparator(); @@ -326,6 +331,16 @@ void MyFrame::OnToggleToolbarSize(wxCommandEvent& WXUNUSED(event)) RecreateToolbar(); } +void MyFrame::OnToggleToolbarRows(wxCommandEvent& WXUNUSED(event)) +{ + // m_rows may be only 1 or 2 + m_rows = 3 - m_rows; + + GetToolBar()->SetRows(m_horzToolbar ? m_rows : 10 / m_rows); + + //RecreateToolbar(); +} + void MyFrame::OnToggleToolbarOrient(wxCommandEvent& WXUNUSED(event)) { m_horzToolbar = !m_horzToolbar; -- 2.45.2