X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/03e9bead8a013fd207e9c3e35bcfdba22fef929d..d3b4d1131395d0413bd904579a310f6d9f7382f7:/utils/wxPython/src/windows2.i diff --git a/utils/wxPython/src/windows2.i b/utils/wxPython/src/windows2.i index c3826b6265..e499a0c6db 100644 --- a/utils/wxPython/src/windows2.i +++ b/utils/wxPython/src/windows2.i @@ -16,6 +16,10 @@ #include "helpers.h" #include #include +#include +#ifdef __WXMSW__ +#include +#endif %} //---------------------------------------------------------------------- @@ -31,37 +35,40 @@ %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, @@ -70,6 +77,18 @@ public: 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); @@ -105,8 +124,8 @@ public: //wxGridCell *** GetCells(); 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); @@ -119,7 +138,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(); @@ -131,19 +150,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); @@ -152,24 +159,50 @@ 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(); }; + +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; +}; + + +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 { @@ -189,6 +222,8 @@ public: long style = 0, char* name = "notebook"); + %pragma(python) addtomethod = "__init__:wx._StdWindowCallbacks(self)" + int GetPageCount(); int SetSelection(int nPage); void AdvanceSelection(bool bForward = TRUE); @@ -209,19 +244,137 @@ public: const wxString& strText, bool bSelect = FALSE, int imageId = -1); +#ifdef __WXMSW__ bool InsertPage(int nPage, /*wxNotebookPage*/ wxWindow *pPage, const wxString& strText, bool bSelect = FALSE, int imageId = -1); +#endif wxNotebookPage *GetPage(int nPage); }; +//--------------------------------------------------------------------------- + +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(); + + // TODO: How to handle callbacks that don't come from + // event system??? + // + //void OnDoubleClickSash(int x, int y); + //bool OnSashPositionChange(int newSashPosition); + //void OnUnsplit(wxWindow* removed); + + 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 + //--------------------------------------------------------------------------- ///////////////////////////////////////////////////////////////////////////// // // $Log$ +// Revision 1.8 1998/12/17 18:05:53 RD +// wxPython 0.5.2 +// Minor fixes and SWIG code generation for RR's changes. MSW and GTK +// versions are much closer now! +// +// Revision 1.7 1998/12/15 20:41:25 RD +// Changed the import semantics from "from wxPython import *" to "from +// wxPython.wx import *" This is for people who are worried about +// namespace pollution, they can use "from wxPython import wx" and then +// prefix all the wxPython identifiers with "wx." +// +// Added wxTaskbarIcon for wxMSW. +// +// Made the events work for wxGrid. +// +// Added wxConfig. +// +// Added wxMiniFrame for wxGTK, (untested.) +// +// Changed many of the args and return values that were pointers to gdi +// objects to references to reflect changes in the wxWindows API. +// +// Other assorted fixes and additions. +// +// Revision 1.6 1998/11/25 08:45:28 RD +// +// Added wxPalette, wxRegion, wxRegionIterator, wxTaskbarIcon +// Added events for wxGrid +// Other various fixes and additions +// +// 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