]> git.saurik.com Git - wxWidgets.git/blame - wxPython/src/stattool.i
moved splines rendering code into wxDCBase
[wxWidgets.git] / wxPython / src / stattool.i
CommitLineData
9c039d08
RD
1/////////////////////////////////////////////////////////////////////////////
2// Name: stattool.i
3// Purpose: SWIG definitions for StatusBar and ToolBar classes
4//
5// Author: Robin Dunn
6//
7// Created: 08/24/1998
8// RCS-ID: $Id$
9// Copyright: (c) 1998 by Total Control Software
10// Licence: wxWindows license
11/////////////////////////////////////////////////////////////////////////////
12
13
14%module stattool
15
16%{
17#include "helpers.h"
18#include <wx/toolbar.h>
19#include <wx/tbarsmpl.h>
20%}
21
22//----------------------------------------------------------------------
23
24%include typemaps.i
25%include my_typemaps.i
26
27// Import some definitions of other classes, etc.
28%import _defs.i
29%import misc.i
30%import windows.i
31%import controls.i
32
b8b8dda7 33%pragma(python) code = "import wx"
9c039d08 34
b68dc582
RD
35
36%{
37 static wxString wxPyEmptyStr("");
38%}
39
9c039d08
RD
40//---------------------------------------------------------------------------
41
42class wxStatusBar : public wxWindow {
43public:
44 wxStatusBar(wxWindow* parent, wxWindowID id,
b68dc582
RD
45 const wxPoint& pos = wxDefaultPosition,
46 const wxSize& size = wxDefaultSize,
9c039d08
RD
47 long style = wxST_SIZEGRIP,
48 char* name = "statusBar");
49
f6bcfd97 50 %pragma(python) addtomethod = "__init__:#wx._StdWindowCallbacks(self)"
9c039d08
RD
51
52 %addmethods {
53 %new wxRect* GetFieldRect(long item) {
54 wxRect* rect= new wxRect;
55 self->GetFieldRect(item, *rect);
56 return rect;
57 }
58 }
59 int GetFieldsCount(void);
60 wxString GetStatusText(int ir = 0);
26b9cf27
RD
61 int GetBorderX();
62 int GetBorderY();
63
64// void DrawField(wxDC& dc, int i);
65// void DrawFieldText(wxDC& dc, int i);
66// void InitColours(void);
9c039d08 67
9c039d08
RD
68 void SetFieldsCount(int number = 1);
69 void SetStatusText(const wxString& text, int i = 0);
eec92d76 70 void SetStatusWidths(int LCOUNT, int* choices);
26b9cf27 71 void SetMinHeight(int height);
9c039d08
RD
72};
73
74
75//---------------------------------------------------------------------------
76
9b3d3bc4
RD
77class wxToolBarBase;
78
79enum wxToolBarToolStyle
80{
81 wxTOOL_STYLE_BUTTON = 1,
82 wxTOOL_STYLE_SEPARATOR = 2,
83 wxTOOL_STYLE_CONTROL
84};
85
86
87
88class wxToolBarToolBase {
89public:
90// wxToolBarToolBase(wxToolBarBase *tbar = (wxToolBarBase *)NULL,
91// int id = wxID_SEPARATOR,
92// const wxBitmap& bitmap1 = wxNullBitmap,
93// const wxBitmap& bitmap2 = wxNullBitmap,
94// bool toggle = FALSE,
95// wxObject *clientData = (wxObject *) NULL,
96// const wxString& shortHelpString = wxEmptyString,
97// const wxString& longHelpString = wxEmptyString);
98// wxToolBarToolBase(wxToolBarBase *tbar, wxControl *control);
99// ~wxToolBarToolBase();
100
101 %addmethods { void Destroy() { delete self; } }
102
103 int GetId();
104 wxControl *GetControl();
105 wxToolBarBase *GetToolBar();
106 int IsButton();
107 int IsControl();
108 int IsSeparator();
109 int GetStyle();
110 bool IsEnabled();
111 bool IsToggled();
112 bool CanBeToggled();
113 const wxBitmap& GetBitmap1();
114 const wxBitmap& GetBitmap2();
115 const wxBitmap& GetBitmap();
116 wxString GetShortHelp();
117 wxString GetLongHelp();
118 bool Enable(bool enable);
119 bool Toggle(bool toggle);
120 bool SetToggle(bool toggle);
121 bool SetShortHelp(const wxString& help);
122 bool SetLongHelp(const wxString& help);
123 void SetBitmap1(const wxBitmap& bmp);
124 void SetBitmap2(const wxBitmap& bmp);
125 void Detach();
126 void Attach(wxToolBarBase *tbar);
127
128 //wxObject *GetClientData();
129 %addmethods {
130 // convert the ClientData back to a PyObject
131 PyObject* GetClientData() {
132 wxPyUserData* udata = (wxPyUserData*)self->GetClientData();
133 if (udata) {
134 Py_INCREF(udata->m_obj);
135 return udata->m_obj;
136 } else {
137 Py_INCREF(Py_None);
138 return Py_None;
139 }
140 }
141
142 void SetClientData(PyObject* clientData) {
143 self->SetClientData(new wxPyUserData(clientData));
144 }
145 }
146};
147
148
149
150class wxToolBarBase : public wxControl {
151public:
152
153 // This is an Abstract Base Class
154
155 %addmethods {
156 // wrap ClientData in a class that knows about PyObjects
157 wxToolBarToolBase *AddTool(int id,
158 const wxBitmap& bitmap,
159 const wxBitmap& pushedBitmap = wxNullBitmap,
c368d904 160 int isToggle = FALSE,
9b3d3bc4
RD
161 PyObject *clientData = NULL,
162 const wxString& shortHelpString = wxPyEmptyStr,
163 const wxString& longHelpString = wxPyEmptyStr) {
164 wxPyUserData* udata = NULL;
165 if (clientData)
166 udata = new wxPyUserData(clientData);
c368d904 167 return self->AddTool(id, bitmap, pushedBitmap, (bool)isToggle,
9b3d3bc4
RD
168 udata, shortHelpString, longHelpString);
169 }
170
171 // This one is easier to use...
172 wxToolBarToolBase *AddSimpleTool(int id,
173 const wxBitmap& bitmap,
174 const wxString& shortHelpString = wxPyEmptyStr,
175 const wxString& longHelpString = wxPyEmptyStr,
c368d904
RD
176 int isToggle = FALSE) {
177 return self->AddTool(id, bitmap, wxNullBitmap, isToggle, NULL,
9b3d3bc4
RD
178 shortHelpString, longHelpString);
179 }
180
181
182 // wrap ClientData in a class that knows about PyObjects
183 wxToolBarToolBase *InsertTool(size_t pos,
184 int id,
185 const wxBitmap& bitmap,
186 const wxBitmap& pushedBitmap = wxNullBitmap,
c368d904 187 int isToggle = FALSE,
9b3d3bc4
RD
188 PyObject *clientData = NULL,
189 const wxString& shortHelpString = wxPyEmptyStr,
190 const wxString& longHelpString = wxPyEmptyStr) {
191 wxPyUserData* udata = NULL;
192 if (clientData)
193 udata = new wxPyUserData(clientData);
c368d904 194 return self->InsertTool(pos, id, bitmap, pushedBitmap, (bool)isToggle,
9b3d3bc4
RD
195 udata, shortHelpString, longHelpString);
196 }
197
198 // This one is easier to use...
199 wxToolBarToolBase *InsertSimpleTool(size_t pos,
200 int id,
201 const wxBitmap& bitmap,
202 const wxString& shortHelpString = wxPyEmptyStr,
203 const wxString& longHelpString = wxPyEmptyStr,
c368d904
RD
204 int isToggle = FALSE) {
205 return self->InsertTool(pos, id, bitmap, wxNullBitmap, isToggle, NULL,
9b3d3bc4
RD
206 shortHelpString, longHelpString);
207 }
208 }
209
210
211 wxToolBarToolBase *AddControl(wxControl *control);
212 wxToolBarToolBase *InsertControl(size_t pos, wxControl *control);
213
214 wxToolBarToolBase *AddSeparator();
215 wxToolBarToolBase *InsertSeparator(size_t pos);
216
217 wxToolBarToolBase *RemoveTool(int id);
218
219 bool DeleteToolByPos(size_t pos);
220 bool DeleteTool(int id);
221 void ClearTools();
222 bool Realize();
223
224 void EnableTool(int id, bool enable);
225 void ToggleTool(int id, bool toggle);
226 void SetToggle(int id, bool toggle);
227
228
229 %addmethods {
230 // convert the ClientData back to a PyObject
231 PyObject* GetToolClientData(int index) {
232 wxPyUserData* udata = (wxPyUserData*)self->GetToolClientData(index);
233 if (udata) {
234 Py_INCREF(udata->m_obj);
235 return udata->m_obj;
236 } else {
237 Py_INCREF(Py_None);
238 return Py_None;
239 }
240 }
241
242 void SetToolClientData(int index, PyObject* clientData) {
243 self->SetToolClientData(index, new wxPyUserData(clientData));
244 }
245 }
246
247
248 bool GetToolState(int id);
249 bool GetToolEnabled(int id);
250 void SetToolShortHelp(int id, const wxString& helpString);
251 wxString GetToolShortHelp(int id);
252 void SetToolLongHelp(int id, const wxString& helpString);
253 wxString GetToolLongHelp(int id);
254
255 %name(SetMarginsXY) void SetMargins(int x, int y);
256 void SetMargins(const wxSize& size);
257 void SetToolPacking(int packing);
258 void SetToolSeparation(int separation);
259 wxSize GetToolMargins();
260 int GetToolPacking();
261 int GetToolSeparation();
262
263 void SetRows(int nRows);
264 void SetMaxRowsCols(int rows, int cols);
265 int GetMaxRows();
266 int GetMaxCols();
267
268 void SetToolBitmapSize(const wxSize& size);
269 wxSize GetToolBitmapSize();
270 wxSize GetToolSize();
271
272};
273
274
275
276
277class wxToolBar : public wxToolBarBase {
278public:
279 wxToolBar(wxWindow *parent,
280 wxWindowID id,
b68dc582
RD
281 const wxPoint& pos = wxDefaultPosition,
282 const wxSize& size = wxDefaultSize,
9b3d3bc4 283 long style = wxNO_BORDER | wxTB_HORIZONTAL,
8e425133 284 const char* name = wxToolBarNameStr);
9b3d3bc4 285
f6bcfd97 286 %pragma(python) addtomethod = "__init__:#wx._StdWindowCallbacks(self)"
9b3d3bc4
RD
287
288 wxToolBarToolBase *FindToolForPosition(wxCoord x, wxCoord y);
289};
290
291
292
293
294class wxToolBarSimple : public wxToolBarBase {
295public:
296 wxToolBarSimple(wxWindow *parent,
297 wxWindowID id,
b68dc582
RD
298 const wxPoint& pos = wxDefaultPosition,
299 const wxSize& size = wxDefaultSize,
9b3d3bc4 300 long style = wxNO_BORDER | wxTB_HORIZONTAL,
8e425133 301 const char* name = wxToolBarNameStr);
9b3d3bc4 302
f6bcfd97 303 %pragma(python) addtomethod = "__init__:#wx._StdWindowCallbacks(self)"
9b3d3bc4
RD
304
305 wxToolBarToolBase *FindToolForPosition(wxCoord x, wxCoord y);
306};
307
308//---------------------------------------------------------------------------
309
310
311
312#ifdef THE_OLD_ONE
313
9c039d08
RD
314class wxToolBarTool {
315public:
316 wxToolBarTool();
317 ~wxToolBarTool();
9b3d3bc4
RD
318 void SetSize( long w, long h )
319 long GetWidth ();
320 long GetHeight ();
6999b0d8 321 wxControl *GetControl();
9c039d08
RD
322
323public:
324 int m_toolStyle;
325 wxObject * m_clientData;
326 int m_index;
327 long m_x;
328 long m_y;
329 long m_width;
330 long m_height;
331 bool m_toggleState;
332 bool m_isToggle;
333 bool m_deleteSecondBitmap;
334 bool m_enabled;
335 wxBitmap m_bitmap1;
336 wxBitmap m_bitmap2;
337 bool m_isMenuCommand;
338 wxString m_shortHelpString;
339 wxString m_longHelpString;
340};
341
342
343
b26e2dc4
RD
344// class wxToolBarBase : public wxControl {
345// public:
346
347class wxToolBar : public wxControl {
9c039d08 348public:
b26e2dc4 349 wxToolBar(wxWindow* parent, wxWindowID id,
b68dc582
RD
350 const wxPoint& pos = wxDefaultPosition,
351 const wxSize& size = wxDefaultSize,
b26e2dc4
RD
352 long style = wxTB_HORIZONTAL | wxNO_BORDER,
353 char* name = "toolBar");
354
f6bcfd97 355 %pragma(python) addtomethod = "__init__:#wx._StdWindowCallbacks(self)"
9c039d08
RD
356
357
6999b0d8 358 bool AddControl(wxControl * control);
08127323 359 void AddSeparator();
6999b0d8 360 void ClearTools();
9c039d08
RD
361
362 // Ignoge the clientData for now...
363 %addmethods {
364 wxToolBarTool* AddTool(int toolIndex,
365 const wxBitmap& bitmap1,
366 const wxBitmap& bitmap2 = wxNullBitmap,
367 int isToggle = FALSE,
368 long xPos = -1,
369 long yPos = -1,
370 //wxObject* clientData = NULL,
371 const wxString& shortHelpString = wxPyEmptyStr,
372 const wxString& longHelpString = wxPyEmptyStr) {
373 return self->AddTool(toolIndex, bitmap1, bitmap2,
374 isToggle, xPos, yPos, NULL,
375 shortHelpString, longHelpString);
376 }
08127323
RD
377
378 wxToolBarTool* AddSimpleTool(int toolIndex,
379 const wxBitmap& bitmap,
380 const wxString& shortHelpString = wxPyEmptyStr,
381 const wxString& longHelpString = wxPyEmptyStr) {
382 return self->AddTool(toolIndex, bitmap, wxNullBitmap,
383 FALSE, -1, -1, NULL,
384 shortHelpString, longHelpString);
385 }
9c039d08
RD
386 }
387
08127323 388
6999b0d8 389 void EnableTool(int toolIndex, bool enable);
5bff6bb8 390#ifdef __WXMSW__
6999b0d8 391 wxToolBarTool* FindToolForPosition(long x, long y);
9c039d08
RD
392 wxSize GetToolSize();
393 wxSize GetToolBitmapSize();
4f22cf8d 394 void SetToolBitmapSize(const wxSize& size);
9c039d08 395 wxSize GetMaxSize();
5bff6bb8
RD
396#endif
397 wxSize GetToolMargins();
9c039d08
RD
398// wxObject* GetToolClientData(int toolIndex);
399 bool GetToolEnabled(int toolIndex);
400 wxString GetToolLongHelp(int toolIndex);
401 int GetToolPacking();
402 int GetToolSeparation();
403 wxString GetToolShortHelp(int toolIndex);
404 bool GetToolState(int toolIndex);
405
9c039d08
RD
406
407 bool Realize();
08127323 408
9c039d08 409 void SetToolLongHelp(int toolIndex, const wxString& helpString);
9c039d08 410 void SetToolShortHelp(int toolIndex, const wxString& helpString);
b26e2dc4
RD
411 void SetMargins(const wxSize& size);
412 void SetToolPacking(int packing);
9c039d08
RD
413 void SetToolSeparation(int separation);
414 void ToggleTool(int toolIndex, const bool toggle);
6999b0d8 415 void SetToggle(int toolIndex, bool toggle);
6999b0d8
RD
416 void SetMaxRowsCols(int rows, int cols);
417 int GetMaxRows();
418 int GetMaxCols();
9c039d08
RD
419};
420
9b3d3bc4
RD
421
422#endif
423
9c039d08
RD
424//---------------------------------------------------------------------------
425