1 /////////////////////////////////////////////////////////////////////////////
3 // Purpose: SWIG definitions of MORE window classes
9 // Copyright: (c) 1998 by Total Control Software
10 // Licence: wxWindows license
11 /////////////////////////////////////////////////////////////////////////////
18 #include <wx/notebook.h>
19 #include <wx/splitter.h>
21 #include <wx/msw/taskbar.h>
25 //----------------------------------------------------------------------
28 %include my_typemaps.i
30 // Import some definitions of other classes, etc.
38 %pragma(python) code = "import wx"
40 //---------------------------------------------------------------------------
54 wxString& GetTextValue();
55 void SetTextValue(const wxString& str);
57 void SetFont(wxFont& f);
58 wxColour& GetTextColour();
59 void SetTextColour(const wxColour& colour);
60 wxColour& GetBackgroundColour();
61 void SetBackgroundColour(const wxColour& colour);
62 wxBrush& GetBackgroundBrush();
64 void SetAlignment(int align);
65 wxBitmap* GetCellBitmap();
66 void SetCellBitmap(wxBitmap* bitmap);
72 class wxGrid : public wxPanel {
74 wxGrid(wxWindow* parent, wxWindowID id,
75 const wxPoint& pos=wxPyDefaultPosition,
76 const wxSize& size=wxPyDefaultSize,
80 %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)"
81 %pragma(python) addtomethod = "__init__:wx._checkForCallback(self, 'OnSelectCell', wxEVT_GRID_SELECT_CELL)"
82 %pragma(python) addtomethod = "__init__:wx._checkForCallback(self, 'OnCreateCell', wxEVT_GRID_CREATE_CELL)"
83 %pragma(python) addtomethod = "__init__:wx._checkForCallback(self, 'OnChangeLabels', wxEVT_GRID_CHANGE_LABELS)"
84 %pragma(python) addtomethod = "__init__:wx._checkForCallback(self, 'OnChangeSelectionLabel', wxEVT_GRID_CHANGE_SEL_LABEL)"
85 %pragma(python) addtomethod = "__init__:wx._checkForCallback(self, 'OnCellChange', wxEVT_GRID_CELL_CHANGE)"
86 %pragma(python) addtomethod = "__init__:wx._checkForCallback(self, 'OnCellLeftClick', wxEVT_GRID_CELL_LCLICK)"
87 %pragma(python) addtomethod = "__init__:wx._checkForCallback(self, 'OnCellRightClick', wxEVT_GRID_CELL_RCLICK)"
88 %pragma(python) addtomethod = "__init__:wx._checkForCallback(self, 'OnLabelLeftClick', wxEVT_GRID_LABEL_LCLICK)"
89 %pragma(python) addtomethod = "__init__:wx._checkForCallback(self, 'OnLabelRightClick', wxEVT_GRID_LABEL_RCLICK)"
92 void AdjustScrollbars();
93 bool AppendCols(int n=1, bool updateLabels=TRUE);
94 bool AppendRows(int n=1, bool updateLabels=TRUE);
96 bool CellHitTest(int x, int y, int *OUTPUT, int *OUTPUT);
99 // TODO: For now we are just ignoring the initial cellValues
100 // and widths. Add support for loading them from
101 // Python sequence objects.
102 bool CreateGrid(int rows, int cols,
103 //PyObject* cellValues = NULL,
104 //PyObject* widths = NULL,
105 short defaultWidth = wxGRID_DEFAULT_CELL_WIDTH,
106 short defaultHeight = wxGRID_DEFAULT_CELL_HEIGHT) {
107 return self->CreateGrid(rows, cols, NULL, NULL,
108 defaultWidth, defaultHeight);
112 bool CurrentCellVisible();
113 bool DeleteCols(int pos=0, int n=1, bool updateLabels=TRUE);
114 bool DeleteRows(int pos=0, int n=1, bool updateLabels=TRUE);
118 wxGridCell* GetCell(int row, int col);
119 int GetCellAlignment(int row, int col);
120 %name(GetDefCellAlignment)int GetCellAlignment();
121 wxColour& GetCellBackgroundColour(int row, int col);
122 %name(GetDefCellBackgroundColour) wxColour& GetCellBackgroundColour();
124 //wxGridCell *** GetCells();
126 PyObject* GetCells() {
128 PyObject* rows = PyList_New(0);
129 for (row=0; row < self->GetRows(); row++) {
130 PyObject* rowList = PyList_New(0);
131 for (col=0; col < self->GetCols(); col++) {
132 wxGridCell* cell = self->GetCell(row, col);
134 #ifdef WXP_WITH_THREAD
135 PyEval_RestoreThread(wxPyEventThreadState);
138 PyObject* pyCell = wxPyConstructObject(cell, "wxGridCell");
139 #ifdef WXP_WITH_THREAD
144 if (PyList_Append(rowList, pyCell) == -1)
147 if (PyList_Append(rows, rowList) == -1)
153 wxColour& GetCellTextColour(int row, int col);
154 %name(GetDefCellTextColour)wxColour& GetCellTextColour();
155 wxFont& GetCellTextFont(int row, int col);
156 %name(GetDefCellTextFont)wxFont& GetCellTextFont();
157 wxString& GetCellValue(int row, int col);
159 int GetColumnWidth(int col);
160 wxRect GetCurrentRect();
161 int GetCursorColumn();
164 wxScrollBar * GetHorizScrollBar();
165 int GetLabelAlignment(int orientation);
166 wxColour& GetLabelBackgroundColour();
167 int GetLabelSize(int orientation);
168 wxColour& GetLabelTextColour();
169 wxFont& GetLabelTextFont();
170 wxString& GetLabelValue(int orientation, int pos);
171 int GetRowHeight(int row);
175 wxTextCtrl* GetTextItem();
176 wxScrollBar* GetVertScrollBar();
178 bool InsertCols(int pos=0, int n=1, bool updateLabels=TRUE);
179 bool InsertRows(int pos=0, int n=1, bool updateLabels=TRUE);
181 void OnActivate(bool active);
183 void SetCellAlignment(int alignment, int row, int col);
184 %name(SetDefCellAlignment)void SetCellAlignment(int alignment);
185 void SetCellBackgroundColour(const wxColour& colour, int row, int col);
186 %name(SetDefCellBackgroundColour)
187 void SetCellBackgroundColour(const wxColour& colour);
188 void SetCellTextColour(const wxColour& colour, int row, int col);
189 %name(SetDefCellTextColour)void SetCellTextColour(const wxColour& colour);
190 void SetCellTextFont(wxFont& font, int row, int col);
191 %name(SetDefCellTextFont)void SetCellTextFont(wxFont& font);
192 void SetCellValue(const wxString& val, int row, int col);
193 void SetColumnWidth(int col, int width);
194 void SetDividerPen(wxPen& pen);
195 void SetEditable(bool editable);
196 void SetGridCursor(int row, int col);
197 void SetLabelAlignment(int orientation, int alignment);
198 void SetLabelBackgroundColour(const wxColour& value);
199 void SetLabelSize(int orientation, int size);
200 void SetLabelTextColour(const wxColour& value);
201 void SetLabelTextFont(wxFont& font);
202 void SetLabelValue(int orientation, const wxString& value, int pos);
203 void SetRowHeight(int row, int height);
205 void UpdateDimensions();
207 bool GetEditInPlace();
208 void SetEditInPlace(int edit = TRUE);
213 class wxGridEvent : public wxEvent {
226 wxEVT_GRID_SELECT_CELL,
227 wxEVT_GRID_CREATE_CELL,
228 wxEVT_GRID_CHANGE_LABELS,
229 wxEVT_GRID_CHANGE_SEL_LABEL,
230 wxEVT_GRID_CELL_CHANGE,
231 wxEVT_GRID_CELL_LCLICK,
232 wxEVT_GRID_CELL_RCLICK,
233 wxEVT_GRID_LABEL_LCLICK,
234 wxEVT_GRID_LABEL_RCLICK,
238 //---------------------------------------------------------------------------
240 class wxNotebookEvent : public wxNotifyEvent {
243 int GetOldSelection();
244 void SetOldSelection(int page);
245 void SetSelection(int page);
250 class wxNotebook : public wxControl {
252 wxNotebook(wxWindow *parent,
254 const wxPoint& pos = wxPyDefaultPosition,
255 const wxSize& size = wxPyDefaultSize,
257 char* name = "notebook");
259 %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)"
262 int SetSelection(int nPage);
263 void AdvanceSelection(bool bForward = TRUE);
265 bool SetPageText(int nPage, const wxString& strText);
266 wxString GetPageText(int nPage) const;
267 void SetImageList(wxImageList* imageList);
268 wxImageList* GetImageList();
269 int GetPageImage(int nPage);
270 bool SetPageImage(int nPage, int nImage);
273 // LINK ERROR: void SetPageSize(const wxSize& size);
274 // LINK ERROR: void SetPadding(const wxSize& padding);
275 bool DeletePage(int nPage);
276 bool RemovePage(int nPage);
277 bool DeleteAllPages();
278 bool AddPage(/*wxNotebookPage*/ wxWindow *pPage,
279 const wxString& strText,
283 bool InsertPage(int nPage,
284 /*wxNotebookPage*/ wxWindow *pPage,
285 const wxString& strText,
286 bool bSelect = FALSE,
289 /*wxNotebookPage*/ wxWindow *GetPage(int nPage);
292 void ResizeChildren() {
293 wxSizeEvent evt(self->GetClientSize());
294 self->GetEventHandler()->ProcessEvent(evt);
301 //---------------------------------------------------------------------------
303 class wxSplitterEvent : public wxCommandEvent {
305 int GetSashPosition();
308 wxWindow* GetWindowBeingRemoved();
309 void SetSashPosition(int pos);
315 class wxSplitterWindow : public wxWindow {
317 wxSplitterWindow(wxWindow* parent, wxWindowID id,
318 const wxPoint& point = wxPyDefaultPosition,
319 const wxSize& size = wxPyDefaultSize,
320 long style=wxSP_3D|wxCLIP_CHILDREN,
321 char* name = "splitterWindow");
323 %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)"
326 int GetMinimumPaneSize();
327 int GetSashPosition();
330 wxWindow* GetWindow1();
331 wxWindow* GetWindow2();
332 void Initialize(wxWindow* window);
336 void SetBorderSize(int width);
337 void SetSashPosition(int position, int redraw = TRUE);
338 void SetSashSize(int width);
339 void SetMinimumPaneSize(int paneSize);
340 void SetSplitMode(int mode);
341 bool SplitHorizontally(wxWindow* window1, wxWindow* window2, int sashPosition = 0);
342 bool SplitVertically(wxWindow* window1, wxWindow* window2, int sashPosition = 0);
343 bool Unsplit(wxWindow* toRemove = NULL);
346 //---------------------------------------------------------------------------
352 wxEVT_TASKBAR_LEFT_DOWN,
353 wxEVT_TASKBAR_LEFT_UP,
354 wxEVT_TASKBAR_RIGHT_DOWN,
355 wxEVT_TASKBAR_RIGHT_UP,
356 wxEVT_TASKBAR_LEFT_DCLICK,
357 wxEVT_TASKBAR_RIGHT_DCLICK
361 class wxTaskBarIcon : public wxEvtHandler {
366 %pragma(python) addtomethod = "__init__:wx._checkForCallback(self, 'OnMouseMove', wxEVT_TASKBAR_MOVE)"
367 %pragma(python) addtomethod = "__init__:wx._checkForCallback(self, 'OnLButtonDown', wxEVT_TASKBAR_LEFT_DOWN)"
368 %pragma(python) addtomethod = "__init__:wx._checkForCallback(self, 'OnLButtonUp', wxEVT_TASKBAR_LEFT_UP)"
369 %pragma(python) addtomethod = "__init__:wx._checkForCallback(self, 'OnRButtonDown', wxEVT_TASKBAR_RIGHT_DOWN)"
370 %pragma(python) addtomethod = "__init__:wx._checkForCallback(self, 'OnRButtonUp', wxEVT_TASKBAR_RIGHT_UP)"
371 %pragma(python) addtomethod = "__init__:wx._checkForCallback(self, 'OnLButtonDClick',wxEVT_TASKBAR_LEFT_DCLICK)"
372 %pragma(python) addtomethod = "__init__:wx._checkForCallback(self, 'OnRButtonDClick',wxEVT_TASKBAR_RIGHT_DCLICK)"
374 bool SetIcon(const wxIcon& icon, const char* tooltip = "");
375 bool RemoveIcon(void);
376 bool PopupMenu(wxMenu *menu);
381 //---------------------------------------------------------------------------