diff options
Diffstat (limited to 'themes/vimix-vski/gtk-2.0/main.rc')
-rw-r--r-- | themes/vimix-vski/gtk-2.0/main.rc | 2825 |
1 files changed, 2825 insertions, 0 deletions
diff --git a/themes/vimix-vski/gtk-2.0/main.rc b/themes/vimix-vski/gtk-2.0/main.rc new file mode 100644 index 0000000..c031726 --- /dev/null +++ b/themes/vimix-vski/gtk-2.0/main.rc @@ -0,0 +1,2825 @@ +# vim:set ft=gtkrc ts=2 sw=2 sts=2 ai et: +# +# This is the main theme file, handling all the default widgets and theme +# properties. Since GTK+ 2 is old, we need to overcome some of its limitations, +# which is also mostly done in this file. Sadly not all of them can be overcome +# so there will always be a visible difference between the GTK+ 2 and 3 theme. + +style "default" { + xthickness = 1 + ythickness = 1 + + #################### + # Style Properties # + #################### + + GtkWidget::focus-padding = 0 + GtkWidget::focus-line-width = 2 + GtkWidget::focus-line-pattern = "\2\1" + + GtkToolbar::space-size = 5 # 1 + 2*2 (separator + margins) + GtkToolbar::internal-padding = 2 + GtkToolButton::icon-spacing = 4 + + GtkWidget::tooltip-radius = 2 + GtkWidget::tooltip-alpha = 230 + GtkWidget::new-tooltip-style = 1 #for compatibility + + GtkWidget::link-color = @link_color + GtkWidget::visited-link-color = @visited_link_color + GnomeHRef::link_color = @link_color + GtkHTML::link-color = @link_color + GtkHTML::vlink-color = @visited_link_color + GtkIMHtml::hyperlink-color = @link_color + GtkIMHtml::hyperlink-visited-color = @visited_link_color + + GtkSeparatorMenuItem::horizontal-padding = 0 + GtkSeparatorMenuItem::wide-separators = 0 + GtkSeparatorMenuItem::separator-height = 0 + + GtkButton::child-displacement-y = 0 + + GtkButton::default-border = {0, 0, 0, 0} + GtkButton::default-outside-border = {0, 0, 0, 0} + GtkButton::inner-border = {4, 4, 4, 4} + + GtkEntry::state-hint = 1 + GtkEntry::inner-border = {4, 4, 4, 4} + + GtkPaned::handle-size = 8 + GtkHPaned::handle-size = 8 + GtkVPaned::handle-size = 8 + + GtkScrollbar::trough-border = 0 + GtkRange::trough-border = 0 + GtkRange::slider-width = 17 + GtkRange::stepper-size = 0 + GtkRange::activate-slider = 1 + + GtkScrollbar::activate-slider = 1 + GtkScrollbar::stepper-size = 0 + GtkScrollbar::has-backward-stepper = 0 + GtkScrollbar::has-forward-stepper = 0 + GtkScrollbar::min-slider-length = 32 # 24 + 2*4 (margins) + GtkScrolledWindow::scrollbar-spacing = 0 + GtkScrolledWindow::scrollbars-within-bevel = 1 + + GtkScale::slider_length = 24 + GtkScale::slider_width = 24 + GtkScale::trough-side-details = 1 + + GtkProgressBar::min-horizontal-bar-height = 4 + GtkProgressBar::min-vertical-bar-width = 4 + GtkProgressBar::xspacing = 4 + GtkProgressBar::yspacing = 4 + + GtkStatusbar::shadow_type = GTK_SHADOW_NONE + GtkSpinButton::shadow_type = GTK_SHADOW_NONE + GtkMenuBar::shadow-type = GTK_SHADOW_NONE + GtkToolbar::shadow-type = GTK_SHADOW_NONE + # TODO: find out what this comment means: + # ( every window is misaligned for the sake of menus ): + GtkMenuBar::internal-padding = 0 + GtkMenu::horizontal-padding = 0 + GtkMenu::vertical-padding = 4 + GtkMenu::double-arrows = 0 + GtkMenuItem::arrow-scaling = 1 + GtkMenuItem::toggle-spacing = 12 + + GtkCheckButton::indicator-size = 24 + GtkCheckButton::indicator_spacing = 2 + GtkOptionMenu::indicator_spacing = {10, 10, 6, 6} + + GtkTreeView::expander-size = 16 + GtkTreeView::vertical-separator = 0 + GtkTreeView::horizontal-separator = 4 + GtkTreeView::allow-rules = 0 + # Set this because some apps read it + GtkTreeView::odd-row-color = @base_color + GtkTreeView::even-row-color = @base_color + + GtkExpander::expander-size = 16 + + GtkNotebook::tab-overlap = 0 + + ########## + # Colors # + ########## + + bg[NORMAL] = @bg_color + bg[PRELIGHT] = @bg_color + bg[SELECTED] = @selected_bg_color + bg[INSENSITIVE] = @bg_color + bg[ACTIVE] = @bg_color + + fg[NORMAL] = @fg_color + fg[PRELIGHT] = @fg_color + fg[SELECTED] = @selected_fg_color + fg[INSENSITIVE] = mix (0.4, @fg_color, @bg_color) + fg[ACTIVE] = @fg_color + + text[NORMAL] = @text_color + text[PRELIGHT] = @text_color + text[SELECTED] = @selected_fg_color + text[INSENSITIVE] = mix (0.4, @text_color, @base_color) + text[ACTIVE] = @selected_fg_color + + base[NORMAL] = @base_color + base[PRELIGHT] = mix (0.05, @text_color, @base_color) + base[SELECTED] = @selected_bg_color + base[INSENSITIVE] = mix (0.5, @base_color, @bg_color) + base[ACTIVE] = @selected_bg_color + + # For succinctness, all reasonable pixmap options remain here + + # Draw frame around menu in a non-compositied environment + # This needs to go before pixmap because we need to override some stuff + engine "adwaita" {} + + engine "pixmap" { + + ################# + # Check Buttons # + ################# + + image { + function = CHECK + recolorable = TRUE + state = NORMAL + shadow = OUT + overlay_file = "assets/checkbox-unchecked.png" + overlay_stretch = FALSE + } + + image { + function = CHECK + recolorable = TRUE + state = PRELIGHT + shadow = OUT + overlay_file = "assets/checkbox-unchecked-hover.png" + overlay_stretch = FALSE + } + + image { + function = CHECK + recolorable = TRUE + state = ACTIVE + shadow = OUT + overlay_file = "assets/checkbox-unchecked-active.png" + overlay_stretch = FALSE + } + + image { + function = CHECK + recolorable = TRUE + state = SELECTED + shadow = OUT + overlay_file = "assets/checkbox-unchecked.png" + overlay_stretch = FALSE + } + + image { + function = CHECK + recolorable = TRUE + state = INSENSITIVE + shadow = OUT + overlay_file = "assets/checkbox-unchecked-insensitive.png" + overlay_stretch = FALSE + } + + image { + function = CHECK + recolorable = TRUE + state = NORMAL + shadow = IN + overlay_file = "assets/checkbox-checked.png" + overlay_stretch = FALSE + } + + image { + function = CHECK + recolorable = TRUE + state = PRELIGHT + shadow = IN + overlay_file = "assets/checkbox-checked-hover.png" + overlay_stretch = FALSE + } + + image { + function = CHECK + recolorable = TRUE + state = ACTIVE + shadow = IN + overlay_file = "assets/checkbox-checked-active.png" + overlay_stretch = FALSE + } + + image { + function = CHECK + recolorable = TRUE + state = SELECTED + shadow = IN + overlay_file = "assets/checkbox-checked.png" + overlay_stretch = FALSE + } + + image { + function = CHECK + recolorable = TRUE + state = INSENSITIVE + shadow = IN + overlay_file = "assets/checkbox-checked-insensitive.png" + overlay_stretch = FALSE + } + + image { + function = CHECK + recolorable = TRUE + state = NORMAL + shadow = ETCHED_IN + overlay_file = "assets/checkbox-mixed.png" + overlay_stretch = FALSE + } + + image { + function = CHECK + recolorable = TRUE + state = PRELIGHT + shadow = ETCHED_IN + overlay_file = "assets/checkbox-mixed-hover.png" + overlay_stretch = FALSE + } + + image { + function = CHECK + recolorable = TRUE + state = ACTIVE + shadow = ETCHED_IN + overlay_file = "assets/checkbox-mixed-active.png" + overlay_stretch = FALSE + } + + image { + function = CHECK + recolorable = TRUE + state = SELECTED + shadow = ETCHED_IN + overlay_file = "assets/checkbox-mixed.png" + overlay_stretch = FALSE + } + + image { + function = CHECK + recolorable = TRUE + state = INSENSITIVE + shadow = ETCHED_IN + overlay_file = "assets/checkbox-mixed-insensitive.png" + overlay_stretch = FALSE + } + + ################# + # Radio Buttons # + ################# + + image { + function = OPTION + state = NORMAL + shadow = OUT + overlay_file = "assets/radio-unchecked.png" + overlay_stretch = FALSE + } + + image { + function = OPTION + state = PRELIGHT + shadow = OUT + overlay_file = "assets/radio-unchecked-hover.png" + overlay_stretch = FALSE + } + + image { + function = OPTION + state = ACTIVE + shadow = OUT + overlay_file = "assets/radio-unchecked-active.png" + overlay_stretch = FALSE + } + + image { + function = OPTION + state = SELECTED + shadow = OUT + overlay_file = "assets/radio-unchecked.png" + overlay_stretch = FALSE + } + + image { + function = OPTION + state = INSENSITIVE + shadow = OUT + overlay_file = "assets/radio-unchecked-insensitive.png" + overlay_stretch = FALSE + } + + image { + function = OPTION + state = NORMAL + shadow = IN + overlay_file = "assets/radio-checked.png" + overlay_stretch = FALSE + } + + image { + function = OPTION + state = PRELIGHT + shadow = IN + overlay_file = "assets/radio-checked-hover.png" + overlay_stretch = FALSE + } + + image { + function = OPTION + state = ACTIVE + shadow = IN + overlay_file = "assets/radio-checked-active.png" + overlay_stretch = FALSE + } + + image { + function = OPTION + state = SELECTED + shadow = IN + overlay_file = "assets/radio-checked.png" + overlay_stretch = FALSE + } + + image { + function = OPTION + state = INSENSITIVE + shadow = IN + overlay_file = "assets/radio-checked-insensitive.png" + overlay_stretch = FALSE + } + + image { + function = OPTION + state = NORMAL + shadow = ETCHED_IN + overlay_file = "assets/radio-mixed.png" + overlay_stretch = FALSE + } + + image { + function = OPTION + state = PRELIGHT + shadow = ETCHED_IN + overlay_file = "assets/radio-mixed-hover.png" + overlay_stretch = FALSE + } + + image { + function = OPTION + state = ACTIVE + shadow = ETCHED_IN + overlay_file = "assets/radio-mixed-active.png" + overlay_stretch = FALSE + } + + image { + function = OPTION + state = SELECTED + shadow = ETCHED_IN + overlay_file = "assets/radio-mixed.png" + overlay_stretch = FALSE + } + + image { + function = OPTION + state = INSENSITIVE + shadow = ETCHED_IN + overlay_file = "assets/radio-mixed-insensitive.png" + overlay_stretch = FALSE + } + + ########## + # Arrows # + ########## + + # Overrides + + # Disable arrows in spinbuttons + image { + function = ARROW + detail = "spinbutton" + } + + # Disable arrows for qt in scrollbars + + image { + function = ARROW + detail = "vscrollbar" + } + + image { + function = ARROW + detail = "hscrollbar" + } + + # Menu arrows + + image { + function = ARROW + state = NORMAL + detail = "menuitem" + overlay_file = "assets/pan-left.png" + overlay_stretch = FALSE + arrow_direction = LEFT + } + + image { + function = ARROW + state = PRELIGHT + detail = "menuitem" + overlay_file = "assets/pan-left.png" + overlay_stretch = FALSE + arrow_direction = LEFT + } + + image { + function = ARROW + state = INSENSITIVE + detail = "menuitem" + overlay_file = "assets/pan-left-insensitive.png" + overlay_stretch = FALSE + arrow_direction = LEFT + } + + image { + function = ARROW + state = NORMAL + detail = "menuitem" + overlay_file = "assets/pan-right.png" + overlay_stretch = FALSE + arrow_direction = RIGHT + } + + image { + function = ARROW + state = PRELIGHT + detail = "menuitem" + overlay_file = "assets/pan-right.png" + overlay_stretch = FALSE + arrow_direction = RIGHT + } + + image { + function = ARROW + state = INSENSITIVE + detail = "menuitem" + overlay_file = "assets/pan-right-insensitive.png" + overlay_stretch = FALSE + arrow_direction = RIGHT + } + + image { + function = ARROW + state = INSENSITIVE + detail = "menu_scroll_arrow_up" + overlay_file = "assets/pan-up-insensitive.png" + overlay_stretch = FALSE + } + + image { + function = ARROW + detail = "menu_scroll_arrow_up" + overlay_file = "assets/pan-up.png" + overlay_stretch = FALSE + } + + image { + function = ARROW + state = INSENSITIVE + detail = "menu_scroll_arrow_down" + overlay_file = "assets/pan-down-insensitive.png" + overlay_stretch = FALSE + } + + image { + function = ARROW + detail = "menu_scroll_arrow_down" + overlay_file = "assets/pan-down.png" + overlay_stretch = FALSE + } + + # Regular arrows + + image { + function = ARROW + state = NORMAL + overlay_file = "assets/pan-up-alt.png" + overlay_stretch = FALSE + arrow_direction = UP + } + + image { + function = ARROW + state = PRELIGHT + overlay_file = "assets/pan-up.png" + overlay_stretch = FALSE + arrow_direction = UP + } + + image { + function = ARROW + state = ACTIVE + overlay_file = "assets/pan-up.png" + overlay_stretch = FALSE + arrow_direction = UP + } + + image { + function = ARROW + state = INSENSITIVE + overlay_file = "assets/pan-up-alt-insensitive.png" + overlay_stretch = FALSE + arrow_direction = UP + } + + image { + function = ARROW + state = NORMAL + overlay_file = "assets/pan-down-alt.png" + overlay_stretch = FALSE + arrow_direction = DOWN + } + + image { + function = ARROW + state = PRELIGHT + overlay_file = "assets/pan-down.png" + overlay_stretch = FALSE + arrow_direction = DOWN + } + + image { + function = ARROW + state = ACTIVE + overlay_file = "assets/pan-down.png" + overlay_stretch = FALSE + arrow_direction = DOWN + } + + image { + function = ARROW + state = INSENSITIVE + overlay_file = "assets/pan-down-alt-insensitive.png" + overlay_stretch = FALSE + arrow_direction = DOWN + } + + image { + function = ARROW + state = NORMAL + overlay_file = "assets/pan-left-alt.png" + overlay_stretch = FALSE + arrow_direction = LEFT + } + + image { + function = ARROW + state = PRELIGHT + overlay_file = "assets/pan-left.png" + overlay_stretch = FALSE + arrow_direction = LEFT + } + + image { + function = ARROW + state = ACTIVE + overlay_file = "assets/pan-left.png" + overlay_stretch = FALSE + arrow_direction = LEFT + } + + image { + function = ARROW + state = INSENSITIVE + overlay_file = "assets/pan-left-alt-insensitive.png" + overlay_stretch = FALSE + arrow_direction = LEFT + } + + image { + function = ARROW + state = NORMAL + overlay_file = "assets/pan-right-alt.png" + overlay_stretch = FALSE + arrow_direction = RIGHT + } + + image { + function = ARROW + state = PRELIGHT + overlay_file = "assets/pan-right.png" + overlay_stretch = FALSE + arrow_direction = RIGHT + } + + image { + function = ARROW + state = ACTIVE + overlay_file = "assets/pan-right.png" + overlay_stretch = FALSE + arrow_direction = RIGHT + } + + image { + function = ARROW + state = INSENSITIVE + overlay_file = "assets/pan-right-alt-insensitive.png" + overlay_stretch = FALSE + arrow_direction = RIGHT + } + + ###################### + # Option Menu Arrows # + ###################### + + image { + function = TAB + state = NORMAL + overlay_file = "assets/pan-down-alt.png" + overlay_stretch = FALSE + } + + image { + function = TAB + state = PRELIGHT + overlay_file = "assets/pan-down.png" + overlay_stretch = FALSE + } + + image { + function = TAB + state = ACTIVE + overlay_file = "assets/pan-down.png" + overlay_stretch = FALSE + } + + image { + function = TAB + state = INSENSITIVE + overlay_file = "assets/pan-down-alt-insensitive.png" + overlay_stretch = FALSE + } + + ######### + # Lines # + ######### + + image { + function = VLINE + file = "assets/border.png" + border = {1, 0, 0, 0} + } + + image { + function = HLINE + file = "assets/border.png" + border = {0, 0, 1, 0} + } + + ######### + # Focus # + ######### + + image { + function = FOCUS + file = "assets/focus.png" + border = {2, 2, 2, 2} + stretch = TRUE + } + + ########### + # Handles # + ########### + + image { + function = HANDLE + detail = "handlebox" + overlay_file = "assets/handle-vert.png" + overlay_stretch = FALSE + } + + image { + function = HANDLE + state = NORMAL + overlay_file = "assets/handle-horz.png" + overlay_stretch = FALSE + orientation = HORIZONTAL + } + + image { + function = HANDLE + state = PRELIGHT + overlay_file = "assets/handle-horz-hover.png" + overlay_stretch = FALSE + orientation = HORIZONTAL + } + + image { + function = HANDLE + state = ACTIVE + overlay_file = "assets/handle-horz-active.png" + overlay_stretch = FALSE + orientation = HORIZONTAL + } + + image { + function = HANDLE + state = NORMAL + overlay_file = "assets/handle-vert.png" + overlay_stretch = FALSE + orientation = VERTICAL + } + + image { + function = HANDLE + state = PRELIGHT + overlay_file = "assets/handle-vert-hover.png" + overlay_stretch = FALSE + orientation = VERTICAL + } + + image { + function = HANDLE + state = ACTIVE + overlay_file = "assets/handle-vert-active.png" + overlay_stretch = FALSE + orientation = VERTICAL + } + + image { + function = RESIZE_GRIP + } + + ############# + # Expanders # + ############# + + image { + function = EXPANDER + expander_style = EXPANDED + state = NORMAL + file = "assets/pan-down-alt.png" + } + + image { + function = EXPANDER + expander_style = EXPANDED + state = PRELIGHT + file = "assets/pan-down.png" + } + + image { + function = EXPANDER + expander_style = EXPANDED + state = ACTIVE + file = "assets/pan-down.png" + } + + image { + function = EXPANDER + expander_style = EXPANDED + state = INSENSITIVE + file = "assets/pan-down-alt-insensitive.png" + } + + # LTR + + image { + function = EXPANDER + expander_style = COLLAPSED + state = NORMAL + file = "assets/pan-right-alt.png" + direction = LTR + } + + image { + function = EXPANDER + expander_style = COLLAPSED + state = PRELIGHT + file = "assets/pan-right.png" + direction = LTR + } + + image { + function = EXPANDER + expander_style = COLLAPSED + state = ACTIVE + file = "assets/pan-right.png" + direction = LTR + } + + image { + function = EXPANDER + expander_style = COLLAPSED + state = INSENSITIVE + file = "assets/pan-right-alt-insensitive.png" + direction = LTR + } + + image { + function = EXPANDER + expander_style = SEMI_COLLAPSED + file = "assets/pan-right-semi.png" + direction = LTR + } + + image { + function = EXPANDER + expander_style = SEMI_EXPANDED + file = "assets/pan-right-semi.png" + direction = LTR + } + + # RTL + + image { + function = EXPANDER + expander_style = COLLAPSED + state = NORMAL + file = "assets/pan-left-alt.png" + direction = RTL + } + + image { + function = EXPANDER + expander_style = COLLAPSED + state = PRELIGHT + file = "assets/pan-left.png" + direction = RTL + } + + image { + function = EXPANDER + expander_style = COLLAPSED + state = ACTIVE + file = "assets/pan-left.png" + direction = RTL + } + + image { + function = EXPANDER + expander_style = COLLAPSED + state = INSENSITIVE + file = "assets/pan-left-alt-insensitive.png" + direction = RTL + } + + image { + function = EXPANDER + expander_style = SEMI_COLLAPSED + file = "assets/pan-left-semi.png" + direction = RTL + } + + image { + function = EXPANDER + expander_style = SEMI_EXPANDED + file = "assets/pan-left-semi.png" + direction = RTL + } + + ############# + # Notebooks # + ############# + + # Left + + image { + function = EXTENSION + state = NORMAL + file = "assets/tab.png" + border = {0, 1, 0, 0} + stretch = TRUE + gap_side = RIGHT + } + + image { + function = EXTENSION + gap_side = RIGHT + } + + # Right + + image { + function = EXTENSION + state = NORMAL + file = "assets/tab.png" + border = {1, 0, 0, 0} + stretch = TRUE + gap_side = LEFT + } + + image { + function = EXTENSION + gap_side = LEFT + } + + # Up + + image { + function = EXTENSION + state = NORMAL + file = "assets/tab.png" + border = {0, 0, 0, 1} + stretch = TRUE + gap_side = BOTTOM + } + + image { + function = EXTENSION + gap_side = BOTTOM + } + + # Down + + image { + function = EXTENSION + state = NORMAL + file = "assets/tab.png" + border = {0, 0, 1, 0} + stretch = TRUE + gap_side = TOP + } + + image { + function = EXTENSION + gap_side = TOP + } + + # Inner frame + + image { + function = BOX_GAP + detail = "notebook" + file = "assets/frame-notebook.png" + border = {1, 1, 1, 1} + stretch = TRUE + gap_file = "assets/tab.png" + gap_border = {1, 0, 0, 0} + gap_side = LEFT + } + + image { + function = BOX_GAP + detail = "notebook" + file = "assets/frame-notebook.png" + border = {1, 1, 1, 1} + stretch = TRUE + gap_file = "assets/tab.png" + gap_border = {0, 1, 0, 0} + gap_side = RIGHT + } + + image { + function = BOX_GAP + detail = "notebook" + file = "assets/frame-notebook.png" + border = {1, 1, 1, 1} + stretch = TRUE + gap_file = "assets/tab.png" + gap_border = {0, 0, 1, 0} + gap_side = TOP + } + + image { + function = BOX_GAP + detail = "notebook" + file = "assets/frame-notebook.png" + border = {1, 1, 1, 1} + stretch = TRUE + gap_file = "assets/tab.png" + gap_border = {0, 0, 0, 1} + gap_side = BOTTOM + } + + # Standalone frame + image { + function = BOX + detail = "notebook" + file = "assets/frame-notebook.png" + border = {1, 1, 1, 1} + stretch = TRUE + } + + ############## + # Scrollbars # + ############## + + image { + function = BOX + detail = "trough" + file = "assets/scrollbar-horz-trough.png" + border = {0, 0, 1, 0} + orientation = HORIZONTAL + } + + image { + function = BOX + detail = "trough" + file = "assets/scrollbar-vert-ltr-trough.png" + border = {1, 0, 0, 0} + orientation = VERTICAL + direction = LTR + } + + image { + function = BOX + detail = "trough" + file = "assets/scrollbar-vert-rtl-trough.png" + border = {0, 1, 0, 0} + orientation = VERTICAL + direction = RTL + } + + # Horizontal sliders + + image { + function = SLIDER + state = NORMAL + detail = "slider" + file = "assets/scrollbar-horz-slider.png" + border = {8, 8, 9, 8 } + stretch = TRUE + orientation = HORIZONTAL + } + + image { + function = SLIDER + state = PRELIGHT + detail = "slider" + file = "assets/scrollbar-horz-slider-hover.png" + border = {8, 8, 9, 8 } + stretch = TRUE + orientation = HORIZONTAL + } + + image { + function = SLIDER + state = ACTIVE + detail = "slider" + file = "assets/scrollbar-horz-slider-active.png" + border = {8, 8, 9, 8 } + stretch = TRUE + orientation = HORIZONTAL + } + + image { + function = SLIDER + state = INSENSITIVE + detail = "slider" + file = "assets/scrollbar-horz-slider-insensitive.png" + border = {8, 8, 9, 8 } + stretch = TRUE + orientation = HORIZONTAL + } + + # Vertical sliders + + image { + function = SLIDER + state = NORMAL + detail = "slider" + file = "assets/scrollbar-vert-ltr-slider.png" + border = {9, 8, 8, 8} + stretch = TRUE + orientation = VERTICAL + direction = LTR + } + + image { + function = SLIDER + state = PRELIGHT + detail = "slider" + file = "assets/scrollbar-vert-ltr-slider-hover.png" + border = {9, 8, 8, 8} + stretch = TRUE + orientation = VERTICAL + direction = LTR + } + + image { + function = SLIDER + state = ACTIVE + detail = "slider" + file = "assets/scrollbar-vert-ltr-slider-active.png" + border = {9, 8, 8, 8} + stretch = TRUE + orientation = VERTICAL + direction = LTR + } + + image { + function = SLIDER + state = INSENSITIVE + detail = "slider" + file = "assets/scrollbar-vert-ltr-slider-insensitive.png" + border = {9, 8, 8, 8} + stretch = TRUE + orientation = VERTICAL + direction = LTR + } + + # RTL + + image { + function = SLIDER + state = NORMAL + detail = "slider" + file = "assets/scrollbar-vert-rtl-slider.png" + border = {8, 9, 8, 8} + stretch = TRUE + orientation = VERTICAL + direction = RTL + } + + image { + function = SLIDER + state = PRELIGHT + detail = "slider" + file = "assets/scrollbar-vert-rtl-slider-hover.png" + border = {8, 9, 8, 8} + stretch = TRUE + orientation = VERTICAL + direction = RTL + } + + image { + function = SLIDER + state = ACTIVE + detail = "slider" + file = "assets/scrollbar-vert-rtl-slider-active.png" + border = {8, 9, 8, 8} + stretch = TRUE + orientation = VERTICAL + direction = RTL + } + + image { + function = SLIDER + state = INSENSITIVE + detail = "slider" + file = "assets/scrollbar-vert-rtl-slider-insensitive.png" + border = {8, 9, 8, 8} + stretch = TRUE + orientation = VERTICAL + direction = RTL + } + + ########## + # Scales # + ########## + + # Troughs, overrided later on. We set them here too because some widgets + # don't specify their orientation. + + image { + function = BOX + detail = "trough-upper" + file = "assets/scale-horz-trough.png" + border = {6, 6, 0, 0} + stretch = TRUE + orientation = HORIZONTAL + } + + image { + function = BOX + state = INSENSITIVE + detail = "trough-upper" + file = "assets/scale-horz-trough-insensitive.png" + border = {6, 6, 0, 0} + stretch = TRUE + orientation = HORIZONTAL + } + + image { + function = BOX + detail = "trough-lower" + file = "assets/scale-horz-trough-active.png" + border = {6, 6, 0, 0} + stretch = TRUE + orientation = HORIZONTAL + } + + image { + function = BOX + state = INSENSITIVE + detail = "trough-lower" + file = "assets/scale-horz-trough-insensitive.png" + border = {6, 6, 0, 0} + stretch = TRUE + orientation = HORIZONTAL + } + + image { + function = BOX + detail = "trough-upper" + file = "assets/scale-vert-trough.png" + border = {0, 0, 6, 6} + stretch = TRUE + orientation = VERTICAL + } + + image { + function = BOX + state = INSENSITIVE + detail = "trough-upper" + file = "assets/scale-vert-trough-insensitive.png" + border = {0, 0, 6, 6} + stretch = TRUE + orientation = VERTICAL + } + + image { + function = BOX + detail = "trough-lower" + file = "assets/scale-vert-trough-active.png" + border = {0, 0, 6, 6} + stretch = TRUE + orientation = VERTICAL + } + + image { + function = BOX + state = INSENSITIVE + detail = "trough-lower" + file = "assets/scale-vert-trough-insensitive.png" + border = {0, 0, 6, 6} + stretch = TRUE + orientation = VERTICAL + } + + # Sliders + + image { + function = SLIDER + state = NORMAL + detail = "hscale" + file = "assets/scale-slider.png" + } + + image { + function = SLIDER + state = PRELIGHT + detail = "hscale" + file = "assets/scale-slider-hover.png" + } + + image { + function = SLIDER + state = ACTIVE + detail = "hscale" + file = "assets/scale-slider-active.png" + } + + image { + function = SLIDER + state = INSENSITIVE + detail = "hscale" + file = "assets/scale-slider-insensitive.png" + } + + image { + function = SLIDER + state = NORMAL + detail = "vscale" + file = "assets/scale-slider.png" + } + + image { + function = SLIDER + state = PRELIGHT + detail = "vscale" + file = "assets/scale-slider-hover.png" + } + + image { + function = SLIDER + state = ACTIVE + detail = "vscale" + file = "assets/scale-slider-active.png" + } + + image { + function = SLIDER + state = INSENSITIVE + detail = "vscale" + file = "assets/scale-slider-insensitive.png" + } + + ########### + # Menubar # + ########### + + # image { + # function = BOX + # detail = "menubar" + # file = "assets/border.png" + # border = {0, 0, 0, 1} + # } + + ######### + # Menus # + ######### + + image { + function = BOX + state = PRELIGHT + detail = "menu_scroll_arrow_up" + file = "assets/border.png" + } + + image { + function = BOX + detail = "menu_scroll_arrow_up" + file = "assets/border.png" + border = {0, 0, 0, 1} + } + + image { + function = BOX + state = PRELIGHT + detail = "menu_scroll_arrow_down" + file = "assets/border.png" + } + + image { + function = BOX + detail = "menu_scroll_arrow_down" + file = "assets/border.png" + border = {0, 0, 1, 0} + } + + ########### + # Entries # + ########### + + image { + function = SHADOW + state = ACTIVE + detail = "entry" + file = "assets/entry-active.png" + border = {8, 8, 8, 8} + stretch = TRUE + } + + image { + function = SHADOW + state = INSENSITIVE + detail = "entry" + file = "assets/entry-insensitive.png" + border = {8, 8, 8, 8} + stretch = TRUE + } + + image { + function = SHADOW + detail = "entry" + file = "assets/entry.png" + border = {8, 8, 8, 8} + stretch = TRUE + } + + image { + function = FLAT_BOX + state = ACTIVE + detail = "entry_bg" + file = "assets/entry-background.png" + } + + image { + function = FLAT_BOX + state = INSENSITIVE + detail = "entry_bg" + file = "assets/entry-background-insensitive.png" + } + + image { + function = FLAT_BOX + detail = "entry_bg" + file = "assets/entry-background.png" + } + + ######### + # Spins # + ######### + + # Spin-Up LTR + + image { + function = BOX + state = NORMAL + detail = "spinbutton_up" + file = "assets/spin-ltr-up.png" + border = {0, 8, 8, 0} + stretch = TRUE + overlay_file = "assets/pan-up-alt.png" + overlay_stretch = FALSE + direction = LTR + } + + image { + function = BOX + state = PRELIGHT + detail = "spinbutton_up" + file = "assets/spin-ltr-up-hover.png" + border = {0, 8, 8, 0} + stretch = TRUE + overlay_file = "assets/pan-up.png" + overlay_stretch = FALSE + direction = LTR + } + + image { + function = BOX + state = ACTIVE + detail = "spinbutton_up" + file = "assets/spin-ltr-up-active.png" + border = {0, 8, 8, 0} + stretch = TRUE + overlay_file = "assets/pan-up.png" + overlay_stretch = FALSE + direction = LTR + } + + image { + function = BOX + state = INSENSITIVE + detail = "spinbutton_up" + file = "assets/spin-ltr-up-insensitive.png" + border = {0, 8, 8, 0} + stretch = TRUE + overlay_file = "assets/pan-up-alt-insensitive.png" + overlay_stretch = FALSE + direction = LTR + } + + # Spin-Up RTL + + image { + function = BOX + state = NORMAL + detail = "spinbutton_up" + file = "assets/spin-rtl-up.png" + border = {8, 0, 8, 0} + stretch = TRUE + overlay_file = "assets/pan-up-alt.png" + overlay_stretch = FALSE + direction = RTL + } + + image { + function = BOX + state = PRELIGHT + detail = "spinbutton_up" + file = "assets/spin-rtl-up-hover.png" + border = {8, 0, 8, 0} + stretch = TRUE + overlay_file = "assets/pan-up.png" + overlay_stretch = FALSE + direction = RTL + } + + image { + function = BOX + state = ACTIVE + detail = "spinbutton_up" + file = "assets/spin-rtl-up-hover.png" + border = {8, 0, 8, 0} + stretch = TRUE + overlay_file = "assets/pan-up.png" + overlay_stretch = FALSE + direction = RTL + } + + image { + function = BOX + state = INSENSITIVE + detail = "spinbutton_up" + file = "assets/spin-rtl-up-insensitive.png" + border = {8, 0, 8, 0} + stretch = TRUE + overlay_file = "assets/pan-up-alt-insensitive.png" + overlay_stretch = FALSE + direction = RTL + } + + # Spin-Down LTR + + image { + function = BOX + state = NORMAL + detail = "spinbutton_down" + file = "assets/spin-ltr-down.png" + border = {0, 8, 0, 8} + stretch = TRUE + overlay_file = "assets/pan-down-alt.png" + overlay_stretch = FALSE + direction = LTR + } + + image { + function = BOX + state = PRELIGHT + detail = "spinbutton_down" + file = "assets/spin-ltr-down-hover.png" + border = {0, 8, 0, 8} + stretch = TRUE + overlay_file = "assets/pan-down.png" + overlay_stretch = FALSE + direction = LTR + } + + image { + function = BOX + state = ACTIVE + detail = "spinbutton_down" + file = "assets/spin-ltr-down-active.png" + border = {0, 8, 0, 8} + stretch = TRUE + overlay_file = "assets/pan-down.png" + overlay_stretch = FALSE + direction = LTR + } + + image { + function = BOX + state = INSENSITIVE + detail = "spinbutton_down" + file = "assets/spin-ltr-down-insensitive.png" + border = {0, 8, 0, 8} + stretch = TRUE + overlay_file = "assets/pan-down-alt-insensitive.png" + overlay_stretch = FALSE + direction = LTR + } + + # Spin-Down RTL + + image { + function = BOX + state = NORMAL + detail = "spinbutton_down" + file = "assets/spin-rtl-down.png" + border = {8, 0, 0, 8} + stretch = TRUE + overlay_file = "assets/pan-down-alt.png" + overlay_stretch = FALSE + direction = RTL + } + + image { + function = BOX + state = PRELIGHT + detail = "spinbutton_down" + file = "assets/spin-rtl-down-hover.png" + border = {8, 0, 0, 8} + stretch = TRUE + overlay_file = "assets/pan-down.png" + overlay_stretch = FALSE + direction = RTL + } + + image { + function = BOX + state = ACTIVE + detail = "spinbutton_down" + file = "assets/spin-rtl-down-active.png" + border = {8, 0, 0, 8} + stretch = TRUE + overlay_file = "assets/pan-down.png" + overlay_stretch = FALSE + direction = RTL + } + + image { + function = BOX + state = INSENSITIVE + detail = "spinbutton_down" + file = "assets/spin-rtl-down-insensitive.png" + border = {8, 0, 0, 8} + stretch = TRUE + overlay_file = "assets/pan-down-alt-insensitive.png" + overlay_stretch = FALSE + direction = RTL + } + + ############## + # Scrollbars # + ############## + + image { + function = BOX + detail = "bar" + file = "assets/progressbar-progress.png" + stretch = TRUE + border = {0, 0, 0, 0} + orientation = HORIZONTAL + } + + image { + function = BOX + detail = "bar" + file = "assets/progressbar-progress.png" + stretch = TRUE + border = {0, 0, 0, 0} + orientation = VERTICAL + } + + ############# + # Treeviews # + ############# + + # Disable active the column highlight + # We need to match specific cells or we break stuff + # Looking at you deadbeef + + image { + function = FLAT_BOX + detail = "cell_even_sorted" + state = NORMAL + } + + image { + function = FLAT_BOX + detail = "cell_odd_sorted" + state = NORMAL + } + + # Disable all the other shadows + # This prevents the Raleigh effect + image { + function = SHADOW + } + } +} + +style "menubar" { + bg[NORMAL] = @titlebar_bg_color + fg[NORMAL] = mix(0.7, @titlebar_fg_color, @titlebar_bg_color) + fg[PRELIGHT] = @titlebar_fg_color + fg[INSENSITIVE] = mix(0.3, @titlebar_fg_color, @titlebar_bg_color) + # Needed to fix Firefox's menubar text + bg[SELECTED] = mix(0.15, @titlebar_fg_color, @titlebar_bg_color) + fg[SELECTED] = @titlebar_fg_color +} + +style "menubar_item" { + xthickness = 2 + ythickness = 4 + + fg[NORMAL] = mix(0.7, @titlebar_fg_color, @titlebar_bg_color) + bg[PRELIGHT] = @selected_bg_color + fg[PRELIGHT] = @selected_fg_color + fg[INSENSITIVE] = mix(0.3, @titlebar_fg_color, @titlebar_bg_color) +} + +style "menu" { + xthickness = 0 + ythickness = 0 + + bg[NORMAL] = @base_color + bg[INSENSITIVE] = @base_color + bg[PRELIGHT] = @base_color + bg[SELECTED] = mix(0.15, @fg_color, @base_color) +} + +style "menu_item" { + xthickness = 4 + ythickness = 2 + + bg[PRELIGHT] = @selected_bg_color + fg[PRELIGHT] = @selected_fg_color + # Chromium uses this setting + bg[SELECTED] = @selected_bg_color + text[SELECTED] = @selected_fg_color + # Some widgets use text, we need to handle that + text[NORMAL] = @fg_color + text[PRELIGHT] = @selected_fg_color + + # Unfortunately we can't tell regular and menu checks/radios apart + # Without the heirarchy + engine "pixmap" { + + ################# + # Check Buttons # + ################# + + image { + function = CHECK + recolorable = TRUE + state = NORMAL + shadow = OUT + overlay_file = "assets/menu-checkbox-unchecked.png" + overlay_stretch = FALSE + } + + image { + function = CHECK + recolorable = TRUE + state = PRELIGHT + shadow = OUT + overlay_file = "assets/menu-checkbox-unchecked.png" + overlay_stretch = FALSE + } + + image { + function = CHECK + recolorable = TRUE + state = ACTIVE + shadow = OUT + overlay_file = "assets/menu-checkbox-unchecked.png" + overlay_stretch = FALSE + } + + image { + function = CHECK + recolorable = TRUE + state = INSENSITIVE + shadow = OUT + overlay_file = "assets/menu-checkbox-unchecked-insensitive.png" + overlay_stretch = FALSE + } + + image { + function = CHECK + recolorable = TRUE + state = NORMAL + shadow = IN + overlay_file = "assets/menu-checkbox-checked.png" + overlay_stretch = FALSE + } + + image { + function = CHECK + recolorable = TRUE + state = PRELIGHT + shadow = IN + overlay_file = "assets/menu-checkbox-checked.png" + overlay_stretch = FALSE + } + + image { + function = CHECK + recolorable = TRUE + state = ACTIVE + shadow = IN + overlay_file = "assets/menu-checkbox-checked.png" + overlay_stretch = FALSE + } + + image { + function = CHECK + recolorable = TRUE + state = INSENSITIVE + shadow = IN + overlay_file = "assets/menu-checkbox-checked-insensitive.png" + overlay_stretch = FALSE + } + + image { + function = CHECK + recolorable = TRUE + state = NORMAL + shadow = ETCHED_IN + overlay_file = "assets/menu-checkbox-mixed.png" + overlay_stretch = FALSE + } + + image { + function = CHECK + recolorable = TRUE + state = PRELIGHT + shadow = ETCHED_IN + overlay_file = "assets/menu-checkbox-mixed.png" + overlay_stretch = FALSE + } + + image { + function = CHECK + recolorable = TRUE + state = ACTIVE + shadow = ETCHED_IN + overlay_file = "assets/menu-checkbox-mixed.png" + overlay_stretch = FALSE + } + + image { + function = CHECK + recolorable = TRUE + state = INSENSITIVE + shadow = ETCHED_IN + overlay_file = "assets/menu-checkbox-mixed-insensitive.png" + overlay_stretch = FALSE + } + + ################# + # Radio Buttons # + ################# + + image { + function = OPTION + state = NORMAL + shadow = OUT + overlay_file = "assets/menu-radio-unchecked.png" + overlay_stretch = FALSE + } + + image { + function = OPTION + state = PRELIGHT + shadow = OUT + overlay_file = "assets/menu-radio-unchecked.png" + overlay_stretch = FALSE + } + + image { + function = OPTION + state = ACTIVE + shadow = OUT + overlay_file = "assets/menu-radio-unchecked.png" + overlay_stretch = FALSE + } + + image { + function = OPTION + state = INSENSITIVE + shadow = OUT + overlay_file = "assets/menu-radio-unchecked-insensitive.png" + overlay_stretch = FALSE + } + + image { + function = OPTION + state = NORMAL + shadow = IN + overlay_file = "assets/menu-radio-checked.png" + overlay_stretch = FALSE + } + + image { + function = OPTION + state = PRELIGHT + shadow = IN + overlay_file = "assets/menu-radio-checked.png" + overlay_stretch = FALSE + } + + image { + function = OPTION + state = ACTIVE + shadow = IN + overlay_file = "assets/menu-radio-checked.png" + overlay_stretch = FALSE + } + + image { + function = OPTION + state = INSENSITIVE + shadow = IN + overlay_file = "assets/menu-radio-checked-insensitive.png" + overlay_stretch = FALSE + } + + image { + function = OPTION + state = NORMAL + shadow = ETCHED_IN + overlay_file = "assets/menu-radio-mixed.png" + overlay_stretch = FALSE + } + + image { + function = OPTION + state = PRELIGHT + shadow = ETCHED_IN + overlay_file = "assets/menu-radio-mixed.png" + overlay_stretch = FALSE + } + + image { + function = OPTION + state = ACTIVE + shadow = ETCHED_IN + overlay_file = "assets/menu-radio-mixed.png" + overlay_stretch = FALSE + } + + image { + function = OPTION + state = INSENSITIVE + shadow = ETCHED_IN + overlay_file = "assets/menu-radio-mixed-insensitive.png" + overlay_stretch = FALSE + } + + image { + function = SHADOW # This fixes boxy Qt menu items + file = "assets/null.png" + border = { 4, 4, 4, 4 } + stretch = TRUE + } + } +} + +style "separator_menu_item" { + xthickness = 0 + ythickness = 2 + + engine "pixmap" { + image { + function = BOX + file = "assets/border.png" + border = {0, 0, 0, 1} + } + } +} + +style "button_label" { + fg[NORMAL] = mix(0.75, @fg_color, @bg_color) + # fg[INSENSITIVE] = mix(0.3, @fg_color, @bg_color) + + font_name = "Medium" +} + +style "checkbutton_label" { + fg[NORMAL] = @fg_color + # fg[INSENSITIVE] = mix(0.4, @fg_color, @bg_color) + + font_name = "Regular" +} + +style "button" { + xthickness = 4 + ythickness = 4 + + # For the sake of sanity style buttons this way + engine "pixmap" { + + ########### + # Buttons # + ########### + + image { + function = BOX + state = NORMAL + file = "assets/button.png" + border = {8, 8, 8, 8} + stretch = TRUE + } + + image { + function = BOX + state = PRELIGHT + shadow = OUT + file = "assets/button-hover.png" + border = {8, 8, 8, 8} + stretch = TRUE + } + + # Don't add hover effect on pressed buttons + image { + function = BOX + state = PRELIGHT + shadow = IN + file = "assets/button-active.png" + border = {8, 8, 8, 8} + stretch = TRUE + } + + image { + function = BOX + state = ACTIVE + file = "assets/button-active.png" + border = {8, 8, 8, 8} + stretch = TRUE + } + + image { + function = BOX + state = INSENSITIVE + file = "assets/button-insensitive.png" + border = {8, 8, 8, 8} + stretch = TRUE + } + } +} + +style "link_button" { + # Disable the button effect, leave just the link + engine "pixmap" { + image { + function = BOX + } + } +} + +style "entry" { + # We set this same as the border of the border of the entry + # This way there's no overlap + xthickness = 6 + ythickness = 6 +} + +style "combobox" { + xthickness = 6 + ythickness = 6 + + # This affects only the button beside an entry + GtkButton::inner-border = {0, 0, 0, 0} +} + +style "combobox_cellview" { + text[NORMAL] = mix(0.75, @fg_color, @bg_color) + # text[INSENSITIVE] = mix(0.3, @fg_color, @bg_color) + + font_name = "Medium" +} + +style "combobox_entry" { + # Since one side of the button is missing, we need to shift the arrow a little to the right + GtkButton::inner-border = {0, 2, 0, 0} + + engine "pixmap" { + + ############# + # LTR entry # + ############# + + image { + function = SHADOW + state = NORMAL + detail = "entry" + file = "assets/combo-ltr-entry.png" + border = {8, 0, 8, 8} + stretch = TRUE + direction = LTR + } + + image { + function = SHADOW + state = ACTIVE + detail = "entry" + file = "assets/combo-ltr-entry-active.png" + border = {8, 0, 8, 8} + stretch = TRUE + direction = LTR + } + + image { + function = SHADOW + state = INSENSITIVE + detail = "entry" + file = "assets/combo-ltr-entry-insensitive.png" + border = {8, 0, 8, 8} + stretch = TRUE + direction = LTR + } + + ############# + # RTL entry # + ############# + + image { + function = SHADOW + state = NORMAL + detail = "entry" + file = "assets/combo-rtl-entry.png" + border = {0, 8, 8, 8} + stretch = TRUE + direction = RTL + } + + image { + function = SHADOW + state = ACTIVE + detail = "entry" + file = "assets/combo-rtl-entry-active.png" + border = {0, 8, 8, 8} + stretch = TRUE + direction = RTL + } + + image { + function = SHADOW + state = INSENSITIVE + detail = "entry" + file = "assets/combo-rtl-entry-insensitive.png" + border = {0, 8, 8, 8} + stretch = TRUE + direction = RTL + } + + ############## + # LTR button # + ############## + + image { + function = BOX + state = NORMAL + detail = "button" + file = "assets/combo-ltr-button.png" + border = {0, 8, 8, 8} + stretch = TRUE + direction = LTR + } + + image { + function = BOX + state = PRELIGHT + detail = "button" + file = "assets/combo-ltr-button-hover.png" + border = {0, 8, 8, 8} + stretch = TRUE + direction = LTR + } + + image { + function = BOX + state = ACTIVE + detail = "button" + file = "assets/combo-ltr-button-active.png" + border = {0, 8, 8, 8} + stretch = TRUE + direction = LTR + } + + image { + function = BOX + state = INSENSITIVE + detail = "button" + file = "assets/combo-ltr-button-insensitive.png" + border = {0, 8, 8, 8} + stretch = TRUE + direction = LTR + } + + ############## + # RTL button # + ############## + + image { + function = BOX + state = NORMAL + detail = "button" + file = "assets/combo-rtl-button.png" + border = {8, 0, 8, 8} + stretch = TRUE + direction = RTL + } + + image { + function = BOX + state = PRELIGHT + detail = "button" + file = "assets/combo-rtl-button-hover.png" + border = {8, 0, 8, 8} + stretch = TRUE + direction = RTL + } + + image { + function = BOX + state = ACTIVE + detail = "button" + file = "assets/combo-rtl-button-active.png" + border = {8, 0, 8, 8} + stretch = TRUE + direction = RTL + } + + image { + function = BOX + state = INSENSITIVE + detail = "button" + file = "assets/combo-rtl-button-insensitive.png" + border = {8, 0, 8, 8} + stretch = TRUE + direction = RTL + } + } +} + +style "combo_button_padding" { + # Since one side of the button is missing, we need to shift the arrow a + # little to the right. + # This is the same thing we've done above but the combo, unlike the combobox, + # uses padding the same way as a button. + GtkButton::inner-border = {3, 6, 3, 3} +} + +style "notebook" { + xthickness = 3 + ythickness = 3 +} + +style "notebook_tab_label" { + fg[ACTIVE] = mix(0.75, @fg_color, @bg_color) + + font_name = "Medium" +} + +style "notebook_viewport" { + bg[NORMAL] = @base_color +} + +style "notebook_bg" { + bg[NORMAL] = @base_color + bg[PRELIGHT] = @base_color + bg[INSENSITIVE] = @base_color +} + +style "notebook_entry" { + engine "pixmap" { + image { + function = SHADOW + state = ACTIVE + detail = "entry" + file = "assets/notebook-entry-active.png" + border = {8, 8, 8, 8} + stretch = TRUE + } + + image { + function = SHADOW + state = INSENSITIVE + detail = "entry" + file = "assets/notebook-entry-insensitive.png" + border = {8, 8, 8, 8} + stretch = TRUE + } + + image { + function = SHADOW + detail = "entry" + file = "assets/notebook-entry.png" + border = {8, 8, 8, 8} + stretch = TRUE + } + } +} + +style "normal_bg" { + bg[NORMAL] = @bg_color + bg[PRELIGHT] = @bg_color + bg[INSENSITIVE] = @bg_color +} + +style "normal_entry" { + engine "pixmap" { + image { + function = SHADOW + state = ACTIVE + detail = "entry" + file = "assets/entry-active.png" + border = {8, 8, 8, 8} + stretch = TRUE + } + + image { + function = SHADOW + state = INSENSITIVE + detail = "entry" + file = "assets/entry-insensitive.png" + border = {8, 8, 8, 8} + stretch = TRUE + } + + image { + function = SHADOW + detail = "entry" + file = "assets/entry.png" + border = {8, 8, 8, 8} + stretch = TRUE + } + } +} + +style "notebook_combo" { + engine "pixmap" { + + ############# + # LTR entry # + ############# + + image { + function = SHADOW + state = NORMAL + detail = "entry" + file = "assets/notebook-combo-ltr-entry.png" + border = {8, 8, 8, 8} + stretch = TRUE + direction = LTR + } + + image { + function = SHADOW + state = ACTIVE + detail = "entry" + file = "assets/notebook-combo-ltr-entry-active.png" + border = {8, 8, 8, 8} + stretch = TRUE + direction = LTR + } + + image { + function = SHADOW + state = INSENSITIVE + detail = "entry" + file = "assets/notebook-combo-ltr-entry-insensitive.png" + border = {8, 8, 8, 8} + stretch = TRUE + direction = LTR + } + + ############# + # RTL entry # + ############# + + image { + function = SHADOW + state = NORMAL + detail = "entry" + file = "assets/notebook-combo-rtl-entry.png" + border = {8, 8, 8, 8} + stretch = TRUE + direction = RTL + } + + image { + function = SHADOW + state = ACTIVE + detail = "entry" + file = "assets/notebook-combo-rtl-entry-active.png" + border = {8, 8, 8, 8} + stretch = TRUE + direction = RTL + } + + image { + function = SHADOW + state = INSENSITIVE + detail = "entry" + file = "assets/notebook-combo-rtl-entry-insensitive.png" + border = {8, 8, 8, 8} + stretch = TRUE + direction = RTL + } + } +} + +style "textview" { + bg[NORMAL] = @base_color +} + +style "scale_horz" { + engine "pixmap" { + image { + function = BOX + detail = "trough-upper" + file = "assets/scale-horz-trough.png" + border = {6, 6, 0, 0} + stretch = TRUE + } + + image { + function = BOX + detail = "trough-lower" + file = "assets/scale-horz-trough-active.png" + border = {6, 6, 0, 0} + stretch = TRUE + } + } +} + +style "scale_vert" { + engine "pixmap" { + image { + function = BOX + detail = "trough-upper" + file = "assets/scale-vert-trough.png" + border = {0, 0, 6, 6} + stretch = TRUE + } + + image { + function = BOX + detail = "trough-lower" + file = "assets/scale-vert-trough-active.png" + border = {0, 0, 6, 6} + stretch = TRUE + } + } +} + +style "progressbar" { + xthickness = 0 + ythickness = 0 + + fg[PRELIGHT] = @selected_fg_color + + engine "pixmap" { + image { + function = BOX + detail = "trough" + file = "assets/progressbar-trough.png" + border = {0, 0, 0, 0} + stretch = TRUE + orientation = HORIZONTAL + } + + image { + function = BOX + detail = "trough" + file = "assets/progressbar-trough.png" + border = {0, 0, 0, 0} + stretch = TRUE + orientation = VERTICAL + } + } +} + +style "treeview_header" { + xthickness = 2 + ythickness = 2 + + fg[NORMAL] = mix(0.75, @fg_color, @base_color) + fg[PRELIGHT] = @fg_color + + font_name = "Medium" + + GtkButton::inner-border = {4, 4, 0, 2} + + engine "pixmap" { + image { + function = BOX + state = NORMAL + file = "assets/treeview-ltr-button.png" + border = {0, 1, 0, 1} + stretch = TRUE + direction = LTR + } + + image { + function = BOX + state = PRELIGHT + file = "assets/treeview-ltr-button-hover.png" + border = {0, 1, 0, 1} + stretch = TRUE + direction = LTR + } + + image { + function = BOX + state = ACTIVE + file = "assets/treeview-ltr-button-active.png" + border = {0, 1, 0, 1} + stretch = TRUE + direction = LTR + } + + image { + function = BOX + state = NORMAL + file = "assets/treeview-rtl-button.png" + border = {1, 0, 0, 1} + stretch = TRUE + direction = RTL + } + + image { + function = BOX + state = PRELIGHT + file = "assets/treeview-rtl-button-hover.png" + border = {1, 0, 0, 1} + stretch = TRUE + direction = RTL + } + + image { + function = BOX + state = ACTIVE + file = "assets/treeview-rtl-button-active.png" + border = {1, 0, 0, 1} + stretch = TRUE + direction = RTL + } + + image { + function = ARROW + state = NORMAL + overlay_file = "assets/pan-up-alt.png" + overlay_stretch = FALSE + arrow_direction = UP + } + + image { + function = ARROW + state = PRELIGHT + overlay_file = "assets/pan-up.png" + overlay_stretch = FALSE + arrow_direction = UP + } + + image { + function = ARROW + state = ACTIVE + overlay_file = "assets/pan-up.png" + overlay_stretch = FALSE + arrow_direction = UP + } + + image { + function = ARROW + state = NORMAL + overlay_file = "assets/pan-down-alt.png" + overlay_stretch = FALSE + arrow_direction = DOWN + } + + image { + function = ARROW + state = PRELIGHT + overlay_file = "assets/pan-down.png" + overlay_stretch = FALSE + arrow_direction = DOWN + } + + image { + function = ARROW + state = ACTIVE + overlay_file = "assets/pan-down.png" + overlay_stretch = FALSE + arrow_direction = DOWN + } + } +} + +style "scrolled_window" { + engine "pixmap" { + image { + function = SHADOW + file = "assets/frame.png" + border = {1, 1, 1, 1} + stretch = TRUE + } + } +} + +style "frame" { + engine "pixmap" { + image { + function = SHADOW + shadow = NONE + } + + image { + function = SHADOW + file = "assets/frame.png" + border = {1, 1, 1, 1} + stretch = TRUE + } + + image { + function = SHADOW_GAP + file = "assets/frame.png" + border = {1, 1, 1, 1} + stretch = TRUE + gap_start_file = "assets/border.png" + gap_end_file = "assets/border.png" + } + } +} + +style "tool_button" { + GtkButton::inner-border = {2, 2, 2, 2} + + # For the sake of sanity style buttons this way + engine "pixmap" { + image { + function = BOX + state = NORMAL + file = "assets/flat-button.png" + border = {8, 8, 8, 8} + stretch = TRUE + } + + image { + function = BOX + state = PRELIGHT + shadow = OUT + file = "assets/flat-button-hover.png" + border = {8, 8, 8, 8} + stretch = TRUE + } + + # Don't add hover effect on pressed buttons + image { + function = BOX + state = PRELIGHT + shadow = IN + file = "assets/flat-button-active.png" + border = {8, 8, 8, 8} + stretch = TRUE + } + + image { + function = BOX + state = ACTIVE + file = "assets/flat-button-active.png" + border = {8, 8, 8, 8} + stretch = TRUE + } + + image { + function = BOX + state = INSENSITIVE + shadow = OUT + file = "assets/flat-button-insensitive.png" + border = {8, 8, 8, 8} + stretch = TRUE + } + + image { + function = BOX + state = INSENSITIVE + shadow = IN + file = "assets/button-insensitive.png" + border = {8, 8, 8, 8} + stretch = TRUE + } + } +} + +style "toolbar_separator" { + GtkWidget::wide-separators = 1 + GtkWidget::separator-width = 1 + GtkWidget::separator-height = 1 + + engine "pixmap" { + image { + function = BOX + file = "assets/border.png" + } + } +} + +style "inline_toolbar" { + # GtkToolbar::button-relief = GTK_RELIEF_NORMAL + + engine "pixmap" { + image { + function = BOX + file = "assets/frame-inline.png" + border = {1, 1, 0, 1} + stretch = TRUE + } + } +} + +style "tooltip" { + xthickness = 8 + ythickness = 8 + + bg[NORMAL] = @base_color + fg[NORMAL] = @fg_color + bg[SELECTED] = @base_color +} + +style "disable_text_shadow" { + engine "murrine" { + textstyle = 0 + } +} + +style "disable_separator" { + xthickness = 0 + ythickness = 0 + + GtkWidget::wide-separators = 1 +} + +style "panel-launchers" +{ + xthickness = 0 + ythickness = 0 + GtkButton::inner-border = {1, 2, 1, 2} +} + +# Default style, containing theme properties and trying to match every widget as +# much as possible, which is not only faster than trying to match every widget +# by its own but also less bug-prune and more consistent. However there is some +# widget specific stuff that needs to be taken care of, which is the point of +# every other style below. +class "GtkWidget" style "default" + +###################################### +# Override padding, style and colour # +###################################### + +class "GtkButton" style "button" +class "GtkLinkButton" style "link_button" +class "GtkEntry" style "entry" +class "GtkOldEditable" style "entry" +class "GtkNotebook" style "notebook" +class "GtkHScale" style "scale_horz" +class "GtkVScale" style "scale_vert" +class "GtkProgressBar" style "progressbar" +class "GtkScrolledWindow" style "scrolled_window" +class "GtkFrame" style "frame" +class "GtkSeparatorToolItem" style "toolbar_separator" +class "GtkMenuBar" style "menubar" +class "GtkMenu" style "menu" +class "GtkTextView" style "textview" + +# Menu and menubar items +widget_class "*<GtkMenuItem>*" style "menu_item" +widget_class "*<GtkMenuBar>.<GtkMenuItem>*" style "menubar_item" +widget_class "*<GtkSeparatorMenuItem>*" style "separator_menu_item" + +# Treeview buttons +widget_class "*<GtkTreeView>*<GtkButton>*" style "treeview_header" + +# Give the file chooser toolbar a border +widget_class "*<GtkFileChooserDefault>*<GtkToolbar>" style "inline_toolbar" + +# Fix padding on regular comboboxes +widget_class "*<GtkComboBox>.<GtkButton>" style "combobox" + +# And disable separators on them +widget_class "*<GtkComboBox>.<GtkButton>*<GtkSeparator>" style "disable_separator" +widget_class "*<GtkFontButton>*<GtkSeparator>" style "disable_separator" +widget_class "*<GtkFileChooserButton>*<GtkSeparator>" style "disable_separator" + +# Join together the ComboBoxEntry entry and button +widget_class "*<GtkComboBoxEntry>*" style "combobox_entry" + +# Join the Combo entry and button +widget_class "*<GtkCombo>*" style "combobox_entry" + +# Tweak the padding on the button a little bit because it +# uses it a bit differently +widget_class "*<GtkCombo>.<GtkButton>" style "combo_button_padding" + +# Alas we cannot do the same for ComboBoxText because there +# isn't a way to apply the style to only the comboboxes that +# have an entry inside + +# Tool buttons have different styles +widget_class "*<GtkToolButton>*<GtkButton>" style "tool_button" +widget_class "*<GtkVBox>*<GtkEventBox>.<GtkToolbar>*<GtkButton>" style "tool_button" + +# Notebooks +widget_class "*<GtkNotebook>.<GtkLabel>" style "notebook_tab_label" +widget_class "*<GtkNotebook>.<GtkHBox>.<GtkLabel>" style "notebook_tab_label" + +# Notebooks are white, act accordingly +widget_class "*<GtkNotebook>*<GtkEntry>" style "notebook_entry" +widget_class "*<GtkNotebook>*<GtkProgressBar>" style "notebook_bg" +widget_class "*<GtkNotebook>*<GtkSpinButton>" style "notebook_bg" +widget_class "*<GtkNotebook>*<GtkScrolledWindow>*<GtkViewport>" style "notebook_bg" +widget_class "*<GtkNotebook>*<GimpRuler>" style "notebook_bg" +widget_class "*<GtkNotebook>.<GimpDisplayShell>*<GtkEventBox>" style "notebook_bg" +widget_class "*<GtkNotebook>*<GtkComboBoxEntry>*" style "notebook_combo" +widget_class "*<GtkNotebook>*<GtkCombo>*" style "notebook_combo" + +# However, stuff inside eventboxes inside notebooks is grey +# again, react +widget_class "*<GtkNotebook>*<GtkEventBox>*<GtkEntry>" style "normal_entry" +widget_class "*<GtkNotebook>*<GtkEventBox>*<GtkProgressBar>" style "normal_bg" +widget_class "*<GtkNotebook>*<GtkEventBox>*<GtkSpinButton>" style "normal_bg" +widget_class "*<GtkNotebook>*<GtkEventBox>*<GtkComboBoxEntry>*" style "combobox_entry" +widget_class "*<GtkNotebook>*<GtkEventBox>*<GtkCombo>*" style "combobox_entry" +widget_class "*<GtkNotebook>*<GtkEventBox>*<GtkCombo>.<GtkButton>" style "combo_button_padding" + +# Button labels +widget_class "*<GtkButton>*<GtkLabel>" style "button_label" + +# Checkbutton labels +widget_class "*<GtkCheckButton>.<GtkLabel>" style "checkbutton_label" + +# ComboBoxes tend to draw the button label with text[] +# instead of fg[], we need to fix that +widget_class "*<GtkComboBox>*<GtkCellView>" style "combobox_cellview" + +# Disable white text shadows +widget_class "*<GtkLabel>" style "disable_text_shadow" +widget_class "*<GtkCellView>" style "disable_text_shadow" + +# GTK tooltips +widget "gtk-tooltip*" style "tooltip" + +# Xfce4 panel launchers +widget "*launcher*" style "panel-launchers" |