// TODO: Virtualize this class so other book controls can be derived in Python
+MustHaveApp(wxBookCtrlBase);
+
// 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...
-// wxBookCtrl(wxWindow *parent,
+// wxBookCtrlBase(wxWindow *parent,
// 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,
// 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*/;
// adds a new page to the control
virtual bool AddPage(wxWindow *page,
const wxString& text,
- bool select = False,
+ bool select = false,
int imageId = -1);
// the same as AddPage(), but adds the page at the specified position
virtual bool InsertPage(size_t n,
wxWindow *page,
const wxString& text,
- bool select = False,
+ bool select = false,
int imageId = -1)/* = 0*/;
// set the currently selected page, return the index of the previously
// cycle thru the pages
- void AdvanceSelection(bool forward = True);
+ void AdvanceSelection(bool forward = true);
+
+ static wxVisualAttributes
+ GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL);
};
-class wxBookCtrlEvent : public wxNotifyEvent
+class wxBookCtrlBaseEvent : public wxNotifyEvent
{
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)
-class wxNotebook : public wxBookCtrl {
+MustHaveApp(wxNotebook);
+
+class wxNotebook : public wxBookCtrlBase {
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,
- wxWindowID id,
+ wxWindowID id=-1,
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,
- wxWindowID id,
+ wxWindowID id=-1,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = 0,
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.");
+ "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;
-#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,
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()
+MustHaveApp(wxListbook);
+
// wxListCtrl and wxNotebook combination
-class wxListbook : public wxBookCtrl
+class wxListbook : public wxBookCtrlBase
{
public:
- %addtofunc wxListbook "self._setOORInfo(self)"
- %addtofunc wxListbook() ""
+ %pythonAppend wxListbook "self._setOORInfo(self)"
+ %pythonAppend wxListbook() ""
wxListbook(wxWindow *parent,
- wxWindowID id,
+ wxWindowID id=-1,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = 0,
%name(PreListbook)wxListbook();
bool Create(wxWindow *parent,
- wxWindowID id,
+ wxWindowID id=-1,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = 0,
// returns True if we have wxLB_TOP or wxLB_BOTTOM style
bool IsVertical() const;
+ wxListView* GetListView();
};
-class wxListbookEvent : public wxBookCtrlEvent
+class wxListbookEvent : public wxBookCtrlBaseEvent
{
public:
wxListbookEvent(wxEventType commandType = wxEVT_NULL, int id = 0,
}
+//---------------------------------------------------------------------------
+
+
+/*
+ * 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;
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();
- wxBookCtrl *GetControl();
+ wxBookCtrlBase *GetControl();
};
class wxNotebookSizer: public wxSizer {
public:
- %addtofunc wxNotebookSizer "self._setOORInfo(self)"
+ %pythonAppend wxNotebookSizer "self._setOORInfo(self)"
wxNotebookSizer( wxNotebook *nb );
-
+
void RecalcSizes();
wxSize CalcMin();
wxNotebook *GetNotebook();