]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/src/_notebook.i
Fixes for the stubbed version so it will compile
[wxWidgets.git] / wxPython / src / _notebook.i
index e150afc6cc09136f835f9d91abfcf750fff10874..7f045777a57ee2541dd44c0c856857411390d954 100644 (file)
 
 //---------------------------------------------------------------------------
 
 
 //---------------------------------------------------------------------------
 
-%{
-    DECLARE_DEF_STRING(NOTEBOOK_NAME);
-%}
+MAKE_CONST_WXSTRING(NOTEBOOK_NAME);
 
 //---------------------------------------------------------------------------
 %newgroup
 
 // TODO:  Virtualize this class so other book controls can be derived in Python
 
 
 //---------------------------------------------------------------------------
 %newgroup
 
 // TODO:  Virtualize this class so other book controls can be derived in Python
 
+MustHaveApp(wxBookCtrlBase);
+
 //  Common base class for wxList/Tree/Notebook
 //  Common base class for wxList/Tree/Notebook
-class wxBookCtrl : public wxControl
+class wxBookCtrlBase : public wxControl
 {
 public:
     // This is an ABC, it can't be constructed...
 
 {
 public:
     // This is an ABC, it can't be constructed...
 
-//     wxBookCtrl(wxWindow *parent,
+//     wxBookCtrlBase(wxWindow *parent,
 //                wxWindowID id,
 //                const wxPoint& pos = wxDefaultPosition,
 //                const wxSize& size = wxDefaultSize,
 //                long style = 0,
 //                const wxString& name = wxPyEmptyString);
 //                wxWindowID id,
 //                const wxPoint& pos = wxDefaultPosition,
 //                const wxSize& size = wxDefaultSize,
 //                long style = 0,
 //                const wxString& name = wxPyEmptyString);
-//     %name(PreBookCtrl)wxBookCtrl();
+//     %name(PreBookCtrlBase)wxBookCtrlBase();
 //     bool Create(wxWindow *parent,
 //                 wxWindowID id,
 //                 const wxPoint& pos = wxDefaultPosition,
 //     bool Create(wxWindow *parent,
 //                 wxWindowID id,
 //                 const wxPoint& pos = wxDefaultPosition,
@@ -51,6 +51,9 @@ public:
     // get the panel which represents the given page
     virtual wxWindow *GetPage(size_t n);
 
     // get the panel which represents the given page
     virtual wxWindow *GetPage(size_t n);
 
+    // get the current page or NULL if none
+    wxWindow* GetCurrentPage() const;
+
     // get the currently selected page or wxNOT_FOUND if none
     virtual int GetSelection() const/* = 0*/;
 
     // get the currently selected page or wxNOT_FOUND if none
     virtual int GetSelection() const/* = 0*/;
 
@@ -66,8 +69,9 @@ public:
     virtual void SetImageList(wxImageList *imageList);
 
     // as SetImageList() but we will delete the image list ourselves
     virtual void SetImageList(wxImageList *imageList);
 
     // as SetImageList() but we will delete the image list ourselves
-    %addtofunc AssignImageList "args[1].thisown = 0"
+    %apply SWIGTYPE *DISOWN { wxImageList *imageList };
     void AssignImageList(wxImageList *imageList);
     void AssignImageList(wxImageList *imageList);
+    %clear wxImageList *imageList;
 
     // get pointer (may be NULL) to the associated image list
     wxImageList* GetImageList() const;
 
     // get pointer (may be NULL) to the associated image list
     wxImageList* GetImageList() const;
@@ -116,14 +120,17 @@ public:
 
     // cycle thru the pages
     void AdvanceSelection(bool forward = true);
 
     // cycle thru the pages
     void AdvanceSelection(bool forward = true);
+
+    static wxVisualAttributes
+    GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL);
 };
 
 
 
 };
 
 
 
