// ----------------------------------------------------------------------------
#if !defined(__WXMSW__) && !defined(__WXPM__)
- #include "mondrian.xpm"
+ #include "../sample.xpm"
#endif
#if USE_XPM_BITMAPS
void OnToolbarStyle(wxCommandEvent& event);
void OnToolbarBgCol(wxCommandEvent& event);
- void OnToolbarCustomBg(wxCommandEvent& event);
void OnToolbarCustomBitmap(wxCommandEvent& event);
void OnToolLeftClick(wxCommandEvent& event);
{ event.Enable( m_tbar != NULL ); }
private:
- void OnEraseToolBarBackground(wxEraseEvent& event);
-
void DoEnablePrint();
void DoDeletePrint();
void DoToggleHelp();
IDM_TOOLBAR_SHOW_ICONS,
IDM_TOOLBAR_SHOW_BOTH,
IDM_TOOLBAR_BG_COL,
- IDM_TOOLBAR_CUSTOM_BG,
IDM_TOOLBAR_CUSTOM_PATH,
IDM_TOOLBAR_TOP_ORIENTATION,
IDM_TOOLBAR_LEFT_ORIENTATION,
EVT_MENU_RANGE(IDM_TOOLBAR_SHOW_TEXT, IDM_TOOLBAR_SHOW_BOTH,
MyFrame::OnToolbarStyle)
EVT_MENU(IDM_TOOLBAR_BG_COL, MyFrame::OnToolbarBgCol)
- EVT_MENU(IDM_TOOLBAR_CUSTOM_BG, MyFrame::OnToolbarCustomBg)
EVT_MENU(IDM_TOOLBAR_CUSTOM_PATH, MyFrame::OnToolbarCustomBitmap)
wxInitAllImageHandlers();
- SetTopWindow(frame);
-
return true;
}
toolBar = CreateToolBar(style, ID_TOOLBAR);
#endif
- if ( GetMenuBar()->IsChecked(IDM_TOOLBAR_CUSTOM_BG) )
- {
- toolBar->Connect
- (
- wxEVT_ERASE_BACKGROUND,
- wxEraseEventHandler(MyFrame::OnEraseToolBarBackground),
- NULL,
- this
- );
- }
-
PopulateToolbar(toolBar);
}
{
// create a tool with a custom bitmap for testing
wxImage img(m_pathBmp);
- if ( img.Ok() )
+ if ( img.IsOk() )
{
if ( img.GetWidth() > w && img.GetHeight() > h )
img = img.GetSubImage(wxRect(0, 0, w, h));
#endif
// Give it an icon
- SetIcon(wxICON(mondrian));
+ SetIcon(wxICON(sample));
// Make a menubar
wxMenu *tbarMenu = new wxMenu;
tbarMenu->AppendRadioItem(IDM_TOOLBAR_SHOW_BOTH, wxT("Show &both\tCtrl-Alt-B"));
tbarMenu->AppendSeparator();
tbarMenu->Append(IDM_TOOLBAR_BG_COL, wxT("Choose bac&kground colour..."));
- tbarMenu->AppendCheckItem(IDM_TOOLBAR_CUSTOM_BG, wxT("Draw custom back&ground"));
tbarMenu->Append(IDM_TOOLBAR_CUSTOM_PATH, wxT("Custom &bitmap...\tCtrl-B"));
wxMenu *toolMenu = new wxMenu;
// Associate the menu bar with the frame
SetMenuBar(menuBar);
+ menuBar->Check(IDM_TOOLBAR_TOGGLE_TOOLBAR, true);
menuBar->Check(IDM_TOOLBAR_SHOW_BOTH, true);
menuBar->Check(IDM_TOOLBAR_TOGGLETOOLTIPS, true);
m_extraToolBar = new wxToolBar(m_panel, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTB_TEXT|wxTB_FLAT|wxTB_TOP);
PopulateToolbar(m_extraToolBar);
#endif
-
+
m_textWindow = new wxTextCtrl(m_panel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE);
wxBoxSizer* sizer = new wxBoxSizer(wxVERTICAL);
}
}
-void MyFrame::OnEraseToolBarBackground(wxEraseEvent& event)
-{
- wxDC& dc = *event.GetDC();
- const wxSize size = dc.GetSize();
- dc.SetPen(*wxRED_PEN);
- dc.DrawLine(0, 0, size.x, size.y);
- dc.DrawLine(0, size.y, size.x, 0);
-}
-
void MyFrame::OnToggleToolbar(wxCommandEvent& WXUNUSED(event))
{
wxToolBar *tbar = GetToolBar();
}
else
{
+ // notice that there is no need to call SetToolBar(NULL) here (although
+ // this it is harmless to do and it must be called if you do not delete
+ // the toolbar but keep it for later reuse), just delete the toolbar
+ // directly and it will reset the associated frame toolbar pointer
delete tbar;
-
- SetToolBar(NULL);
}
}
{
if ( m_tbar )
{
- delete m_tbar;
- m_tbar = NULL;
+ wxDELETE(m_tbar);
}
else
{
}
}
-void MyFrame::OnToolbarCustomBg(wxCommandEvent& event)
-{
- wxToolBarBase *tb = GetToolBar();
-
- if ( event.IsChecked() )
- {
- tb->Connect
- (
- wxEVT_ERASE_BACKGROUND,
- wxEraseEventHandler(MyFrame::OnEraseToolBarBackground),
- NULL,
- this
- );
- }
- else
- {
- tb->Disconnect
- (
- wxEVT_ERASE_BACKGROUND,
- wxEraseEventHandler(MyFrame::OnEraseToolBarBackground),
- NULL,
- this
- );
- }
-
- tb->Refresh();
-}
-
void MyFrame::OnToolbarCustomBitmap(wxCommandEvent& WXUNUSED(event))
{
m_pathBmp = wxLoadFileSelector("custom bitmap", "");