X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/9b6dbb09746f8f5ee0549a2ff39ae0ac4c725898..e9aad10ab71721934d6c297cb4cec01f71782a0f:/include/wx/motif/notebook.h diff --git a/include/wx/motif/notebook.h b/include/wx/motif/notebook.h index e5bd1d6c71..734d17fc05 100644 --- a/include/wx/motif/notebook.h +++ b/include/wx/motif/notebook.h @@ -1,6 +1,6 @@ ///////////////////////////////////////////////////////////////////////////// // Name: notebook.h -// Purpose: MSW/GTK compatible notebook (a.k.a. property sheet) +// Purpose: wxNotebook class (a.k.a. property sheet, tabbed dialog) // Author: Julian Smart // Modified by: // RCS-ID: $Id$ @@ -21,6 +21,7 @@ #include "wx/dynarray.h" #include "wx/event.h" #include "wx/control.h" +#include "wx/generic/tabg.h" // ---------------------------------------------------------------------------- // types @@ -48,6 +49,9 @@ public: int GetSelection() const { return m_nSel; } int GetOldSelection() const { return m_nOldSel; } + void SetSelection(int sel) { m_nSel = sel; } + void SetOldSelection(int oldSel) { m_nOldSel = oldSel; } + private: int m_nSel, // currently selected page m_nOldSel; // previously selected page @@ -59,9 +63,23 @@ private: // wxNotebook // ---------------------------------------------------------------------------- -// @@@ this class should really derive from wxTabCtrl, but the interface is not -// exactly the same, so I can't do it right now and instead we reimplement -// part of wxTabCtrl here +class WXDLLEXPORT wxNotebook; + +// This reuses wxTabView to draw the tabs. +class WXDLLEXPORT wxNotebookTabView: public wxTabView +{ +DECLARE_DYNAMIC_CLASS(wxNotebookTabView) +public: + wxNotebookTabView(wxNotebook* notebook, long style = wxTAB_STYLE_DRAW_BOX | wxTAB_STYLE_COLOUR_INTERIOR); + ~wxNotebookTabView(void); + + // Called when a tab is activated + virtual void OnTabActivate(int activateId, int deactivateId); + +protected: + wxNotebook* m_notebook; +}; + class wxNotebook : public wxControl { public: @@ -162,6 +180,20 @@ public: virtual void SetConstraintSizes(bool recurse = TRUE); virtual bool DoPhase(int nPhase); +// Implementation + + // wxNotebook on Motif uses a generic wxTabView to implement itself. + inline wxTabView *GetTabView() const { return m_tabView; } + inline void SetTabView(wxTabView *v) { m_tabView = v; } + + void OnMouseEvent(wxMouseEvent& event); + void OnPaint(wxPaintEvent& event); + + virtual void ChangeFont(bool keepOriginalSize = TRUE); + virtual void ChangeBackgroundColour(); + virtual void ChangeForegroundColour(); + virtual wxRect GetAvailableClientSize(); + protected: // common part of all ctors void Init(); @@ -174,6 +206,8 @@ protected: int m_nSelection; // the current selection (-1 if none) + wxTabView* m_tabView; + DECLARE_DYNAMIC_CLASS(wxNotebook) DECLARE_EVENT_TABLE() };