]> git.saurik.com Git - wxWidgets.git/blobdiff - utils/wxPython/src/windows2.i
wxPython updates (SWIG really works, cannot believe it)
[wxWidgets.git] / utils / wxPython / src / windows2.i
index c3826b626525dfebc91e47f7db607bc6dba1337b..e499a0c6dbcab30eacf17b14c815d33ea235cbda 100644 (file)
 #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);
+    wxBitmapGetCellBitmap();
+    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(wxFontfont, int row, int col);
+    %name(SetDefCellTextFont)void SetCellTextFont(wxFontfont);
     void SetCellValue(const wxString& val, int row, int col);
     void SetColumnWidth(int col, int width);
-    void SetDividerPen(wxPen *pen);
+    void SetDividerPen(wxPenpen);
     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(wxFontfont);
     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