-class wxBookCtrlEvent : public wxNotifyEvent
+class wxBookCtrlBaseEvent : public wxNotifyEvent
 {
 public:
 {
 public:
-    wxBookCtrlEvent(wxEventType commandType = wxEVT_NULL, int id = 0,
+    wxBookCtrlBaseEvent(wxEventType commandType = wxEVT_NULL, int id = 0,
                     int nSel = -1, int nOldSel = -1);
 
         // the currently selected page (-1 if none)
                     int nSel = -1, int nOldSel = -1);
 
         // the currently selected page (-1 if none)
@@ -158,21 +165,27 @@ enum {
 
 
 
 
 
 
-class wxNotebook : public wxBookCtrl {
+MustHaveApp(wxNotebook);
+
+class wxNotebook : public wxBookCtrlBase {
 public:
 public:
-    %addtofunc wxNotebook         "self._setOORInfo(self)"
-    %addtofunc wxNotebook()       ""
+    %pythonAppend wxNotebook         "self._setOORInfo(self)"
+    %pythonAppend wxNotebook()       ""
+    %typemap(out) wxNotebook*;    // turn off this typemap
 
     wxNotebook(wxWindow *parent,
 
     wxNotebook(wxWindow *parent,
-               wxWindowID id,
+               wxWindowID id=-1,
                const wxPoint& pos = wxDefaultPosition,
                const wxSize& size = wxDefaultSize,
                long style = 0,
                const wxString& name = wxPyNOTEBOOK_NAME);
     %name(PreNotebook)wxNotebook();
 
                const wxPoint& pos = wxDefaultPosition,
                const wxSize& size = wxDefaultSize,
                long style = 0,
                const wxString& name = wxPyNOTEBOOK_NAME);
     %name(PreNotebook)wxNotebook();
 
+    // Turn it back on again
+    %typemap(out) wxNotebook* { $result = wxPyMake_wxObject($1, $owner); }
+
     bool Create(wxWindow *parent,
     bool Create(wxWindow *parent,
-               wxWindowID id,
+               wxWindowID id=-1,
                const wxPoint& pos = wxDefaultPosition,
                const wxSize& size = wxDefaultSize,
                long style = 0,
                const wxPoint& pos = wxDefaultPosition,
                const wxSize& size = wxDefaultSize,
                long style = 0,
@@ -191,20 +204,22 @@ public:
 
     // hit test, returns which tab is hit and, optionally, where (icon, label)
     // (not implemented on all platforms)
 
     // hit test, returns which tab is hit and, optionally, where (icon, label)
     // (not implemented on all platforms)
-    virtual int HitTest(const wxPoint& pt, long* OUTPUT) const;
+    DocDeclAStr(
+        virtual int, HitTest(const wxPoint& pt, long* OUTPUT) const,
+        "HitTest(Point pt) -> (tab, where)",
+        "Returns the tab which is hit, and flags indicating where using
+wx.NB_HITTEST flags.", "");
 
     // implement some base class functions
     virtual wxSize CalcSizeFromPage(const wxSize& sizePage) const;
 
 
     // implement some base class functions
     virtual wxSize CalcSizeFromPage(const wxSize& sizePage) const;
 
-#ifdef __WXMSW__
-    // Windows only: attempts to apply the UX theme page background to this page
-  void ApplyThemeBackground(wxWindow* window, const wxColour& colour);
-#endif
+    static wxVisualAttributes
+    GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL);
 };
 
 
 
 };
 
 
 
-class wxNotebookEvent : public wxBookCtrlEvent
+class wxNotebookEvent : public wxBookCtrlBaseEvent
 {
 public:
     wxNotebookEvent(wxEventType commandType = wxEVT_NULL, int id = 0,
 {
 public:
     wxNotebookEvent(wxEventType commandType = wxEVT_NULL, int id = 0,
@@ -244,7 +259,7 @@ class NotebookPage(wx.Panel):
         wx.Panel.__init__(self, parent, id, pos, size, style, name)
         self.child = None
         EVT_SIZE(self, self.OnSize)
         wx.Panel.__init__(self, parent, id, pos, size, style, name)
         self.child = None
         EVT_SIZE(self, self.OnSize)
-        
+
     def OnSize(self, evt):
         if self.child is None:
             children = self.GetChildren()
     def OnSize(self, evt):
         if self.child is None:
             children = self.GetChildren()
@@ -277,15 +292,17 @@ enum
 
 
 
 
 
 
+MustHaveApp(wxListbook);
+
 //  wxListCtrl and wxNotebook combination
 //  wxListCtrl and wxNotebook combination
-class wxListbook : public wxBookCtrl
+class wxListbook : public wxBookCtrlBase
 {
 public:
 {
 public:
-    %addtofunc wxListbook         "self._setOORInfo(self)"
-    %addtofunc wxListbook()       ""
+    %pythonAppend wxListbook         "self._setOORInfo(self)"
+    %pythonAppend wxListbook()       ""
 
     wxListbook(wxWindow *parent,
 
     wxListbook(wxWindow *parent,
-               wxWindowID id,
+               wxWindowID id=-1,
                const wxPoint& pos = wxDefaultPosition,
                const wxSize& size = wxDefaultSize,
                long style = 0,
                const wxPoint& pos = wxDefaultPosition,
                const wxSize& size = wxDefaultSize,
                long style = 0,
@@ -293,20 +310,21 @@ public:
     %name(PreListbook)wxListbook();
 
     bool Create(wxWindow *parent,
     %name(PreListbook)wxListbook();
 
     bool Create(wxWindow *parent,
-                wxWindowID id,
+                wxWindowID id=-1,
                 const wxPoint& pos = wxDefaultPosition,
                 const wxSize& size = wxDefaultSize,
                 long style = 0,
                 const wxString& name = wxPyEmptyString);
 
                 const wxPoint& pos = wxDefaultPosition,
                 const wxSize& size = wxDefaultSize,
                 long style = 0,
                 const wxString& name = wxPyEmptyString);
 
-    // returns true if we have wxLB_TOP or wxLB_BOTTOM style
+    // returns True if we have wxLB_TOP or wxLB_BOTTOM style
     bool IsVertical() const;
 
     bool IsVertical() const;
 
+    wxListView* GetListView();
 };
 
 
 
 };
 
 
 
-class wxListbookEvent : public wxBookCtrlEvent
+class wxListbookEvent : public wxBookCtrlBaseEvent
 {
 public:
     wxListbookEvent(wxEventType commandType = wxEVT_NULL, int id = 0,
 {
 public:
     wxListbookEvent(wxEventType commandType = wxEVT_NULL, int id = 0,
@@ -323,6 +341,69 @@ public:
 }
 
 
 }
 
 
+//---------------------------------------------------------------------------
+
+
+/*
+ * wxChoicebook flags
+ */
+enum {
+    wxCHB_DEFAULT,
+    wxCHB_TOP,
+    wxCHB_BOTTOM,
+    wxCHB_LEFT,
+    wxCHB_RIGHT,
+    wxCHB_ALIGN_MASK
+};
+
+
+MustHaveApp(wxChoicebook);
+
+class wxChoicebook : public wxBookCtrlBase
+{
+public:
+    %pythonAppend wxChoicebook         "self._setOORInfo(self)"
+    %pythonAppend wxChoicebook()       ""
+
+    wxChoicebook(wxWindow *parent,
+                 wxWindowID id,
+                 const wxPoint& pos = wxDefaultPosition,
+                 const wxSize& size = wxDefaultSize,
+                 long style = 0,
+                 const wxString& name = wxPyEmptyString);
+    %name(PreChoicebook)wxChoicebook();
+
+    // quasi ctor
+    bool Create(wxWindow *parent,
+                wxWindowID id,
+                const wxPoint& pos = wxDefaultPosition,
+                const wxSize& size = wxDefaultSize,
+                long style = 0,
+                const wxString& name = wxPyEmptyString);
+
+
+    // returns true if we have wxCHB_TOP or wxCHB_BOTTOM style
+    bool IsVertical() const { return HasFlag(wxCHB_BOTTOM | wxCHB_TOP); }
+
+    virtual bool DeleteAllPages();
+};
+
+
+class wxChoicebookEvent : public wxBookCtrlBaseEvent
+{
+public:
+    wxChoicebookEvent(wxEventType commandType = wxEVT_NULL, int id = 0,
+                      int nSel = -1, int nOldSel = -1);
+};
+
+%constant wxEventType wxEVT_COMMAND_CHOICEBOOK_PAGE_CHANGED;
+%constant wxEventType wxEVT_COMMAND_CHOICEBOOK_PAGE_CHANGING;
+
+%pythoncode {
+    EVT_CHOICEBOOK_PAGE_CHANGED  = wx.PyEventBinder( wxEVT_COMMAND_CHOICEBOOK_PAGE_CHANGED, 1 )
+    EVT_CHOICEBOOK_PAGE_CHANGING = wx.PyEventBinder( wxEVT_COMMAND_CHOICEBOOK_PAGE_CHANGING, 1 )
+}
+
 //---------------------------------------------------------------------------
 %newgroup;
 
 //---------------------------------------------------------------------------
 %newgroup;
 
@@ -330,22 +411,22 @@ public:
 class wxBookCtrlSizer: public wxSizer
 {
 public:
 class wxBookCtrlSizer: public wxSizer
 {
 public:
-    %addtofunc wxBookCtrlSizer "self._setOORInfo(self)"
+    %pythonAppend wxBookCtrlSizer "self._setOORInfo(self)"
+
+    wxBookCtrlSizer( wxBookCtrlBase *nb );
 
 
-    wxBookCtrlSizer( wxBookCtrl *nb );
-    
     void RecalcSizes();
     wxSize CalcMin();
     void RecalcSizes();
     wxSize CalcMin();
-    wxBookCtrl *GetControl();
+    wxBookCtrlBase *GetControl();
 };
 
 
 class wxNotebookSizer: public wxSizer {
 public:
 };
 
 
 class wxNotebookSizer: public wxSizer {
 public:
-    %addtofunc wxNotebookSizer "self._setOORInfo(self)"
+    %pythonAppend wxNotebookSizer "self._setOORInfo(self)"
 
     wxNotebookSizer( wxNotebook *nb );
 
     wxNotebookSizer( wxNotebook *nb );
-    
+
     void RecalcSizes();
     wxSize CalcMin();
     wxNotebook *GetNotebook();
     void RecalcSizes();
     wxSize CalcMin();
     wxNotebook *GetNotebook();