]> git.saurik.com Git - wxWidgets.git/commitdiff
Set/get for internal border in book based controls.
authorWłodzimierz Skiba <abx@abx.art.pl>
Tue, 18 Oct 2005 12:31:11 +0000 (12:31 +0000)
committerWłodzimierz Skiba <abx@abx.art.pl>
Tue, 18 Oct 2005 12:31:11 +0000 (12:31 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@35930 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

docs/changes.txt
include/wx/bookctrl.h
src/common/bookctrl.cpp
src/generic/choicbkg.cpp
src/generic/listbkg.cpp

index bc0609bfac74ccfebcceb3ae18c1cff32d265b57..713af1f8ab16408fa326d959d346bbc09b3f6d5c 100644 (file)
@@ -16,6 +16,8 @@ All (GUI):
 - wxItemContainerImmutable::FindString unified (affects wxRadioBox, wxListBox,
   wxComboBox and wxChoice)
 - wxWindow::Fit() now works correctly for frames and dialogs too
+- added access to the border size between pages and controller in book
+  based controls (wxBookCtrlBase::Get/SetInternalBorder)
 
 wxMSW:
 
index 347dc6ba0cdb3e37650938f1c964dcd047483103..dcfb8ae81be1de0a72cb4d374dc78f6e21061b20 100644 (file)
@@ -118,6 +118,15 @@ public:
     // calculate the size of the control from the size of its page
     virtual wxSize CalcSizeFromPage(const wxSize& sizePage) const = 0;
 
+    // get/set size of area between book control area and page area
+    inline unsigned int GetInternalBorder() const
+    {
+        return m_internalBorder;
+    }
+    void SetInternalBorder(unsigned int internalBorder)
+    {
+        m_internalBorder = internalBorder;
+    }
 
     // operations
     // ----------
@@ -192,13 +201,9 @@ protected:
     // helper: get the next page wrapping if we reached the end
     int GetNextPage(bool forward) const;
 
-    // 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;
 
@@ -208,6 +213,13 @@ protected:
     // true if we must delete m_imageList
     bool m_ownsImageList;
 
+private:
+
+    // common part of all ctors
+    void Init();
+
+    // internal border
+    unsigned int m_internalBorder;
 
     DECLARE_NO_COPY_CLASS(wxBookCtrlBase)
 };
index eccc863d6a533f22b9d6572f25821a01c541cd85..992b2a67132305d469df4921fe27ac58425e3cdd 100644 (file)
@@ -42,6 +42,12 @@ void wxBookCtrlBase::Init()
 {
     m_imageList = NULL;
     m_ownsImageList = false;
+
+#if defined(__WXWINCE__)
+    m_internalBorder = 1;
+#else
+    m_internalBorder = 5;
+#endif
 }
 
 bool
@@ -196,11 +202,10 @@ int wxBookCtrlBase::GetNextPage(bool forward) const
     }
     else // notebook is empty, no next page
     {
-        nPage = -1;
+        nPage = wxNOT_FOUND;
     }
 
     return nPage;
 }
 
 #endif // wxUSE_BOOKCTRL
-
index 930a5b384fb220cd32e94343e58c9a8ac49c737f..26f6759282bb7e5882602d54a410a49e204ab2b1 100644 (file)
 #include "wx/imaglist.h"
 #include "wx/settings.h"
 
-// ----------------------------------------------------------------------------
-// constants
-// ----------------------------------------------------------------------------
-
-// margin between the choice and the page
-#if defined(__WXWINCE__)
-const wxCoord MARGIN = 1;
-#else
-const wxCoord MARGIN = 5;
-#endif
-
 // ----------------------------------------------------------------------------
 // various wxWidgets macros
 // ----------------------------------------------------------------------------
@@ -149,19 +138,19 @@ wxRect wxChoicebook::GetPageRect() const
             // fall through
 
         case wxCHB_TOP:
-            rectPage.y = sizeChoice.y + MARGIN;
+            rectPage.y = sizeChoice.y + GetInternalBorder();
             // fall through
 
         case wxCHB_BOTTOM:
-            rectPage.height -= sizeChoice.y + MARGIN;
+            rectPage.height -= sizeChoice.y + GetInternalBorder();
             break;
 
         case wxCHB_LEFT:
-            rectPage.x = sizeChoice.x + MARGIN;
+            rectPage.x = sizeChoice.x + GetInternalBorder();
             // fall through
 
         case wxCHB_RIGHT:
-            rectPage.width -= sizeChoice.x + MARGIN;
+            rectPage.width -= sizeChoice.x + GetInternalBorder();
             break;
     }
 
