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
This commit is contained in:
@@ -58,6 +58,7 @@ MENU_DISABLE_TAB = wx.NewId()
|
|||||||
MENU_ENABLE_DRAG_N_DROP = wx.NewId()
|
MENU_ENABLE_DRAG_N_DROP = wx.NewId()
|
||||||
MENU_DCLICK_CLOSES_TAB = wx.NewId()
|
MENU_DCLICK_CLOSES_TAB = wx.NewId()
|
||||||
MENU_USE_VC8_STYLE = wx.NewId()
|
MENU_USE_VC8_STYLE = wx.NewId()
|
||||||
|
MENU_HIDE_ON_SINGLE_TAB = wx.NewId()
|
||||||
|
|
||||||
MENU_SET_ACTIVE_TEXT_COLOR = wx.NewId()
|
MENU_SET_ACTIVE_TEXT_COLOR = wx.NewId()
|
||||||
MENU_DRAW_TAB_X = 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,
|
self.Bind(wx.EVT_MENU_RANGE, self.OnSelectColor, id=MENU_SELECT_GRADIENT_COLOR_FROM,
|
||||||
id2=MENU_SELECT_GRADIENT_COLOR_BORDER)
|
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",
|
item = wx.MenuItem(self._editMenu, MENU_HIDE_NAV_BUTTONS, "Hide Navigation Buttons",
|
||||||
"Hide Navigation Buttons", wx.ITEM_CHECK)
|
"Hide Navigation Buttons", wx.ITEM_CHECK)
|
||||||
self._editMenu.AppendItem(item)
|
self._editMenu.AppendItem(item)
|
||||||
@@ -374,6 +380,15 @@ class FlatNotebookDemo(wx.Frame):
|
|||||||
|
|
||||||
self.book.SetWindowStyleFlag(style)
|
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:
|
elif eventid == MENU_HIDE_X:
|
||||||
if event.IsChecked():
|
if event.IsChecked():
|
||||||
# Hide the X button
|
# Hide the X button
|
||||||
|
@@ -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
|
additional style that (un)checks a parent when all children are
|
||||||
(un)checked, i.e. TR_AUTO_CHECK_PARENT.
|
(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.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@@ -146,6 +146,9 @@ FNB_DROPDOWN_TABS_LIST = 16384
|
|||||||
FNB_ALLOW_FOREIGN_DND = 32768
|
FNB_ALLOW_FOREIGN_DND = 32768
|
||||||
"""Allows drag 'n' drop operations between different L{FlatNotebook}s"""
|
"""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
|
VERTICAL_BORDER_PADDING = 4
|
||||||
|
|
||||||
# Button size is a 16x16 xpm bitmap
|
# 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
|
FNB_NOWHERE = 0 # Anywhere else
|
||||||
"""Indicates mouse coordinates not on any tab of the notebook"""
|
"""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"""
|
"""L{FlatNotebook} default style"""
|
||||||
|
|
||||||
# FlatNotebook Events:
|
# FlatNotebook Events:
|
||||||
@@ -3327,6 +3330,10 @@ class FlatNotebook(wx.Panel):
|
|||||||
# refreshing the tab container is not enough
|
# refreshing the tab container is not enough
|
||||||
self.SetSelection(self._pages._iActivePage)
|
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):
|
def RemovePage(self, page):
|
||||||
""" Deletes the specified page, without deleting the associated window. """
|
""" Deletes the specified page, without deleting the associated window. """
|
||||||
@@ -3579,6 +3586,13 @@ class PageContainer(wx.Panel):
|
|||||||
pass
|
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):
|
def OnPaint(self, event):
|
||||||
""" Handles the wx.EVT_PAINT event for L{PageContainer}."""
|
""" 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 = self._mgr.GetRenderer(self.GetParent().GetWindowStyleFlag())
|
||||||
renderer.DrawTabs(self, dc)
|
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):
|
def AddPage(self, caption, selected=True, imgindex=-1):
|
||||||
"""
|
"""
|
||||||
|
Reference in New Issue
Block a user