X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/4464bbee9cec909b2d73bc62285cc061d617cdff..e02c03a42ea85be1e908962c8a344fb2553e7c3e:/utils/wxPython/src/windows2.i?ds=sidebyside diff --git a/utils/wxPython/src/windows2.i b/utils/wxPython/src/windows2.i index d154185afb..0e8d7a7200 100644 --- a/utils/wxPython/src/windows2.i +++ b/utils/wxPython/src/windows2.i @@ -17,6 +17,9 @@ #include #include #include +#ifdef __WXMSW__ +#include +#endif %} //---------------------------------------------------------------------- @@ -32,39 +35,40 @@ %import controls.i %import events.i -%pragma(python) code = "import wxp" +%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, @@ -73,11 +77,21 @@ public: long style=0, char* name="grid"); - %pragma(python) addtomethod = "__init__:wxp._StdWindowCallbacks(self)" + %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); + bool AppendCols(int n=1, int updateLabels=TRUE); + bool AppendRows(int n=1, int updateLabels=TRUE); void BeginBatch(); bool CellHitTest(int x, int y, int *OUTPUT, int *OUTPUT); @@ -105,17 +119,39 @@ public: 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(); @@ -124,7 +160,7 @@ public: wxColour& GetLabelBackgroundColour(); int GetLabelSize(int orientation); wxColour& GetLabelTextColour(); - wxFont* GetLabelTextFont(); + wxFont& GetLabelTextFont(); wxString& GetLabelValue(int orientation, int pos); int GetRowHeight(int row); int GetRows(); @@ -136,19 +172,7 @@ public: 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); @@ -157,30 +181,69 @@ public: 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); }; @@ -194,7 +257,7 @@ public: long style = 0, char* name = "notebook"); - %pragma(python) addtomethod = "__init__:wxp._StdWindowCallbacks(self)" + %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)" int GetPageCount(); int SetSelection(int nPage); @@ -211,10 +274,11 @@ public: // 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, @@ -223,37 +287,56 @@ public: bool bSelect = FALSE, int imageId = -1); #endif - wxNotebookPage *GetPage(int nPage); + /*wxNotebookPage*/ wxWindow *GetPage(int nPage); + + %addmethods { + void ResizeChildren() { + wxSizeEvent evt(self->GetClientSize()); + self->GetEventHandler()->ProcessEvent(evt); + } + } + }; //--------------------------------------------------------------------------- +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, + long style=wxSP_3D|wxCLIP_CHILDREN, char* name = "splitterWindow"); - %pragma(python) addtomethod = "__init__:wxp._StdWindowCallbacks(self)" + %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(); - // TODO: How to handle callbacks that don't come from - // event system??? - // - //void OnDoubleClickSash(int x, int y); - //void OnUnsplit(wxWindow* removed); - + 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); @@ -263,32 +346,37 @@ public: //--------------------------------------------------------------------------- +#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 //--------------------------------------------------------------------------- -///////////////////////////////////////////////////////////////////////////// -// -// $Log$ -// Revision 1.5 1998/11/03 09:21:57 RD -// fixed a typo -// -// Revision 1.4 1998/10/02 06:40:43 RD -// -// Version 0.4 of wxPython for MSW. -// -// Revision 1.3 1998/08/18 19:48:20 RD -// more wxGTK compatibility things. -// -// It builds now but there are serious runtime problems... -// -// 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 -// -//