]> git.saurik.com Git - wxWidgets.git/blob - wxPython/src/windows2.i
fixed GetMargins() compilation
[wxWidgets.git] / wxPython / src / windows2.i
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: windows2.i
3 // Purpose: SWIG definitions of MORE window classes
4 //
5 // Author: Robin Dunn
6 //
7 // Created: 6/2/98
8 // RCS-ID: $Id$
9 // Copyright: (c) 1998 by Total Control Software
10 // Licence: wxWindows license
11 /////////////////////////////////////////////////////////////////////////////
12
13 %module windows2
14
15 %{
16 #include "helpers.h"
17 #ifdef OLD_GRID
18 #include <wx/grid.h>
19 #endif
20 #include <wx/notebook.h>
21 #include <wx/splitter.h>
22 #ifdef __WXMSW__
23 #include <wx/msw/taskbar.h>
24 #endif
25 %}
26
27 //----------------------------------------------------------------------
28
29 %include typemaps.i
30 %include my_typemaps.i
31
32 // Import some definitions of other classes, etc.
33 %import _defs.i
34 %import misc.i
35 %import gdi.i
36 %import windows.i
37 %import controls.i
38 %import events.i
39
40 %pragma(python) code = "import wx"
41
42 //---------------------------------------------------------------------------
43
44 #ifdef OLD_GRID
45
46 enum {
47 wxGRID_TEXT_CTRL,
48 wxGRID_HSCROLL,
49 wxGRID_VSCROLL
50 };
51
52 class wxGridCell {
53 public:
54 wxGridCell();
55 ~wxGridCell();
56
57 wxString& GetTextValue();
58 void SetTextValue(const wxString& str);
59 wxFont& GetFont();
60 void SetFont(wxFont& f);
61 wxColour& GetTextColour();
62 void SetTextColour(const wxColour& colour);
63 wxColour& GetBackgroundColour();
64 void SetBackgroundColour(const wxColour& colour);
65 wxBrush& GetBackgroundBrush();
66 int GetAlignment();
67 void SetAlignment(int align);
68 wxBitmap* GetCellBitmap();
69 void SetCellBitmap(wxBitmap* bitmap);
70 };
71
72
73
74
75 class wxGrid : public wxPanel {
76 public:
77 wxGrid(wxWindow* parent, wxWindowID id,
78 const wxPoint& pos=wxDefaultPosition,
79 const wxSize& size=wxDefaultSize,
80 long style=0,
81 char* name="grid");
82
83 %pragma(python) addtomethod = "__init__:#wx._StdWindowCallbacks(self)"
84 %pragma(python) addtomethod = "__init__:#wx._checkForCallback(self, 'OnSelectCell', wxEVT_GRID_SELECT_CELL)"
85 %pragma(python) addtomethod = "__init__:#wx._checkForCallback(self, 'OnCreateCell', wxEVT_GRID_CREATE_CELL)"
86 %pragma(python) addtomethod = "__init__:#wx._checkForCallback(self, 'OnChangeLabels', wxEVT_GRID_CHANGE_LABELS)"
87 %pragma(python) addtomethod = "__init__:#wx._checkForCallback(self, 'OnChangeSelectionLabel', wxEVT_GRID_CHANGE_SEL_LABEL)"
88 %pragma(python) addtomethod = "__init__:#wx._checkForCallback(self, 'OnCellChange', wxEVT_GRID_CELL_CHANGE)"
89 %pragma(python) addtomethod = "__init__:#wx._checkForCallback(self, 'OnCellLeftClick', wxEVT_GRID_CELL_LCLICK)"
90 %pragma(python) addtomethod = "__init__:#wx._checkForCallback(self, 'OnCellRightClick', wxEVT_GRID_CELL_RCLICK)"
91 %pragma(python) addtomethod = "__init__:#wx._checkForCallback(self, 'OnLabelLeftClick', wxEVT_GRID_LABEL_LCLICK)"
92 %pragma(python) addtomethod = "__init__:#wx._checkForCallback(self, 'OnLabelRightClick', wxEVT_GRID_LABEL_RCLICK)"
93
94
95 void AdjustScrollbars();
96 bool AppendCols(int n=1, int updateLabels=TRUE);
97 bool AppendRows(int n=1, int updateLabels=TRUE);
98 void BeginBatch();
99 bool CellHitTest(int x, int y, int *OUTPUT, int *OUTPUT);
100
101 %addmethods {
102 // TODO: For now we are just ignoring the initial cellValues
103 // and widths. Add support for loading them from
104 // Python sequence objects.
105 bool CreateGrid(int rows, int cols,
106 //PyObject* cellValues = NULL,
107 //PyObject* widths = NULL,
108 short defaultWidth = wxGRID_DEFAULT_CELL_WIDTH,
109 short defaultHeight = wxGRID_DEFAULT_CELL_HEIGHT) {
110 return self->CreateGrid(rows, cols, NULL, NULL,
111 defaultWidth, defaultHeight);
112 }
113 }
114
115 bool CurrentCellVisible();
116 bool DeleteCols(int pos=0, int n=1, bool updateLabels=TRUE);
117 bool DeleteRows(int pos=0, int n=1, bool updateLabels=TRUE);
118 void EndBatch();
119
120 int GetBatchCount();
121 wxGridCell* GetCell(int row, int col);
122 int GetCellAlignment(int row, int col);
123 %name(GetDefCellAlignment)int GetCellAlignment();
124 wxColour& GetCellBackgroundColour(int row, int col);
125 %name(GetDefCellBackgroundColour) wxColour& GetCellBackgroundColour();
126
127 //wxGridCell *** GetCells();
128 %addmethods {
129 PyObject* GetCells() {
130 int row, col;
131 PyObject* rows = PyList_New(0);
132 for (row=0; row < self->GetRows(); row++) {
133 PyObject* rowList = PyList_New(0);
134 for (col=0; col < self->GetCols(); col++) {
135 wxGridCell* cell = self->GetCell(row, col);
136
137 bool doSave = wxPyRestoreThread();
138 PyObject* pyCell = wxPyConstructObject(cell, "wxGridCell");
139 wxPySaveThread(doSave);
140
141 if (PyList_Append(rowList, pyCell) == -1)
142 return NULL;
143 }
144 if (PyList_Append(rows, rowList) == -1)
145 return NULL;
146 }
147 return rows;
148 }
149 }
150 wxColour& GetCellTextColour(int row, int col);
151 %name(GetDefCellTextColour)wxColour& GetCellTextColour();
152 wxFont& GetCellTextFont(int row, int col);
153 %name(GetDefCellTextFont)wxFont& GetCellTextFont();
154 wxString& GetCellValue(int row, int col);
155 int GetCols();
156 int GetColumnWidth(int col);
157 wxRect GetCurrentRect();
158 int GetCursorColumn();
159 int GetCursorRow();
160 bool GetEditable();
161 wxScrollBar * GetHorizScrollBar();
162 int GetLabelAlignment(int orientation);
163 wxColour& GetLabelBackgroundColour();
164 int GetLabelSize(int orientation);
165 wxColour& GetLabelTextColour();
166 wxFont& GetLabelTextFont();
167 wxString& GetLabelValue(int orientation, int pos);
168 int GetRowHeight(int row);
169 int GetRows();
170 int GetScrollPosX();
171 int GetScrollPosY();
172 wxTextCtrl* GetTextItem();
173 wxScrollBar* GetVertScrollBar();
174
175 bool InsertCols(int pos=0, int n=1, bool updateLabels=TRUE);
176 bool InsertRows(int pos=0, int n=1, bool updateLabels=TRUE);
177
178 void OnActivate(bool active);
179
180 void SetCellAlignment(int alignment, int row, int col);
181 %name(SetDefCellAlignment)void SetCellAlignment(int alignment);
182 void SetCellBackgroundColour(const wxColour& colour, int row, int col);
183 %name(SetDefCellBackgroundColour)
184 void SetCellBackgroundColour(const wxColour& colour);
185 void SetCellTextColour(const wxColour& colour, int row, int col);
186 %name(SetDefCellTextColour)void SetCellTextColour(const wxColour& colour);
187 void SetCellTextFont(wxFont& font, int row, int col);
188 %name(SetDefCellTextFont)void SetCellTextFont(wxFont& font);
189 void SetCellValue(const wxString& val, int row, int col);
190 void SetColumnWidth(int col, int width);
191 void SetDividerPen(wxPen& pen);
192 void SetEditable(bool editable);
193 void SetGridCursor(int row, int col);
194 void SetLabelAlignment(int orientation, int alignment);
195 void SetLabelBackgroundColour(const wxColour& value);
196 void SetLabelSize(int orientation, int size);
197 void SetLabelTextColour(const wxColour& value);
198 void SetLabelTextFont(wxFont& font);
199 void SetLabelValue(int orientation, const wxString& value, int pos);
200 void SetRowHeight(int row, int height);
201
202 void UpdateDimensions();
203
204 bool GetEditInPlace();
205 void SetEditInPlace(int edit = TRUE);
206
207 };
208
209
210 class wxGridEvent : public wxEvent {
211 public:
212 int m_row;
213 int m_col;
214 int m_x;
215 int m_y;
216 bool m_control;
217 bool m_shift;
218 wxGridCell* m_cell;
219
220 int GetRow();
221 int GetCol();
222 wxPoint GetPosition();
223 bool ControlDown();
224 bool ShiftDown();
225 wxGridCell* GetCell();
226 };
227
228
229 enum {
230 wxEVT_GRID_SELECT_CELL,
231 wxEVT_GRID_CREATE_CELL,
232 wxEVT_GRID_CHANGE_LABELS,
233 wxEVT_GRID_CHANGE_SEL_LABEL,
234 wxEVT_GRID_CELL_CHANGE,
235 wxEVT_GRID_CELL_LCLICK,
236 wxEVT_GRID_CELL_RCLICK,
237 wxEVT_GRID_LABEL_LCLICK,
238 wxEVT_GRID_LABEL_RCLICK,
239 };
240
241 #endif
242
243 //---------------------------------------------------------------------------
244
245 enum {
246 /* notebook control event types */
247 wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED,
248 wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING,
249 };
250
251
252 class wxNotebookEvent : public wxNotifyEvent {
253 public:
254 int GetSelection();
255 int GetOldSelection();
256 void SetOldSelection(int page);
257 void SetSelection(int page);
258 };
259
260
261
262 class wxNotebook : public wxControl {
263 public:
264 wxNotebook(wxWindow *parent,
265 wxWindowID id,
266 const wxPoint& pos = wxDefaultPosition,
267 const wxSize& size = wxDefaultSize,
268 long style = 0,
269 char* name = "notebook");
270
271 %pragma(python) addtomethod = "__init__:#wx._StdWindowCallbacks(self)"
272
273 int GetPageCount();
274 int SetSelection(int nPage);
275 void AdvanceSelection(bool bForward = TRUE);
276 int GetSelection();
277 bool SetPageText(int nPage, const wxString& strText);
278 wxString GetPageText(int nPage) const;
279 void SetImageList(wxImageList* imageList);
280 wxImageList* GetImageList();
281 int GetPageImage(int nPage);
282 bool SetPageImage(int nPage, int nImage);
283 int GetRowCount();
284
285 void SetPageSize(const wxSize& size);
286 void SetPadding(const wxSize& padding);
287 bool DeletePage(int nPage);
288 bool RemovePage(int nPage);
289 bool DeleteAllPages();
290 bool AddPage(/*wxNotebookPage*/ wxWindow *pPage,
291 const wxString& strText,
292 int bSelect = FALSE,
293 int imageId = -1);
294 bool InsertPage(int nPage,
295 /*wxNotebookPage*/ wxWindow *pPage,
296 const wxString& strText,
297 bool bSelect = FALSE,
298 int imageId = -1);
299 /*wxNotebookPage*/ wxWindow *GetPage(int nPage);
300
301 %addmethods {
302 void ResizeChildren() {
303 wxSizeEvent evt(self->GetClientSize());
304 self->GetEventHandler()->ProcessEvent(evt);
305 }
306 }
307
308
309 };
310
311 //---------------------------------------------------------------------------
312
313
314 enum {
315 /* splitter window events */
316 wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGING,
317 wxEVT_COMMAND_SPLITTER_SASH_POS_CHANGED,
318 wxEVT_COMMAND_SPLITTER_UNSPLIT,
319 wxEVT_COMMAND_SPLITTER_DOUBLECLICKED,
320 };
321
322
323 enum
324 {
325 wxSPLIT_HORIZONTAL,
326 wxSPLIT_VERTICAL,
327 wxSPLIT_DRAG_NONE,
328 wxSPLIT_DRAG_DRAGGING,
329 wxSPLIT_DRAG_LEFT_DOWN
330 };
331
332
333 class wxSplitterEvent : public wxCommandEvent {
334 public:
335 int GetSashPosition();
336 int GetX();
337 int GetY();
338 wxWindow* GetWindowBeingRemoved();
339 void SetSashPosition(int pos);
340 }
341
342
343
344
345 class wxSplitterWindow : public wxWindow {
346 public:
347 wxSplitterWindow(wxWindow* parent, wxWindowID id,
348 const wxPoint& point = wxDefaultPosition,
349 const wxSize& size = wxDefaultSize,
350 long style=wxSP_3D|wxCLIP_CHILDREN,
351 char* name = "splitterWindow");
352
353 %pragma(python) addtomethod = "__init__:#wx._StdWindowCallbacks(self)"
354
355 int GetBorderSize();
356 int GetMinimumPaneSize();
357 int GetSashPosition();
358 int GetSashSize();
359 int GetSplitMode();
360 wxWindow* GetWindow1();
361 wxWindow* GetWindow2();
362 void Initialize(wxWindow* window);
363 bool IsSplit();
364
365 bool ReplaceWindow(wxWindow * winOld, wxWindow * winNew);
366 void SetBorderSize(int width);
367 void SetSashPosition(int position, int redraw = TRUE);
368 void SetSashSize(int width);
369 void SetMinimumPaneSize(int paneSize);
370 void SetSplitMode(int mode);
371 bool SplitHorizontally(wxWindow* window1, wxWindow* window2, int sashPosition = 0);
372 bool SplitVertically(wxWindow* window1, wxWindow* window2, int sashPosition = 0);
373 bool Unsplit(wxWindow* toRemove = NULL);
374 };
375
376 //---------------------------------------------------------------------------
377
378 #ifdef __WXMSW__
379
380 enum {
381 wxEVT_TASKBAR_MOVE,
382 wxEVT_TASKBAR_LEFT_DOWN,
383 wxEVT_TASKBAR_LEFT_UP,
384 wxEVT_TASKBAR_RIGHT_DOWN,
385 wxEVT_TASKBAR_RIGHT_UP,
386 wxEVT_TASKBAR_LEFT_DCLICK,
387 wxEVT_TASKBAR_RIGHT_DCLICK
388 };
389
390
391 class wxTaskBarIcon : public wxEvtHandler {
392 public:
393 wxTaskBarIcon();
394 ~wxTaskBarIcon();
395
396 // We still use the magic methods here since that is the way it is documented...
397 %pragma(python) addtomethod = "__init__:wx._checkForCallback(self, 'OnMouseMove', wxEVT_TASKBAR_MOVE)"
398 %pragma(python) addtomethod = "__init__:wx._checkForCallback(self, 'OnLButtonDown', wxEVT_TASKBAR_LEFT_DOWN)"
399 %pragma(python) addtomethod = "__init__:wx._checkForCallback(self, 'OnLButtonUp', wxEVT_TASKBAR_LEFT_UP)"
400 %pragma(python) addtomethod = "__init__:wx._checkForCallback(self, 'OnRButtonDown', wxEVT_TASKBAR_RIGHT_DOWN)"
401 %pragma(python) addtomethod = "__init__:wx._checkForCallback(self, 'OnRButtonUp', wxEVT_TASKBAR_RIGHT_UP)"
402 %pragma(python) addtomethod = "__init__:wx._checkForCallback(self, 'OnLButtonDClick',wxEVT_TASKBAR_LEFT_DCLICK)"
403 %pragma(python) addtomethod = "__init__:wx._checkForCallback(self, 'OnRButtonDClick',wxEVT_TASKBAR_RIGHT_DCLICK)"
404
405 bool SetIcon(const wxIcon& icon, const char* tooltip = "");
406 bool RemoveIcon(void);
407 bool PopupMenu(wxMenu *menu);
408 bool IsIconInstalled();
409 bool IsOK();
410 };
411 #endif
412
413 //---------------------------------------------------------------------------