]> git.saurik.com Git - wxWidgets.git/blame_incremental - include/wx/msw/tbar95.h
Avoid do-nothing virtuals in WinCE.
[wxWidgets.git] / include / wx / msw / tbar95.h
... / ...
CommitLineData
1/////////////////////////////////////////////////////////////////////////////
2// Name: wx/msw/tbar95.h
3// Purpose: wxToolBar (Windows 95 toolbar) class
4// Author: Julian Smart
5// Modified by:
6// Created: 01/02/97
7// RCS-ID: $Id$
8// Copyright: (c) Julian Smart
9// Licence: wxWindows licence
10/////////////////////////////////////////////////////////////////////////////
11
12#ifndef _WX_MSW_TBAR95_H_
13#define _WX_MSW_TBAR95_H_
14
15#if wxUSE_TOOLBAR
16
17#include "wx/dynarray.h"
18#include "wx/imaglist.h"
19
20class WXDLLEXPORT wxToolBar : public wxToolBarBase
21{
22public:
23 // ctors and dtor
24 wxToolBar() { Init(); }
25
26 wxToolBar(wxWindow *parent,
27 wxWindowID id,
28 const wxPoint& pos = wxDefaultPosition,
29 const wxSize& size = wxDefaultSize,
30 long style = wxNO_BORDER | wxTB_HORIZONTAL,
31 const wxString& name = wxToolBarNameStr)
32 {
33 Init();
34
35 Create(parent, id, pos, size, style, name);
36 }
37
38 bool Create(wxWindow *parent,
39 wxWindowID id,
40 const wxPoint& pos = wxDefaultPosition,
41 const wxSize& size = wxDefaultSize,
42 long style = wxNO_BORDER | wxTB_HORIZONTAL,
43 const wxString& name = wxToolBarNameStr);
44
45 virtual ~wxToolBar();
46
47 // override/implement base class virtuals
48 virtual wxToolBarToolBase *FindToolForPosition(wxCoord x, wxCoord y) const;
49
50 virtual bool Realize();
51
52 virtual void SetToolBitmapSize(const wxSize& size);
53 virtual wxSize GetToolSize() const;
54
55 virtual void SetRows(int nRows);
56
57 virtual void SetToolNormalBitmap(int id, const wxBitmap& bitmap);
58 virtual void SetToolDisabledBitmap(int id, const wxBitmap& bitmap);
59
60 // implementation only from now on
61 // -------------------------------
62
63 virtual void SetWindowStyleFlag(long style);
64
65 virtual bool MSWCommand(WXUINT param, WXWORD id);
66 virtual bool MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result);
67
68 void OnMouseEvent(wxMouseEvent& event);
69 void OnSysColourChanged(wxSysColourChangedEvent& event);
70 void OnEraseBackground(wxEraseEvent& event);
71
72 void SetFocus() {}
73
74 static WXHBITMAP MapBitmap(WXHBITMAP bitmap, int width, int height);
75
76 // override WndProc mainly to process WM_SIZE
77 virtual WXLRESULT MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam);
78
79 virtual WXDWORD MSWGetStyle(long style, WXDWORD *exstyle) const;
80
81protected:
82 // common part of all ctors
83 void Init();
84
85 // create the native toolbar control
86 bool MSWCreateToolbar(const wxPoint& pos, const wxSize& size);
87
88 // recreate the control completely
89 void Recreate();
90
91 // implement base class pure virtuals
92 virtual bool DoInsertTool(size_t pos, wxToolBarToolBase *tool);
93 virtual bool DoDeleteTool(size_t pos, wxToolBarToolBase *tool);
94
95 virtual void DoEnableTool(wxToolBarToolBase *tool, bool enable);
96 virtual void DoToggleTool(wxToolBarToolBase *tool, bool toggle);
97 virtual void DoSetToggle(wxToolBarToolBase *tool, bool toggle);
98
99 virtual wxToolBarToolBase *CreateTool(int id,
100 const wxString& label,
101 const wxBitmap& bmpNormal,
102 const wxBitmap& bmpDisabled,
103 wxItemKind kind,
104 wxObject *clientData,
105 const wxString& shortHelp,
106 const wxString& longHelp);
107 virtual wxToolBarToolBase *CreateTool(wxControl *control);
108
109 // return the appropriate size and flags for the toolbar control
110 virtual wxSize DoGetBestSize() const;
111
112 // handlers for various events
113 bool HandleSize(WXWPARAM wParam, WXLPARAM lParam);
114 bool HandlePaint(WXWPARAM wParam, WXLPARAM lParam);
115 void HandleMouseMove(WXWPARAM wParam, WXLPARAM lParam);
116
117 // should be called whenever the toolbar size changes
118 void UpdateSize();
119
120 // create m_disabledImgList (but doesn't fill it), set it to NULL if it is
121 // unneeded
122 void CreateDisabledImageList();
123
124 // get the Windows toolbar style of this control
125 long GetMSWToolbarStyle() const;
126
127
128 // the big bitmap containing all bitmaps of the toolbar buttons
129 WXHBITMAP m_hBitmap;
130
131 // the image list with disabled images, may be NULL if we use
132 // system-provided versions of them
133 wxImageList *m_disabledImgList;
134
135 // the total number of toolbar elements
136 size_t m_nButtons;
137
138 // the tool the cursor is in
139 wxToolBarToolBase *m_pInTool;
140
141private:
142 DECLARE_EVENT_TABLE()
143 DECLARE_DYNAMIC_CLASS(wxToolBar)
144 DECLARE_NO_COPY_CLASS(wxToolBar)
145};
146
147#endif // wxUSE_TOOLBAR
148
149#endif // _WX_MSW_TBAR95_H_
150