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