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:
@@ -76,6 +76,7 @@ public:
|
|||||||
|
|
||||||
void OnToggleToolbarSize(wxCommandEvent& event);
|
void OnToggleToolbarSize(wxCommandEvent& event);
|
||||||
void OnToggleToolbarOrient(wxCommandEvent& event);
|
void OnToggleToolbarOrient(wxCommandEvent& event);
|
||||||
|
void OnToggleToolbarRows(wxCommandEvent& event);
|
||||||
|
|
||||||
void OnEnablePrint(wxCommandEvent& event) { DoEnablePrint(); }
|
void OnEnablePrint(wxCommandEvent& event) { DoEnablePrint(); }
|
||||||
void OnDeletePrint(wxCommandEvent& event) { DoDeletePrint(); }
|
void OnDeletePrint(wxCommandEvent& event) { DoDeletePrint(); }
|
||||||
@@ -96,6 +97,8 @@ private:
|
|||||||
|
|
||||||
bool m_smallToolbar,
|
bool m_smallToolbar,
|
||||||
m_horzToolbar;
|
m_horzToolbar;
|
||||||
|
size_t m_rows; // 1 or 2 only
|
||||||
|
|
||||||
wxTextCtrl* m_textWindow;
|
wxTextCtrl* m_textWindow;
|
||||||
|
|
||||||
DECLARE_EVENT_TABLE()
|
DECLARE_EVENT_TABLE()
|
||||||
@@ -111,6 +114,7 @@ enum
|
|||||||
{
|
{
|
||||||
IDM_TOOLBAR_TOGGLETOOLBARSIZE = 200,
|
IDM_TOOLBAR_TOGGLETOOLBARSIZE = 200,
|
||||||
IDM_TOOLBAR_TOGGLETOOLBARORIENT,
|
IDM_TOOLBAR_TOGGLETOOLBARORIENT,
|
||||||
|
IDM_TOOLBAR_TOGGLETOOLBARROWS,
|
||||||
IDM_TOOLBAR_ENABLEPRINT,
|
IDM_TOOLBAR_ENABLEPRINT,
|
||||||
IDM_TOOLBAR_DELETEPRINT,
|
IDM_TOOLBAR_DELETEPRINT,
|
||||||
IDM_TOOLBAR_INSERTPRINT,
|
IDM_TOOLBAR_INSERTPRINT,
|
||||||
@@ -132,6 +136,7 @@ BEGIN_EVENT_TABLE(MyFrame, wxFrame)
|
|||||||
|
|
||||||
EVT_MENU(IDM_TOOLBAR_TOGGLETOOLBARSIZE, MyFrame::OnToggleToolbarSize)
|
EVT_MENU(IDM_TOOLBAR_TOGGLETOOLBARSIZE, MyFrame::OnToggleToolbarSize)
|
||||||
EVT_MENU(IDM_TOOLBAR_TOGGLETOOLBARORIENT, MyFrame::OnToggleToolbarOrient)
|
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_ENABLEPRINT, MyFrame::OnEnablePrint)
|
||||||
EVT_MENU(IDM_TOOLBAR_DELETEPRINT, MyFrame::OnDeletePrint)
|
EVT_MENU(IDM_TOOLBAR_DELETEPRINT, MyFrame::OnDeletePrint)
|
||||||
@@ -167,14 +172,6 @@ bool MyApp::OnInit()
|
|||||||
"wxToolBar Sample",
|
"wxToolBar Sample",
|
||||||
wxPoint(100, 100), wxSize(450, 300));
|
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->Show(TRUE);
|
||||||
|
|
||||||
frame->SetStatusText("Hello, wxWindows");
|
frame->SetStatusText("Hello, wxWindows");
|
||||||
@@ -257,6 +254,8 @@ void MyFrame::RecreateToolbar()
|
|||||||
// after adding the buttons to the toolbar, must call Realize() to reflect
|
// after adding the buttons to the toolbar, must call Realize() to reflect
|
||||||
// the changes
|
// the changes
|
||||||
toolBar->Realize();
|
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)
|
: wxFrame(parent, id, title, pos, size, style)
|
||||||
{
|
{
|
||||||
m_textWindow = new wxTextCtrl(this, -1, "", wxPoint(0, 0), wxSize(-1, -1), wxTE_MULTILINE);
|
m_textWindow = new wxTextCtrl(this, -1, "", wxPoint(0, 0), wxSize(-1, -1), wxTE_MULTILINE);
|
||||||
|
|
||||||
m_smallToolbar = FALSE;
|
m_smallToolbar = FALSE;
|
||||||
m_horzToolbar = FALSE;
|
m_horzToolbar = TRUE;
|
||||||
|
m_rows = 1;
|
||||||
|
|
||||||
// Give it a status line
|
// Give it a status line
|
||||||
CreateStatusBar();
|
CreateStatusBar();
|
||||||
@@ -292,6 +293,10 @@ MyFrame::MyFrame(wxFrame* parent,
|
|||||||
"Toggle toolbar &orientation\tCtrl-O",
|
"Toggle toolbar &orientation\tCtrl-O",
|
||||||
"Toggle toolbar orientation",
|
"Toggle toolbar orientation",
|
||||||
TRUE);
|
TRUE);
|
||||||
|
tbarMenu->Append(IDM_TOOLBAR_TOGGLETOOLBARROWS,
|
||||||
|
"Toggle number of &rows\tCtrl-R",
|
||||||
|
"Toggle number of toolbar rows between 1 and 2",
|
||||||
|
TRUE);
|
||||||
|
|
||||||
tbarMenu->AppendSeparator();
|
tbarMenu->AppendSeparator();
|
||||||
|
|
||||||
@@ -326,6 +331,16 @@ void MyFrame::OnToggleToolbarSize(wxCommandEvent& WXUNUSED(event))
|
|||||||
RecreateToolbar();
|
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))
|
void MyFrame::OnToggleToolbarOrient(wxCommandEvent& WXUNUSED(event))
|
||||||
{
|
{
|
||||||
m_horzToolbar = !m_horzToolbar;
|
m_horzToolbar = !m_horzToolbar;
|
||||||
|
Reference in New Issue
Block a user