]> git.saurik.com Git - wxWidgets.git/blob - include/wx/os2/toolbar.h
fixed handling of Ctrl-arrows movement which was unselecting the previously selected...
[wxWidgets.git] / include / wx / os2 / toolbar.h
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: toolbar.h
3 // Purpose: wxToolBar class
4 // Author: David Webster
5 // Modified by:
6 // Created: 10/17/98
7 // RCS-ID: $Id$
8 // Copyright: (c) David Webster
9 // Licence: wxWindows licence
10 /////////////////////////////////////////////////////////////////////////////
11
12 #ifndef _WX_TOOLBAR_H_
13 #define _WX_TOOLBAR_H_
14
15 #if wxUSE_TOOLBAR
16 #include "wx/tbarbase.h"
17
18 class WXDLLEXPORT wxToolBar: public wxToolBarBase
19 {
20 public:
21 /*
22 * Public interface
23 */
24
25 wxToolBar() { Init(); }
26
27 inline wxToolBar( wxWindow* pParent
28 ,wxWindowID vId
29 ,const wxPoint& rPos = wxDefaultPosition
30 ,const wxSize& rSize = wxDefaultSize
31 ,long lStyle = wxNO_BORDER | wxTB_HORIZONTAL
32 ,const wxString& rName = wxToolBarNameStr
33 )
34 {
35 Init();
36 Create( pParent
37 ,vId
38 ,rPos
39 ,rSize
40 ,lStyle
41 ,rName
42 );
43 }
44 virtual ~wxToolBar();
45
46 bool Create( wxWindow* pParent
47 ,wxWindowID vId
48 ,const wxPoint& rPos = wxDefaultPosition
49 ,const wxSize& rSize = wxDefaultSize
50 ,long lStyle = wxNO_BORDER | wxTB_HORIZONTAL
51 ,const wxString& rName = wxToolBarNameStr
52 );
53
54
55 //
56 // Override/implement base class virtuals
57 //
58 virtual wxToolBarToolBase* FindToolForPosition( wxCoord vX
59 ,wxCoord vY
60 ) const;
61 virtual bool Realize(void);
62 virtual void SetRows(int nRows);
63
64 //
65 // Special overrides for OS/2
66 //
67 virtual wxToolBarToolBase* InsertControl( size_t nPos
68 ,wxControl* pControl
69 );
70 virtual wxToolBarToolBase* InsertSeparator(size_t nPos);
71 virtual wxToolBarToolBase* InsertTool( size_t nPos
72 ,int nId
73 ,const wxString& rsLabel
74 ,const wxBitmap& rBitmap
75 ,const wxBitmap& rBmpDisabled = wxNullBitmap
76 ,wxItemKind eKind = wxITEM_NORMAL
77 ,const wxString& rsShortHelp = wxEmptyString
78 ,const wxString& rsLongHelp = wxEmptyString
79 ,wxObject* pClientData = NULL
80 );
81 wxToolBarToolBase* InsertTool( size_t nPos
82 ,int nId
83 ,const wxBitmap& rBitmap
84 ,const wxBitmap& rBmpDisabled = wxNullBitmap
85 ,bool bToggle = FALSE
86 ,wxObject* pClientData = NULL
87 ,const wxString& rsShortHelp = wxEmptyString
88 ,const wxString& rsLongHelp = wxEmptyString
89 )
90 {
91 return InsertTool( nPos
92 ,nId
93 ,wxEmptyString
94 ,rBitmap
95 ,rBmpDisabled
96 ,bToggle ? wxITEM_CHECK : wxITEM_NORMAL
97 ,rsShortHelp
98 ,rsLongHelp
99 ,pClientData
100 );
101 }
102 virtual bool DeleteTool(int nId);
103 virtual bool DeleteToolByPos(size_t nPos);
104
105 //
106 // Event handlers
107 //
108 void OnPaint(wxPaintEvent& event);
109 void OnSize(wxSizeEvent& event);
110 void OnMouseEvent(wxMouseEvent& event);
111 void OnKillFocus(wxFocusEvent& event);
112
113 protected:
114 //
115 // Common part of all ctors
116 //
117 void Init();
118
119 //
120 // Implement base class pure virtuals
121 //
122 virtual wxToolBarToolBase* DoAddTool( int id
123 ,const wxString& label
124 ,const wxBitmap& bitmap
125 ,const wxBitmap& bmpDisabled
126 ,wxItemKind kind
127 ,const wxString& shortHelp = wxEmptyString
128 ,const wxString& longHelp = wxEmptyString
129 ,wxObject *clientData = NULL
130 ,wxCoord xPos = -1
131 ,wxCoord yPos = -1
132 );
133
134 virtual bool DoInsertTool( size_t nPos
135 ,wxToolBarToolBase* pTool
136 );
137 virtual bool DoDeleteTool( size_t nPos
138 , wxToolBarToolBase* pTool
139 );
140
141 virtual void DoEnableTool( wxToolBarToolBase* pTool
142 ,bool bEnable
143 );
144 virtual void DoToggleTool( wxToolBarToolBase* pTool
145 ,bool bToggle
146 );
147 virtual void DoSetToggle( wxToolBarToolBase* pTool
148 ,bool bToggle
149 );
150
151 virtual wxToolBarToolBase* CreateTool( int vId
152 ,const wxString& rsLabel
153 ,const wxBitmap& rBmpNormal
154 ,const wxBitmap& rBmpDisabled
155 ,wxItemKind eKind
156 ,wxObject* pClientData
157 ,const wxString& rsShortHelp
158 ,const wxString& rsLongHelp
159 );
160 virtual wxToolBarToolBase* CreateTool(wxControl* pControl);
161
162 //
163 // Helpers
164 //
165 void DrawTool(wxToolBarToolBase *tool);
166 virtual void DrawTool( wxDC& rDC
167 ,wxToolBarToolBase* pTool
168 );
169 virtual void SpringUpButton(int nIndex);
170
171 int m_nCurrentRowsOrColumns;
172 int m_nPressedTool;
173 int m_nCurrentTool;
174 wxCoord m_vLastX;
175 wxCoord m_vLastY;
176 wxCoord m_vMaxWidth;
177 wxCoord m_vMaxHeight;
178 wxCoord m_vXPos;
179 wxCoord m_vYPos;
180 wxCoord m_vTextX;
181 wxCoord m_vTextY;
182
183 private:
184 void LowerTool( wxToolBarToolBase* pTool
185 ,bool bLower = TRUE
186 );
187 void RaiseTool( wxToolBarToolBase* pTool
188 ,bool bRaise = TRUE
189 );
190
191 static bool m_bInitialized;
192
193 DECLARE_EVENT_TABLE()
194 DECLARE_DYNAMIC_CLASS(wxToolBar)
195 };
196
197 #endif // wxUSE_TOOLBAR
198
199 #endif
200 // _WX_TOOLBAR_H_