def CreateDialog(self): """ Actually creates the dialog. """ sz = wx.BoxSizer(wx.VERTICAL) self.SetSizer(sz) # Create the main book and add some pages into it style = INB_NO_RESIZE | INB_LEFT | INB_DRAW_SHADOW | INB_BORDER self._book = LabelBook(self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, style) sz.Add(self._book, 1, wx.EXPAND) self._book.SetColour(INB_TAB_AREA_BACKGROUND_COLOR, ArtManager.Get().GetMenuFaceColour()) colour = wx.SystemSettings_GetColour(wx.SYS_COLOUR_3DFACE) self._book.SetColour(INB_ACTIVE_TAB_COLOR, colour) self.created = False self.Initialise() hsizer = wx.BoxSizer(wx.HORIZONTAL) # add a separator between the book & the buttons area hsizer.Add(wx.Button(self, wx.ID_OK, _("&Close")), 0, wx.EXPAND | wx.ALIGN_RIGHT) sz.Add(wx.StaticLine(self), 0, wx.EXPAND | wx.TOP | wx.BOTTOM, 3) sz.Add(hsizer, 0, wx.ALIGN_RIGHT | wx.ALL, 2)
def CreateMenusPage(self): """ Creates the L{LabelBook} pages with L{FlatMenu} information. """ menus = wx.Panel(self._book, wx.ID_ANY, wx.DefaultPosition, wx.Size(300, 300)) sz = wx.BoxSizer(wx.VERTICAL) menus.SetSizer(sz) choices = [] mb = self.GetParent() if not self.created: self.order = [] # Add all the menu items that are currently visible to the list for i in xrange(len(mb._items)): dummy, lableOnly = ArtManager.Get().GetAccelIndex(mb._items[i].GetTitle()) choices.append(lableOnly) # Add the menu to the visible menus map self._visibleMenus.update({lableOnly: mb._items[i].GetMenu()}) if not self.created: self.order.append(lableOnly) # Add all hidden menus to the menu bar for key in self._hiddenMenus.keys(): choices.append(key) if self.created: visible = OrderedDict() hidden = OrderedDict() for items in self.order: if items in self._visibleMenus: visible[items] = self._visibleMenus[items] elif items in self._hiddenMenus: hidden[items] = self._hiddenMenus[items] self._visibleMenus = visible self._hiddenMenus = hidden self._menuListId = wx.NewId() self._checkListMenus = wx.CheckListBox(menus, self._menuListId, pos=wx.DefaultPosition, size=wx.Size(250, 250), choices=self.order, style=wx.BORDER_SIMPLE) self._checkListMenus.Bind(wx.EVT_CHECKLISTBOX, self.OnMenuChecked) # check all visible items for indx, item in enumerate(self.order): if item in self._visibleMenus: self._checkListMenus.Check(indx) # Add title panel title = FMTitlePanel(menus, _("Select Menu To Add/Remove:")) sz.Add(title, 0, wx.EXPAND | wx.ALL, 2) sz.Add(self._checkListMenus, 1, wx.EXPAND | wx.TOP | wx.RIGHT | wx.LEFT, 2) self.created = True return menus
def OnPaint(self, event): """ Handles the wx.EVT_PAINT event for FMTitlePanel. """ dc = wx.BufferedPaintDC(self) # Draw the background colour1 = wx.SystemSettings_GetColour(wx.SYS_COLOUR_3DFACE) colour2 = ArtManager.Get().LightColour(colour1, 70) ArtManager.Get().PaintStraightGradientBox(dc, self.GetClientRect(), colour1, colour2, False) # Draw the text font = wx.SystemSettings_GetFont(wx.SYS_DEFAULT_GUI_FONT) font.SetWeight(wx.BOLD) dc.SetFont(font) dc.SetTextForeground(wx.BLACK) dc.DrawText(self._title, 5, 5)
def OnChangeStyle(self, event): """ Handles the ``wx.EVT_CHECKBOX`` event for :class:`FMCustomizeDlg`. :param `event`: a :class:`CommandEvent` event to be processed. :note: This method handles the :class:`FlatMenu` styles. """ mb = self.GetParent() if event.GetId() == self._menuStyleID: if event.GetSelection() == 0: # Default style ArtManager.Get().SetMenuTheme(StyleXP) self._drawBorder.Enable() self._verticalGradient.Enable() mb.Refresh() else: ArtManager.Get().SetMenuTheme(Style2007) self._drawBorder.Enable(False) self._verticalGradient.Enable(False) mb.Refresh() return if event.GetId() == self._drawBorderID: ArtManager.Get().DrawMenuBarBorder(event.IsChecked()) mb.Refresh() return if event.GetId() == self._drawVertGradID: ArtManager.Get().SetMBVerticalGradient(event.IsChecked()) mb.Refresh() return if event.GetId() == self._colourID: selection = _("Default") sel = self._colour.GetSelection() if sel != wx.NOT_FOUND: # select new colour scheme selection = self._colour.GetStringSelection() ArtManager.Get().SetMenuBarColour(selection) mb.Refresh() return if event.GetId() == self._shadowUnderTBID: ArtManager.Get().SetRaiseToolbar(event.IsChecked()) mb.Refresh() return
def OnChangeStyle(self, event): """ Handles the wx.EVT_CHECKBOX event for FMCustomizeDlg. """ mb = self.GetParent() if event.GetId() == self._menuStyleID: if event.GetSelection() == 0: # Default style ArtManager.Get().SetMenuTheme(StyleXP) self._drawBorder.Enable() self._verticalGradient.Enable() mb.Refresh() else: ArtManager.Get().SetMenuTheme(Style2007) self._drawBorder.Enable(False) self._verticalGradient.Enable(False) mb.Refresh() return if event.GetId() == self._drawBorderID: ArtManager.Get().DrawMenuBarBorder(event.IsChecked()) mb.Refresh() return if event.GetId() == self._drawVertGradID: ArtManager.Get().SetMBVerticalGradient(event.IsChecked()) mb.Refresh() return if event.GetId() == self._colourID: selection = _("Default") sel = self._colour.GetSelection() if sel != wx.NOT_FOUND: # select new colour scheme selection = self._colour.GetStringSelection() ArtManager.Get().SetMenuBarColour(selection) mb.Refresh() return if event.GetId() == self._shadowUnderTBID: ArtManager.Get().SetRaiseToolbar(event.IsChecked()) mb.Refresh() return
def CreateOptionsPage(self): """ Creates the LabelBook option page that holds FlatMenu styles. """ options = wx.Panel(self._book, wx.ID_ANY, wx.DefaultPosition, wx.Size(300, 300)) # Create some options here vsizer = wx.BoxSizer(wx.VERTICAL) options.SetSizer(vsizer) #----------------------------------------------------------- # options page layout # - Menu Style: Default or 2007 (radio group) # # - Default Style Settings: (static box) # + Draw vertical gradient (check box) # + Draw border (check box) # + Drop toolbar shadow (check box) # # - Colour Scheme (static box) # + Menu bar background colour (combo button) #----------------------------------------------------------- self._menuStyleID = wx.NewId() choices = [_("Default Style"), _("Metallic")] self._menuStyle = wx.RadioBox(options, self._menuStyleID, _("Menu bar style"), wx.DefaultPosition, wx.DefaultSize, choices) # update the selection theme = ArtManager.Get().GetMenuTheme() if theme == Style2007: self._menuStyle.SetSelection(1) else: self._menuStyle.SetSelection(0) # connect event to the control self._menuStyle.Bind(wx.EVT_RADIOBOX, self.OnChangeStyle) vsizer.Add(self._menuStyle, 0, wx.EXPAND | wx.ALL, 5) self._sbStyle = wx.StaticBoxSizer( wx.StaticBox(options, -1, _("Default style settings")), wx.VERTICAL) self._drawVertGradID = wx.NewId() self._verticalGradient = wx.CheckBox(options, self._drawVertGradID, _("Draw vertical gradient")) self._verticalGradient.Bind(wx.EVT_CHECKBOX, self.OnChangeStyle) self._sbStyle.Add(self._verticalGradient, 0, wx.EXPAND | wx.ALL, 3) self._verticalGradient.SetValue( ArtManager.Get().GetMBVerticalGradient()) self._drawBorderID = wx.NewId() self._drawBorder = wx.CheckBox(options, self._drawBorderID, _("Draw border around menu bar")) self._drawBorder.Bind(wx.EVT_CHECKBOX, self.OnChangeStyle) self._sbStyle.Add(self._drawBorder, 0, wx.EXPAND | wx.ALL, 3) self._drawBorder.SetValue(ArtManager.Get().GetMenuBarBorder()) self._shadowUnderTBID = wx.NewId() self._shadowUnderTB = wx.CheckBox(options, self._shadowUnderTBID, _("Toolbar float over menu bar")) self._shadowUnderTB.Bind(wx.EVT_CHECKBOX, self.OnChangeStyle) self._sbStyle.Add(self._shadowUnderTB, 0, wx.EXPAND | wx.ALL, 3) self._shadowUnderTB.SetValue(ArtManager.Get().GetRaiseToolbar()) vsizer.Add(self._sbStyle, 0, wx.EXPAND | wx.ALL, 5) # Misc sb = wx.StaticBoxSizer(wx.StaticBox(options, -1, _("Colour Scheme")), wx.VERTICAL) self._colourID = wx.NewId() ## colorChoices = [_("Default"), _("Generic"), _("Dark"), _("Dark Olive Green")] colorChoices = ArtManager.Get().GetColourSchemes() colorChoices.sort() self._colour = wx.ComboBox(options, self._colourID, ArtManager.Get().GetMenuBarColourScheme(), choices=colorChoices, style=wx.CB_DROPDOWN | wx.CB_READONLY) sb.Add(self._colour, 0, wx.EXPAND) vsizer.Add(sb, 0, wx.EXPAND | wx.ALL, 5) self._colour.Bind(wx.EVT_COMBOBOX, self.OnChangeStyle) # update the dialog by sending all possible events to us event = wx.CommandEvent(wx.wxEVT_COMMAND_RADIOBOX_SELECTED, self._menuStyleID) event.SetEventObject(self) event.SetInt(self._menuStyle.GetSelection()) self._menuStyle.ProcessEvent(event) event.SetEventType(wx.wxEVT_COMMAND_CHECKBOX_CLICKED) event.SetId(self._drawVertGradID) event.SetInt(ArtManager.Get().GetMBVerticalGradient()) self._verticalGradient.ProcessEvent(event) event.SetEventType(wx.wxEVT_COMMAND_CHECKBOX_CLICKED) event.SetId(self._shadowUnderTBID) event.SetInt(ArtManager.Get().GetRaiseToolbar()) self._shadowUnderTB.ProcessEvent(event) event.SetEventType(wx.wxEVT_COMMAND_CHECKBOX_CLICKED) event.SetId(self._drawBorderID) event.SetInt(ArtManager.Get().GetMenuBarBorder()) self._drawBorder.ProcessEvent(event) event.SetEventType(wx.wxEVT_COMMAND_COMBOBOX_SELECTED) event.SetId(self._colourID) self._colour.ProcessEvent(event) return options