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
This commit is contained in:
Vadim Zeitlin
1999-12-15 01:54:39 +00:00
parent 44178d9214
commit 980662342f

View 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;