]> git.saurik.com Git - wxWidgets.git/commitdiff
support for multiple rows in Win32 native toolbar
authorVadim Zeitlin <vadim@wxwidgets.org>
Wed, 15 Dec 1999 01:54:39 +0000 (01:54 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Wed, 15 Dec 1999 01:54:39 +0000 (01:54 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@4953 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

samples/toolbar/toolbar.cpp

index e7feb997ea30502f6c5ed87b83d7ba2196f4fdf2..22c7e263830b2ee565be277e4b02eb6cc47b941a 100644 (file)
@@ -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;