def __init__(self): RibbonMSWArtProvider.__init__(self) if wx.Platform == "__WXMAC__": if hasattr(wx, 'MacThemeColour'): base_colour = wx.MacThemeColour(Carbon.Appearance.kThemeBrushToolbarBackground) else: brush = wx.Brush(wx.BLACK) brush.MacSetTheme(Carbon.Appearance.kThemeBrushToolbarBackground) base_colour = brush.GetColour() else: base_colour = wx.SystemSettings.GetColour(wx.SYS_COLOUR_3DFACE) self.SetColourScheme(base_colour, wx.SystemSettings.GetColour(wx.SYS_COLOUR_HIGHLIGHT), wx.SystemSettings.GetColour(wx.SYS_COLOUR_HIGHLIGHTTEXT)) self._tab_active_label_font = FontFromFont(self._tab_label_font) self._tab_active_label_font.SetWeight(wx.FONTWEIGHT_BOLD) self._page_border_left = 1 self._page_border_right = 1 self._page_border_top = 1 self._page_border_bottom = 2 self._tab_separation_size = 0 self._gallery_bitmap_padding_left_size = 3 self._gallery_bitmap_padding_right_size = 3 self._gallery_bitmap_padding_top_size = 3 self._gallery_bitmap_padding_bottom_size = 3
def __init__(self): RibbonMSWArtProvider.__init__(self) if wx.Platform == "__WXMAC__": if hasattr(wx, 'MacThemeColour'): base_colour = wx.MacThemeColour( Carbon.Appearance.kThemeBrushToolbarBackground) else: brush = wx.Brush(wx.BLACK) brush.MacSetTheme( Carbon.Appearance.kThemeBrushToolbarBackground) base_colour = brush.GetColour() else: base_colour = wx.SystemSettings.GetColour(wx.SYS_COLOUR_3DFACE) self.SetColourScheme( base_colour, wx.SystemSettings.GetColour(wx.SYS_COLOUR_HIGHLIGHT), wx.SystemSettings.GetColour(wx.SYS_COLOUR_HIGHLIGHTTEXT)) self._tab_active_label_font = FontFromFont(self._tab_label_font) self._tab_active_label_font.SetWeight(wx.FONTWEIGHT_BOLD) self._page_border_left = 1 self._page_border_right = 1 self._page_border_top = 1 self._page_border_bottom = 2 self._tab_separation_size = 0 self._gallery_bitmap_padding_left_size = 3 self._gallery_bitmap_padding_right_size = 3 self._gallery_bitmap_padding_top_size = 3 self._gallery_bitmap_padding_bottom_size = 3
def SetFont(self, id, font): RibbonMSWArtProvider.SetFont(self, id, font) if id == RIBBON_ART_TAB_LABEL_FONT: self._tab_active_label_font = FontFromFont(self._tab_label_font) self._tab_active_label_font.SetWeight(wx.FONTWEIGHT_BOLD)
def GetColour(self, id): if id in [ RIBBON_ART_PAGE_BACKGROUND_COLOUR, RIBBON_ART_PAGE_BACKGROUND_GRADIENT_COLOUR ]: return self._background_brush.GetColour() elif id == RIBBON_ART_TAB_CTRL_BACKGROUND_COLOUR: return self._tab_ctrl_background_colour elif id == RIBBON_ART_TAB_CTRL_BACKGROUND_GRADIENT_COLOUR: return self._tab_ctrl_background_gradient_colour elif id in [ RIBBON_ART_TAB_ACTIVE_BACKGROUND_TOP_COLOUR, RIBBON_ART_TAB_ACTIVE_BACKGROUND_TOP_GRADIENT_COLOUR ]: return self._tab_active_top_background_brush.GetColour() elif id in [ RIBBON_ART_TAB_HOVER_BACKGROUND_COLOUR, RIBBON_ART_TAB_HOVER_BACKGROUND_GRADIENT_COLOUR ]: return self._tab_hover_background_brush.GetColour() elif id == RIBBON_ART_PANEL_LABEL_BACKGROUND_COLOUR: return self._panel_label_background_colour elif id == RIBBON_ART_PANEL_LABEL_BACKGROUND_GRADIENT_COLOUR: return self._panel_label_background_gradient_colour elif id == RIBBON_ART_PANEL_HOVER_LABEL_BACKGROUND_COLOUR: return self._panel_hover_label_background_colour elif id == RIBBON_ART_PANEL_HOVER_LABEL_BACKGROUND_GRADIENT_COLOUR: return self._panel_hover_label_background_gradient_colour elif id in [ RIBBON_ART_BUTTON_BAR_HOVER_BACKGROUND_COLOUR, RIBBON_ART_BUTTON_BAR_HOVER_BACKGROUND_GRADIENT_COLOUR ]: return self._button_bar_hover_background_brush.GetColour() elif id in [ RIBBON_ART_GALLERY_BUTTON_HOVER_BACKGROUND_COLOUR, RIBBON_ART_GALLERY_BUTTON_HOVER_BACKGROUND_GRADIENT_COLOUR ]: return self._gallery_button_hover_background_brush.GetColour() elif id in [ RIBBON_ART_GALLERY_BUTTON_ACTIVE_BACKGROUND_COLOUR, RIBBON_ART_GALLERY_BUTTON_ACTIVE_BACKGROUND_GRADIENT_COLOUR ]: return self._gallery_button_active_background_brush.GetColour() elif id in [ RIBBON_ART_GALLERY_BUTTON_DISABLED_BACKGROUND_COLOUR, RIBBON_ART_GALLERY_BUTTON_DISABLED_BACKGROUND_GRADIENT_COLOUR ]: return self._gallery_button_disabled_background_brush.GetColour() else: return RibbonMSWArtProvider.GetColour(self, id)
def CommonInit(self, style): self.SetName("RibbonBar") self._flags = style self._tabs_total_width_ideal = 0 self._tabs_total_width_minimum = 0 self._tab_margin_left = 50 self._tab_margin_right = 20 self._tab_height = 20 # initial guess self._tab_scroll_amount = 0 self._current_page = -1 self._current_hovered_page = -1 self._tab_scroll_left_button_state = RIBBON_SCROLL_BTN_NORMAL self._tab_scroll_right_button_state = RIBBON_SCROLL_BTN_NORMAL self._tab_scroll_buttons_shown = False self._tab_scroll_left_button_rect = wx.Rect() self._tab_scroll_right_button_rect = wx.Rect() if not self._art: self.SetArtProvider(RibbonMSWArtProvider()) self.SetBackgroundStyle(wx.BG_STYLE_CUSTOM)
def __init__(self, set_colour_scheme=True): RibbonMSWArtProvider.__init__(self, set_colour_scheme)
def SetColourScheme(self, primary, secondary, tertiary): primary_hsl = RibbonHSLColour(primary) secondary_hsl = RibbonHSLColour(secondary) tertiary_hsl = RibbonHSLColour(tertiary) # Map primary & secondary luminance from [0, 1] to [0.15, 0.85] primary_hsl.luminance = cos(primary_hsl.luminance * M_PI) * -0.35 + 0.5 secondary_hsl.luminance = cos( secondary_hsl.luminance * M_PI) * -0.35 + 0.5 # TODO: Remove next line once this provider stops piggybacking MSW RibbonMSWArtProvider.SetColourScheme(self, primary, secondary, tertiary) self._tab_ctrl_background_colour = RibbonShiftLuminance( primary_hsl, 0.9).ToRGB() self._tab_ctrl_background_gradient_colour = RibbonShiftLuminance( primary_hsl, 1.7).ToRGB() self._tab_border_pen = wx.Pen( RibbonShiftLuminance(primary_hsl, 0.75).ToRGB()) self._tab_label_colour = RibbonShiftLuminance(primary_hsl, 0.1).ToRGB() self._tab_hover_background_top_colour = primary_hsl.ToRGB() self._tab_hover_background_top_gradient_colour = RibbonShiftLuminance( primary_hsl, 1.6).ToRGB() self._tab_hover_background_brush = wx.Brush( self._tab_hover_background_top_colour) self._tab_active_background_colour = self._tab_ctrl_background_gradient_colour self._tab_active_background_gradient_colour = primary_hsl.ToRGB() self._tab_active_top_background_brush = wx.Brush( self._tab_active_background_colour) self._panel_label_colour = self._tab_label_colour self._panel_minimised_label_colour = self._panel_label_colour self._panel_hover_label_colour = tertiary_hsl.ToRGB() self._page_border_pen = self._tab_border_pen self._panel_border_pen = self._tab_border_pen self._background_brush = wx.Brush(primary_hsl.ToRGB()) self._page_hover_background_colour = RibbonShiftLuminance( primary_hsl, 1.5).ToRGB() self._page_hover_background_gradient_colour = RibbonShiftLuminance( primary_hsl, 0.9).ToRGB() self._panel_label_background_colour = RibbonShiftLuminance( primary_hsl, 0.85).ToRGB() self._panel_label_background_gradient_colour = RibbonShiftLuminance( primary_hsl, 0.97).ToRGB() self._panel_hover_label_background_gradient_colour = secondary_hsl.ToRGB( ) self._panel_hover_label_background_colour = secondary_hsl.Lighter( 0.2).ToRGB() self._button_bar_hover_border_pen = wx.Pen(secondary_hsl.ToRGB()) self._button_bar_hover_background_brush = wx.Brush( RibbonShiftLuminance(secondary_hsl, 1.7).ToRGB()) self._button_bar_active_background_brush = wx.Brush( RibbonShiftLuminance(secondary_hsl, 1.4).ToRGB()) self._button_bar_label_colour = self._tab_label_colour self._gallery_border_pen = self._tab_border_pen self._gallery_item_border_pen = self._button_bar_hover_border_pen self._gallery_hover_background_brush = wx.Brush( RibbonShiftLuminance(primary_hsl, 1.2).ToRGB()) self._gallery_button_background_colour = self._page_hover_background_colour self._gallery_button_background_gradient_colour = self._page_hover_background_gradient_colour self._gallery_button_hover_background_brush = self._button_bar_hover_background_brush self._gallery_button_active_background_brush = self._button_bar_active_background_brush self._gallery_button_disabled_background_brush = wx.Brush( primary_hsl.Desaturated(0.15).ToRGB()) self.SetColour(RIBBON_ART_GALLERY_BUTTON_FACE_COLOUR, RibbonShiftLuminance(primary_hsl, 0.1).ToRGB()) self.SetColour(RIBBON_ART_GALLERY_BUTTON_DISABLED_FACE_COLOUR, wx.Colour(128, 128, 128)) self.SetColour(RIBBON_ART_GALLERY_BUTTON_ACTIVE_FACE_COLOUR, RibbonShiftLuminance(secondary_hsl, 0.1).ToRGB()) self.SetColour(RIBBON_ART_GALLERY_BUTTON_HOVER_FACE_COLOUR, RibbonShiftLuminance(secondary_hsl, 0.1).ToRGB()) self._toolbar_border_pen = self._tab_border_pen self.SetColour(RIBBON_ART_TOOLBAR_FACE_COLOUR, RibbonShiftLuminance(primary_hsl, 0.1).ToRGB()) self._tool_background_colour = self._page_hover_background_colour self._tool_background_gradient_colour = self._page_hover_background_gradient_colour self._toolbar_hover_borden_pen = self._button_bar_hover_border_pen self._tool_hover_background_brush = self._button_bar_hover_background_brush self._tool_active_background_brush = self._button_bar_active_background_brush