From: Robin Dunn Date: Sun, 5 Nov 2006 21:28:36 +0000 (+0000) Subject: Patch from Dj Gilcrease adding the FNB_HIDE_ON_SINGLE_TAB flag for X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/37938059802214c6e71b9a06f275ab9e72d55c95 Patch from Dj Gilcrease adding the FNB_HIDE_ON_SINGLE_TAB flag for wx.lib.flatnotebook. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@43089 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/wxPython/demo/FlatNotebook.py b/wxPython/demo/FlatNotebook.py index c0fbfe5414..18b5ee0d37 100644 --- a/wxPython/demo/FlatNotebook.py +++ b/wxPython/demo/FlatNotebook.py @@ -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 diff --git a/wxPython/docs/CHANGES.txt b/wxPython/docs/CHANGES.txt index 4a83c155f5..d21cbcfb45 100644 --- a/wxPython/docs/CHANGES.txt +++ b/wxPython/docs/CHANGES.txt @@ -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. + + diff --git a/wxPython/wx/lib/flatnotebook.py b/wxPython/wx/lib/flatnotebook.py index a177d5e265..309214c282 100644 --- a/wxPython/wx/lib/flatnotebook.py +++ b/wxPython/wx/lib/flatnotebook.py @@ -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): """