#include "helpers.h"
#include <wx/grid.h>
#include <wx/notebook.h>
+#include <wx/splitter.h>
+#ifdef __WXMSW__
+#include <wx/msw/taskbar.h>
+#endif
%}
//----------------------------------------------------------------------
%import controls.i
%import events.i
+%pragma(python) code = "import wx"
+
//---------------------------------------------------------------------------
+
enum {
wxGRID_TEXT_CTRL,
wxGRID_HSCROLL,
- wxGRID_VSCROLL,
+ wxGRID_VSCROLL
};
-
-
class wxGridCell {
public:
+ wxGridCell();
+ ~wxGridCell();
+
wxString& GetTextValue();
- void SetTextValue(const wxString& str);
- wxFont *GetFont();
- void SetFont(wxFont *f);
+ void SetTextValue(const wxString& str);
+ wxFont& GetFont();
+ void SetFont(wxFont& f);
wxColour& GetTextColour();
- void SetTextColour(const wxColour& colour);
+ void SetTextColour(const wxColour& colour);
wxColour& GetBackgroundColour();
- void SetBackgroundColour(const wxColour& colour);
- wxBrush *GetBackgroundBrush();
- int GetAlignment();
- void SetAlignment(int align);
- wxBitmap *GetCellBitmap();
- void SetCellBitmap(wxBitmap *bitmap);
+ void SetBackgroundColour(const wxColour& colour);
+ wxBrush& GetBackgroundBrush();
+ int GetAlignment();
+ void SetAlignment(int align);
+ wxBitmap* GetCellBitmap();
+ void SetCellBitmap(wxBitmap* bitmap);
};
-
class wxGrid : public wxPanel {
public:
wxGrid(wxWindow* parent, wxWindowID id,
long style=0,
char* name="grid");
+ %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)"
+ %pragma(python) addtomethod = "__init__:wx._checkForCallback(self, 'OnSelectCell', wxEVT_GRID_SELECT_CELL)"
+ %pragma(python) addtomethod = "__init__:wx._checkForCallback(self, 'OnCreateCell', wxEVT_GRID_CREATE_CELL)"
+ %pragma(python) addtomethod = "__init__:wx._checkForCallback(self, 'OnChangeLabels', wxEVT_GRID_CHANGE_LABELS)"
+ %pragma(python) addtomethod = "__init__:wx._checkForCallback(self, 'OnChangeSelectionLabel', wxEVT_GRID_CHANGE_SEL_LABEL)"
+ %pragma(python) addtomethod = "__init__:wx._checkForCallback(self, 'OnCellChange', wxEVT_GRID_CELL_CHANGE)"
+ %pragma(python) addtomethod = "__init__:wx._checkForCallback(self, 'OnCellLeftClick', wxEVT_GRID_CELL_LCLICK)"
+ %pragma(python) addtomethod = "__init__:wx._checkForCallback(self, 'OnCellRightClick', wxEVT_GRID_CELL_RCLICK)"
+ %pragma(python) addtomethod = "__init__:wx._checkForCallback(self, 'OnLabelLeftClick', wxEVT_GRID_LABEL_LCLICK)"
+ %pragma(python) addtomethod = "__init__:wx._checkForCallback(self, 'OnLabelRightClick', wxEVT_GRID_LABEL_RCLICK)"
+
+
void AdjustScrollbars();
bool AppendCols(int n=1, bool updateLabels=TRUE);
bool AppendRows(int n=1, bool updateLabels=TRUE);
int GetCellAlignment(int row, int col);
%name(GetDefCellAlignment)int GetCellAlignment();
wxColour& GetCellBackgroundColour(int row, int col);
- %name(GetDefCellBackgroundColour)
- wxColour& GetCellBackgroundColour();
+ %name(GetDefCellBackgroundColour) wxColour& GetCellBackgroundColour();
+
//wxGridCell *** GetCells();
+ %addmethods {
+ PyObject* GetCells() {
+ int row, col;
+ PyObject* rows = PyList_New(0);
+ for (row=0; row < self->GetRows(); row++) {
+ PyObject* rowList = PyList_New(0);
+ for (col=0; col < self->GetCols(); col++) {
+ wxGridCell* cell = self->GetCell(row, col);
+
+ bool doSave = wxPyRestoreThread();
+ PyObject* pyCell = wxPyConstructObject(cell, "wxGridCell");
+ wxPySaveThread(doSave);
+
+ if (PyList_Append(rowList, pyCell) == -1)
+ return NULL;
+ }
+ if (PyList_Append(rows, rowList) == -1)
+ return NULL;
+ }
+ return rows;
+ }
+ }
wxColour& GetCellTextColour(int row, int col);
%name(GetDefCellTextColour)wxColour& GetCellTextColour();
- wxFont* GetCellTextFont(int row, int col);
- %name(GetDefCellTextFont)wxFont* GetCellTextFont();
+ wxFont& GetCellTextFont(int row, int col);
+ %name(GetDefCellTextFont)wxFont& GetCellTextFont();
wxString& GetCellValue(int row, int col);
int GetCols();
int GetColumnWidth(int col);
- wxRect& GetCurrentRect();
+ wxRect GetCurrentRect();
int GetCursorColumn();
int GetCursorRow();
bool GetEditable();
wxColour& GetLabelBackgroundColour();
int GetLabelSize(int orientation);
wxColour& GetLabelTextColour();
- wxFont* GetLabelTextFont();
+ wxFont& GetLabelTextFont();
wxString& GetLabelValue(int orientation, int pos);
int GetRowHeight(int row);
int GetRows();
bool InsertCols(int pos=0, int n=1, bool updateLabels=TRUE);
bool InsertRows(int pos=0, int n=1, bool updateLabels=TRUE);
- // TODO: How to handle callbacks that don't come from
- // event system???
- //
- //void OnActivate(bool active);
- //void OnChangeLabels();
- //void OnChangeSelectionLabel();
- //wxGridCell* OnCreateCell();
- //void OnLeftClick(int row, int col, int x, int y, bool control, bool shift);
- //void OnRightClick(int row, int col, int x, int y, bool control, bool shift);
- //void OnLabelLeftClick(int row, int col, int x, int y, bool control, bool shift);
- //void OnLabelRightClick(int row, int col, int x, int y, bool control, bool shift);
- //void OnSelectCell(int row, int col);
- //void OnSelectCellImplementation(wxDC *dc, int row, int col);
+ void OnActivate(bool active);
void SetCellAlignment(int alignment, int row, int col);
%name(SetDefCellAlignment)void SetCellAlignment(int alignment);
void SetCellBackgroundColour(const wxColour& colour);
void SetCellTextColour(const wxColour& colour, int row, int col);
%name(SetDefCellTextColour)void SetCellTextColour(const wxColour& colour);
- void SetCellTextFont(wxFont *font, int row, int col);
- %name(SetDefCellTextFont)void SetCellTextFont(wxFont *font);
+ void SetCellTextFont(wxFont& font, int row, int col);
+ %name(SetDefCellTextFont)void SetCellTextFont(wxFont& font);
void SetCellValue(const wxString& val, int row, int col);
void SetColumnWidth(int col, int width);
- void SetDividerPen(wxPen *pen);
+ void SetDividerPen(wxPen& pen);
void SetEditable(bool editable);
void SetGridCursor(int row, int col);
void SetLabelAlignment(int orientation, int alignment);
void SetLabelBackgroundColour(const wxColour& value);
void SetLabelSize(int orientation, int size);
void SetLabelTextColour(const wxColour& value);
- void SetLabelTextFont(wxFont *font);
+ void SetLabelTextFont(wxFont& font);
void SetLabelValue(int orientation, const wxString& value, int pos);
void SetRowHeight(int row, int height);
void UpdateDimensions();
+
+ bool GetEditInPlace();
+ void SetEditInPlace(int edit = TRUE);
+
};
+
+class wxGridEvent : public wxEvent {
+public:
+ int m_row;
+ int m_col;
+ int m_x;
+ int m_y;
+ bool m_control;
+ bool m_shift;
+ wxGridCell* m_cell;
+
+ int GetRow();
+ int GetCol();
+ wxPoint GetPosition();
+ bool ControlDown();
+ bool ShiftDown();
+ wxGridCell* GetCell();
+};
+
+
+enum {
+ wxEVT_GRID_SELECT_CELL,
+ wxEVT_GRID_CREATE_CELL,
+ wxEVT_GRID_CHANGE_LABELS,
+ wxEVT_GRID_CHANGE_SEL_LABEL,
+ wxEVT_GRID_CELL_CHANGE,
+ wxEVT_GRID_CELL_LCLICK,
+ wxEVT_GRID_CELL_RCLICK,
+ wxEVT_GRID_LABEL_LCLICK,
+ wxEVT_GRID_LABEL_RCLICK,
+};
+
+
//---------------------------------------------------------------------------
-class wxNotebookEvent : public wxCommandEvent {
+class wxNotebookEvent : public wxNotifyEvent {
public:
int GetSelection();
int GetOldSelection();
+ void SetOldSelection(int page);
+ void SetSelection(int page);
};
long style = 0,
char* name = "notebook");
+ %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)"
+
int GetPageCount();
int SetSelection(int nPage);
void AdvanceSelection(bool bForward = TRUE);
// LINK ERROR: void SetPageSize(const wxSize& size);
// LINK ERROR: void SetPadding(const wxSize& padding);
bool DeletePage(int nPage);
+ bool RemovePage(int nPage);
bool DeleteAllPages();
bool AddPage(/*wxNotebookPage*/ wxWindow *pPage,
const wxString& strText,
- bool bSelect = FALSE,
+ int bSelect = FALSE,
int imageId = -1);
+#ifdef __WXMSW__
bool InsertPage(int nPage,
/*wxNotebookPage*/ wxWindow *pPage,
const wxString& strText,
bool bSelect = FALSE,
int imageId = -1);
- wxNotebookPage *GetPage(int nPage);
+#endif
+ /*wxNotebookPage*/ wxWindow *GetPage(int nPage);
+
+ %addmethods {
+ void ResizeChildren() {
+ wxSizeEvent evt(self->GetClientSize());
+ self->GetEventHandler()->ProcessEvent(evt);
+ }
+ }
+
};
//---------------------------------------------------------------------------
-/////////////////////////////////////////////////////////////////////////////
-//
-// $Log$
-// Revision 1.2 1998/08/15 07:36:50 RD
-// - Moved the header in the .i files out of the code that gets put into
-// the .cpp files. It caused CVS conflicts because of the RCS ID being
-// different each time.
-//
-// - A few minor fixes.
-//
-// Revision 1.1 1998/08/09 08:25:52 RD
-// Initial version
-//
-//
+
+class wxSplitterEvent : public wxCommandEvent {
+public:
+ int GetSashPosition();
+ int GetX();
+ int GetY();
+ wxWindow* GetWindowBeingRemoved();
+ void SetSashPosition(int pos);
+}
+
+
+
+
+class wxSplitterWindow : public wxWindow {
+public:
+ wxSplitterWindow(wxWindow* parent, wxWindowID id,
+ const wxPoint& point = wxPyDefaultPosition,
+ const wxSize& size = wxPyDefaultSize,
+ long style=wxSP_3D|wxCLIP_CHILDREN,
+ char* name = "splitterWindow");
+
+ %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)"
+
+ int GetBorderSize();
+ int GetMinimumPaneSize();
+ int GetSashPosition();
+ int GetSashSize();
+ int GetSplitMode();
+ wxWindow* GetWindow1();
+ wxWindow* GetWindow2();
+ void Initialize(wxWindow* window);
+ bool IsSplit();
+
+ bool ReplaceWindow(wxWindow * winOld, wxWindow * winNew);
+ void SetBorderSize(int width);
+ void SetSashPosition(int position, int redraw = TRUE);
+ void SetSashSize(int width);
+ void SetMinimumPaneSize(int paneSize);
+ void SetSplitMode(int mode);
+ bool SplitHorizontally(wxWindow* window1, wxWindow* window2, int sashPosition = 0);
+ bool SplitVertically(wxWindow* window1, wxWindow* window2, int sashPosition = 0);
+ bool Unsplit(wxWindow* toRemove = NULL);
+};
+
+//---------------------------------------------------------------------------
+
+#ifdef __WXMSW__
+
+enum {
+ wxEVT_TASKBAR_MOVE,
+ wxEVT_TASKBAR_LEFT_DOWN,
+ wxEVT_TASKBAR_LEFT_UP,
+ wxEVT_TASKBAR_RIGHT_DOWN,
+ wxEVT_TASKBAR_RIGHT_UP,
+ wxEVT_TASKBAR_LEFT_DCLICK,
+ wxEVT_TASKBAR_RIGHT_DCLICK
+};
+
+
+class wxTaskBarIcon : public wxEvtHandler {
+public:
+ wxTaskBarIcon();
+ ~wxTaskBarIcon();
+
+ %pragma(python) addtomethod = "__init__:wx._checkForCallback(self, 'OnMouseMove', wxEVT_TASKBAR_MOVE)"
+ %pragma(python) addtomethod = "__init__:wx._checkForCallback(self, 'OnLButtonDown', wxEVT_TASKBAR_LEFT_DOWN)"
+ %pragma(python) addtomethod = "__init__:wx._checkForCallback(self, 'OnLButtonUp', wxEVT_TASKBAR_LEFT_UP)"
+ %pragma(python) addtomethod = "__init__:wx._checkForCallback(self, 'OnRButtonDown', wxEVT_TASKBAR_RIGHT_DOWN)"
+ %pragma(python) addtomethod = "__init__:wx._checkForCallback(self, 'OnRButtonUp', wxEVT_TASKBAR_RIGHT_UP)"
+ %pragma(python) addtomethod = "__init__:wx._checkForCallback(self, 'OnLButtonDClick',wxEVT_TASKBAR_LEFT_DCLICK)"
+ %pragma(python) addtomethod = "__init__:wx._checkForCallback(self, 'OnRButtonDClick',wxEVT_TASKBAR_RIGHT_DCLICK)"
+
+ bool SetIcon(const wxIcon& icon, const char* tooltip = "");
+ bool RemoveIcon(void);
+ bool PopupMenu(wxMenu *menu);
+
+};
+#endif
+
+//---------------------------------------------------------------------------