]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/bookctrl.h
wxCocoa: Added (mostly) stubs for wxGLCanvas and friends.
[wxWidgets.git] / include / wx / bookctrl.h
index 51761208cb28f60c73e98023040c5e6106efd110..d4040211230eda5f630757f77a5e34d8221d3589 100644 (file)
@@ -5,7 +5,7 @@
 // Modified by:
 // Created:     19.08.03
 // RCS-ID:      $Id$
-// Copyright:   (c) 2003 Vadim Zeitlin <vadim@wxwindows.org>
+// Copyright:   (c) 2003 Vadim Zeitlin <vadim@wxwidgets.org>
 // Licence:     wxWindows licence
 ///////////////////////////////////////////////////////////////////////////////
 
@@ -41,14 +41,22 @@ public:
     // construction
     // ------------
 
-    wxBookCtrl();
+    wxBookCtrl()
+    {
+        Init();
+    }
 
     wxBookCtrl(wxWindow *parent,
                wxWindowID winid,
                const wxPoint& pos = wxDefaultPosition,
                const wxSize& size = wxDefaultSize,
                long style = 0,
-               const wxString& name = wxEmptyString);
+               const wxString& name = wxEmptyString)
+    {
+        Init();
+
+        (void)Create(parent, winid, pos, size, style, name);
+    }
 
     // quasi ctor
     bool Create(wxWindow *parent,
@@ -114,10 +122,19 @@ public:
     virtual bool DeletePage(size_t n);
 
     // remove one page from the notebook, without deleting it
-    virtual bool RemovePage(size_t n) { return DoRemovePage(n) != NULL; }
+    virtual bool RemovePage(size_t n)
+    {
+        InvalidateBestSize();
+        return DoRemovePage(n) != NULL;
+    }
 
     // remove all pages and delete them
-    virtual bool DeleteAllPages() { WX_CLEAR_ARRAY(m_pages); return true; }
+    virtual bool DeleteAllPages()
+    {
+        InvalidateBestSize();
+        WX_CLEAR_ARRAY(m_pages);
+        return true;
+    }
 
     // adds a new page to the control
     virtual bool AddPage(wxWindow *page,
@@ -125,6 +142,7 @@ public:
                          bool bSelect = false,
                          int imageId = -1)
     {
+        InvalidateBestSize();
         return InsertPage(GetPageCount(), page, text, bSelect, imageId);
     }
 
@@ -138,7 +156,7 @@ public:
     // set the currently selected page, return the index of the previously
     // selected one (or -1 on error)
     //
-    // NB: this function will _not_ generate PAGE_CHANGING/ED events
+    // NB: this function will generate PAGE_CHANGING/ED events
     virtual int SetSelection(size_t n) = 0;
 
 
@@ -153,6 +171,9 @@ public:
         }
     }
 
+    virtual void ApplyParentThemeBackground(const wxColour& bg)
+        { SetBackgroundColour(bg); }
+
 protected:
     // remove the page and return a pointer to it
     virtual wxWindow *DoRemovePage(size_t page) = 0;
@@ -166,6 +187,8 @@ protected:
     // common part of all ctors
     void Init();
 
+    // Always rely on GetBestSize, which will look at all the pages
+    virtual void SetInitialBestSize(const wxSize& WXUNUSED(size)) { }
 
     // the array of all pages of this control
     wxArrayPages m_pages;