X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/81d66cf39f810503baed79213bc3122fda0ccc7b..9764dcbca3e73dda225f79f37b964960c91b9dbf:/docs/latex/wx/ttoolbar.tex diff --git a/docs/latex/wx/ttoolbar.tex b/docs/latex/wx/ttoolbar.tex index d0d2fd0397..258e4c2416 100644 --- a/docs/latex/wx/ttoolbar.tex +++ b/docs/latex/wx/ttoolbar.tex @@ -13,8 +13,7 @@ Instead of supplying one toolbar class with a number of different implementations depending on platform, wxWindows separates out the classes. This is because there are a number of different toolbar styles that you may wish to use simultaneously, and also, future -toolbar implementations will emerge (for example, using the -new-style Windows `coolbar' as seen in Microsoft applications) which +toolbar implementations will emerge which cannot all be shoe-horned into the one class. For each platform, the symbol {\bf wxToolBar} is defined to be one of the @@ -26,7 +25,7 @@ The following is a summary of the toolbar classes and their differences. \item {\bf wxToolBarBase.} This is a base class with pure virtual functions, and should not be used directly. \item {\bf wxToolBarSimple.} A simple toolbar class written entirely with generic wxWindows -functionality. A simply 3D effect for buttons is possible, but it is not consistent +functionality. A simple 3D effect for buttons is possible, but it is not consistent with the Windows look and feel. This toolbar can scroll, and you can have arbitrary numbers of rows and columns. \item {\bf wxToolBarMSW.} This class implements an old-style Windows toolbar, only on @@ -39,7 +38,8 @@ CreateTools must be called after the tools have been added. No absolute positioning is supported but you can specify the number of rows, and add tool separators with {\bf AddSeparator}. Tooltips are supported. {\bf OnRightClick} is not supported. This is the default wxToolBar -on Windows 95, Windows NT 4 and above. +on Windows 95, Windows NT 4 and above. With the style wxTB\_FLAT, the flat toolbar +look is used, with a border that is highlit when the cursor moves over the buttons. \end{itemize} A toolbar might appear as a single row of images under @@ -56,13 +56,11 @@ around the bitmap (for colour displays where inverting will not have the desired result). The Windows-specific toolbar classes expect 16-colour bitmaps that are 16 pixels wide and 15 pixels -high. If you want to use a different size, call {\bf SetDefaultSize}\rtfsp +high. If you want to use a different size, call {\bf SetToolBitmapSize}\rtfsp as the demo shows, before adding tools to the button bar. Don't supply more than one bitmap for each tool, because the toolbar generates all three images (normal, depressed and checked) from the single bitmap you give it. -To intercept - \subsection{Using the toolbar library} Include {\tt "wx/toolbar.h"}, or if using a class directly, one of: @@ -74,7 +72,9 @@ Include {\tt "wx/toolbar.h"}, or if using a class directly, one of: \end{itemize} Example of toolbar use are given in the sample program ``toolbar''. The -source is given below. +source is given below. In fact it's out of date because recommended +practise is to use event handlers (using EVT\_MENU or EVT\_TOOL) instead of +overriding OnLeftClick. {\small \begin{verbatim} @@ -101,39 +101,44 @@ source is given below. #endif #include "wx/toolbar.h" -#include "test.h" +#include -IMPLEMENT_APP(MyApp) +#include "test.h" -#ifdef __X__ -// TODO: include XBM or XPM icons for X apps +#if defined(__WXGTK__) || defined(__WXMOTIF__) +#include "mondrian.xpm" +#include "bitmaps/new.xpm" +#include "bitmaps/open.xpm" +#include "bitmaps/save.xpm" +#include "bitmaps/copy.xpm" +#include "bitmaps/cut.xpm" +#include "bitmaps/print.xpm" +#include "bitmaps/preview.xpm" +#include "bitmaps/help.xpm" #endif +IMPLEMENT_APP(MyApp) + // The `main program' equivalent, creating the windows and returning the // main frame bool MyApp::OnInit(void) { // Create the main frame window - MyFrame* frame = new MyFrame(NULL, -1, "wxToolBar Sample", + MyFrame* frame = new MyFrame((wxFrame *) NULL, -1, (const wxString) "wxToolBar Sample", wxPoint(100, 100), wxSize(450, 300)); // Give it a status line frame->CreateStatusBar(); // Give it an icon -#ifdef __WXMSW__ - frame->SetIcon(wxIcon("mondrian")); -#endif -#ifdef __X__ - frame->SetIcon(wxIcon("mondrian.xbm")); -#endif + frame->SetIcon(wxICON(mondrian)); // Make a menubar wxMenu *fileMenu = new wxMenu; - fileMenu->Append(wxID_EXIT, "E&xit"); + fileMenu->Append(wxID_EXIT, "E&xit", "Quit toolbar sample" ); wxMenu *helpMenu = new wxMenu; - helpMenu->Append(wxID_HELP, "&About"); + helpMenu->Append(wxID_HELP, "&About", "About toolbar sample"); wxMenuBar* menuBar = new wxMenuBar; @@ -145,12 +150,15 @@ bool MyApp::OnInit(void) // Create the toolbar frame->CreateToolBar(wxNO_BORDER|wxHORIZONTAL|wxTB_FLAT, ID_TOOLBAR); + + frame->GetToolBar()->SetMargins( 2, 2 ); InitToolbar(frame->GetToolBar()); // 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. - frame->OnSize(wxSizeEvent(wxSize(-1, -1), frame->GetId())); + wxSizeEvent event(wxSize(-1, -1), frame->GetId()); + frame->OnSize(event); frame->Show(TRUE); frame->SetStatusText("Hello, wxWindows"); @@ -162,8 +170,6 @@ bool MyApp::OnInit(void) bool MyApp::InitToolbar(wxToolBar* toolBar) { - toolBar->SetMargins(5, 5); - // Set up toolbar wxBitmap* toolBarBitmaps[8]; @@ -176,17 +182,15 @@ bool MyApp::InitToolbar(wxToolBar* toolBar) toolBarBitmaps[5] = new wxBitmap("icon6"); toolBarBitmaps[6] = new wxBitmap("icon7"); toolBarBitmaps[7] = new wxBitmap("icon8"); -#endif -#ifdef __X__ - // TODO - toolBarBitmaps[0] = new wxBitmap(...); - toolBarBitmaps[1] = new wxBitmap(...); - toolBarBitmaps[2] = new wxBitmap(...); - toolBarBitmaps[3] = new wxBitmap(...); - toolBarBitmaps[4] = new wxBitmap(...); - toolBarBitmaps[5] = new wxBitmap(...); - toolBarBitmaps[6] = new wxBitmap(...); - toolBarBitmaps[7] = new wxBitmap(...); +#else + toolBarBitmaps[0] = new wxBitmap( new_xpm ); + toolBarBitmaps[1] = new wxBitmap( open_xpm ); + toolBarBitmaps[2] = new wxBitmap( save_xpm ); + toolBarBitmaps[3] = new wxBitmap( copy_xpm ); + toolBarBitmaps[4] = new wxBitmap( cut_xpm ); + toolBarBitmaps[5] = new wxBitmap( preview_xpm ); + toolBarBitmaps[6] = new wxBitmap( print_xpm ); + toolBarBitmaps[7] = new wxBitmap( help_xpm ); #endif #ifdef __WXMSW__ @@ -194,27 +198,26 @@ bool MyApp::InitToolbar(wxToolBar* toolBar) #else int width = 16; #endif - int offX = 5; int currentX = 5; - toolBar->AddTool(wxID_NEW, *(toolBarBitmaps[0]), wxNullBitmap, FALSE, (float)currentX, -1, NULL, "New file"); + toolBar->AddTool(wxID_NEW, *(toolBarBitmaps[0]), wxNullBitmap, FALSE, currentX, -1, (wxObject *) NULL, "New file"); currentX += width + 5; - toolBar->AddTool(wxID_OPEN, *(toolBarBitmaps[1]), wxNullBitmap, FALSE, (float)currentX, -1, NULL, "Open file"); + toolBar->AddTool(wxID_OPEN, *(toolBarBitmaps[1]), wxNullBitmap, FALSE, currentX, -1, (wxObject *) NULL, "Open file"); currentX += width + 5; - toolBar->AddTool(wxID_SAVE, *(toolBarBitmaps[2]), wxNullBitmap, FALSE, (float)currentX, -1, NULL, "Save file"); + toolBar->AddTool(wxID_SAVE, *(toolBarBitmaps[2]), wxNullBitmap, FALSE, currentX, -1, (wxObject *) NULL, "Save file"); currentX += width + 5; toolBar->AddSeparator(); - toolBar->AddTool(wxID_COPY, *(toolBarBitmaps[3]), wxNullBitmap, FALSE, (float)currentX, -1, NULL, "Copy"); + toolBar->AddTool(wxID_COPY, *(toolBarBitmaps[3]), wxNullBitmap, FALSE, currentX, -1, (wxObject *) NULL, "Copy"); currentX += width + 5; - toolBar->AddTool(wxID_CUT, *(toolBarBitmaps[4]), wxNullBitmap, FALSE, (float)currentX, -1, NULL, "Cut"); + toolBar->AddTool(wxID_CUT, *(toolBarBitmaps[4]), wxNullBitmap, FALSE, currentX, -1, (wxObject *) NULL, "Cut"); currentX += width + 5; - toolBar->AddTool(wxID_PASTE, *(toolBarBitmaps[5]), wxNullBitmap, FALSE, (float)currentX, -1, NULL, "Paste"); + toolBar->AddTool(wxID_PASTE, *(toolBarBitmaps[5]), wxNullBitmap, FALSE, currentX, -1, (wxObject *) NULL, "Paste"); currentX += width + 5; toolBar->AddSeparator(); - toolBar->AddTool(wxID_PRINT, *(toolBarBitmaps[6]), wxNullBitmap, FALSE, (float)currentX, -1, NULL, "Print"); + toolBar->AddTool(wxID_PRINT, *(toolBarBitmaps[6]), wxNullBitmap, FALSE, currentX, -1, (wxObject *) NULL, "Print"); currentX += width + 5; toolBar->AddSeparator(); - toolBar->AddTool(wxID_HELP, *(toolBarBitmaps[7]), wxNullBitmap, FALSE, currentX, -1, NULL, "Help"); + toolBar->AddTool(wxID_HELP, *(toolBarBitmaps[7]), wxNullBitmap, FALSE, currentX, -1, (wxObject *) NULL, "Help"); toolBar->Realize(); @@ -233,7 +236,7 @@ BEGIN_EVENT_TABLE(MyFrame, wxFrame) EVT_MENU(wxID_HELP, MyFrame::OnAbout) EVT_CLOSE(MyFrame::OnCloseWindow) EVT_TOOL_RANGE(wxID_OPEN, wxID_PASTE, MyFrame::OnToolLeftClick) - EVT_TOOL_ENTER(ID_TOOLBAR, MyFrame::OnToolEnter) + EVT_TOOL_ENTER(wxID_OPEN, MyFrame::OnToolEnter) END_EVENT_TABLE() // Define my frame constructor @@ -244,19 +247,19 @@ MyFrame::MyFrame(wxFrame* parent, wxWindowID id, const wxString& title, const wx m_textWindow = new wxTextCtrl(this, -1, "", wxPoint(0, 0), wxSize(-1, -1), wxTE_MULTILINE); } -void MyFrame::OnQuit(wxCommandEvent& event) +void MyFrame::OnQuit(wxCommandEvent& WXUNUSED(event)) { Close(TRUE); } -void MyFrame::OnAbout(wxCommandEvent& event) +void MyFrame::OnAbout(wxCommandEvent& WXUNUSED(event)) { - (void)wxMessageBox("wxWindows wxToolBar demo\n", "About wxToolBar"); + (void)wxMessageBox("wxWindows toolbar sample", "About wxToolBar"); } // Define the behaviour for the frame closing // - must delete all frames except for the main one. -void MyFrame::OnCloseWindow(wxCloseEvent& event) +void MyFrame::OnCloseWindow(wxCloseEvent& WXUNUSED(event)) { Destroy(); }