]> git.saurik.com Git - wxWidgets.git/commitdiff
Patch from Dj Gilcrease adding the FNB_HIDE_ON_SINGLE_TAB flag for
authorRobin Dunn <robin@alldunn.com>
Sun, 5 Nov 2006 21:28:36 +0000 (21:28 +0000)
committerRobin Dunn <robin@alldunn.com>
Sun, 5 Nov 2006 21:28:36 +0000 (21:28 +0000)
wx.lib.flatnotebook.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@43089 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

wxPython/demo/FlatNotebook.py
wxPython/docs/CHANGES.txt
wxPython/wx/lib/flatnotebook.py

index c0fbfe54148995658d047c64dfc7207bbbbc4d89..18b5ee0d370e0035372cc5d6ac6606091ad52602 100644 (file)
@@ -58,6 +58,7 @@ MENU_DISABLE_TAB = wx.NewId()
 MENU_ENABLE_DRAG_N_DROP = wx.NewId()
 MENU_DCLICK_CLOSES_TAB = wx.NewId()
 MENU_USE_VC8_STYLE = wx.NewId()
+MENU_HIDE_ON_SINGLE_TAB = wx.NewId()
 
 MENU_SET_ACTIVE_TEXT_COLOR = wx.NewId()
 MENU_DRAW_TAB_X = wx.NewId()
@@ -197,6 +198,11 @@ class FlatNotebookDemo(wx.Frame):
         self.Bind(wx.EVT_MENU_RANGE, self.OnSelectColor, id=MENU_SELECT_GRADIENT_COLOR_FROM,
                   id2=MENU_SELECT_GRADIENT_COLOR_BORDER)        
 
+        item = wx.MenuItem(self._editMenu, MENU_HIDE_ON_SINGLE_TAB, "Hide Page Container when only one Tab",
+                           "Hide Page Container when only one Tab", wx.ITEM_CHECK)
+        self.Bind(wx.EVT_MENU, self.OnStyle, item)
+        self._editMenu.AppendItem(item)
+
         item = wx.MenuItem(self._editMenu, MENU_HIDE_NAV_BUTTONS, "Hide Navigation Buttons",
                            "Hide Navigation Buttons", wx.ITEM_CHECK)
         self._editMenu.AppendItem(item)
@@ -374,6 +380,15 @@ class FlatNotebookDemo(wx.Frame):
             
             self.book.SetWindowStyleFlag(style)
 
+        elif eventid == MENU_HIDE_ON_SINGLE_TAB:
+            if event.IsChecked():
+                # Hide the navigation buttons
+                style |= fnb.FNB_HIDE_ON_SINGLE_TAB
+            else:
+                style &= ~(fnb.FNB_HIDE_ON_SINGLE_TAB)
+
+            self.book.SetWindowStyleFlag(style)
+
         elif eventid == MENU_HIDE_X:
             if event.IsChecked():
                 # Hide the X button
index 4a83c155f507ecd6634c8fc145b94f0c240d47ec..d21cbcfb4520535d5ff49443c51224a3bd24620b 100644 (file)
@@ -36,6 +36,13 @@ wx.lib.customtreectrl: A patch from Frame Niessink which adds an
 additional style that (un)checks a parent when all children are
 (un)checked, i.e. TR_AUTO_CHECK_PARENT.
 
+wx.animate.AnimationCtrl fixed to display inactive bitmap at start
+(patch 1590192)
+
+Patch from Dj Gilcrease adding the FNB_HIDE_ON_SINGLE_TAB flag for
+wx.lib.flatnotebook. 
+
+
 
 
 
index a177d5e265aa92dd22aeaabaf2f3f632dca3cb22..309214c282d0ffdeeb72d978fb50cc06d7d9dc99 100644 (file)
@@ -146,6 +146,9 @@ FNB_DROPDOWN_TABS_LIST = 16384
 FNB_ALLOW_FOREIGN_DND = 32768
 """Allows drag 'n' drop operations between different L{FlatNotebook}s"""
 
+FNB_HIDE_ON_SINGLE_TAB = 65536
+"""Hides the Page Container when there is one or fewer tabs"""
+
 VERTICAL_BORDER_PADDING = 4
 
 # Button size is a 16x16 xpm bitmap
@@ -181,7 +184,7 @@ FNB_DROP_DOWN_ARROW = 6 # On the drop down arrow button
 FNB_NOWHERE = 0         # Anywhere else
 """Indicates mouse coordinates not on any tab of the notebook"""
 
-FNB_DEFAULT_STYLE = FNB_MOUSE_MIDDLE_CLOSES_TABS
+FNB_DEFAULT_STYLE = FNB_MOUSE_MIDDLE_CLOSES_TABS | FNB_HIDE_ON_SINGLE_TAB
 """L{FlatNotebook} default style"""
 
 # FlatNotebook Events:
@@ -3327,6 +3330,10 @@ class FlatNotebook(wx.Panel):
             # refreshing the tab container is not enough
             self.SetSelection(self._pages._iActivePage)
 
+        if not self._pages.HasFlag(FNB_HIDE_ON_SINGLE_TAB):
+            #For Redrawing the Tabs once you remove the Hide tyle
+            self._pages._ReShow()
+
 
     def RemovePage(self, page):
         """ Deletes the specified page, without deleting the associated window. """
@@ -3579,6 +3586,13 @@ class PageContainer(wx.Panel):
         pass
 
     
+    def _ReShow(self):
+        """ Handles the Redraw of the tabs when the FNB_HIDE_ON_SINGLE_TAB has been removed """
+        self.Show()
+        self.GetParent()._mainSizer.Layout()
+        self.Refresh()
+
+
     def OnPaint(self, event):
         """ Handles the wx.EVT_PAINT event for L{PageContainer}."""
 
@@ -3586,6 +3600,11 @@ class PageContainer(wx.Panel):
         renderer = self._mgr.GetRenderer(self.GetParent().GetWindowStyleFlag())
         renderer.DrawTabs(self, dc)
 
+        if self.HasFlag(FNB_HIDE_ON_SINGLE_TAB) and len(self._pagesInfoVec) <= 1:
+            self.Hide()
+            self.GetParent()._mainSizer.Layout()
+            self.Refresh()
+
 
     def AddPage(self, caption, selected=True, imgindex=-1):
         """