NoPaste

main

von ottonormal

SNIPPET_TEXT:
  1. # vim:set ft=gtkrc ts=2 sw=2 sts=2 ai et:
  2. #
  3. # This is the main theme file, handling all the default widgets and theme
  4. # properties. Since GTK+ 2 is old, we need to overcome some of its limitations,
  5. # which is also mostly done in this file. Sadly not all of them can be overcome
  6. # so there will always be a visible difference between the GTK+ 2 and 3 theme.
  7.  
  8. style "default" {
  9.   xthickness = 1
  10.   ythickness = 1
  11.  
  12.   ####################
  13.  # Style Properties #
  14.  ####################
  15.  
  16.   GtkWidget::focus-padding      = 0
  17.   GtkWidget::focus-line-width   = 2
  18.   GtkWidget::focus-line-pattern = "\2\1"
  19.  
  20.   GtkToolbar::space-size       = 5 # 1 + 2*2 (separator + margins)
  21.  GtkToolbar::internal-padding = 2
  22.   GtkToolButton::icon-spacing  = 4
  23.  
  24.   GtkWidget::tooltip-radius    = 2
  25.   GtkWidget::tooltip-alpha     = 230
  26.   GtkWidget::new-tooltip-style = 1 #for compatibility
  27.  
  28.   GtkWidget::link-color              = @link_color
  29.   GtkWidget::visited-link-color      = @visited_link_color
  30.   GnomeHRef::link_color              = @link_color
  31.   GtkHTML::link-color                = @link_color
  32.   GtkHTML::vlink-color               = @visited_link_color
  33.   GtkIMHtml::hyperlink-color         = @link_color
  34.   GtkIMHtml::hyperlink-visited-color = @visited_link_color
  35.  
  36.   GtkSeparatorMenuItem::horizontal-padding = 0
  37.   GtkSeparatorMenuItem::wide-separators    = 0
  38.   GtkSeparatorMenuItem::separator-height   = 0
  39.  
  40.   GtkButton::child-displacement-y = 0
  41.  
  42.   GtkButton::default-border         = {0, 0, 0, 0}
  43.   GtkButton::default-outside-border = {0, 0, 0, 0}
  44.   GtkButton::inner-border           = {4, 4, 4, 4}
  45.  
  46.   GtkEntry::state-hint   = 1
  47.   GtkEntry::inner-border = {4, 4, 4, 4}
  48.  
  49.   GtkPaned::handle-size  = 8
  50.   GtkHPaned::handle-size = 8
  51.   GtkVPaned::handle-size = 8
  52.  
  53.   GtkScrollbar::trough-border = 0
  54.   GtkRange::trough-border     = 0
  55.   GtkRange::slider-width      = 17
  56.   GtkRange::stepper-size      = 0
  57.   GtkRange::activate-slider   = 1
  58.  
  59.   GtkScrollbar::activate-slider              = 1
  60.   GtkScrollbar::stepper-size                 = 0
  61.   GtkScrollbar::has-backward-stepper         = 0
  62.   GtkScrollbar::has-forward-stepper          = 0
  63.   GtkScrollbar::min-slider-length            = 32 # 24 + 2*4 (margins)
  64.  GtkScrolledWindow::scrollbar-spacing       = 0
  65.   GtkScrolledWindow::scrollbars-within-bevel = 1
  66.  
  67.   GtkScale::slider_length       = 24
  68.   GtkScale::slider_width        = 24
  69.   GtkScale::trough-side-details = 1
  70.  
  71.   GtkProgressBar::min-horizontal-bar-height = 4
  72.   GtkProgressBar::min-vertical-bar-width    = 4
  73.   GtkProgressBar::xspacing                  = 4
  74.   GtkProgressBar::yspacing                  = 4
  75.  
  76.   GtkStatusbar::shadow_type    = GTK_SHADOW_NONE
  77.   GtkSpinButton::shadow_type   = GTK_SHADOW_NONE
  78.   GtkMenuBar::shadow-type      = GTK_SHADOW_NONE
  79.   GtkToolbar::shadow-type      = GTK_SHADOW_NONE
  80.   # TODO: find out what this comment means:
  81.  # ( every window is misaligned for the sake of menus ):
  82.  GtkMenuBar::internal-padding = 0
  83.   GtkMenu::horizontal-padding  = 0
  84.   GtkMenu::vertical-padding    = 4
  85.   GtkMenu::double-arrows       = 0
  86.   GtkMenuItem::arrow-scaling   = 1
  87.   GtkMenuItem::toggle-spacing  = 12
  88.  
  89.   GtkCheckButton::indicator-size    = 24
  90.   GtkCheckButton::indicator_spacing = 2
  91.   GtkOptionMenu::indicator_spacing  = {10, 10, 6, 6}
  92.  
  93.   GtkTreeView::expander-size        = 16
  94.   GtkTreeView::vertical-separator   = 0
  95.   GtkTreeView::horizontal-separator = 4
  96.   GtkTreeView::allow-rules          = 0
  97.   # Set this because some apps read it
  98.  GtkTreeView::odd-row-color        = @base_color
  99.   GtkTreeView::even-row-color       = @base_color
  100.  
  101.   GtkExpander::expander-size = 16
  102.  
  103.   GtkNotebook::tab-overlap = 0
  104.  
  105.   ##########
  106.  # Colors #
  107.  ##########
  108.  
  109.   bg[NORMAL]      = @bg_color
  110.   bg[PRELIGHT]    = @bg_color
  111.   bg[SELECTED]    = @selected_bg_color
  112.   bg[INSENSITIVE] = @bg_color
  113.   bg[ACTIVE]      = @bg_color
  114.  
  115.   fg[NORMAL]      = @fg_color
  116.   fg[PRELIGHT]    = @fg_color
  117.   fg[SELECTED]    = @selected_fg_color
  118.   fg[INSENSITIVE] = mix (0.4, @fg_color, @bg_color)
  119.   fg[ACTIVE]      = @fg_color
  120.  
  121.   text[NORMAL]      = @text_color
  122.   text[PRELIGHT]    = @text_color
  123.   text[SELECTED]    = @selected_fg_color
  124.   text[INSENSITIVE] = mix (0.4, @text_color, @base_color)
  125.   text[ACTIVE]      = @selected_fg_color
  126.  
  127.   base[NORMAL]      = @base_color
  128.   base[PRELIGHT]    = mix (0.05, @text_color, @base_color)
  129.   base[SELECTED]    = @selected_bg_color
  130.   base[INSENSITIVE] = mix (0.5, @base_color, @bg_color)
  131.   base[ACTIVE]      = @selected_bg_color
  132.  
  133.   # For succinctness, all reasonable pixmap options remain here
  134.  
  135.   # Draw frame around menu in a non-compositied environment
  136.  # This needs to go before pixmap because we need to override some stuff
  137.  engine "adwaita" {}
  138.  
  139.   engine "pixmap" {
  140.  
  141.     #################
  142.    # Check Buttons #
  143.    #################
  144.  
  145.     image {
  146.       function        = CHECK
  147.       recolorable     = TRUE
  148.       state           = NORMAL
  149.       shadow          = OUT
  150.       overlay_file    = "assets/checkbox-unchecked.png"
  151.       overlay_stretch = FALSE
  152.     }
  153.  
  154.     image {
  155.       function        = CHECK
  156.       recolorable     = TRUE
  157.       state           = PRELIGHT
  158.       shadow          = OUT
  159.       overlay_file    = "assets/checkbox-unchecked-hover.png"
  160.       overlay_stretch = FALSE
  161.     }
  162.  
  163.     image {
  164.       function        = CHECK
  165.       recolorable     = TRUE
  166.       state           = ACTIVE
  167.       shadow          = OUT
  168.       overlay_file    = "assets/checkbox-unchecked-active.png"
  169.       overlay_stretch = FALSE
  170.     }
  171.  
  172.     image {
  173.       function        = CHECK
  174.       recolorable     = TRUE
  175.       state           = SELECTED
  176.       shadow          = OUT
  177.       overlay_file    = "assets/checkbox-unchecked.png"
  178.       overlay_stretch = FALSE
  179.     }
  180.  
  181.     image {
  182.       function        = CHECK
  183.       recolorable     = TRUE
  184.       state           = INSENSITIVE
  185.       shadow          = OUT
  186.       overlay_file    = "assets/checkbox-unchecked-insensitive.png"
  187.       overlay_stretch = FALSE
  188.     }
  189.  
  190.     image {
  191.       function        = CHECK
  192.       recolorable     = TRUE
  193.       state           = NORMAL
  194.       shadow          = IN
  195.       overlay_file    = "assets/checkbox-checked.png"
  196.       overlay_stretch = FALSE
  197.     }
  198.  
  199.     image {
  200.       function        = CHECK
  201.       recolorable     = TRUE
  202.       state           = PRELIGHT
  203.       shadow          = IN
  204.       overlay_file    = "assets/checkbox-checked-hover.png"
  205.       overlay_stretch = FALSE
  206.     }
  207.  
  208.     image {
  209.       function        = CHECK
  210.       recolorable     = TRUE
  211.       state           = ACTIVE
  212.       shadow          = IN
  213.       overlay_file    = "assets/checkbox-checked-active.png"
  214.       overlay_stretch = FALSE
  215.     }
  216.  
  217.     image {
  218.       function        = CHECK
  219.       recolorable     = TRUE
  220.       state           = SELECTED
  221.       shadow          = IN
  222.       overlay_file    = "assets/checkbox-checked.png"
  223.       overlay_stretch = FALSE
  224.     }
  225.  
  226.     image {
  227.       function        = CHECK
  228.       recolorable     = TRUE
  229.       state           = INSENSITIVE
  230.       shadow          = IN
  231.       overlay_file    = "assets/checkbox-checked-insensitive.png"
  232.       overlay_stretch = FALSE
  233.     }
  234.  
  235.     image {
  236.       function        = CHECK
  237.       recolorable     = TRUE
  238.       state           = NORMAL
  239.       shadow          = ETCHED_IN
  240.       overlay_file    = "assets/checkbox-mixed.png"
  241.       overlay_stretch = FALSE
  242.     }
  243.  
  244.     image {
  245.       function        = CHECK
  246.       recolorable     = TRUE
  247.       state           = PRELIGHT
  248.       shadow          = ETCHED_IN
  249.       overlay_file    = "assets/checkbox-mixed-hover.png"
  250.       overlay_stretch = FALSE
  251.     }
  252.  
  253.     image {
  254.       function        = CHECK
  255.       recolorable     = TRUE
  256.       state           = ACTIVE
  257.       shadow          = ETCHED_IN
  258.       overlay_file    = "assets/checkbox-mixed-active.png"
  259.       overlay_stretch = FALSE
  260.     }
  261.  
  262.     image {
  263.       function        = CHECK
  264.       recolorable     = TRUE
  265.       state           = SELECTED
  266.       shadow          = ETCHED_IN
  267.       overlay_file    = "assets/checkbox-mixed.png"
  268.       overlay_stretch = FALSE
  269.     }
  270.  
  271.     image {
  272.       function        = CHECK
  273.       recolorable     = TRUE
  274.       state           = INSENSITIVE
  275.       shadow          = ETCHED_IN
  276.       overlay_file    = "assets/checkbox-mixed-insensitive.png"
  277.       overlay_stretch = FALSE
  278.     }
  279.  
  280.     #################
  281.    # Radio Buttons #
  282.    #################
  283.  
  284.     image {
  285.       function        = OPTION
  286.       state           = NORMAL
  287.       shadow          = OUT
  288.       overlay_file    = "assets/radio-unchecked.png"
  289.       overlay_stretch = FALSE
  290.     }
  291.  
  292.     image {
  293.       function        = OPTION
  294.       state           = PRELIGHT
  295.       shadow          = OUT
  296.       overlay_file    = "assets/radio-unchecked-hover.png"
  297.       overlay_stretch = FALSE
  298.     }
  299.  
  300.     image {
  301.       function        = OPTION
  302.       state           = ACTIVE
  303.       shadow          = OUT
  304.       overlay_file    = "assets/radio-unchecked-active.png"
  305.       overlay_stretch = FALSE
  306.     }
  307.  
  308.     image {
  309.       function        = OPTION
  310.       state           = SELECTED
  311.       shadow          = OUT
  312.       overlay_file    = "assets/radio-unchecked.png"
  313.       overlay_stretch = FALSE
  314.     }
  315.  
  316.     image {
  317.       function        = OPTION
  318.       state           = INSENSITIVE
  319.       shadow          = OUT
  320.       overlay_file    = "assets/radio-unchecked-insensitive.png"
  321.       overlay_stretch = FALSE
  322.     }
  323.  
  324.     image {
  325.       function        = OPTION
  326.       state           = NORMAL
  327.       shadow          = IN
  328.       overlay_file    = "assets/radio-checked.png"
  329.       overlay_stretch = FALSE
  330.     }
  331.  
  332.     image {
  333.       function        = OPTION
  334.       state           = PRELIGHT
  335.       shadow          = IN
  336.       overlay_file    = "assets/radio-checked-hover.png"
  337.       overlay_stretch = FALSE
  338.     }
  339.  
  340.     image {
  341.       function        = OPTION
  342.       state           = ACTIVE
  343.       shadow          = IN
  344.       overlay_file    = "assets/radio-checked-active.png"
  345.       overlay_stretch = FALSE
  346.     }
  347.  
  348.     image {
  349.       function        = OPTION
  350.       state           = SELECTED
  351.       shadow          = IN
  352.       overlay_file    = "assets/radio-checked.png"
  353.       overlay_stretch = FALSE
  354.     }
  355.  
  356.     image {
  357.       function        = OPTION
  358.       state           = INSENSITIVE
  359.       shadow          = IN
  360.       overlay_file    = "assets/radio-checked-insensitive.png"
  361.       overlay_stretch = FALSE
  362.     }
  363.  
  364.     image {
  365.       function        = OPTION
  366.       state           = NORMAL
  367.       shadow          = ETCHED_IN
  368.       overlay_file    = "assets/radio-mixed.png"
  369.       overlay_stretch = FALSE
  370.     }
  371.  
  372.     image {
  373.       function        = OPTION
  374.       state           = PRELIGHT
  375.       shadow          = ETCHED_IN
  376.       overlay_file    = "assets/radio-mixed-hover.png"
  377.       overlay_stretch = FALSE
  378.     }
  379.  
  380.     image {
  381.       function        = OPTION
  382.       state           = ACTIVE
  383.       shadow          = ETCHED_IN
  384.       overlay_file    = "assets/radio-mixed-active.png"
  385.       overlay_stretch = FALSE
  386.     }
  387.  
  388.     image {
  389.       function        = OPTION
  390.       state           = SELECTED
  391.       shadow          = ETCHED_IN
  392.       overlay_file    = "assets/radio-mixed.png"
  393.       overlay_stretch = FALSE
  394.     }
  395.  
  396.     image {
  397.       function        = OPTION
  398.       state           = INSENSITIVE
  399.       shadow          = ETCHED_IN
  400.       overlay_file    = "assets/radio-mixed-insensitive.png"
  401.       overlay_stretch = FALSE
  402.     }
  403.  
  404.     ##########
  405.    # Arrows #
  406.    ##########
  407.  
  408.     # Overrides
  409.  
  410.     # Disable arrows in spinbuttons
  411.    image {
  412.       function = ARROW
  413.       detail   = "spinbutton"
  414.     }
  415.  
  416.     # Disable arrows for qt in scrollbars
  417.  
  418.     image {
  419.       function = ARROW
  420.       detail   = "vscrollbar"
  421.     }
  422.  
  423.     image {
  424.       function = ARROW
  425.       detail   = "hscrollbar"
  426.     }
  427.  
  428.     # Menu arrows
  429.  
  430.     image {
  431.       function        = ARROW
  432.       state           = NORMAL
  433.       detail          = "menuitem"
  434.       overlay_file    = "assets/pan-left.png"
  435.       overlay_stretch = FALSE
  436.       arrow_direction = LEFT
  437.     }
  438.  
  439.     image {
  440.       function        = ARROW
  441.       state           = PRELIGHT
  442.       detail          = "menuitem"
  443.       overlay_file    = "assets/pan-left.png"
  444.       overlay_stretch = FALSE
  445.       arrow_direction = LEFT
  446.     }
  447.  
  448.     image {
  449.       function        = ARROW
  450.       state           = INSENSITIVE
  451.       detail          = "menuitem"
  452.       overlay_file    = "assets/pan-left-insensitive.png"
  453.       overlay_stretch = FALSE
  454.       arrow_direction = LEFT
  455.     }
  456.  
  457.     image {
  458.       function        = ARROW
  459.       state           = NORMAL
  460.       detail          = "menuitem"
  461.       overlay_file    = "assets/pan-right.png"
  462.       overlay_stretch = FALSE
  463.       arrow_direction = RIGHT
  464.     }
  465.  
  466.     image {
  467.       function        = ARROW
  468.       state           = PRELIGHT
  469.       detail          = "menuitem"
  470.       overlay_file    = "assets/pan-right.png"
  471.       overlay_stretch = FALSE
  472.       arrow_direction = RIGHT
  473.     }
  474.  
  475.     image {
  476.       function        = ARROW
  477.       state           = INSENSITIVE
  478.       detail          = "menuitem"
  479.       overlay_file    = "assets/pan-right-insensitive.png"
  480.       overlay_stretch = FALSE
  481.       arrow_direction = RIGHT
  482.     }
  483.  
  484.     image {
  485.       function        = ARROW
  486.       state           = INSENSITIVE
  487.       detail          = "menu_scroll_arrow_up"
  488.       overlay_file    = "assets/pan-up-insensitive.png"
  489.       overlay_stretch = FALSE
  490.     }
  491.  
  492.     image {
  493.       function        = ARROW
  494.       detail          = "menu_scroll_arrow_up"
  495.       overlay_file    = "assets/pan-up.png"
  496.       overlay_stretch = FALSE
  497.     }
  498.  
  499.     image {
  500.       function        = ARROW
  501.       state           = INSENSITIVE
  502.       detail          = "menu_scroll_arrow_down"
  503.       overlay_file    = "assets/pan-down-insensitive.png"
  504.       overlay_stretch = FALSE
  505.     }
  506.  
  507.     image {
  508.       function        = ARROW
  509.       detail          = "menu_scroll_arrow_down"
  510.       overlay_file    = "assets/pan-down.png"
  511.       overlay_stretch = FALSE
  512.     }
  513.  
  514.     # Regular arrows
  515.  
  516.     image {
  517.       function        = ARROW
  518.       state           = NORMAL
  519.       overlay_file    = "assets/pan-up-alt.png"
  520.       overlay_stretch = FALSE
  521.       arrow_direction = UP
  522.     }
  523.  
  524.     image {
  525.       function        = ARROW
  526.       state           = PRELIGHT
  527.       overlay_file    = "assets/pan-up.png"
  528.       overlay_stretch = FALSE
  529.       arrow_direction = UP
  530.     }
  531.  
  532.     image {
  533.       function        = ARROW
  534.       state           = ACTIVE
  535.       overlay_file    = "assets/pan-up.png"
  536.       overlay_stretch = FALSE
  537.       arrow_direction = UP
  538.     }
  539.  
  540.     image {
  541.       function        = ARROW
  542.       state           = INSENSITIVE
  543.       overlay_file    = "assets/pan-up-alt-insensitive.png"
  544.       overlay_stretch = FALSE
  545.       arrow_direction = UP
  546.     }
  547.  
  548.     image {
  549.       function        = ARROW
  550.       state           = NORMAL
  551.       overlay_file    = "assets/pan-down-alt.png"
  552.       overlay_stretch = FALSE
  553.       arrow_direction = DOWN
  554.     }
  555.  
  556.     image {
  557.       function        = ARROW
  558.       state           = PRELIGHT
  559.       overlay_file    = "assets/pan-down.png"
  560.       overlay_stretch = FALSE
  561.       arrow_direction = DOWN
  562.     }
  563.  
  564.     image {
  565.       function        = ARROW
  566.       state           = ACTIVE
  567.       overlay_file    = "assets/pan-down.png"
  568.       overlay_stretch = FALSE
  569.       arrow_direction = DOWN
  570.     }
  571.  
  572.     image {
  573.       function        = ARROW
  574.       state           = INSENSITIVE
  575.       overlay_file    = "assets/pan-down-alt-insensitive.png"
  576.       overlay_stretch = FALSE
  577.       arrow_direction = DOWN
  578.     }
  579.  
  580.     image {
  581.       function        = ARROW
  582.       state           = NORMAL
  583.       overlay_file    = "assets/pan-left-alt.png"
  584.       overlay_stretch = FALSE
  585.       arrow_direction = LEFT
  586.     }
  587.  
  588.     image {
  589.       function        = ARROW
  590.       state           = PRELIGHT
  591.       overlay_file    = "assets/pan-left.png"
  592.       overlay_stretch = FALSE
  593.       arrow_direction = LEFT
  594.     }
  595.  
  596.     image {
  597.       function        = ARROW
  598.       state           = ACTIVE
  599.       overlay_file    = "assets/pan-left.png"
  600.       overlay_stretch = FALSE
  601.       arrow_direction = LEFT
  602.     }
  603.  
  604.     image {
  605.       function        = ARROW
  606.       state           = INSENSITIVE
  607.       overlay_file    = "assets/pan-left-alt-insensitive.png"
  608.       overlay_stretch = FALSE
  609.       arrow_direction = LEFT
  610.     }
  611.  
  612.     image {
  613.       function        = ARROW
  614.       state           = NORMAL
  615.       overlay_file    = "assets/pan-right-alt.png"
  616.       overlay_stretch = FALSE
  617.       arrow_direction = RIGHT
  618.     }
  619.  
  620.     image {
  621.       function        = ARROW
  622.       state           = PRELIGHT
  623.       overlay_file    = "assets/pan-right.png"
  624.       overlay_stretch = FALSE
  625.       arrow_direction = RIGHT
  626.     }
  627.  
  628.     image {
  629.       function        = ARROW
  630.       state           = ACTIVE
  631.       overlay_file    = "assets/pan-right.png"
  632.       overlay_stretch = FALSE
  633.       arrow_direction = RIGHT
  634.     }
  635.  
  636.     image {
  637.       function        = ARROW
  638.       state           = INSENSITIVE
  639.       overlay_file    = "assets/pan-right-alt-insensitive.png"
  640.       overlay_stretch = FALSE
  641.       arrow_direction = RIGHT
  642.     }
  643.  
  644.     ######################
  645.    # Option Menu Arrows #
  646.    ######################
  647.  
  648.     image {
  649.       function        = TAB
  650.       state           = NORMAL
  651.       overlay_file    = "assets/pan-down-alt.png"
  652.       overlay_stretch = FALSE
  653.     }
  654.  
  655.     image {
  656.       function        = TAB
  657.       state           = PRELIGHT
  658.       overlay_file    = "assets/pan-down.png"
  659.       overlay_stretch = FALSE
  660.     }
  661.  
  662.     image {
  663.       function        = TAB
  664.       state           = ACTIVE
  665.       overlay_file    = "assets/pan-down.png"
  666.       overlay_stretch = FALSE
  667.     }
  668.  
  669.     image {
  670.       function        = TAB
  671.       state           = INSENSITIVE
  672.       overlay_file    = "assets/pan-down-alt-insensitive.png"
  673.       overlay_stretch = FALSE
  674.     }
  675.  
  676.     #########
  677.    # Lines #
  678.    #########
  679.  
  680.     image {
  681.       function = VLINE
  682.       file     = "assets/border.png"
  683.       border   = {1, 0, 0, 0}
  684.     }
  685.  
  686.     image {
  687.       function = HLINE
  688.       file     = "assets/border.png"
  689.       border   = {0, 0, 1, 0}
  690.     }
  691.  
  692.     #########
  693.    # Focus #
  694.    #########
  695.  
  696.     image {
  697.       function = FOCUS
  698.       file     = "assets/focus.png"
  699.       border   = {2, 2, 2, 2}
  700.       stretch  = TRUE
  701.     }
  702.  
  703.     ###########
  704.    # Handles #
  705.    ###########
  706.  
  707.     image {
  708.       function        = HANDLE
  709.       detail          = "handlebox"
  710.       overlay_file    = "assets/handle-vert.png"
  711.       overlay_stretch = FALSE
  712.     }
  713.  
  714.     image {
  715.       function        = HANDLE
  716.       state           = NORMAL
  717.       overlay_file    = "assets/handle-horz.png"
  718.       overlay_stretch = FALSE
  719.       orientation     = HORIZONTAL
  720.     }
  721.  
  722.     image {
  723.       function        = HANDLE
  724.       state           = PRELIGHT
  725.       overlay_file    = "assets/handle-horz-hover.png"
  726.       overlay_stretch = FALSE
  727.       orientation     = HORIZONTAL
  728.     }
  729.  
  730.     image {
  731.       function        = HANDLE
  732.       state           = ACTIVE
  733.       overlay_file    = "assets/handle-horz-active.png"
  734.       overlay_stretch = FALSE
  735.       orientation     = HORIZONTAL
  736.     }
  737.  
  738.     image {
  739.       function        = HANDLE
  740.       state           = NORMAL
  741.       overlay_file    = "assets/handle-vert.png"
  742.       overlay_stretch = FALSE
  743.       orientation     = VERTICAL
  744.     }
  745.  
  746.     image {
  747.       function        = HANDLE
  748.       state           = PRELIGHT
  749.       overlay_file    = "assets/handle-vert-hover.png"
  750.       overlay_stretch = FALSE
  751.       orientation     = VERTICAL
  752.     }
  753.  
  754.     image {
  755.       function        = HANDLE
  756.       state           = ACTIVE
  757.       overlay_file    = "assets/handle-vert-active.png"
  758.       overlay_stretch = FALSE
  759.       orientation     = VERTICAL
  760.     }
  761.  
  762.     image {
  763.       function = RESIZE_GRIP
  764.     }
  765.  
  766.     #############
  767.    # Expanders #
  768.    #############
  769.  
  770.     image {
  771.       function       = EXPANDER
  772.       expander_style = EXPANDED
  773.       state          = NORMAL
  774.       file           = "assets/pan-down-alt.png"
  775.     }
  776.  
  777.     image {
  778.       function       = EXPANDER
  779.       expander_style = EXPANDED
  780.       state          = PRELIGHT
  781.       file           = "assets/pan-down.png"
  782.     }
  783.  
  784.     image {
  785.       function       = EXPANDER
  786.       expander_style = EXPANDED
  787.       state          = ACTIVE
  788.       file           = "assets/pan-down.png"
  789.     }
  790.  
  791.     image {
  792.       function       = EXPANDER
  793.       expander_style = EXPANDED
  794.       state          = INSENSITIVE
  795.       file           = "assets/pan-down-alt-insensitive.png"
  796.     }
  797.  
  798.     # LTR
  799.  
  800.     image {
  801.       function       = EXPANDER
  802.       expander_style = COLLAPSED
  803.       state          = NORMAL
  804.       file           = "assets/pan-right-alt.png"
  805.       direction      = LTR
  806.     }
  807.  
  808.     image {
  809.       function       = EXPANDER
  810.       expander_style = COLLAPSED
  811.       state          = PRELIGHT
  812.       file           = "assets/pan-right.png"
  813.       direction      = LTR
  814.     }
  815.  
  816.     image {
  817.       function       = EXPANDER
  818.       expander_style = COLLAPSED
  819.       state          = ACTIVE
  820.       file           = "assets/pan-right.png"
  821.       direction      = LTR
  822.     }
  823.  
  824.     image {
  825.       function       = EXPANDER
  826.       expander_style = COLLAPSED
  827.       state          = INSENSITIVE
  828.       file           = "assets/pan-right-alt-insensitive.png"
  829.       direction      = LTR
  830.     }
  831.  
  832.     image {
  833.       function       = EXPANDER
  834.       expander_style = SEMI_COLLAPSED
  835.       file           = "assets/pan-right-semi.png"
  836.       direction      = LTR
  837.     }
  838.  
  839.     image {
  840.       function       = EXPANDER
  841.       expander_style = SEMI_EXPANDED
  842.       file           = "assets/pan-right-semi.png"
  843.       direction      = LTR
  844.     }
  845.  
  846.     # RTL
  847.  
  848.     image {
  849.       function       = EXPANDER
  850.       expander_style = COLLAPSED
  851.       state          = NORMAL
  852.       file           = "assets/pan-left-alt.png"
  853.       direction      = RTL
  854.     }
  855.  
  856.     image {
  857.       function       = EXPANDER
  858.       expander_style = COLLAPSED
  859.       state          = PRELIGHT
  860.       file           = "assets/pan-left.png"
  861.       direction      = RTL
  862.     }
  863.  
  864.     image {
  865.       function       = EXPANDER
  866.       expander_style = COLLAPSED
  867.       state          = ACTIVE
  868.       file           = "assets/pan-left.png"
  869.       direction      = RTL
  870.     }
  871.  
  872.     image {
  873.       function       = EXPANDER
  874.       expander_style = COLLAPSED
  875.       state          = INSENSITIVE
  876.       file           = "assets/pan-left-alt-insensitive.png"
  877.       direction      = RTL
  878.     }
  879.  
  880.     image {
  881.       function       = EXPANDER
  882.       expander_style = SEMI_COLLAPSED
  883.       file           = "assets/pan-left-semi.png"
  884.       direction      = RTL
  885.     }
  886.  
  887.     image {
  888.       function       = EXPANDER
  889.       expander_style = SEMI_EXPANDED
  890.       file           = "assets/pan-left-semi.png"
  891.       direction      = RTL
  892.     }
  893.  
  894.     #############
  895.    # Notebooks #
  896.    #############
  897.  
  898.     # Left
  899.  
  900.     image {
  901.       function = EXTENSION
  902.       state    = NORMAL
  903.       file     = "assets/tab.png"
  904.       border   = {0, 1, 0, 0}
  905.       stretch  = TRUE
  906.       gap_side = RIGHT
  907.     }
  908.  
  909.     image {
  910.       function = EXTENSION
  911.       gap_side = RIGHT
  912.     }
  913.  
  914.     # Right
  915.  
  916.     image {
  917.       function = EXTENSION
  918.       state    = NORMAL
  919.       file     = "assets/tab.png"
  920.       border   = {1, 0, 0, 0}
  921.       stretch  = TRUE
  922.       gap_side = LEFT
  923.     }
  924.  
  925.     image {
  926.       function = EXTENSION
  927.       gap_side = LEFT
  928.     }
  929.  
  930.     # Up
  931.  
  932.     image {
  933.       function = EXTENSION
  934.       state    = NORMAL
  935.       file     = "assets/tab.png"
  936.       border   = {0, 0, 0, 1}
  937.       stretch  = TRUE
  938.       gap_side = BOTTOM
  939.     }
  940.  
  941.     image {
  942.       function = EXTENSION
  943.       gap_side = BOTTOM
  944.     }
  945.  
  946.     # Down
  947.  
  948.     image {
  949.       function = EXTENSION
  950.       state    = NORMAL
  951.       file     = "assets/tab.png"
  952.       border   = {0, 0, 1, 0}
  953.       stretch  = TRUE
  954.       gap_side = TOP
  955.     }
  956.  
  957.     image {
  958.       function = EXTENSION
  959.       gap_side = TOP
  960.     }
  961.  
  962.     # Inner frame
  963.  
  964.     image {
  965.       function   = BOX_GAP
  966.       detail     = "notebook"
  967.       file       = "assets/frame-notebook.png"
  968.       border     = {1, 1, 1, 1}
  969.       stretch    = TRUE
  970.       gap_file   = "assets/tab.png"
  971.       gap_border = {1, 0, 0, 0}
  972.       gap_side   = LEFT
  973.     }
  974.  
  975.     image {
  976.       function   = BOX_GAP
  977.       detail     = "notebook"
  978.       file       = "assets/frame-notebook.png"
  979.       border     = {1, 1, 1, 1}
  980.       stretch    = TRUE
  981.       gap_file   = "assets/tab.png"
  982.       gap_border = {0, 1, 0, 0}
  983.       gap_side   = RIGHT
  984.     }
  985.  
  986.     image {
  987.       function   = BOX_GAP
  988.       detail     = "notebook"
  989.       file       = "assets/frame-notebook.png"
  990.       border     = {1, 1, 1, 1}
  991.       stretch    = TRUE
  992.       gap_file   = "assets/tab.png"
  993.       gap_border = {0, 0, 1, 0}
  994.       gap_side   = TOP
  995.     }
  996.  
  997.     image {
  998.       function   = BOX_GAP
  999.       detail     = "notebook"
  1000.       file       = "assets/frame-notebook.png"
  1001.       border     = {1, 1, 1, 1}
  1002.       stretch    = TRUE
  1003.       gap_file   = "assets/tab.png"
  1004.       gap_border = {0, 0, 0, 1}
  1005.       gap_side   = BOTTOM
  1006.     }
  1007.  
  1008.     # Standalone frame
  1009.    image {
  1010.       function = BOX
  1011.       detail   = "notebook"
  1012.       file     = "assets/frame-notebook.png"
  1013.       border   = {1, 1, 1, 1}
  1014.       stretch  = TRUE
  1015.     }
  1016.  
  1017.     ##############
  1018.    # Scrollbars #
  1019.    ##############
  1020.  
  1021.     image {
  1022.       function    = BOX
  1023.       detail      = "trough"
  1024.       file        = "assets/scrollbar-horz-trough.png"
  1025.       border      = {0, 0, 1, 0}
  1026.       orientation = HORIZONTAL
  1027.     }
  1028.  
  1029.     image {
  1030.       function    = BOX
  1031.       detail      = "trough"
  1032.       file        = "assets/scrollbar-vert-ltr-trough.png"
  1033.       border      = {1, 0, 0, 0}
  1034.       orientation = VERTICAL
  1035.       direction   = LTR
  1036.     }
  1037.  
  1038.     image {
  1039.       function    = BOX
  1040.       detail      = "trough"
  1041.       file        = "assets/scrollbar-vert-rtl-trough.png"
  1042.       border      = {0, 1, 0, 0}
  1043.       orientation = VERTICAL
  1044.       direction   = RTL
  1045.     }
  1046.  
  1047.     # Horizontal sliders
  1048.  
  1049.     image {
  1050.       function    = SLIDER
  1051.       state       = NORMAL
  1052.       detail      = "slider"
  1053.       file        = "assets/scrollbar-horz-slider.png"
  1054.       border      = {8, 8, 9, 8 }
  1055.       stretch     = TRUE
  1056.       orientation = HORIZONTAL
  1057.     }
  1058.  
  1059.     image {
  1060.       function    = SLIDER
  1061.       state       = PRELIGHT
  1062.       detail      = "slider"
  1063.       file        = "assets/scrollbar-horz-slider-hover.png"
  1064.       border      = {8, 8, 9, 8 }
  1065.       stretch     = TRUE
  1066.       orientation = HORIZONTAL
  1067.     }
  1068.  
  1069.     image {
  1070.       function    = SLIDER
  1071.       state       = ACTIVE
  1072.       detail      = "slider"
  1073.       file        = "assets/scrollbar-horz-slider-active.png"
  1074.       border      = {8, 8, 9, 8 }
  1075.       stretch     = TRUE
  1076.       orientation = HORIZONTAL
  1077.     }
  1078.  
  1079.     image {
  1080.       function    = SLIDER
  1081.       state       = INSENSITIVE
  1082.       detail      = "slider"
  1083.       file        = "assets/scrollbar-horz-slider-insensitive.png"
  1084.       border      = {8, 8, 9, 8 }
  1085.       stretch     = TRUE
  1086.       orientation = HORIZONTAL
  1087.     }
  1088.  
  1089.     # Vertical sliders
  1090.  
  1091.     image {
  1092.       function    = SLIDER
  1093.       state       = NORMAL
  1094.       detail      = "slider"
  1095.       file        = "assets/scrollbar-vert-ltr-slider.png"
  1096.       border      = {9, 8, 8, 8}
  1097.       stretch     = TRUE
  1098.       orientation = VERTICAL
  1099.       direction   = LTR
  1100.     }
  1101.  
  1102.     image {
  1103.       function    = SLIDER
  1104.       state       = PRELIGHT
  1105.       detail      = "slider"
  1106.       file        = "assets/scrollbar-vert-ltr-slider-hover.png"
  1107.       border      = {9, 8, 8, 8}
  1108.       stretch     = TRUE
  1109.       orientation = VERTICAL
  1110.       direction   = LTR
  1111.     }
  1112.  
  1113.     image {
  1114.       function    = SLIDER
  1115.       state       = ACTIVE
  1116.       detail      = "slider"
  1117.       file        = "assets/scrollbar-vert-ltr-slider-active.png"
  1118.       border      = {9, 8, 8, 8}
  1119.       stretch     = TRUE
  1120.       orientation = VERTICAL
  1121.       direction   = LTR
  1122.     }
  1123.  
  1124.     image {
  1125.       function    = SLIDER
  1126.       state       = INSENSITIVE
  1127.       detail      = "slider"
  1128.       file        = "assets/scrollbar-vert-ltr-slider-insensitive.png"
  1129.       border      = {9, 8, 8, 8}
  1130.       stretch     = TRUE
  1131.       orientation = VERTICAL
  1132.       direction   = LTR
  1133.     }
  1134.  
  1135.     # RTL
  1136.  
  1137.     image {
  1138.       function    = SLIDER
  1139.       state       = NORMAL
  1140.       detail      = "slider"
  1141.       file        = "assets/scrollbar-vert-rtl-slider.png"
  1142.       border      = {8, 9, 8, 8}
  1143.       stretch     = TRUE
  1144.       orientation = VERTICAL
  1145.       direction   = RTL
  1146.     }
  1147.  
  1148.     image {
  1149.       function    = SLIDER
  1150.       state       = PRELIGHT
  1151.       detail      = "slider"
  1152.       file        = "assets/scrollbar-vert-rtl-slider-hover.png"
  1153.       border      = {8, 9, 8, 8}
  1154.       stretch     = TRUE
  1155.       orientation = VERTICAL
  1156.       direction   = RTL
  1157.     }
  1158.  
  1159.     image {
  1160.       function    = SLIDER
  1161.       state       = ACTIVE
  1162.       detail      = "slider"
  1163.       file        = "assets/scrollbar-vert-rtl-slider-active.png"
  1164.       border      = {8, 9, 8, 8}
  1165.       stretch     = TRUE
  1166.       orientation = VERTICAL
  1167.       direction   = RTL
  1168.     }
  1169.  
  1170.     image {
  1171.       function    = SLIDER
  1172.       state       = INSENSITIVE
  1173.       detail      = "slider"
  1174.       file        = "assets/scrollbar-vert-rtl-slider-insensitive.png"
  1175.       border      = {8, 9, 8, 8}
  1176.       stretch     = TRUE
  1177.       orientation = VERTICAL
  1178.       direction   = RTL
  1179.     }
  1180.  
  1181.     ##########
  1182.    # Scales #
  1183.    ##########
  1184.  
  1185.     # Troughs, overrided later on. We set them here too because some widgets
  1186.    # don't specify their orientation.
  1187.  
  1188.     image {
  1189.       function    = BOX
  1190.       detail      = "trough-upper"
  1191.       file        = "assets/scale-horz-trough.png"
  1192.       border      = {6, 6, 0, 0}
  1193.       stretch     = TRUE
  1194.       orientation = HORIZONTAL
  1195.     }
  1196.  
  1197.     image {
  1198.       function    = BOX
  1199.       state       = INSENSITIVE
  1200.       detail      = "trough-upper"
  1201.       file        = "assets/scale-horz-trough-insensitive.png"
  1202.       border      = {6, 6, 0, 0}
  1203.       stretch     = TRUE
  1204.       orientation = HORIZONTAL
  1205.     }
  1206.  
  1207.     image {
  1208.       function    = BOX
  1209.       detail      = "trough-lower"
  1210.       file        = "assets/scale-horz-trough-active.png"
  1211.       border      = {6, 6, 0, 0}
  1212.       stretch     = TRUE
  1213.       orientation = HORIZONTAL
  1214.     }
  1215.  
  1216.     image {
  1217.       function    = BOX
  1218.       state       = INSENSITIVE
  1219.       detail      = "trough-lower"
  1220.       file        = "assets/scale-horz-trough-insensitive.png"
  1221.       border      = {6, 6, 0, 0}
  1222.       stretch     = TRUE
  1223.       orientation = HORIZONTAL
  1224.     }
  1225.  
  1226.     image {
  1227.       function    = BOX
  1228.       detail      = "trough-upper"
  1229.       file        = "assets/scale-vert-trough.png"
  1230.       border      = {0, 0, 6, 6}
  1231.       stretch     = TRUE
  1232.       orientation = VERTICAL
  1233.     }
  1234.  
  1235.     image {
  1236.       function    = BOX
  1237.       state       = INSENSITIVE
  1238.       detail      = "trough-upper"
  1239.       file        = "assets/scale-vert-trough-insensitive.png"
  1240.       border      = {0, 0, 6, 6}
  1241.       stretch     = TRUE
  1242.       orientation = VERTICAL
  1243.     }
  1244.  
  1245.     image {
  1246.       function    = BOX
  1247.       detail      = "trough-lower"
  1248.       file        = "assets/scale-vert-trough-active.png"
  1249.       border      = {0, 0, 6, 6}
  1250.       stretch     = TRUE
  1251.       orientation = VERTICAL
  1252.     }
  1253.  
  1254.     image {
  1255.       function    = BOX
  1256.       state       = INSENSITIVE
  1257.       detail      = "trough-lower"
  1258.       file        = "assets/scale-vert-trough-insensitive.png"
  1259.       border      = {0, 0, 6, 6}
  1260.       stretch     = TRUE
  1261.       orientation = VERTICAL
  1262.     }
  1263.  
  1264.     # Sliders
  1265.  
  1266.     image {
  1267.       function = SLIDER
  1268.       state    = NORMAL
  1269.       detail   = "hscale"
  1270.       file     = "assets/scale-slider.png"
  1271.     }
  1272.  
  1273.     image {
  1274.       function = SLIDER
  1275.       state    = PRELIGHT
  1276.       detail   = "hscale"
  1277.       file     = "assets/scale-slider-hover.png"
  1278.     }
  1279.  
  1280.     image {
  1281.       function = SLIDER
  1282.       state    = ACTIVE
  1283.       detail   = "hscale"
  1284.       file     = "assets/scale-slider-active.png"
  1285.     }
  1286.  
  1287.     image {
  1288.       function = SLIDER
  1289.       state    = INSENSITIVE
  1290.       detail   = "hscale"
  1291.       file     = "assets/scale-slider-insensitive.png"
  1292.     }
  1293.  
  1294.     image {
  1295.       function = SLIDER
  1296.       state    = NORMAL
  1297.       detail   = "vscale"
  1298.       file     = "assets/scale-slider.png"
  1299.     }
  1300.  
  1301.     image {
  1302.       function = SLIDER
  1303.       state    = PRELIGHT
  1304.       detail   = "vscale"
  1305.       file     = "assets/scale-slider-hover.png"
  1306.     }
  1307.  
  1308.     image {
  1309.       function = SLIDER
  1310.       state    = ACTIVE
  1311.       detail   = "vscale"
  1312.       file     = "assets/scale-slider-active.png"
  1313.     }
  1314.  
  1315.     image {
  1316.       function = SLIDER
  1317.       state    = INSENSITIVE
  1318.       detail   = "vscale"
  1319.       file     = "assets/scale-slider-insensitive.png"
  1320.     }
  1321.  
  1322.     ###########
  1323.    # Menubar #
  1324.    ###########
  1325.  
  1326.     # image {
  1327.    #   function = BOX
  1328.    #   detail   = "menubar"
  1329.    #   file     = "assets/border.png"
  1330.    #   border   = {0, 0, 0, 1}
  1331.    # }
  1332.  
  1333.     #########
  1334.    # Menus #
  1335.    #########
  1336.  
  1337.     image {
  1338.       function = BOX
  1339.       state    = PRELIGHT
  1340.       detail   = "menu_scroll_arrow_up"
  1341.       file     = "assets/border.png"
  1342.     }
  1343.  
  1344.     image {
  1345.       function = BOX
  1346.       detail   = "menu_scroll_arrow_up"
  1347.       file     = "assets/border.png"
  1348.       border   = {0, 0, 0, 1}
  1349.     }
  1350.  
  1351.     image {
  1352.       function = BOX
  1353.       state    = PRELIGHT
  1354.       detail   = "menu_scroll_arrow_down"
  1355.       file     = "assets/border.png"
  1356.     }
  1357.  
  1358.     image {
  1359.       function = BOX
  1360.       detail   = "menu_scroll_arrow_down"
  1361.       file     = "assets/border.png"
  1362.       border   = {0, 0, 1, 0}
  1363.     }
  1364.  
  1365.     ###########
  1366.    # Entries #
  1367.    ###########
  1368.  
  1369.     image {
  1370.       function = SHADOW
  1371.       state    = ACTIVE
  1372.       detail   = "entry"
  1373.       file     = "assets/entry-active.png"
  1374.       border   = {8, 8, 8, 8}
  1375.       stretch  = TRUE
  1376.     }
  1377.  
  1378.     image {
  1379.       function = SHADOW
  1380.       state    = INSENSITIVE
  1381.       detail   = "entry"
  1382.       file     = "assets/entry-insensitive.png"
  1383.       border   = {8, 8, 8, 8}
  1384.       stretch  = TRUE
  1385.     }
  1386.  
  1387.     image {
  1388.       function = SHADOW
  1389.       detail   = "entry"
  1390.       file     = "assets/entry.png"
  1391.       border   = {8, 8, 8, 8}
  1392.       stretch  = TRUE
  1393.     }
  1394.  
  1395.     image {
  1396.       function = FLAT_BOX
  1397.       state    = ACTIVE
  1398.       detail   = "entry_bg"
  1399.       file     = "assets/entry-background.png"
  1400.     }
  1401.  
  1402.     image {
  1403.       function = FLAT_BOX
  1404.       state    = INSENSITIVE
  1405.       detail   = "entry_bg"
  1406.       file     = "assets/entry-background-insensitive.png"
  1407.     }
  1408.  
  1409.     image {
  1410.       function = FLAT_BOX
  1411.       detail   = "entry_bg"
  1412.       file     = "assets/entry-background.png"
  1413.     }
  1414.  
  1415.     #########
  1416.    # Spins #
  1417.    #########
  1418.  
  1419.     # Spin-Up LTR
  1420.  
  1421.     image {
  1422.       function        = BOX
  1423.       state           = NORMAL
  1424.       detail          = "spinbutton_up"
  1425.       file            = "assets/spin-ltr-up.png"
  1426.       border          = {0, 8, 8, 0}
  1427.       stretch         = TRUE
  1428.       overlay_file    = "assets/pan-up-alt.png"
  1429.       overlay_stretch = FALSE
  1430.       direction       = LTR
  1431.     }
  1432.  
  1433.     image {
  1434.       function        = BOX
  1435.       state           = PRELIGHT
  1436.       detail          = "spinbutton_up"
  1437.       file            = "assets/spin-ltr-up-hover.png"
  1438.       border          = {0, 8, 8, 0}
  1439.       stretch         = TRUE
  1440.       overlay_file    = "assets/pan-up.png"
  1441.       overlay_stretch = FALSE
  1442.       direction       = LTR
  1443.     }
  1444.  
  1445.     image {
  1446.       function        = BOX
  1447.       state           = ACTIVE
  1448.       detail          = "spinbutton_up"
  1449.       file            = "assets/spin-ltr-up-active.png"
  1450.       border          = {0, 8, 8, 0}
  1451.       stretch         = TRUE
  1452.       overlay_file    = "assets/pan-up.png"
  1453.       overlay_stretch = FALSE
  1454.       direction       = LTR
  1455.     }
  1456.  
  1457.     image {
  1458.       function        = BOX
  1459.       state           = INSENSITIVE
  1460.       detail          = "spinbutton_up"
  1461.       file            = "assets/spin-ltr-up-insensitive.png"
  1462.       border          = {0, 8, 8, 0}
  1463.       stretch         = TRUE
  1464.       overlay_file    = "assets/pan-up-alt-insensitive.png"
  1465.       overlay_stretch = FALSE
  1466.       direction       = LTR
  1467.     }
  1468.  
  1469.     # Spin-Up RTL
  1470.  
  1471.     image {
  1472.       function        = BOX
  1473.       state           = NORMAL
  1474.       detail          = "spinbutton_up"
  1475.       file            = "assets/spin-rtl-up.png"
  1476.       border          = {8, 0, 8, 0}
  1477.       stretch         = TRUE
  1478.       overlay_file    = "assets/pan-up-alt.png"
  1479.       overlay_stretch = FALSE
  1480.       direction       = RTL
  1481.     }
  1482.  
  1483.     image {
  1484.       function        = BOX
  1485.       state           = PRELIGHT
  1486.       detail          = "spinbutton_up"
  1487.       file            = "assets/spin-rtl-up-hover.png"
  1488.       border          = {8, 0, 8, 0}
  1489.       stretch         = TRUE
  1490.       overlay_file    = "assets/pan-up.png"
  1491.       overlay_stretch = FALSE
  1492.       direction       = RTL
  1493.     }
  1494.  
  1495.     image {
  1496.       function        = BOX
  1497.       state           = ACTIVE
  1498.       detail          = "spinbutton_up"
  1499.       file            = "assets/spin-rtl-up-hover.png"
  1500.       border          = {8, 0, 8, 0}
  1501.       stretch         = TRUE
  1502.       overlay_file    = "assets/pan-up.png"
  1503.       overlay_stretch = FALSE
  1504.       direction       = RTL
  1505.     }
  1506.  
  1507.     image {
  1508.       function        = BOX
  1509.       state           = INSENSITIVE
  1510.       detail          = "spinbutton_up"
  1511.       file            = "assets/spin-rtl-up-insensitive.png"
  1512.       border          = {8, 0, 8, 0}
  1513.       stretch         = TRUE
  1514.       overlay_file    = "assets/pan-up-alt-insensitive.png"
  1515.       overlay_stretch = FALSE
  1516.       direction       = RTL
  1517.     }
  1518.  
  1519.     # Spin-Down LTR
  1520.  
  1521.     image {
  1522.       function        = BOX
  1523.       state           = NORMAL
  1524.       detail          = "spinbutton_down"
  1525.       file            = "assets/spin-ltr-down.png"
  1526.       border          = {0, 8, 0, 8}
  1527.       stretch         = TRUE
  1528.       overlay_file    = "assets/pan-down-alt.png"
  1529.       overlay_stretch = FALSE
  1530.       direction       = LTR
  1531.     }
  1532.  
  1533.     image {
  1534.       function        = BOX
  1535.       state           = PRELIGHT
  1536.       detail          = "spinbutton_down"
  1537.       file            = "assets/spin-ltr-down-hover.png"
  1538.       border          = {0, 8, 0, 8}
  1539.       stretch         = TRUE
  1540.       overlay_file    = "assets/pan-down.png"
  1541.       overlay_stretch = FALSE
  1542.       direction       = LTR
  1543.     }
  1544.  
  1545.     image {
  1546.       function        = BOX
  1547.       state           = ACTIVE
  1548.       detail          = "spinbutton_down"
  1549.       file            = "assets/spin-ltr-down-active.png"
  1550.       border          = {0, 8, 0, 8}
  1551.       stretch         = TRUE
  1552.       overlay_file    = "assets/pan-down.png"
  1553.       overlay_stretch = FALSE
  1554.       direction       = LTR
  1555.     }
  1556.  
  1557.     image {
  1558.       function        = BOX
  1559.       state           = INSENSITIVE
  1560.       detail          = "spinbutton_down"
  1561.       file            = "assets/spin-ltr-down-insensitive.png"
  1562.       border          = {0, 8, 0, 8}
  1563.       stretch         = TRUE
  1564.       overlay_file    = "assets/pan-down-alt-insensitive.png"
  1565.       overlay_stretch = FALSE
  1566.       direction       = LTR
  1567.     }
  1568.  
  1569.     # Spin-Down RTL
  1570.  
  1571.     image {
  1572.       function        = BOX
  1573.       state           = NORMAL
  1574.       detail          = "spinbutton_down"
  1575.       file            = "assets/spin-rtl-down.png"
  1576.       border          = {8, 0, 0, 8}
  1577.       stretch         = TRUE
  1578.       overlay_file    = "assets/pan-down-alt.png"
  1579.       overlay_stretch = FALSE
  1580.       direction       = RTL
  1581.     }
  1582.  
  1583.     image {
  1584.       function        = BOX
  1585.       state           = PRELIGHT
  1586.       detail          = "spinbutton_down"
  1587.       file            = "assets/spin-rtl-down-hover.png"
  1588.       border          = {8, 0, 0, 8}
  1589.       stretch         = TRUE
  1590.       overlay_file    = "assets/pan-down.png"
  1591.       overlay_stretch = FALSE
  1592.       direction       = RTL
  1593.     }
  1594.  
  1595.     image {
  1596.       function        = BOX
  1597.       state           = ACTIVE
  1598.       detail          = "spinbutton_down"
  1599.       file            = "assets/spin-rtl-down-active.png"
  1600.       border          = {8, 0, 0, 8}
  1601.       stretch         = TRUE
  1602.       overlay_file    = "assets/pan-down.png"
  1603.       overlay_stretch = FALSE
  1604.       direction       = RTL
  1605.     }
  1606.  
  1607.     image {
  1608.       function        = BOX
  1609.       state           = INSENSITIVE
  1610.       detail          = "spinbutton_down"
  1611.       file            = "assets/spin-rtl-down-insensitive.png"
  1612.       border          = {8, 0, 0, 8}
  1613.       stretch         = TRUE
  1614.       overlay_file    = "assets/pan-down-alt-insensitive.png"
  1615.       overlay_stretch = FALSE
  1616.       direction       = RTL
  1617.     }
  1618.  
  1619.     ##############
  1620.    # Scrollbars #
  1621.    ##############
  1622.  
  1623.     image {
  1624.       function    = BOX
  1625.       detail      = "bar"
  1626.       file        = "assets/progressbar-progress.png"
  1627.       stretch     = TRUE
  1628.       border      = {0, 0, 0, 0}
  1629.       orientation = HORIZONTAL
  1630.     }
  1631.  
  1632.     image {
  1633.       function    = BOX
  1634.       detail      = "bar"
  1635.       file        = "assets/progressbar-progress.png"
  1636.       stretch     = TRUE
  1637.       border      = {0, 0, 0, 0}
  1638.       orientation = VERTICAL
  1639.     }
  1640.  
  1641.     #############
  1642.    # Treeviews #
  1643.    #############
  1644.  
  1645.     # Disable active the column highlight
  1646.    # We need to match specific cells or we break stuff
  1647.    # Looking at you deadbeef
  1648.  
  1649.     image {
  1650.       function = FLAT_BOX
  1651.       detail   = "cell_even_sorted"
  1652.       state    = NORMAL
  1653.     }
  1654.  
  1655.     image {
  1656.       function = FLAT_BOX
  1657.       detail   = "cell_odd_sorted"
  1658.       state    = NORMAL
  1659.     }
  1660.  
  1661.     # Disable all the other shadows
  1662.    # This prevents the Raleigh effect
  1663.    image {
  1664.       function = SHADOW
  1665.     }
  1666.   }
  1667. }
  1668.  
  1669. style "menubar" {
  1670.   bg[NORMAL]      = @titlebar_bg_color
  1671.   fg[NORMAL]      = mix(0.7, @titlebar_fg_color, @titlebar_bg_color)
  1672.   fg[PRELIGHT]    = @titlebar_fg_color
  1673.   fg[INSENSITIVE] = mix(0.3, @titlebar_fg_color, @titlebar_bg_color)
  1674.   # Needed to fix Firefox's menubar text
  1675.  bg[SELECTED]    = mix(0.15, @titlebar_fg_color, @titlebar_bg_color)
  1676.   fg[SELECTED]    = @titlebar_fg_color
  1677. }
  1678.  
  1679. style "menubar_item" {
  1680.   xthickness = 2
  1681.   ythickness = 4
  1682.  
  1683.   fg[NORMAL]      = mix(0.7, @titlebar_fg_color, @titlebar_bg_color)
  1684.   bg[PRELIGHT]    = @selected_bg_color
  1685.   fg[PRELIGHT]    = @selected_fg_color
  1686.   fg[INSENSITIVE] = mix(0.3, @titlebar_fg_color, @titlebar_bg_color)
  1687. }
  1688.  
  1689. style "menu" {
  1690.   xthickness = 0
  1691.   ythickness = 0
  1692.  
  1693.   bg[NORMAL]      = @base_color
  1694.   bg[INSENSITIVE] = @base_color
  1695.   bg[PRELIGHT]    = @base_color
  1696.   bg[SELECTED]    = mix(0.15, @fg_color, @base_color)
  1697. }
  1698.  
  1699. style "menu_item" {
  1700.   xthickness = 4
  1701.   ythickness = 2
  1702.  
  1703.   bg[PRELIGHT]   = @selected_bg_color
  1704.   fg[PRELIGHT]   = @selected_fg_color
  1705.   # Chromium uses this setting
  1706.  bg[SELECTED]   = @selected_bg_color
  1707.   text[SELECTED] = @selected_fg_color
  1708.   # Some widgets use text, we need to handle that
  1709.  text[NORMAL]   = @fg_color
  1710.   text[PRELIGHT] = @selected_fg_color
  1711.  
  1712.   # Unfortunately we can't tell regular and menu checks/radios apart
  1713.  # Without the heirarchy
  1714.  engine "pixmap" {
  1715.  
  1716.     #################
  1717.    # Check Buttons #
  1718.    #################
  1719.  
  1720.     image {
  1721.       function        = CHECK
  1722.       recolorable     = TRUE
  1723.       state           = NORMAL
  1724.       shadow          = OUT
  1725.       overlay_file    = "assets/menu-checkbox-unchecked.png"
  1726.       overlay_stretch = FALSE
  1727.     }
  1728.  
  1729.     image {
  1730.       function        = CHECK
  1731.       recolorable     = TRUE
  1732.       state           = PRELIGHT
  1733.       shadow          = OUT
  1734.       overlay_file    = "assets/menu-checkbox-unchecked.png"
  1735.       overlay_stretch = FALSE
  1736.     }
  1737.  
  1738.     image {
  1739.       function        = CHECK
  1740.       recolorable     = TRUE
  1741.       state           = ACTIVE
  1742.       shadow          = OUT
  1743.       overlay_file    = "assets/menu-checkbox-unchecked.png"
  1744.       overlay_stretch = FALSE
  1745.     }
  1746.  
  1747.     image {
  1748.       function        = CHECK
  1749.       recolorable     = TRUE
  1750.       state           = INSENSITIVE
  1751.       shadow          = OUT
  1752.       overlay_file    = "assets/menu-checkbox-unchecked-insensitive.png"
  1753.       overlay_stretch = FALSE
  1754.     }
  1755.  
  1756.     image {
  1757.       function        = CHECK
  1758.       recolorable     = TRUE
  1759.       state           = NORMAL
  1760.       shadow          = IN
  1761.       overlay_file    = "assets/menu-checkbox-checked.png"
  1762.       overlay_stretch = FALSE
  1763.     }
  1764.  
  1765.     image {
  1766.       function        = CHECK
  1767.       recolorable     = TRUE
  1768.       state           = PRELIGHT
  1769.       shadow          = IN
  1770.       overlay_file    = "assets/menu-checkbox-checked.png"
  1771.       overlay_stretch = FALSE
  1772.     }
  1773.  
  1774.     image {
  1775.       function        = CHECK
  1776.       recolorable     = TRUE
  1777.       state           = ACTIVE
  1778.       shadow          = IN
  1779.       overlay_file    = "assets/menu-checkbox-checked.png"
  1780.       overlay_stretch = FALSE
  1781.     }
  1782.  
  1783.     image {
  1784.       function        = CHECK
  1785.       recolorable     = TRUE
  1786.       state           = INSENSITIVE
  1787.       shadow          = IN
  1788.       overlay_file    = "assets/menu-checkbox-checked-insensitive.png"
  1789.       overlay_stretch = FALSE
  1790.     }
  1791.  
  1792.     image {
  1793.       function        = CHECK
  1794.       recolorable     = TRUE
  1795.       state           = NORMAL
  1796.       shadow          = ETCHED_IN
  1797.       overlay_file    = "assets/menu-checkbox-mixed.png"
  1798.       overlay_stretch = FALSE
  1799.     }
  1800.  
  1801.     image {
  1802.       function        = CHECK
  1803.       recolorable     = TRUE
  1804.       state           = PRELIGHT
  1805.       shadow          = ETCHED_IN
  1806.       overlay_file    = "assets/menu-checkbox-mixed.png"
  1807.       overlay_stretch = FALSE
  1808.     }
  1809.  
  1810.     image {
  1811.       function        = CHECK
  1812.       recolorable     = TRUE
  1813.       state           = ACTIVE
  1814.       shadow          = ETCHED_IN
  1815.       overlay_file    = "assets/menu-checkbox-mixed.png"
  1816.       overlay_stretch = FALSE
  1817.     }
  1818.  
  1819.     image {
  1820.       function        = CHECK
  1821.       recolorable     = TRUE
  1822.       state           = INSENSITIVE
  1823.       shadow          = ETCHED_IN
  1824.       overlay_file    = "assets/menu-checkbox-mixed-insensitive.png"
  1825.       overlay_stretch = FALSE
  1826.     }
  1827.  
  1828.     #################
  1829.    # Radio Buttons #
  1830.    #################
  1831.  
  1832.     image {
  1833.       function        = OPTION
  1834.       state           = NORMAL
  1835.       shadow          = OUT
  1836.       overlay_file    = "assets/menu-radio-unchecked.png"
  1837.       overlay_stretch = FALSE
  1838.     }
  1839.  
  1840.     image {
  1841.       function        = OPTION
  1842.       state           = PRELIGHT
  1843.       shadow          = OUT
  1844.       overlay_file    = "assets/menu-radio-unchecked.png"
  1845.       overlay_stretch = FALSE
  1846.     }
  1847.  
  1848.     image {
  1849.       function        = OPTION
  1850.       state           = ACTIVE
  1851.       shadow          = OUT
  1852.       overlay_file    = "assets/menu-radio-unchecked.png"
  1853.       overlay_stretch = FALSE
  1854.     }
  1855.  
  1856.     image {
  1857.       function        = OPTION
  1858.       state           = INSENSITIVE
  1859.       shadow          = OUT
  1860.       overlay_file    = "assets/menu-radio-unchecked-insensitive.png"
  1861.       overlay_stretch = FALSE
  1862.     }
  1863.  
  1864.     image {
  1865.       function        = OPTION
  1866.       state           = NORMAL
  1867.       shadow          = IN
  1868.       overlay_file    = "assets/menu-radio-checked.png"
  1869.       overlay_stretch = FALSE
  1870.     }
  1871.  
  1872.     image {
  1873.       function        = OPTION
  1874.       state           = PRELIGHT
  1875.       shadow          = IN
  1876.       overlay_file    = "assets/menu-radio-checked.png"
  1877.       overlay_stretch = FALSE
  1878.     }
  1879.  
  1880.     image {
  1881.       function        = OPTION
  1882.       state           = ACTIVE
  1883.       shadow          = IN
  1884.       overlay_file    = "assets/menu-radio-checked.png"
  1885.       overlay_stretch = FALSE
  1886.     }
  1887.  
  1888.     image {
  1889.       function        = OPTION
  1890.       state           = INSENSITIVE
  1891.       shadow          = IN
  1892.       overlay_file    = "assets/menu-radio-checked-insensitive.png"
  1893.       overlay_stretch = FALSE
  1894.     }
  1895.  
  1896.     image {
  1897.       function        = OPTION
  1898.       state           = NORMAL
  1899.       shadow          = ETCHED_IN
  1900.       overlay_file    = "assets/menu-radio-mixed.png"
  1901.       overlay_stretch = FALSE
  1902.     }
  1903.  
  1904.     image {
  1905.       function        = OPTION
  1906.       state           = PRELIGHT
  1907.       shadow          = ETCHED_IN
  1908.       overlay_file    = "assets/menu-radio-mixed.png"
  1909.       overlay_stretch = FALSE
  1910.     }
  1911.  
  1912.     image {
  1913.       function        = OPTION
  1914.       state           = ACTIVE
  1915.       shadow          = ETCHED_IN
  1916.       overlay_file    = "assets/menu-radio-mixed.png"
  1917.       overlay_stretch = FALSE
  1918.     }
  1919.  
  1920.     image {
  1921.       function        = OPTION
  1922.       state           = INSENSITIVE
  1923.       shadow          = ETCHED_IN
  1924.       overlay_file    = "assets/menu-radio-mixed-insensitive.png"
  1925.       overlay_stretch = FALSE
  1926.     }
  1927.  
  1928.     image {
  1929.       function = SHADOW # This fixes boxy Qt menu items
  1930.      file = "assets/null.png"
  1931.       border = { 4, 4, 4, 4 }
  1932.       stretch = TRUE
  1933.     }
  1934.   }
  1935. }
  1936.  
  1937. style "separator_menu_item" {
  1938.   xthickness = 0
  1939.   ythickness = 2
  1940.  
  1941.   engine "pixmap" {
  1942.     image {
  1943.       function = BOX
  1944.       file     = "assets/border.png"
  1945.       border   = {0, 0, 0, 1}
  1946.     }
  1947.   }
  1948. }
  1949.  
  1950. style "button_label" {
  1951.   fg[NORMAL] = mix(0.75, @fg_color, @bg_color)
  1952.   # fg[INSENSITIVE] = mix(0.3, @fg_color, @bg_color)
  1953.  
  1954.   font_name = "Medium"
  1955. }
  1956.  
  1957. style "checkbutton_label" {
  1958.   fg[NORMAL] = @fg_color
  1959.   # fg[INSENSITIVE] = mix(0.4, @fg_color, @bg_color)
  1960.  
  1961.   font_name = "Regular"
  1962. }
  1963.  
  1964. style "button" {
  1965.   xthickness = 4
  1966.   ythickness = 4
  1967.  
  1968.   # For the sake of sanity style buttons this way
  1969.  engine "pixmap" {
  1970.  
  1971.     ###########
  1972.    # Buttons #
  1973.    ###########
  1974.  
  1975.     image {
  1976.       function = BOX
  1977.       state    = NORMAL
  1978.       file     = "assets/button.png"
  1979.       border   = {8, 8, 8, 8}
  1980.       stretch  = TRUE
  1981.     }
  1982.  
  1983.     image {
  1984.       function = BOX
  1985.       state    = PRELIGHT
  1986.       shadow   = OUT
  1987.       file     = "assets/button-hover.png"
  1988.       border   = {8, 8, 8, 8}
  1989.       stretch  = TRUE
  1990.     }
  1991.  
  1992.     # Don't add hover effect on pressed buttons
  1993.    image {
  1994.       function = BOX
  1995.       state    = PRELIGHT
  1996.       shadow   = IN
  1997.       file     = "assets/button-active.png"
  1998.       border   = {8, 8, 8, 8}
  1999.       stretch  = TRUE
  2000.     }
  2001.  
  2002.     image {
  2003.       function = BOX
  2004.       state    = ACTIVE
  2005.       file     = "assets/button-active.png"
  2006.       border   = {8, 8, 8, 8}
  2007.       stretch  = TRUE
  2008.     }
  2009.  
  2010.     image {
  2011.       function = BOX
  2012.       state    = INSENSITIVE
  2013.       file     = "assets/button-insensitive.png"
  2014.       border   = {8, 8, 8, 8}
  2015.       stretch  = TRUE
  2016.     }
  2017.   }
  2018. }
  2019.  
  2020. style "link_button" {
  2021.   # Disable the button effect, leave just the link
  2022.  engine "pixmap" {
  2023.     image {
  2024.       function = BOX
  2025.     }
  2026.   }
  2027. }
  2028.  
  2029. style "entry" {
  2030.   # We set this same as the border of the border of the entry
  2031.  # This way there's no overlap
  2032.  xthickness = 6
  2033.   ythickness = 6
  2034. }
  2035.  
  2036. style "combobox" {
  2037.   xthickness = 6
  2038.   ythickness = 6
  2039.  
  2040.   # This affects only the button beside an entry
  2041.  GtkButton::inner-border = {0, 0, 0, 0}
  2042. }
  2043.  
  2044. style "combobox_cellview" {
  2045.   text[NORMAL] = mix(0.75, @fg_color, @bg_color)
  2046.   # text[INSENSITIVE] = mix(0.3, @fg_color, @bg_color)
  2047.  
  2048.   font_name = "Medium"
  2049. }
  2050.  
  2051. style "combobox_entry" {
  2052.   # Since one side of the button is missing, we need to shift the arrow a little to the right
  2053.  GtkButton::inner-border = {0, 2, 0, 0}
  2054.  
  2055.   engine "pixmap" {
  2056.  
  2057.     #############
  2058.    # LTR entry #
  2059.    #############
  2060.  
  2061.     image {
  2062.       function  = SHADOW
  2063.       state     = NORMAL
  2064.       detail    = "entry"
  2065.       file      = "assets/combo-ltr-entry.png"
  2066.       border    = {8, 0, 8, 8}
  2067.       stretch   = TRUE
  2068.       direction = LTR
  2069.     }
  2070.  
  2071.     image {
  2072.       function  = SHADOW
  2073.       state     = ACTIVE
  2074.       detail    = "entry"
  2075.       file      = "assets/combo-ltr-entry-active.png"
  2076.       border    = {8, 0, 8, 8}
  2077.       stretch   = TRUE
  2078.       direction = LTR
  2079.     }
  2080.  
  2081.     image {
  2082.       function  = SHADOW
  2083.       state     = INSENSITIVE
  2084.       detail    = "entry"
  2085.       file      = "assets/combo-ltr-entry-insensitive.png"
  2086.       border    = {8, 0, 8, 8}
  2087.       stretch   = TRUE
  2088.       direction = LTR
  2089.     }
  2090.  
  2091.     #############
  2092.    # RTL entry #
  2093.    #############
  2094.  
  2095.     image {
  2096.       function  = SHADOW
  2097.       state     = NORMAL
  2098.       detail    = "entry"
  2099.       file      = "assets/combo-rtl-entry.png"
  2100.       border    = {0, 8, 8, 8}
  2101.       stretch   = TRUE
  2102.       direction = RTL
  2103.     }
  2104.  
  2105.     image {
  2106.       function  = SHADOW
  2107.       state     = ACTIVE
  2108.       detail    = "entry"
  2109.       file      = "assets/combo-rtl-entry-active.png"
  2110.       border    = {0, 8, 8, 8}
  2111.       stretch   = TRUE
  2112.       direction = RTL
  2113.     }
  2114.  
  2115.     image {
  2116.       function  = SHADOW
  2117.       state     = INSENSITIVE
  2118.       detail    = "entry"
  2119.       file      = "assets/combo-rtl-entry-insensitive.png"
  2120.       border    = {0, 8, 8, 8}
  2121.       stretch   = TRUE
  2122.       direction = RTL
  2123.     }
  2124.  
  2125.     ##############
  2126.    # LTR button #
  2127.    ##############
  2128.  
  2129.     image {
  2130.       function  = BOX
  2131.       state     = NORMAL
  2132.       detail    = "button"
  2133.       file      = "assets/combo-ltr-button.png"
  2134.       border    = {0, 8, 8, 8}
  2135.       stretch   = TRUE
  2136.       direction = LTR
  2137.     }
  2138.  
  2139.     image {
  2140.       function  = BOX
  2141.       state     = PRELIGHT
  2142.       detail    = "button"
  2143.       file      = "assets/combo-ltr-button-hover.png"
  2144.       border    = {0, 8, 8, 8}
  2145.       stretch   = TRUE
  2146.       direction = LTR
  2147.     }
  2148.  
  2149.     image {
  2150.       function  = BOX
  2151.       state     = ACTIVE
  2152.       detail    = "button"
  2153.       file      = "assets/combo-ltr-button-active.png"
  2154.       border    = {0, 8, 8, 8}
  2155.       stretch   = TRUE
  2156.       direction = LTR
  2157.     }
  2158.  
  2159.     image {
  2160.       function  = BOX
  2161.       state     = INSENSITIVE
  2162.       detail    = "button"
  2163.       file      = "assets/combo-ltr-button-insensitive.png"
  2164.       border    = {0, 8, 8, 8}
  2165.       stretch   = TRUE
  2166.       direction = LTR
  2167.     }
  2168.  
  2169.     ##############
  2170.    # RTL button #
  2171.    ##############
  2172.  
  2173.     image {
  2174.       function  = BOX
  2175.       state     = NORMAL
  2176.       detail    = "button"
  2177.       file      = "assets/combo-rtl-button.png"
  2178.       border    = {8, 0, 8, 8}
  2179.       stretch   = TRUE
  2180.       direction = RTL
  2181.     }
  2182.  
  2183.     image {
  2184.       function  = BOX
  2185.       state     = PRELIGHT
  2186.       detail    = "button"
  2187.       file      = "assets/combo-rtl-button-hover.png"
  2188.       border    = {8, 0, 8, 8}
  2189.       stretch   = TRUE
  2190.       direction = RTL
  2191.     }
  2192.  
  2193.     image {
  2194.       function  = BOX
  2195.       state     = ACTIVE
  2196.       detail    = "button"
  2197.       file      = "assets/combo-rtl-button-active.png"
  2198.       border    = {8, 0, 8, 8}
  2199.       stretch   = TRUE
  2200.       direction = RTL
  2201.     }
  2202.  
  2203.     image {
  2204.       function  = BOX
  2205.       state     = INSENSITIVE
  2206.       detail    = "button"
  2207.       file      = "assets/combo-rtl-button-insensitive.png"
  2208.       border    = {8, 0, 8, 8}
  2209.       stretch   = TRUE
  2210.       direction = RTL
  2211.     }
  2212.   }
  2213. }
  2214.  
  2215. style "combo_button_padding" {
  2216.   # Since one side of the button is missing, we need to shift the arrow a
  2217.  # little to the right.
  2218.  # This is the same thing we've done above but the combo, unlike the combobox,
  2219.  # uses padding the same way as a button.
  2220.  GtkButton::inner-border = {3, 6, 3, 3}
  2221. }
  2222.  
  2223. style "notebook" {
  2224.   xthickness = 3
  2225.   ythickness = 3
  2226. }
  2227.  
  2228. style "notebook_tab_label" {
  2229.   fg[ACTIVE] = mix(0.75, @fg_color, @bg_color)
  2230.  
  2231.   font_name = "Medium"
  2232. }
  2233.  
  2234. style "notebook_viewport" {
  2235.   bg[NORMAL] = @base_color
  2236. }
  2237.  
  2238. style "notebook_bg" {
  2239.   bg[NORMAL]      = @base_color
  2240.   bg[PRELIGHT]    = @base_color
  2241.   bg[INSENSITIVE] = @base_color
  2242. }
  2243.  
  2244. style "notebook_entry" {
  2245.   engine "pixmap" {
  2246.     image {
  2247.       function = SHADOW
  2248.       state    = ACTIVE
  2249.       detail   = "entry"
  2250.       file     = "assets/notebook-entry-active.png"
  2251.       border   = {8, 8, 8, 8}
  2252.       stretch  = TRUE
  2253.     }
  2254.  
  2255.     image {
  2256.       function = SHADOW
  2257.       state    = INSENSITIVE
  2258.       detail   = "entry"
  2259.       file     = "assets/notebook-entry-insensitive.png"
  2260.       border   = {8, 8, 8, 8}
  2261.       stretch  = TRUE
  2262.     }
  2263.  
  2264.     image {
  2265.       function = SHADOW
  2266.       detail   = "entry"
  2267.       file     = "assets/notebook-entry.png"
  2268.       border   = {8, 8, 8, 8}
  2269.       stretch  = TRUE
  2270.     }
  2271.   }
  2272. }
  2273.  
  2274. style "normal_bg" {
  2275.   bg[NORMAL]      = @bg_color
  2276.   bg[PRELIGHT]    = @bg_color
  2277.   bg[INSENSITIVE] = @bg_color
  2278. }
  2279.  
  2280. style "normal_entry" {
  2281.   engine "pixmap" {
  2282.     image {
  2283.       function = SHADOW
  2284.       state    = ACTIVE
  2285.       detail   = "entry"
  2286.       file     = "assets/entry-active.png"
  2287.       border   = {8, 8, 8, 8}
  2288.       stretch  = TRUE
  2289.     }
  2290.  
  2291.     image {
  2292.       function = SHADOW
  2293.       state    = INSENSITIVE
  2294.       detail   = "entry"
  2295.       file     = "assets/entry-insensitive.png"
  2296.       border   = {8, 8, 8, 8}
  2297.       stretch  = TRUE
  2298.     }
  2299.  
  2300.     image {
  2301.       function = SHADOW
  2302.       detail   = "entry"
  2303.       file     = "assets/entry.png"
  2304.       border   = {8, 8, 8, 8}
  2305.       stretch  = TRUE
  2306.     }
  2307.   }
  2308. }
  2309.  
  2310. style "notebook_combo" {
  2311.   engine "pixmap" {
  2312.  
  2313.     #############
  2314.    # LTR entry #
  2315.    #############
  2316.  
  2317.     image {
  2318.       function  = SHADOW
  2319.       state     = NORMAL
  2320.       detail    = "entry"
  2321.       file      = "assets/notebook-combo-ltr-entry.png"
  2322.       border    = {8, 8, 8, 8}
  2323.       stretch   = TRUE
  2324.       direction = LTR
  2325.     }
  2326.  
  2327.     image {
  2328.       function  = SHADOW
  2329.       state     = ACTIVE
  2330.       detail    = "entry"
  2331.       file      = "assets/notebook-combo-ltr-entry-active.png"
  2332.       border    = {8, 8, 8, 8}
  2333.       stretch   = TRUE
  2334.       direction = LTR
  2335.     }
  2336.  
  2337.     image {
  2338.       function  = SHADOW
  2339.       state     = INSENSITIVE
  2340.       detail    = "entry"
  2341.       file      = "assets/notebook-combo-ltr-entry-insensitive.png"
  2342.       border    = {8, 8, 8, 8}
  2343.       stretch   = TRUE
  2344.       direction = LTR
  2345.     }
  2346.  
  2347.     #############
  2348.    # RTL entry #
  2349.    #############
  2350.  
  2351.     image {
  2352.       function  = SHADOW
  2353.       state     = NORMAL
  2354.       detail    = "entry"
  2355.       file      = "assets/notebook-combo-rtl-entry.png"
  2356.       border    = {8, 8, 8, 8}
  2357.       stretch   = TRUE
  2358.       direction = RTL
  2359.     }
  2360.  
  2361.     image {
  2362.       function  = SHADOW
  2363.       state     = ACTIVE
  2364.       detail    = "entry"
  2365.       file      = "assets/notebook-combo-rtl-entry-active.png"
  2366.       border    = {8, 8, 8, 8}
  2367.       stretch   = TRUE
  2368.       direction = RTL
  2369.     }
  2370.  
  2371.     image {
  2372.       function  = SHADOW
  2373.       state     = INSENSITIVE
  2374.       detail    = "entry"
  2375.       file      = "assets/notebook-combo-rtl-entry-insensitive.png"
  2376.       border    = {8, 8, 8, 8}
  2377.       stretch   = TRUE
  2378.       direction = RTL
  2379.     }
  2380.   }
  2381. }
  2382.  
  2383. style "textview" {
  2384.   bg[NORMAL] = @base_color
  2385. }
  2386.  
  2387. style "scale_horz" {
  2388.   engine "pixmap" {
  2389.     image {
  2390.       function    = BOX
  2391.       detail      = "trough-upper"
  2392.       file        = "assets/scale-horz-trough.png"
  2393.       border      = {6, 6, 0, 0}
  2394.       stretch     = TRUE
  2395.     }
  2396.  
  2397.     image {
  2398.       function    = BOX
  2399.       detail      = "trough-lower"
  2400.       file        = "assets/scale-horz-trough-active.png"
  2401.       border      = {6, 6, 0, 0}
  2402.       stretch     = TRUE
  2403.     }
  2404.   }
  2405. }
  2406.  
  2407. style "scale_vert" {
  2408.   engine "pixmap" {
  2409.     image {
  2410.       function    = BOX
  2411.       detail      = "trough-upper"
  2412.       file        = "assets/scale-vert-trough.png"
  2413.       border      = {0, 0, 6, 6}
  2414.       stretch     = TRUE
  2415.     }
  2416.  
  2417.     image {
  2418.       function    = BOX
  2419.       detail      = "trough-lower"
  2420.       file        = "assets/scale-vert-trough-active.png"
  2421.       border      = {0, 0, 6, 6}
  2422.       stretch     = TRUE
  2423.     }
  2424.   }
  2425. }
  2426.  
  2427. style "progressbar" {
  2428.   xthickness = 0
  2429.   ythickness = 0
  2430.  
  2431.   fg[PRELIGHT] = @selected_fg_color
  2432.  
  2433.   engine "pixmap" {
  2434.     image {
  2435.       function    = BOX
  2436.       detail      = "trough"
  2437.       file        = "assets/progressbar-trough.png"
  2438.       border      = {0, 0, 0, 0}
  2439.       stretch     = TRUE
  2440.       orientation = HORIZONTAL
  2441.     }
  2442.  
  2443.     image {
  2444.       function    = BOX
  2445.       detail      = "trough"
  2446.       file        = "assets/progressbar-trough.png"
  2447.       border      = {0, 0, 0, 0}
  2448.       stretch     = TRUE
  2449.       orientation = VERTICAL
  2450.     }
  2451.   }
  2452. }
  2453.  
  2454. style "treeview_header" {
  2455.   xthickness = 2
  2456.   ythickness = 2
  2457.  
  2458.   fg[NORMAL]   = mix(0.75, @fg_color, @base_color)
  2459.   fg[PRELIGHT] = @fg_color
  2460.  
  2461.   font_name = "Medium"
  2462.  
  2463.   GtkButton::inner-border = {4, 4, 0, 2}
  2464.  
  2465.   engine "pixmap" {
  2466.     image {
  2467.       function  = BOX
  2468.       state     = NORMAL
  2469.       file      = "assets/treeview-ltr-button.png"
  2470.       border    = {0, 1, 0, 1}
  2471.       stretch   = TRUE
  2472.       direction = LTR
  2473.     }
  2474.  
  2475.     image {
  2476.       function  = BOX
  2477.       state     = PRELIGHT
  2478.       file      = "assets/treeview-ltr-button-hover.png"
  2479.       border    = {0, 1, 0, 1}
  2480.       stretch   = TRUE
  2481.       direction = LTR
  2482.     }
  2483.  
  2484.     image {
  2485.       function  = BOX
  2486.       state     = ACTIVE
  2487.       file      = "assets/treeview-ltr-button-active.png"
  2488.       border    = {0, 1, 0, 1}
  2489.       stretch   = TRUE
  2490.       direction = LTR
  2491.     }
  2492.  
  2493.     image {
  2494.       function  = BOX
  2495.       state     = NORMAL
  2496.       file      = "assets/treeview-rtl-button.png"
  2497.       border    = {1, 0, 0, 1}
  2498.       stretch   = TRUE
  2499.       direction = RTL
  2500.     }
  2501.  
  2502.     image {
  2503.       function  = BOX
  2504.       state     = PRELIGHT
  2505.       file      = "assets/treeview-rtl-button-hover.png"
  2506.       border    = {1, 0, 0, 1}
  2507.       stretch   = TRUE
  2508.       direction = RTL
  2509.     }
  2510.  
  2511.     image {
  2512.       function  = BOX
  2513.       state     = ACTIVE
  2514.       file      = "assets/treeview-rtl-button-active.png"
  2515.       border    = {1, 0, 0, 1}
  2516.       stretch   = TRUE
  2517.       direction = RTL
  2518.     }
  2519.  
  2520.     image {
  2521.       function        = ARROW
  2522.       state           = NORMAL
  2523.       overlay_file    = "assets/pan-up-alt.png"
  2524.       overlay_stretch = FALSE
  2525.       arrow_direction = UP
  2526.     }
  2527.  
  2528.     image {
  2529.       function        = ARROW
  2530.       state           = PRELIGHT
  2531.       overlay_file    = "assets/pan-up.png"
  2532.       overlay_stretch = FALSE
  2533.       arrow_direction = UP
  2534.     }
  2535.  
  2536.     image {
  2537.       function        = ARROW
  2538.       state           = ACTIVE
  2539.       overlay_file    = "assets/pan-up.png"
  2540.       overlay_stretch = FALSE
  2541.       arrow_direction = UP
  2542.     }
  2543.  
  2544.     image {
  2545.       function        = ARROW
  2546.       state           = NORMAL
  2547.       overlay_file    = "assets/pan-down-alt.png"
  2548.       overlay_stretch = FALSE
  2549.       arrow_direction = DOWN
  2550.     }
  2551.  
  2552.     image {
  2553.       function        = ARROW
  2554.       state           = PRELIGHT
  2555.       overlay_file    = "assets/pan-down.png"
  2556.       overlay_stretch = FALSE
  2557.       arrow_direction = DOWN
  2558.     }
  2559.  
  2560.     image {
  2561.       function        = ARROW
  2562.       state           = ACTIVE
  2563.       overlay_file    = "assets/pan-down.png"
  2564.       overlay_stretch = FALSE
  2565.       arrow_direction = DOWN
  2566.     }
  2567.   }
  2568. }
  2569.  
  2570. style "scrolled_window" {
  2571.   engine "pixmap" {
  2572.     image {
  2573.       function = SHADOW
  2574.       file     = "assets/frame.png"
  2575.       border   = {1, 1, 1, 1}
  2576.       stretch  = TRUE
  2577.     }
  2578.   }
  2579. }
  2580.  
  2581. style "frame" {
  2582.   engine "pixmap" {
  2583.     image {
  2584.       function = SHADOW
  2585.       shadow   = NONE
  2586.     }
  2587.  
  2588.     image {
  2589.       function = SHADOW
  2590.       file     = "assets/frame.png"
  2591.       border   = {1, 1, 1, 1}
  2592.       stretch  = TRUE
  2593.     }
  2594.  
  2595.     image {
  2596.       function       = SHADOW_GAP
  2597.       file           = "assets/frame.png"
  2598.       border         = {1, 1, 1, 1}
  2599.       stretch        = TRUE
  2600.       gap_start_file = "assets/border.png"
  2601.       gap_end_file   = "assets/border.png"
  2602.     }
  2603.   }
  2604. }
  2605.  
  2606. style "tool_button" {
  2607.   GtkButton::inner-border = {2, 2, 2, 2}
  2608.  
  2609.   # For the sake of sanity style buttons this way
  2610.  engine "pixmap" {
  2611.     image {
  2612.       function = BOX
  2613.       state    = NORMAL
  2614.       file     = "assets/flat-button.png"
  2615.       border   = {8, 8, 8, 8}
  2616.       stretch  = TRUE
  2617.     }
  2618.  
  2619.     image {
  2620.       function = BOX
  2621.       state    = PRELIGHT
  2622.       shadow   = OUT
  2623.       file     = "assets/flat-button-hover.png"
  2624.       border   = {8, 8, 8, 8}
  2625.       stretch  = TRUE
  2626.     }
  2627.  
  2628.     # Don't add hover effect on pressed buttons
  2629.    image {
  2630.       function = BOX
  2631.       state    = PRELIGHT
  2632.       shadow   = IN
  2633.       file     = "assets/flat-button-active.png"
  2634.       border   = {8, 8, 8, 8}
  2635.       stretch  = TRUE
  2636.     }
  2637.  
  2638.     image {
  2639.       function = BOX
  2640.       state    = ACTIVE
  2641.       file     = "assets/flat-button-active.png"
  2642.       border   = {8, 8, 8, 8}
  2643.       stretch  = TRUE
  2644.     }
  2645.  
  2646.     image {
  2647.       function = BOX
  2648.       state    = INSENSITIVE
  2649.       shadow   = OUT
  2650.       file     = "assets/flat-button-insensitive.png"
  2651.       border   = {8, 8, 8, 8}
  2652.       stretch  = TRUE
  2653.     }
  2654.  
  2655.     image {
  2656.       function = BOX
  2657.       state    = INSENSITIVE
  2658.       shadow   = IN
  2659.       file     = "assets/button-insensitive.png"
  2660.       border   = {8, 8, 8, 8}
  2661.       stretch  = TRUE
  2662.     }
  2663.   }
  2664. }
  2665.  
  2666. style "toolbar_separator" {
  2667.   GtkWidget::wide-separators  = 1
  2668.   GtkWidget::separator-width  = 1
  2669.   GtkWidget::separator-height = 1
  2670.  
  2671.   engine "pixmap" {
  2672.     image {
  2673.       function = BOX
  2674.       file     = "assets/border.png"
  2675.     }
  2676.   }
  2677. }
  2678.  
  2679. style "inline_toolbar" {
  2680.   # GtkToolbar::button-relief = GTK_RELIEF_NORMAL
  2681.  
  2682.   engine "pixmap" {
  2683.     image {
  2684.       function = BOX
  2685.       file     = "assets/frame-inline.png"
  2686.       border   = {1, 1, 0, 1}
  2687.       stretch  = TRUE
  2688.     }
  2689.   }
  2690. }
  2691.  
  2692. style "tooltip" {
  2693.   xthickness = 8
  2694.   ythickness = 8
  2695.  
  2696.   bg[NORMAL]   = @base_color
  2697.   fg[NORMAL]   = @fg_color
  2698.   bg[SELECTED] = @base_color
  2699. }
  2700.  
  2701. style "disable_text_shadow" {
  2702.   engine "murrine" {
  2703.     textstyle = 0
  2704.   }
  2705. }
  2706.  
  2707. style "disable_separator" {
  2708.   xthickness = 0
  2709.   ythickness = 0
  2710.  
  2711.   GtkWidget::wide-separators = 1
  2712. }
  2713.  
  2714. style "panel-launchers"
  2715. {
  2716.   xthickness = 0
  2717.   ythickness = 0
  2718.   GtkButton::inner-border = {1, 2, 1, 2}
  2719. }
  2720.  
  2721. # Default style, containing theme properties and trying to match every widget as
  2722. # much as possible, which is not only faster than trying to match every widget
  2723. # by its own but also less bug-prune and more consistent. However there is some
  2724. # widget specific stuff that needs to be taken care of, which is the point of
  2725. # every other style below.
  2726. class "GtkWidget" style "default"
  2727.  
  2728. ######################################
  2729. # Override padding, style and colour #
  2730. ######################################
  2731.  
  2732. class "GtkButton"                                                  style "button"
  2733. class "GtkLinkButton"                                              style "link_button"
  2734. class "GtkEntry"                                                   style "entry"
  2735. class "GtkOldEditable"                                             style "entry"
  2736. class "GtkNotebook"                                                style "notebook"
  2737. class "GtkHScale"                                                  style "scale_horz"
  2738. class "GtkVScale"                                                  style "scale_vert"
  2739. class "GtkProgressBar"                                             style "progressbar"
  2740. class "GtkScrolledWindow"                                          style "scrolled_window"
  2741. class "GtkFrame"                                                   style "frame"
  2742. class "GtkSeparatorToolItem"                                       style "toolbar_separator"
  2743. class "GtkMenuBar"                                                 style "menubar"
  2744. class "GtkMenu"                                                    style "menu"
  2745. class "GtkTextView"                                                style "textview"
  2746.  
  2747. # Menu and menubar items
  2748. widget_class "*<GtkMenuItem>*"                                     style "menu_item"
  2749. widget_class "*<GtkMenuBar>.<GtkMenuItem>*"                        style "menubar_item"
  2750. widget_class "*<GtkSeparatorMenuItem>*"                            style "separator_menu_item"
  2751.  
  2752. # Treeview buttons
  2753. widget_class "*<GtkTreeView>*<GtkButton>*"                         style "treeview_header"
  2754.  
  2755. # Give the file chooser toolbar a border
  2756. widget_class "*<GtkFileChooserDefault>*<GtkToolbar>"               style "inline_toolbar"
  2757.  
  2758. # Fix padding on regular comboboxes
  2759. widget_class "*<GtkComboBox>.<GtkButton>"                          style "combobox"
  2760.  
  2761. # And disable separators on them
  2762. widget_class "*<GtkComboBox>.<GtkButton>*<GtkSeparator>"           style "disable_separator"
  2763. widget_class "*<GtkFontButton>*<GtkSeparator>"                     style "disable_separator"
  2764. widget_class "*<GtkFileChooserButton>*<GtkSeparator>"              style "disable_separator"
  2765.  
  2766. # Join together the ComboBoxEntry entry and button
  2767. widget_class "*<GtkComboBoxEntry>*"                                style "combobox_entry"
  2768.  
  2769. # Join the Combo entry and button
  2770. widget_class "*<GtkCombo>*"                                        style "combobox_entry"
  2771.  
  2772. # Tweak the padding on the button a little bit because it
  2773. # uses it a bit differently
  2774. widget_class "*<GtkCombo>.<GtkButton>"                             style "combo_button_padding"
  2775.  
  2776. # Alas we cannot do the same for ComboBoxText because there
  2777. # isn't a way to apply the style to only the comboboxes that
  2778. # have an entry inside
  2779.  
  2780. # Tool buttons have different styles
  2781. widget_class "*<GtkToolButton>*<GtkButton>"                        style "tool_button"
  2782. widget_class "*<GtkVBox>*<GtkEventBox>.<GtkToolbar>*<GtkButton>"   style "tool_button"
  2783.  
  2784. # Notebooks
  2785. widget_class "*<GtkNotebook>.<GtkLabel>"                           style "notebook_tab_label"
  2786. widget_class "*<GtkNotebook>.<GtkHBox>.<GtkLabel>"                 style "notebook_tab_label"
  2787.  
  2788. # Notebooks are white, act accordingly
  2789. widget_class "*<GtkNotebook>*<GtkEntry>"                           style "notebook_entry"
  2790. widget_class "*<GtkNotebook>*<GtkProgressBar>"                     style "notebook_bg"
  2791. widget_class "*<GtkNotebook>*<GtkSpinButton>"                      style "notebook_bg"
  2792. widget_class "*<GtkNotebook>*<GtkScrolledWindow>*<GtkViewport>"    style "notebook_bg"
  2793. widget_class "*<GtkNotebook>*<GimpRuler>"                          style "notebook_bg"
  2794. widget_class "*<GtkNotebook>.<GimpDisplayShell>*<GtkEventBox>"     style "notebook_bg"
  2795. widget_class "*<GtkNotebook>*<GtkComboBoxEntry>*"                  style "notebook_combo"
  2796. widget_class "*<GtkNotebook>*<GtkCombo>*"                          style "notebook_combo"
  2797.  
  2798. # However, stuff inside eventboxes inside notebooks is grey
  2799. # again, react
  2800. widget_class "*<GtkNotebook>*<GtkEventBox>*<GtkEntry>"             style "normal_entry"
  2801. widget_class "*<GtkNotebook>*<GtkEventBox>*<GtkProgressBar>"       style "normal_bg"
  2802. widget_class "*<GtkNotebook>*<GtkEventBox>*<GtkSpinButton>"        style "normal_bg"
  2803. widget_class "*<GtkNotebook>*<GtkEventBox>*<GtkComboBoxEntry>*"    style "combobox_entry"
  2804. widget_class "*<GtkNotebook>*<GtkEventBox>*<GtkCombo>*"            style "combobox_entry"
  2805. widget_class "*<GtkNotebook>*<GtkEventBox>*<GtkCombo>.<GtkButton>" style "combo_button_padding"
  2806.  
  2807. # Button labels
  2808. widget_class "*<GtkButton>*<GtkLabel>"                             style "button_label"
  2809.  
  2810. # Checkbutton labels
  2811. widget_class "*<GtkCheckButton>.<GtkLabel>"                        style "checkbutton_label"
  2812.  
  2813. # ComboBoxes tend to draw the button label with text[]
  2814. # instead of fg[], we need to fix that
  2815. widget_class "*<GtkComboBox>*<GtkCellView>"                        style "combobox_cellview"
  2816.  
  2817. # Disable white text shadows
  2818. widget_class "*<GtkLabel>"                                         style "disable_text_shadow"
  2819. widget_class "*<GtkCellView>"                                      style "disable_text_shadow"
  2820.  
  2821. # GTK tooltips
  2822. widget "gtk-tooltip*"                                              style "tooltip"
  2823.  
  2824. # Xfce4 panel launchers
  2825. widget "*launcher*" style "panel-launchers"

Quellcode

Hier kannst du den Code kopieren und ihn in deinen bevorzugten Editor einfügen. PASTEBIN_DOWNLOAD_SNIPPET_EXPLAIN