@@ -217,17 +206,17 @@ void wxChoicebook::OnSize(wxSizeEvent& event)
 
 wxSize wxChoicebook::CalcSizeFromPage(const wxSize& sizePage) const
 {
-    // we need to add the size of the choice control and the margin
+    // we need to add the size of the choice control and the border between
     const wxSize sizeChoice = GetChoiceSize();
 
     wxSize size = sizePage;
     if ( IsVertical() )
     {
-        size.y += sizeChoice.y + MARGIN;
+        size.y += sizeChoice.y + GetInternalBorder();
     }
     else // left/right aligned
     {
-        size.x += sizeChoice.x + MARGIN;
+        size.x += sizeChoice.x + GetInternalBorder();
     }
 
     return size;
@@ -346,16 +335,16 @@ wxChoicebook::InsertPage(size_t n,
 
     // some page should be selected: either this one or the first one if there
     // is still no selection
-    int selNew = -1;
+    int selNew = wxNOT_FOUND;
     if ( bSelect )
         selNew = n;
-    else if ( m_selection == -1 )
+    else if ( m_selection == wxNOT_FOUND )
         selNew = 0;
 
     if ( selNew != m_selection )
         page->Hide();
 
-    if ( selNew != -1 )
+    if ( selNew != wxNOT_FOUND )
         SetSelection(selNew);
 
     InvalidateBestSize();
index ea064e2b9b771f703dc70e69ffd35faeb51e4b8d..508474d08c19d5d8e5667ee087ad43ba2df6b449 100644 (file)
 #include "wx/imaglist.h"
 #include "wx/settings.h"
 
-// ----------------------------------------------------------------------------
-// constants
-// ----------------------------------------------------------------------------
-
-// margin between the list and the page, should be bigger than wxStaticLine
-// size
-const wxCoord MARGIN = 5;
-
 // ----------------------------------------------------------------------------
 // various wxWidgets macros
 // ----------------------------------------------------------------------------
@@ -178,19 +170,19 @@ wxRect wxListbook::GetPageRect() const
             // fall through
 
         case wxLB_TOP:
-            rectPage.y = sizeList.y + MARGIN;
+            rectPage.y = sizeList.y + GetInternalBorder();
             // fall through
 
         case wxLB_BOTTOM:
-            rectPage.height -= sizeList.y + MARGIN;
+            rectPage.height -= sizeList.y + GetInternalBorder();
             break;
 
         case wxLB_LEFT:
-            rectPage.x = sizeList.x + MARGIN;
+            rectPage.x = sizeList.x + GetInternalBorder();
             // fall through
 
         case wxLB_RIGHT:
-            rectPage.width -= sizeList.x + MARGIN;
+            rectPage.width -= sizeList.x + GetInternalBorder();
             break;
     }
 
@@ -255,21 +247,21 @@ void wxListbook::OnSize(wxSizeEvent& event)
         {
             case wxLB_TOP:
                 rectLine.y = sizeNew.y + 1;
-                rectLine.height = MARGIN - 2;
+                rectLine.height = GetInternalBorder() - 2;
                 break;
 
             case wxLB_BOTTOM:
-                rectLine.height = MARGIN - 2;
+                rectLine.height = GetInternalBorder() - 2;
                 rectLine.y = sizeClient.y - sizeNew.y - rectLine.height;
                 break;
 
             case wxLB_LEFT:
                 rectLine.x = sizeNew.x + 1;
-                rectLine.width = MARGIN - 2;
+                rectLine.width = GetInternalBorder() - 2;
                 break;
 
             case wxLB_RIGHT:
-                rectLine.width = MARGIN - 2;
+                rectLine.width = GetInternalBorder() - 2;
                 rectLine.x = sizeClient.x - sizeNew.x - rectLine.width;
                 break;
         }
@@ -289,17 +281,17 @@ void wxListbook::OnSize(wxSizeEvent& event)
 
 wxSize wxListbook::CalcSizeFromPage(const wxSize& sizePage) const
 {
-    // we need to add the size of the list control and the margin
+    // we need to add the size of the list control and the border between
     const wxSize sizeList = GetListSize();
 
     wxSize size = sizePage;
     if ( IsVertical() )
     {
-        size.y += sizeList.y + MARGIN;
+        size.y += sizeList.y + GetInternalBorder();
     }
     else // left/right aligned
     {
-        size.x += sizeList.x + MARGIN;
+        size.x += sizeList.x + GetInternalBorder();
     }
 
     return size;
@@ -500,4 +492,3 @@ void wxListbook::OnListSelected(wxListEvent& eventList)
 }
 
 #endif // wxUSE_LISTBOOK
-