X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/1e6feb95a79834836e88143b15d9f424ebe79621..ef094fa075bc56bcbc33b12159c395ea28afda3b:/include/wx/notebook.h diff --git a/include/wx/notebook.h b/include/wx/notebook.h index efec6fc928..54ad1df040 100644 --- a/include/wx/notebook.h +++ b/include/wx/notebook.h @@ -12,6 +12,10 @@ #ifndef _WX_NOTEBOOK_H_BASE_ #define _WX_NOTEBOOK_H_BASE_ +#if defined(__GNUG__) && !defined(__APPLE__) + #pragma interface "notebookbase.h" +#endif + // ---------------------------------------------------------------------------- // headers // ---------------------------------------------------------------------------- @@ -22,8 +26,7 @@ #include "wx/control.h" #include "wx/dynarray.h" - -class WXDLLEXPORT wxImageList; +#include "wx/imaglist.h" // ---------------------------------------------------------------------------- // types @@ -46,7 +49,7 @@ public: // ctor wxNotebookBase() { - m_imageList = NULL; + Init(); } // quasi ctor @@ -57,11 +60,14 @@ public: long style = 0, const wxString& name = wxNOTEBOOK_NAME); + // dtor + virtual ~wxNotebookBase(); + // accessors // --------- // get number of pages in the dialog - int GetPageCount() const { return m_pages.GetCount(); } + int GetPageCount() const { return (int) m_pages.GetCount(); } // get the panel which represents the given page wxNotebookPage *GetPage(int nPage) { return m_pages[nPage]; } @@ -75,10 +81,10 @@ public: // image list stuff: each page may have an image associated with it (all // images belong to the same image list) - virtual void SetImageList(wxImageList* imageList) - { - m_imageList = imageList; - } + virtual void SetImageList(wxImageList* imageList); + + // as SetImageList() but we will delete the image list ourselves + void AssignImageList(wxImageList* imageList); // get pointer (may be NULL) to the associated image list wxImageList* GetImageList() const { return m_imageList; } @@ -101,33 +107,13 @@ public: virtual void SetTabSize(const wxSize& sz) = 0; // calculate the size of the notebook from the size of its page - virtual wxSize CalcSizeFromPage(const wxSize& sizePage) - { - // this was just taken from wxNotebookSizer::CalcMin() and is, of - // course, totally bogus - just like the original code was - wxSize sizeTotal = sizePage; - if ( HasFlag(wxNB_LEFT) || HasFlag(wxNB_RIGHT) ) - sizeTotal.x += 90; - else - sizeTotal.y += 40; - - return sizeTotal; - } + virtual wxSize CalcSizeFromPage(const wxSize& sizePage) const; // operations // ---------- // remove one page from the notebook and delete it - virtual bool DeletePage(int nPage) - { - wxNotebookPage *page = DoRemovePage(nPage); - if ( !page ) - return FALSE; - - delete page; - - return TRUE; - } + virtual bool DeletePage(int nPage); // remove one page from the notebook, without deleting it virtual bool RemovePage(int nPage) { return DoRemovePage(nPage) != NULL; } @@ -168,34 +154,21 @@ public: protected: // remove the page and return a pointer to it - virtual wxNotebookPage *DoRemovePage(int page) = 0; - - // get the next page wrapping if we reached the end - int GetNextPage(bool forward) const - { - int nPage; + virtual wxNotebookPage *DoRemovePage(int page); + // return the minimum size large enough to display the largest page entirely + virtual wxSize DoGetBestSize() const; - int nMax = GetPageCount(); - if ( nMax-- ) // decrement it to get the last valid index - { - int nSel = GetSelection(); + // common part of all ctors + void Init(); - // change selection wrapping if it becomes invalid - nPage = forward ? nSel == nMax ? 0 - : nSel + 1 - : nSel == 0 ? nMax - : nSel - 1; - } - else // notebook is empty, no next page - { - nPage = -1; - } + // get the next page wrapping if we reached the end + int GetNextPage(bool forward) const; - return nPage; - } + wxArrayPages m_pages; // array of pages + wxImageList *m_imageList; // we can have an associated image list + bool m_ownsImageList; // true if we must delete m_imageList - wxImageList *m_imageList; // we can have an associated image list - wxArrayPages m_pages; // array of pages + DECLARE_NO_COPY_CLASS(wxNotebookBase) }; // ---------------------------------------------------------------------------- @@ -303,14 +276,12 @@ typedef void (wxEvtHandler::*wxNotebookEventFunction)(wxNotebookEvent&); #include "wx/generic/notebook.h" #elif defined(__WXGTK__) #include "wx/gtk/notebook.h" -#elif defined(__WXQT__) - #include "wx/qt/notebook.h" #elif defined(__WXMAC__) #include "wx/mac/notebook.h" +#elif defined(__WXCOCOA__) + #include "wx/generic/notebook.h" #elif defined(__WXPM__) #include "wx/os2/notebook.h" -#elif defined(__WXSTUBS__) - #include "wx/stubs/notebook.h" #endif #endif // wxUSE_NOTEBOOK