main.rc

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           = {0, 0, 0, 0}
45
46  GtkEntry::state-hint   = 1
47  GtkEntry::inner-border = {0, 0, 0, 0}
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-alt.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-alt-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-alt.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-alt-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-alt.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-alt-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-alt.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-alt-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-alt.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-alt-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      state           = NORMAL
702      overlay_file    = "assets/handle-horz.png"
703      overlay_stretch = FALSE
704      orientation     = HORIZONTAL
705    }
706
707    image {
708      function        = HANDLE
709      state           = PRELIGHT
710      overlay_file    = "assets/handle-horz-hover.png"
711      overlay_stretch = FALSE
712      orientation     = HORIZONTAL
713    }
714
715    image {
716      function        = HANDLE
717      state           = ACTIVE
718      overlay_file    = "assets/handle-horz-active.png"
719      overlay_stretch = FALSE
720      orientation     = HORIZONTAL
721    }
722
723    image {
724      function        = HANDLE
725      state           = NORMAL
726      overlay_file    = "assets/handle-vert.png"
727      overlay_stretch = FALSE
728      orientation     = VERTICAL
729    }
730
731    image {
732      function        = HANDLE
733      state           = PRELIGHT
734      overlay_file    = "assets/handle-vert-hover.png"
735      overlay_stretch = FALSE
736      orientation     = VERTICAL
737    }
738
739    image {
740      function        = HANDLE
741      state           = ACTIVE
742      overlay_file    = "assets/handle-vert-active.png"
743      overlay_stretch = FALSE
744      orientation     = VERTICAL
745    }
746
747    image {
748      function = RESIZE_GRIP
749    }
750
751    #############
752    # Expanders #
753    #############
754
755    image {
756      function       = EXPANDER
757      expander_style = EXPANDED
758      state          = NORMAL
759      file           = "assets/pan-down-alt.png"
760    }
761
762    image {
763      function       = EXPANDER
764      expander_style = EXPANDED
765      state          = PRELIGHT
766      file           = "assets/pan-down.png"
767    }
768
769    image {
770      function       = EXPANDER
771      expander_style = EXPANDED
772      state          = ACTIVE
773      file           = "assets/pan-down.png"
774    }
775
776    image {
777      function       = EXPANDER
778      expander_style = EXPANDED
779      state          = INSENSITIVE
780      file           = "assets/pan-down-alt-disabled.png"
781    }
782
783    # LTR
784
785    image {
786      function       = EXPANDER
787      expander_style = COLLAPSED
788      state          = NORMAL
789      file           = "assets/pan-right-alt.png"
790      direction      = LTR
791    }
792
793    image {
794      function       = EXPANDER
795      expander_style = COLLAPSED
796      state          = PRELIGHT
797      file           = "assets/pan-right.png"
798      direction      = LTR
799    }
800
801    image {
802      function       = EXPANDER
803      expander_style = COLLAPSED
804      state          = ACTIVE
805      file           = "assets/pan-right.png"
806      direction      = LTR
807    }
808
809    image {
810      function       = EXPANDER
811      expander_style = COLLAPSED
812      state          = INSENSITIVE
813      file           = "assets/pan-right-alt-disabled.png"
814      direction      = LTR
815    }
816
817    image {
818      function       = EXPANDER
819      expander_style = SEMI_COLLAPSED
820      file           = "assets/pan-right-semi.png"
821      direction      = LTR
822    }
823
824    image {
825      function       = EXPANDER
826      expander_style = SEMI_EXPANDED
827      file           = "assets/pan-right-semi.png"
828      direction      = LTR
829    }
830
831    # RTL
832
833    image {
834      function       = EXPANDER
835      expander_style = COLLAPSED
836      state          = NORMAL
837      file           = "assets/pan-left-alt.png"
838      direction      = RTL
839    }
840
841    image {
842      function       = EXPANDER
843      expander_style = COLLAPSED
844      state          = PRELIGHT
845      file           = "assets/pan-left.png"
846      direction      = RTL
847    }
848
849    image {
850      function       = EXPANDER
851      expander_style = COLLAPSED
852      state          = ACTIVE
853      file           = "assets/pan-left.png"
854      direction      = RTL
855    }
856
857    image {
858      function       = EXPANDER
859      expander_style = COLLAPSED
860      state          = INSENSITIVE
861      file           = "assets/pan-left-alt-disabled.png"
862      direction      = RTL
863    }
864
865    image {
866      function       = EXPANDER
867      expander_style = SEMI_COLLAPSED
868      file           = "assets/pan-left-semi.png"
869      direction      = RTL
870    }
871
872    image {
873      function       = EXPANDER
874      expander_style = SEMI_EXPANDED
875      file           = "assets/pan-left-semi.png"
876      direction      = RTL
877    }
878
879    #############
880    # Notebooks #
881    #############
882
883    # Left
884
885    image {
886      function = EXTENSION
887      state    = NORMAL
888      file     = "assets/tab.png"
889      border   = {0, 1, 0, 0}
890      stretch  = TRUE
891      gap_side = RIGHT
892    }
893
894    image {
895      function = EXTENSION
896      gap_side = RIGHT
897    }
898
899    # Right
900
901    image {
902      function = EXTENSION
903      state    = NORMAL
904      file     = "assets/tab.png"
905      border   = {1, 0, 0, 0}
906      stretch  = TRUE
907      gap_side = LEFT
908    }
909
910    image {
911      function = EXTENSION
912      gap_side = LEFT
913    }
914
915    # Up
916
917    image {
918      function = EXTENSION
919      state    = NORMAL
920      file     = "assets/tab.png"
921      border   = {0, 0, 0, 1}
922      stretch  = TRUE
923      gap_side = BOTTOM
924    }
925
926    image {
927      function = EXTENSION
928      gap_side = BOTTOM
929    }
930
931    # Down
932
933    image {
934      function = EXTENSION
935      state    = NORMAL
936      file     = "assets/tab.png"
937      border   = {0, 0, 1, 0}
938      stretch  = TRUE
939      gap_side = TOP
940    }
941
942    image {
943      function = EXTENSION
944      gap_side = TOP
945    }
946
947    # Inner frame
948
949    image {
950      function   = BOX_GAP
951      detail     = "notebook"
952      file       = "assets/frame-notebook.png"
953      border     = {1, 1, 1, 1}
954      stretch    = TRUE
955      gap_file   = "assets/tab.png"
956      gap_border = {1, 0, 0, 0}
957      gap_side   = LEFT
958    }
959
960    image {
961      function   = BOX_GAP
962      detail     = "notebook"
963      file       = "assets/frame-notebook.png"
964      border     = {1, 1, 1, 1}
965      stretch    = TRUE
966      gap_file   = "assets/tab.png"
967      gap_border = {0, 1, 0, 0}
968      gap_side   = RIGHT
969    }
970
971    image {
972      function   = BOX_GAP
973      detail     = "notebook"
974      file       = "assets/frame-notebook.png"
975      border     = {1, 1, 1, 1}
976      stretch    = TRUE
977      gap_file   = "assets/tab.png"
978      gap_border = {0, 0, 1, 0}
979      gap_side   = TOP
980    }
981
982    image {
983      function   = BOX_GAP
984      detail     = "notebook"
985      file       = "assets/frame-notebook.png"
986      border     = {1, 1, 1, 1}
987      stretch    = TRUE
988      gap_file   = "assets/tab.png"
989      gap_border = {0, 0, 0, 1}
990      gap_side   = BOTTOM
991    }
992
993    # Standalone frame
994    image {
995      function = BOX
996      detail   = "notebook"
997      file     = "assets/frame-notebook.png"
998      border   = {1, 1, 1, 1}
999      stretch  = TRUE
1000    }
1001
1002    ##############
1003    # Scrollbars #
1004    ##############
1005
1006    image {
1007      function    = BOX
1008      detail      = "trough"
1009      file        = "assets/scrollbar-horz-trough.png"
1010      border      = {0, 0, 1, 0}
1011      orientation = HORIZONTAL
1012    }
1013
1014    image {
1015      function    = BOX
1016      detail      = "trough"
1017      file        = "assets/scrollbar-vert-ltr-trough.png"
1018      border      = {1, 0, 0, 0}
1019      orientation = VERTICAL
1020      direction   = LTR
1021    }
1022
1023    image {
1024      function    = BOX
1025      detail      = "trough"
1026      file        = "assets/scrollbar-vert-rtl-trough.png"
1027      border      = {0, 1, 0, 0}
1028      orientation = VERTICAL
1029      direction   = RTL
1030    }
1031
1032    # Horizontal sliders
1033
1034    image {
1035      function    = SLIDER
1036      state       = NORMAL
1037      detail      = "slider"
1038      file        = "assets/scrollbar-horz-slider.png"
1039      border      = {8, 8, 9, 8 }
1040      stretch     = TRUE
1041      orientation = HORIZONTAL
1042    }
1043
1044    image {
1045      function    = SLIDER
1046      state       = PRELIGHT
1047      detail      = "slider"
1048      file        = "assets/scrollbar-horz-slider-hover.png"
1049      border      = {8, 8, 9, 8 }
1050      stretch     = TRUE
1051      orientation = HORIZONTAL
1052    }
1053
1054    image {
1055      function    = SLIDER
1056      state       = ACTIVE
1057      detail      = "slider"
1058      file        = "assets/scrollbar-horz-slider-active.png"
1059      border      = {8, 8, 9, 8 }
1060      stretch     = TRUE
1061      orientation = HORIZONTAL
1062    }
1063
1064    image {
1065      function    = SLIDER
1066      state       = INSENSITIVE
1067      detail      = "slider"
1068      file        = "assets/scrollbar-horz-slider-disabled.png"
1069      border      = {8, 8, 9, 8 }
1070      stretch     = TRUE
1071      orientation = HORIZONTAL
1072    }
1073
1074    # Vertical sliders
1075
1076    image {
1077      function    = SLIDER
1078      state       = NORMAL
1079      detail      = "slider"
1080      file        = "assets/scrollbar-vert-ltr-slider.png"
1081      border      = {9, 8, 8, 8}
1082      stretch     = TRUE
1083      orientation = VERTICAL
1084      direction   = LTR
1085    }
1086
1087    image {
1088      function    = SLIDER
1089      state       = PRELIGHT
1090      detail      = "slider"
1091      file        = "assets/scrollbar-vert-ltr-slider-hover.png"
1092      border      = {9, 8, 8, 8}
1093      stretch     = TRUE
1094      orientation = VERTICAL
1095      direction   = LTR
1096    }
1097
1098    image {
1099      function    = SLIDER
1100      state       = ACTIVE
1101      detail      = "slider"
1102      file        = "assets/scrollbar-vert-ltr-slider-active.png"
1103      border      = {9, 8, 8, 8}
1104      stretch     = TRUE
1105      orientation = VERTICAL
1106      direction   = LTR
1107    }
1108
1109    image {
1110      function    = SLIDER
1111      state       = INSENSITIVE
1112      detail      = "slider"
1113      file        = "assets/scrollbar-vert-ltr-slider-disabled.png"
1114      border      = {9, 8, 8, 8}
1115      stretch     = TRUE
1116      orientation = VERTICAL
1117      direction   = LTR
1118    }
1119
1120    # RTL
1121
1122    image {
1123      function    = SLIDER
1124      state       = NORMAL
1125      detail      = "slider"
1126      file        = "assets/scrollbar-vert-rtl-slider.png"
1127      border      = {8, 9, 8, 8}
1128      stretch     = TRUE
1129      orientation = VERTICAL
1130      direction   = RTL
1131    }
1132
1133    image {
1134      function    = SLIDER
1135      state       = PRELIGHT
1136      detail      = "slider"
1137      file        = "assets/scrollbar-vert-rtl-slider-hover.png"
1138      border      = {8, 9, 8, 8}
1139      stretch     = TRUE
1140      orientation = VERTICAL
1141      direction   = RTL
1142    }
1143
1144    image {
1145      function    = SLIDER
1146      state       = ACTIVE
1147      detail      = "slider"
1148      file        = "assets/scrollbar-vert-rtl-slider-active.png"
1149      border      = {8, 9, 8, 8}
1150      stretch     = TRUE
1151      orientation = VERTICAL
1152      direction   = RTL
1153    }
1154
1155    image {
1156      function    = SLIDER
1157      state       = INSENSITIVE
1158      detail      = "slider"
1159      file        = "assets/scrollbar-vert-rtl-slider-disabled.png"
1160      border      = {8, 9, 8, 8}
1161      stretch     = TRUE
1162      orientation = VERTICAL
1163      direction   = RTL
1164    }
1165
1166    ##########
1167    # Scales #
1168    ##########
1169
1170    # Troughs, overrided later on. We set them here too because some widgets
1171    # don't specify their orientation.
1172
1173    image {
1174      function    = BOX
1175      detail      = "trough-upper"
1176      file        = "assets/scale-horz-trough.png"
1177      border      = {6, 6, 0, 0}
1178      stretch     = TRUE
1179      orientation = HORIZONTAL
1180    }
1181
1182    image {
1183      function    = BOX
1184      state       = INSENSITIVE
1185      detail      = "trough-upper"
1186      file        = "assets/scale-horz-trough-disabled.png"
1187      border      = {6, 6, 0, 0}
1188      stretch     = TRUE
1189      orientation = HORIZONTAL
1190    }
1191
1192    image {
1193      function    = BOX
1194      detail      = "trough-lower"
1195      file        = "assets/scale-horz-trough-active.png"
1196      border      = {6, 6, 0, 0}
1197      stretch     = TRUE
1198      orientation = HORIZONTAL
1199    }
1200
1201    image {
1202      function    = BOX
1203      state       = INSENSITIVE
1204      detail      = "trough-lower"
1205      file        = "assets/scale-horz-trough-disabled.png"
1206      border      = {6, 6, 0, 0}
1207      stretch     = TRUE
1208      orientation = HORIZONTAL
1209    }
1210
1211    image {
1212      function    = BOX
1213      detail      = "trough-upper"
1214      file        = "assets/scale-vert-trough.png"
1215      border      = {0, 0, 6, 6}
1216      stretch     = TRUE
1217      orientation = VERTICAL
1218    }
1219
1220    image {
1221      function    = BOX
1222      state       = INSENSITIVE
1223      detail      = "trough-upper"
1224      file        = "assets/scale-vert-trough-disabled.png"
1225      border      = {0, 0, 6, 6}
1226      stretch     = TRUE
1227      orientation = VERTICAL
1228    }
1229
1230    image {
1231      function    = BOX
1232      detail      = "trough-lower"
1233      file        = "assets/scale-vert-trough-active.png"
1234      border      = {0, 0, 6, 6}
1235      stretch     = TRUE
1236      orientation = VERTICAL
1237    }
1238
1239    image {
1240      function    = BOX
1241      state       = INSENSITIVE
1242      detail      = "trough-lower"
1243      file        = "assets/scale-vert-trough-disabled.png"
1244      border      = {0, 0, 6, 6}
1245      stretch     = TRUE
1246      orientation = VERTICAL
1247    }
1248
1249    # Sliders
1250
1251    image {
1252      function = SLIDER
1253      state    = NORMAL
1254      detail   = "hscale"
1255      file     = "assets/scale-slider.png"
1256    }
1257
1258    image {
1259      function = SLIDER
1260      state    = PRELIGHT
1261      detail   = "hscale"
1262      file     = "assets/scale-slider-hover.png"
1263    }
1264
1265    image {
1266      function = SLIDER
1267      state    = ACTIVE
1268      detail   = "hscale"
1269      file     = "assets/scale-slider-active.png"
1270    }
1271
1272    image {
1273      function = SLIDER
1274      state    = INSENSITIVE
1275      detail   = "hscale"
1276      file     = "assets/scale-slider-disabled.png"
1277    }
1278
1279    image {
1280      function = SLIDER
1281      state    = NORMAL
1282      detail   = "vscale"
1283      file     = "assets/scale-slider.png"
1284    }
1285
1286    image {
1287      function = SLIDER
1288      state    = PRELIGHT
1289      detail   = "vscale"
1290      file     = "assets/scale-slider-hover.png"
1291    }
1292
1293    image {
1294      function = SLIDER
1295      state    = ACTIVE
1296      detail   = "vscale"
1297      file     = "assets/scale-slider-active.png"
1298    }
1299
1300    image {
1301      function = SLIDER
1302      state    = INSENSITIVE
1303      detail   = "vscale"
1304      file     = "assets/scale-slider-disabled.png"
1305    }
1306
1307    ###########
1308    # Menubar #
1309    ###########
1310
1311    image {
1312      function = BOX
1313      detail   = "menubar"
1314      file     = "assets/border.png"
1315      border   = {0, 0, 0, 1}
1316    }
1317
1318    #########
1319    # Menus #
1320    #########
1321
1322    image {
1323      function = BOX
1324      state    = PRELIGHT
1325      detail   = "menu_scroll_arrow_up"
1326      file     = "assets/border.png"
1327    }
1328
1329    image {
1330      function = BOX
1331      detail   = "menu_scroll_arrow_up"
1332      file     = "assets/border.png"
1333      border   = {0, 0, 0, 1}
1334    }
1335
1336    image {
1337      function = BOX
1338      state    = PRELIGHT
1339      detail   = "menu_scroll_arrow_down"
1340      file     = "assets/border.png"
1341    }
1342
1343    image {
1344      function = BOX
1345      detail   = "menu_scroll_arrow_down"
1346      file     = "assets/border.png"
1347      border   = {0, 0, 1, 0}
1348    }
1349
1350    ###########
1351    # Entries #
1352    ###########
1353
1354    image {
1355      function = SHADOW
1356      state    = ACTIVE
1357      detail   = "entry"
1358      file     = "assets/entry-active.png"
1359      border   = {6, 6, 6, 6}
1360      stretch  = TRUE
1361    }
1362
1363    image {
1364      function = SHADOW
1365      state    = INSENSITIVE
1366      detail   = "entry"
1367      file     = "assets/entry-disabled.png"
1368      border   = {6, 6, 6, 6}
1369      stretch  = TRUE
1370    }
1371
1372    image {
1373      function = SHADOW
1374      detail   = "entry"
1375      file     = "assets/entry.png"
1376      border   = {6, 6, 6, 6}
1377      stretch  = TRUE
1378    }
1379
1380    image {
1381      function = FLAT_BOX
1382      state    = ACTIVE
1383      detail   = "entry_bg"
1384      file     = "assets/entry-background.png"
1385    }
1386
1387    image {
1388      function = FLAT_BOX
1389      state    = INSENSITIVE
1390      detail   = "entry_bg"
1391      file     = "assets/entry-background-disabled.png"
1392    }
1393
1394    image {
1395      function = FLAT_BOX
1396      detail   = "entry_bg"
1397      file     = "assets/entry-background.png"
1398    }
1399
1400    #########
1401    # Spins #
1402    #########
1403
1404    # Spin-Up LTR
1405
1406    image {
1407      function        = BOX
1408      state           = NORMAL
1409      detail          = "spinbutton_up"
1410      file            = "assets/spin-ltr-up.png"
1411      border          = {0, 8, 8, 0}
1412      stretch         = TRUE
1413      overlay_file    = "assets/pan-up-alt.png"
1414      overlay_stretch = FALSE
1415      direction       = LTR
1416    }
1417
1418    image {
1419      function        = BOX
1420      state           = PRELIGHT
1421      detail          = "spinbutton_up"
1422      file            = "assets/spin-ltr-up-hover.png"
1423      border          = {0, 8, 8, 0}
1424      stretch         = TRUE
1425      overlay_file    = "assets/pan-up.png"
1426      overlay_stretch = FALSE
1427      direction       = LTR
1428    }
1429
1430    image {
1431      function        = BOX
1432      state           = ACTIVE
1433      detail          = "spinbutton_up"
1434      file            = "assets/spin-ltr-up-active.png"
1435      border          = {0, 8, 8, 0}
1436      stretch         = TRUE
1437      overlay_file    = "assets/pan-up.png"
1438      overlay_stretch = FALSE
1439      direction       = LTR
1440    }
1441
1442    image {
1443      function        = BOX
1444      state           = INSENSITIVE
1445      detail          = "spinbutton_up"
1446      file            = "assets/spin-ltr-up-disabled.png"
1447      border          = {0, 8, 8, 0}
1448      stretch         = TRUE
1449      overlay_file    = "assets/pan-up-alt-disabled.png"
1450      overlay_stretch = FALSE
1451      direction       = LTR
1452    }
1453
1454    # Spin-Up RTL
1455
1456    image {
1457      function        = BOX
1458      state           = NORMAL
1459      detail          = "spinbutton_up"
1460      file            = "assets/spin-rtl-up.png"
1461      border          = {8, 0, 8, 0}
1462      stretch         = TRUE
1463      overlay_file    = "assets/pan-up-alt.png"
1464      overlay_stretch = FALSE
1465      direction       = RTL
1466    }
1467
1468    image {
1469      function        = BOX
1470      state           = PRELIGHT
1471      detail          = "spinbutton_up"
1472      file            = "assets/spin-rtl-up-hover.png"
1473      border          = {8, 0, 8, 0}
1474      stretch         = TRUE
1475      overlay_file    = "assets/pan-up.png"
1476      overlay_stretch = FALSE
1477      direction       = RTL
1478    }
1479
1480    image {
1481      function        = BOX
1482      state           = ACTIVE
1483      detail          = "spinbutton_up"
1484      file            = "assets/spin-rtl-up-hover.png"
1485      border          = {8, 0, 8, 0}
1486      stretch         = TRUE
1487      overlay_file    = "assets/pan-up.png"
1488      overlay_stretch = FALSE
1489      direction       = RTL
1490    }
1491
1492    image {
1493      function        = BOX
1494      state           = INSENSITIVE
1495      detail          = "spinbutton_up"
1496      file            = "assets/spin-rtl-up-disabled.png"
1497      border          = {8, 0, 8, 0}
1498      stretch         = TRUE
1499      overlay_file    = "assets/pan-up-alt-disabled.png"
1500      overlay_stretch = FALSE
1501      direction       = RTL
1502    }
1503
1504    # Spin-Down LTR
1505
1506    image {
1507      function        = BOX
1508      state           = NORMAL
1509      detail          = "spinbutton_down"
1510      file            = "assets/spin-ltr-down.png"
1511      border          = {0, 8, 0, 8}
1512      stretch         = TRUE
1513      overlay_file    = "assets/pan-down-alt.png"
1514      overlay_stretch = FALSE
1515      direction       = LTR
1516    }
1517
1518    image {
1519      function        = BOX
1520      state           = PRELIGHT
1521      detail          = "spinbutton_down"
1522      file            = "assets/spin-ltr-down-hover.png"
1523      border          = {0, 8, 0, 8}
1524      stretch         = TRUE
1525      overlay_file    = "assets/pan-down.png"
1526      overlay_stretch = FALSE
1527      direction       = LTR
1528    }
1529
1530    image {
1531      function        = BOX
1532      state           = ACTIVE
1533      detail          = "spinbutton_down"
1534      file            = "assets/spin-ltr-down-active.png"
1535      border          = {0, 8, 0, 8}
1536      stretch         = TRUE
1537      overlay_file    = "assets/pan-down.png"
1538      overlay_stretch = FALSE
1539      direction       = LTR
1540    }
1541
1542    image {
1543      function        = BOX
1544      state           = INSENSITIVE
1545      detail          = "spinbutton_down"
1546      file            = "assets/spin-ltr-down-disabled.png"
1547      border          = {0, 8, 0, 8}
1548      stretch         = TRUE
1549      overlay_file    = "assets/pan-down-alt-disabled.png"
1550      overlay_stretch = FALSE
1551      direction       = LTR
1552    }
1553
1554    # Spin-Down RTL
1555
1556    image {
1557      function        = BOX
1558      state           = NORMAL
1559      detail          = "spinbutton_down"
1560      file            = "assets/spin-rtl-down.png"
1561      border          = {8, 0, 0, 8}
1562      stretch         = TRUE
1563      overlay_file    = "assets/pan-down-alt.png"
1564      overlay_stretch = FALSE
1565      direction       = RTL
1566    }
1567
1568    image {
1569      function        = BOX
1570      state           = PRELIGHT
1571      detail          = "spinbutton_down"
1572      file            = "assets/spin-rtl-down-hover.png"
1573      border          = {8, 0, 0, 8}
1574      stretch         = TRUE
1575      overlay_file    = "assets/pan-down.png"
1576      overlay_stretch = FALSE
1577      direction       = RTL
1578    }
1579
1580    image {
1581      function        = BOX
1582      state           = ACTIVE
1583      detail          = "spinbutton_down"
1584      file            = "assets/spin-rtl-down-active.png"
1585      border          = {8, 0, 0, 8}
1586      stretch         = TRUE
1587      overlay_file    = "assets/pan-down.png"
1588      overlay_stretch = FALSE
1589      direction       = RTL
1590    }
1591
1592    image {
1593      function        = BOX
1594      state           = INSENSITIVE
1595      detail          = "spinbutton_down"
1596      file            = "assets/spin-rtl-down-disabled.png"
1597      border          = {8, 0, 0, 8}
1598      stretch         = TRUE
1599      overlay_file    = "assets/pan-down-alt-disabled.png"
1600      overlay_stretch = FALSE
1601      direction       = RTL
1602    }
1603
1604    ##############
1605    # Scrollbars #
1606    ##############
1607
1608    image {
1609      function    = BOX
1610      detail      = "bar"
1611      file        = "assets/progressbar-progress.png"
1612      stretch     = TRUE
1613      border      = {0, 0, 0, 0}
1614      orientation = HORIZONTAL
1615    }
1616
1617    image {
1618      function    = BOX
1619      detail      = "bar"
1620      file        = "assets/progressbar-progress.png"
1621      stretch     = TRUE
1622      border      = {0, 0, 0, 0}
1623      orientation = VERTICAL
1624    }
1625
1626    #############
1627    # Treeviews #
1628    #############
1629
1630    # Disable active the column highlight
1631    # We need to match specific cells or we break stuff
1632    # Looking at you deadbeef
1633
1634    image {
1635      function = FLAT_BOX
1636      detail   = "cell_even_sorted"
1637      state    = NORMAL
1638    }
1639
1640    image {
1641      function = FLAT_BOX
1642      detail   = "cell_odd_sorted"
1643      state    = NORMAL
1644    }
1645
1646    # Disable all the other shadows
1647    # This prevents the Raleigh effect
1648    image {
1649      function = SHADOW
1650    }
1651  }
1652}
1653
1654style "menubar" {
1655  bg[NORMAL]      = @titlebar_bg_color
1656  fg[NORMAL]      = mix(0.7, @titlebar_fg_color, @titlebar_bg_color)
1657  fg[PRELIGHT]    = @titlebar_fg_color
1658  fg[INSENSITIVE] = mix(0.3, @titlebar_fg_color, @titlebar_bg_color)
1659  bg[INSENSITIVE] = @bg_color
1660  # Needed to fix Firefox's menubar text
1661  bg[SELECTED]    = mix(0.12, @titlebar_fg_color, @titlebar_bg_color)
1662  fg[SELECTED]    = @titlebar_fg_color
1663}
1664
1665style "menubar_item" {
1666  xthickness = 3
1667  ythickness = 4
1668
1669  fg[NORMAL]      = mix(0.7, @titlebar_fg_color, @titlebar_bg_color)
1670  bg[PRELIGHT]    = mix(0.12, @titlebar_fg_color, @titlebar_bg_color)
1671  fg[PRELIGHT]    = @titlebar_fg_color
1672  fg[INSENSITIVE] = mix(0.3, @titlebar_fg_color, @titlebar_bg_color)
1673}
1674
1675style "menu" {
1676  xthickness = 0
1677  ythickness = 0
1678
1679  bg[NORMAL]      = @menu_color
1680  bg[INSENSITIVE] = @menu_color
1681  bg[PRELIGHT]    = @menu_color
1682  bg[SELECTED]    = mix(0.08, @fg_color, @menu_color)
1683}
1684
1685style "menu_item" {
1686  xthickness = 4
1687  ythickness = 4
1688
1689  bg[PRELIGHT]   = mix(0.08, @fg_color, @menu_color)
1690  fg[PRELIGHT]   = @fg_color
1691  # Chromium uses this setting
1692  bg[SELECTED]   = mix(0.08, @fg_color, @menu_color)
1693  text[SELECTED] = @fg_color
1694  # Some widgets use text, we need to handle that
1695  text[NORMAL]   = @fg_color
1696  text[PRELIGHT] = @fg_color
1697
1698  # Unfortunately we can't tell regular and menu checks/radios apart
1699  # Without the heirarchy
1700  engine "pixmap" {
1701
1702    #################
1703    # Check Buttons #
1704    #################
1705
1706    image {
1707      function        = CHECK
1708      state           = NORMAL
1709      shadow          = OUT
1710      overlay_file    = "assets/menu-checkbox-unchecked.png"
1711      overlay_stretch = FALSE
1712    }
1713
1714    image {
1715      function        = CHECK
1716      state           = PRELIGHT
1717      shadow          = OUT
1718      overlay_file    = "assets/menu-checkbox-unchecked.png"
1719      overlay_stretch = FALSE
1720    }
1721
1722    image {
1723      function        = CHECK
1724      state           = ACTIVE
1725      shadow          = OUT
1726      overlay_file    = "assets/menu-checkbox-unchecked.png"
1727      overlay_stretch = FALSE
1728    }
1729
1730    image {
1731      function        = CHECK
1732      state           = INSENSITIVE
1733      shadow          = OUT
1734      overlay_file    = "assets/menu-checkbox-unchecked-disabled.png"
1735      overlay_stretch = FALSE
1736    }
1737
1738    image {
1739      function        = CHECK
1740      state           = NORMAL
1741      shadow          = IN
1742      overlay_file    = "assets/menu-checkbox-checked.png"
1743      overlay_stretch = FALSE
1744    }
1745
1746    image {
1747      function        = CHECK
1748      state           = PRELIGHT
1749      shadow          = IN
1750      overlay_file    = "assets/menu-checkbox-checked.png"
1751      overlay_stretch = FALSE
1752    }
1753
1754    image {
1755      function        = CHECK
1756      state           = ACTIVE
1757      shadow          = IN
1758      overlay_file    = "assets/menu-checkbox-checked.png"
1759      overlay_stretch = FALSE
1760    }
1761
1762    image {
1763      function        = CHECK
1764      state           = INSENSITIVE
1765      shadow          = IN
1766      overlay_file    = "assets/menu-checkbox-checked-disabled.png"
1767      overlay_stretch = FALSE
1768    }
1769
1770    image {
1771      function        = CHECK
1772      state           = NORMAL
1773      shadow          = ETCHED_IN
1774      overlay_file    = "assets/menu-checkbox-mixed.png"
1775      overlay_stretch = FALSE
1776    }
1777
1778    image {
1779      function        = CHECK
1780      state           = PRELIGHT
1781      shadow          = ETCHED_IN
1782      overlay_file    = "assets/menu-checkbox-mixed.png"
1783      overlay_stretch = FALSE
1784    }
1785
1786    image {
1787      function        = CHECK
1788      state           = ACTIVE
1789      shadow          = ETCHED_IN
1790      overlay_file    = "assets/menu-checkbox-mixed.png"
1791      overlay_stretch = FALSE
1792    }
1793
1794    image {
1795      function        = CHECK
1796      state           = INSENSITIVE
1797      shadow          = ETCHED_IN
1798      overlay_file    = "assets/menu-checkbox-mixed-disabled.png"
1799      overlay_stretch = FALSE
1800    }
1801
1802    #################
1803    # Radio Buttons #
1804    #################
1805
1806    image {
1807      function        = OPTION
1808      state           = NORMAL
1809      shadow          = OUT
1810      overlay_file    = "assets/menu-radio-unchecked.png"
1811      overlay_stretch = FALSE
1812    }
1813
1814    image {
1815      function        = OPTION
1816      state           = PRELIGHT
1817      shadow          = OUT
1818      overlay_file    = "assets/menu-radio-unchecked.png"
1819      overlay_stretch = FALSE
1820    }
1821
1822    image {
1823      function        = OPTION
1824      state           = ACTIVE
1825      shadow          = OUT
1826      overlay_file    = "assets/menu-radio-unchecked.png"
1827      overlay_stretch = FALSE
1828    }
1829
1830    image {
1831      function        = OPTION
1832      state           = INSENSITIVE
1833      shadow          = OUT
1834      overlay_file    = "assets/menu-radio-unchecked-disabled.png"
1835      overlay_stretch = FALSE
1836    }
1837
1838    image {
1839      function        = OPTION
1840      state           = NORMAL
1841      shadow          = IN
1842      overlay_file    = "assets/menu-radio-checked.png"
1843      overlay_stretch = FALSE
1844    }
1845
1846    image {
1847      function        = OPTION
1848      state           = PRELIGHT
1849      shadow          = IN
1850      overlay_file    = "assets/menu-radio-checked.png"
1851      overlay_stretch = FALSE
1852    }
1853
1854    image {
1855      function        = OPTION
1856      state           = ACTIVE
1857      shadow          = IN
1858      overlay_file    = "assets/menu-radio-checked.png"
1859      overlay_stretch = FALSE
1860    }
1861
1862    image {
1863      function        = OPTION
1864      state           = INSENSITIVE
1865      shadow          = IN
1866      overlay_file    = "assets/menu-radio-checked-disabled.png"
1867      overlay_stretch = FALSE
1868    }
1869
1870    image {
1871      function        = OPTION
1872      state           = NORMAL
1873      shadow          = ETCHED_IN
1874      overlay_file    = "assets/menu-radio-mixed.png"
1875      overlay_stretch = FALSE
1876    }
1877
1878    image {
1879      function        = OPTION
1880      state           = PRELIGHT
1881      shadow          = ETCHED_IN
1882      overlay_file    = "assets/menu-radio-mixed.png"
1883      overlay_stretch = FALSE
1884    }
1885
1886    image {
1887      function        = OPTION
1888      state           = ACTIVE
1889      shadow          = ETCHED_IN
1890      overlay_file    = "assets/menu-radio-mixed.png"
1891      overlay_stretch = FALSE
1892    }
1893
1894    image {
1895      function        = OPTION
1896      state           = INSENSITIVE
1897      shadow          = ETCHED_IN
1898      overlay_file    = "assets/menu-radio-mixed-disabled.png"
1899      overlay_stretch = FALSE
1900    }
1901  }
1902}
1903
1904style "separator_menu_item" {
1905  xthickness = 0
1906  ythickness = 2
1907
1908  engine "pixmap" {
1909    image {
1910      function = BOX
1911      file     = "assets/border.png"
1912      border   = {0, 0, 0, 1}
1913    }
1914  }
1915}
1916
1917style "button_label" {
1918  # fg[NORMAL] = mix(0.7, @fg_color, @bg_color)
1919  # fg[INSENSITIVE] = mix(0.3, @fg_color, @bg_color)
1920
1921  font_name = "Medium"
1922}
1923
1924style "normal_button_label" {
1925  # fg[NORMAL] = @fg_color
1926  # fg[INSENSITIVE] = mix(0.5, @fg_color, @bg_color)
1927
1928  font_name = "Regular"
1929}
1930
1931style "button" {
1932  xthickness = 6
1933  ythickness = 6
1934
1935  # For the sake of sanity style buttons this way
1936  engine "pixmap" {
1937
1938    ###########
1939    # Buttons #
1940    ###########
1941
1942    image {
1943      function = BOX
1944      state    = NORMAL
1945      file     = "assets/button.png"
1946      border   = {6, 6, 6, 6}
1947      stretch  = TRUE
1948    }
1949
1950    image {
1951      function = BOX
1952      state    = PRELIGHT
1953      shadow   = OUT
1954      file     = "assets/button-hover.png"
1955      border   = {6, 6, 6, 6}
1956      stretch  = TRUE
1957    }
1958
1959    # Don't add hover effect on pressed buttons
1960    image {
1961      function = BOX
1962      state    = PRELIGHT
1963      shadow   = IN
1964      file     = "assets/button-active.png"
1965      border   = {6, 6, 6, 6}
1966      stretch  = TRUE
1967    }
1968
1969    image {
1970      function = BOX
1971      state    = ACTIVE
1972      file     = "assets/button-active.png"
1973      border   = {6, 6, 6, 6}
1974      stretch  = TRUE
1975    }
1976
1977    image {
1978      function = BOX
1979      state    = INSENSITIVE
1980      file     = "assets/button-disabled.png"
1981      border   = {6, 6, 6, 6}
1982      stretch  = TRUE
1983    }
1984  }
1985}
1986
1987style "link_button" {
1988  # Disable the button effect, leave just the link
1989  engine "pixmap" {
1990    image {
1991      function = BOX
1992    }
1993  }
1994}
1995
1996style "entry" {
1997  base[NORMAL]      = @bg_color
1998  base[SELECTED]    = mix (0.24, @selected_bg_color, @bg_color)
1999  base[INSENSITIVE] = @bg_color
2000  base[ACTIVE]      = mix (0.24, @selected_bg_color, @bg_color)
2001
2002  # We set this same as the border of the border of the entry
2003  # This way there's no overlap
2004  xthickness = 6
2005  ythickness = 6
2006}
2007
2008style "combobox" {
2009  xthickness = 6
2010  ythickness = 6
2011
2012  # This affects only the button beside an entry
2013  GtkButton::inner-border = {0, 0, 0, 0}
2014
2015  # For the sake of sanity style buttons this way
2016  engine "pixmap" {
2017
2018    ###########
2019    # Buttons #
2020    ###########
2021
2022    image {
2023      function = BOX
2024      state    = NORMAL
2025      file     = "assets/entry.png"
2026      border   = {6, 6, 6, 6}
2027      stretch  = TRUE
2028    }
2029
2030    image {
2031      function = BOX
2032      state    = PRELIGHT
2033      file     = "assets/entry-hover.png"
2034      border   = {6, 6, 6, 6}
2035      stretch  = TRUE
2036    }
2037
2038    image {
2039      function = BOX
2040      state    = ACTIVE
2041      file     = "assets/entry-active.png"
2042      border   = {6, 6, 6, 6}
2043      stretch  = TRUE
2044    }
2045
2046    image {
2047      function = BOX
2048      state    = INSENSITIVE
2049      file     = "assets/entry-disabled.png"
2050      border   = {6, 6, 6, 6}
2051      stretch  = TRUE
2052    }
2053  }
2054}
2055
2056style "combobox_cellview" {
2057  # text[NORMAL] = mix(0.7, @fg_color, @bg_color)
2058  # text[INSENSITIVE] = mix(0.3, @fg_color, @bg_color)
2059}
2060
2061style "combobox_entry" {
2062  # Since one side of the button is missing, we need to shift the arrow a little to the right
2063  GtkButton::inner-border = {0, 2, 0, 0}
2064
2065  base[NORMAL] = @base_color
2066  base[ACTIVE] = @base_color
2067
2068  engine "pixmap" {
2069
2070    #############
2071    # LTR entry #
2072    #############
2073
2074    image {
2075      function  = SHADOW
2076      state     = NORMAL
2077      detail    = "entry"
2078      file      = "assets/combo-left-entry.png"
2079      border    = {6, 6, 6, 6}
2080      stretch   = TRUE
2081      direction = LTR
2082    }
2083
2084    image {
2085      function  = SHADOW
2086      state     = ACTIVE
2087      detail    = "entry"
2088      file      = "assets/combo-left-entry-active.png"
2089      border    = {6, 6, 6, 6}
2090      stretch   = TRUE
2091      direction = LTR
2092    }
2093
2094    image {
2095      function  = SHADOW
2096      state     = INSENSITIVE
2097      detail    = "entry"
2098      file      = "assets/combo-left-entry-disabled.png"
2099      border    = {6, 6, 6, 6}
2100      stretch   = TRUE
2101      direction = LTR
2102    }
2103
2104    #############
2105    # RTL entry #
2106    #############
2107
2108    image {
2109      function  = SHADOW
2110      state     = NORMAL
2111      detail    = "entry"
2112      file      = "assets/combo-right-entry.png"
2113      border    = {6, 6, 6, 6}
2114      stretch   = TRUE
2115      direction = RTL
2116    }
2117
2118    image {
2119      function  = SHADOW
2120      state     = ACTIVE
2121      detail    = "entry"
2122      file      = "assets/combo-right-entry-active.png"
2123      border    = {6, 6, 6, 6}
2124      stretch   = TRUE
2125      direction = RTL
2126    }
2127
2128    image {
2129      function  = SHADOW
2130      state     = INSENSITIVE
2131      detail    = "entry"
2132      file      = "assets/combo-right-entry-disabled.png"
2133      border    = {6, 6, 6, 6}
2134      stretch   = TRUE
2135      direction = RTL
2136    }
2137
2138    ##############
2139    # LTR button #
2140    ##############
2141
2142    image {
2143      function  = BOX
2144      state     = NORMAL
2145      detail    = "button"
2146      file      = "assets/combo-right-entry.png"
2147      border    = {0, 6, 6, 6}
2148      stretch   = TRUE
2149      direction = LTR
2150    }
2151
2152    image {
2153      function  = BOX
2154      state     = PRELIGHT
2155      detail    = "button"
2156      file      = "assets/combo-right-entry-hover.png"
2157      border    = {0, 6, 6, 6}
2158      stretch   = TRUE
2159      direction = LTR
2160    }
2161
2162    image {
2163      function  = BOX
2164      state     = ACTIVE
2165      detail    = "button"
2166      file      = "assets/combo-right-entry-active.png"
2167      border    = {0, 6, 6, 6}
2168      stretch   = TRUE
2169      direction = LTR
2170    }
2171
2172    image {
2173      function  = BOX
2174      state     = INSENSITIVE
2175      detail    = "button"
2176      file      = "assets/combo-right-entry-disabled.png"
2177      border    = {0, 6, 6, 6}
2178      stretch   = TRUE
2179      direction = LTR
2180    }
2181
2182    ##############
2183    # RTL button #
2184    ##############
2185
2186    image {
2187      function  = BOX
2188      state     = NORMAL
2189      detail    = "button"
2190      file      = "assets/combo-left-entry.png"
2191      border    = {6, 0, 6, 6}
2192      stretch   = TRUE
2193      direction = RTL
2194    }
2195
2196    image {
2197      function  = BOX
2198      state     = PRELIGHT
2199      detail    = "button"
2200      file      = "assets/combo-left-entry-hover.png"
2201      border    = {6, 0, 6, 6}
2202      stretch   = TRUE
2203      direction = RTL
2204    }
2205
2206    image {
2207      function  = BOX
2208      state     = ACTIVE
2209      detail    = "button"
2210      file      = "assets/combo-left-entry-active.png"
2211      border    = {6, 0, 6, 6}
2212      stretch   = TRUE
2213      direction = RTL
2214    }
2215
2216    image {
2217      function  = BOX
2218      state     = INSENSITIVE
2219      detail    = "button"
2220      file      = "assets/combo-left-entry-disabled.png"
2221      border    = {6, 0, 6, 6}
2222      stretch   = TRUE
2223      direction = RTL
2224    }
2225  }
2226}
2227
2228style "combo_button_padding" {
2229  # Since one side of the button is missing, we need to shift the arrow a
2230  # little to the right.
2231  # This is the same thing we've done above but the combo, unlike the combobox,
2232  # uses padding the same way as a button.
2233  GtkButton::inner-border = {3, 6, 3, 3}
2234}
2235
2236style "notebook" {
2237  xthickness = 3
2238  ythickness = 3
2239  bg[NORMAL] = @base_color
2240}
2241
2242style "notebook_tab_label" {
2243  fg[ACTIVE] = mix(0.7, @fg_color, @bg_color)
2244
2245  font_name = "Medium"
2246}
2247
2248style "notebook_viewport" {
2249  bg[NORMAL] = @base_color
2250}
2251
2252style "notebook_bg" {
2253  bg[NORMAL]      = @base_color
2254  bg[PRELIGHT]    = @base_color
2255  bg[INSENSITIVE] = @base_color
2256}
2257
2258style "notebook_entry" {
2259  base[NORMAL]      = @base_color
2260  base[SELECTED]    = mix (0.24, @selected_bg_color, @base_color)
2261  base[INSENSITIVE] = @base_color
2262  base[ACTIVE]      = mix (0.24, @selected_bg_color, @base_color)
2263}
2264
2265style "normal_bg" {
2266  bg[NORMAL]      = @bg_color
2267  bg[PRELIGHT]    = @bg_color
2268  bg[INSENSITIVE] = @bg_color
2269}
2270
2271style "normal_entry" {
2272  base[NORMAL]      = @bg_color
2273  base[SELECTED]    = mix (0.24, @selected_bg_color, @bg_color)
2274  base[INSENSITIVE] = @bg_color
2275  base[ACTIVE]      = mix (0.24, @selected_bg_color, @bg_color)
2276}
2277
2278style "textview" {
2279  bg[NORMAL] = @base_color
2280}
2281
2282style "scale_horz" {
2283  engine "pixmap" {
2284    image {
2285      function    = BOX
2286      detail      = "trough-upper"
2287      file        = "assets/scale-horz-trough.png"
2288      border      = {6, 6, 0, 0}
2289      stretch     = TRUE
2290    }
2291
2292    image {
2293      function    = BOX
2294      detail      = "trough-lower"
2295      file        = "assets/scale-horz-trough-active.png"
2296      border      = {6, 6, 0, 0}
2297      stretch     = TRUE
2298    }
2299  }
2300}
2301
2302style "scale_vert" {
2303  engine "pixmap" {
2304    image {
2305      function    = BOX
2306      detail      = "trough-upper"
2307      file        = "assets/scale-vert-trough.png"
2308      border      = {0, 0, 6, 6}
2309      stretch     = TRUE
2310    }
2311
2312    image {
2313      function    = BOX
2314      detail      = "trough-lower"
2315      file        = "assets/scale-vert-trough-active.png"
2316      border      = {0, 0, 6, 6}
2317      stretch     = TRUE
2318    }
2319  }
2320}
2321
2322style "progressbar" {
2323  xthickness = 0
2324  ythickness = 0
2325
2326  fg[PRELIGHT] = @selected_fg_color
2327
2328  engine "pixmap" {
2329    image {
2330      function    = BOX
2331      detail      = "trough"
2332      file        = "assets/progressbar-trough.png"
2333      border      = {0, 0, 0, 0}
2334      stretch     = TRUE
2335      orientation = HORIZONTAL
2336    }
2337
2338    image {
2339      function    = BOX
2340      detail      = "trough"
2341      file        = "assets/progressbar-trough.png"
2342      border      = {0, 0, 0, 0}
2343      stretch     = TRUE
2344      orientation = VERTICAL
2345    }
2346  }
2347}
2348
2349style "treeview_header" {
2350  xthickness = 2
2351  ythickness = 2
2352
2353  fg[NORMAL]   = mix(0.7, @fg_color, @base_color)
2354  fg[PRELIGHT] = @fg_color
2355
2356  font_name = "Medium"
2357
2358  GtkButton::inner-border = {4, 4, 0, 2}
2359
2360  engine "pixmap" {
2361    image {
2362      function  = BOX
2363      state     = NORMAL
2364      file      = "assets/treeview-ltr-button.png"
2365      border    = {0, 1, 0, 1}
2366      stretch   = TRUE
2367      direction = LTR
2368    }
2369
2370    image {
2371      function  = BOX
2372      state     = PRELIGHT
2373      file      = "assets/treeview-ltr-button-hover.png"
2374      border    = {0, 1, 0, 1}
2375      stretch   = TRUE
2376      direction = LTR
2377    }
2378
2379    image {
2380      function  = BOX
2381      state     = ACTIVE
2382      file      = "assets/treeview-ltr-button-active.png"
2383      border    = {0, 1, 0, 1}
2384      stretch   = TRUE
2385      direction = LTR
2386    }
2387
2388    image {
2389      function  = BOX
2390      state     = NORMAL
2391      file      = "assets/treeview-rtl-button.png"
2392      border    = {1, 0, 0, 1}
2393      stretch   = TRUE
2394      direction = RTL
2395    }
2396
2397    image {
2398      function  = BOX
2399      state     = PRELIGHT
2400      file      = "assets/treeview-rtl-button-hover.png"
2401      border    = {1, 0, 0, 1}
2402      stretch   = TRUE
2403      direction = RTL
2404    }
2405
2406    image {
2407      function  = BOX
2408      state     = ACTIVE
2409      file      = "assets/treeview-rtl-button-active.png"
2410      border    = {1, 0, 0, 1}
2411      stretch   = TRUE
2412      direction = RTL
2413    }
2414
2415    image {
2416      function        = ARROW
2417      state           = NORMAL
2418      overlay_file    = "assets/pan-up-alt.png"
2419      overlay_stretch = FALSE
2420      arrow_direction = UP
2421    }
2422
2423    image {
2424      function        = ARROW
2425      state           = PRELIGHT
2426      overlay_file    = "assets/pan-up.png"
2427      overlay_stretch = FALSE
2428      arrow_direction = UP
2429    }
2430
2431    image {
2432      function        = ARROW
2433      state           = ACTIVE
2434      overlay_file    = "assets/pan-up.png"
2435      overlay_stretch = FALSE
2436      arrow_direction = UP
2437    }
2438
2439    image {
2440      function        = ARROW
2441      state           = NORMAL
2442      overlay_file    = "assets/pan-down-alt.png"
2443      overlay_stretch = FALSE
2444      arrow_direction = DOWN
2445    }
2446
2447    image {
2448      function        = ARROW
2449      state           = PRELIGHT
2450      overlay_file    = "assets/pan-down.png"
2451      overlay_stretch = FALSE
2452      arrow_direction = DOWN
2453    }
2454
2455    image {
2456      function        = ARROW
2457      state           = ACTIVE
2458      overlay_file    = "assets/pan-down.png"
2459      overlay_stretch = FALSE
2460      arrow_direction = DOWN
2461    }
2462  }
2463}
2464
2465style "scrolled_window" {
2466  engine "pixmap" {
2467    image {
2468      function = SHADOW
2469      file     = "assets/frame.png"
2470      border   = {1, 1, 1, 1}
2471      stretch  = TRUE
2472    }
2473  }
2474}
2475
2476style "frame" {
2477  engine "pixmap" {
2478    image {
2479      function = SHADOW
2480      shadow   = NONE
2481    }
2482
2483    image {
2484      function = SHADOW
2485      file     = "assets/frame.png"
2486      border   = {1, 1, 1, 1}
2487      stretch  = TRUE
2488    }
2489
2490    image {
2491      function       = SHADOW_GAP
2492      file           = "assets/frame.png"
2493      border         = {1, 1, 1, 1}
2494      stretch        = TRUE
2495      gap_start_file = "assets/border.png"
2496      gap_end_file   = "assets/border.png"
2497    }
2498  }
2499}
2500
2501style "tool_button" {
2502  GtkButton::inner-border = {2, 2, 2, 2}
2503
2504  # For the sake of sanity style buttons this way
2505  engine "pixmap" {
2506    image {
2507      function = BOX
2508      state    = NORMAL
2509      file     = "assets/flat-button.png"
2510      border   = {6, 6, 6, 6}
2511      stretch  = TRUE
2512    }
2513
2514    image {
2515      function = BOX
2516      state    = PRELIGHT
2517      shadow   = OUT
2518      file     = "assets/flat-button-hover.png"
2519      border   = {6, 6, 6, 6}
2520      stretch  = TRUE
2521    }
2522
2523    # Don't add hover effect on pressed buttons
2524    image {
2525      function = BOX
2526      state    = PRELIGHT
2527      shadow   = IN
2528      file     = "assets/flat-button-active.png"
2529      border   = {6, 6, 6, 6}
2530      stretch  = TRUE
2531    }
2532
2533    image {
2534      function = BOX
2535      state    = ACTIVE
2536      file     = "assets/flat-button-active.png"
2537      border   = {6, 6, 6, 6}
2538      stretch  = TRUE
2539    }
2540
2541    image {
2542      function = BOX
2543      state    = INSENSITIVE
2544      shadow   = OUT
2545      file     = "assets/flat-button-disabled.png"
2546      border   = {6, 6, 6, 6}
2547      stretch  = TRUE
2548    }
2549
2550    image {
2551      function = BOX
2552      state    = INSENSITIVE
2553      shadow   = IN
2554      file     = "assets/button-disabled.png"
2555      border   = {6, 6, 6, 6}
2556      stretch  = TRUE
2557    }
2558  }
2559}
2560
2561style "toolbar_separator" {
2562  GtkWidget::wide-separators  = 1
2563  GtkWidget::separator-width  = 1
2564  GtkWidget::separator-height = 1
2565
2566  engine "pixmap" {
2567    image {
2568      function = BOX
2569      file     = "assets/border.png"
2570    }
2571  }
2572}
2573
2574style "inline_toolbar" {
2575  # GtkToolbar::button-relief = GTK_RELIEF_NORMAL
2576  bg[NORMAL]   = @base_color
2577
2578  engine "pixmap" {
2579    image {
2580      function = BOX
2581      file     = "assets/frame-inline.png"
2582      border   = {1, 1, 0, 1}
2583      stretch  = TRUE
2584    }
2585  }
2586}
2587
2588style "tooltip" {
2589  xthickness = 8
2590  ythickness = 8
2591
2592  bg[NORMAL]   = @tooltip_bg_color
2593  fg[NORMAL]   = @tooltip_fg_color
2594  bg[SELECTED] = @tooltip_bg_color
2595}
2596
2597style "disable_text_shadow" {
2598  engine "murrine" {
2599    textstyle = 0
2600  }
2601}
2602
2603style "disable_separator" {
2604  xthickness = 0
2605  ythickness = 0
2606
2607  GtkWidget::wide-separators = 1
2608}
2609
2610# Default style, containing theme properties and trying to match every widget as
2611# much as possible, which is not only faster than trying to match every widget
2612# by its own but also less bug-prune and more consistent. However there is some
2613# widget specific stuff that needs to be taken care of, which is the point of
2614# every other style below.
2615class "GtkWidget" style "default"
2616
2617######################################
2618# Override padding, style and colour #
2619######################################
2620
2621class "GtkButton"                                                  style "button"
2622class "GtkLinkButton"                                              style "link_button"
2623class "GtkEntry"                                                   style "entry"
2624class "GtkOldEditable"                                             style "entry"
2625class "GtkNotebook"                                                style "notebook"
2626class "GtkHScale"                                                  style "scale_horz"
2627class "GtkVScale"                                                  style "scale_vert"
2628class "GtkProgressBar"                                             style "progressbar"
2629class "GtkScrolledWindow"                                          style "scrolled_window"
2630class "GtkFrame"                                                   style "frame"
2631class "GtkSeparatorToolItem"                                       style "toolbar_separator"
2632class "GtkMenuBar"                                                 style "menubar"
2633class "GtkMenu"                                                    style "menu"
2634class "GtkTextView"                                                style "textview"
2635
2636# Menu and menubar items
2637widget_class "*<GtkMenuItem>*"                                     style "menu_item"
2638widget_class "*<GtkMenuBar>.<GtkMenuItem>*"                        style "menubar_item"
2639widget_class "*<GtkSeparatorMenuItem>*"                            style "separator_menu_item"
2640
2641# Treeview buttons
2642widget_class "*<GtkTreeView>*<GtkButton>*"                         style "treeview_header"
2643
2644# Give the file chooser toolbar a border
2645widget_class "*<GtkFileChooserDefault>*<GtkToolbar>"               style "inline_toolbar"
2646
2647# Fix padding on regular comboboxes
2648widget_class "*<GtkComboBox>.<GtkButton>"                          style "combobox"
2649widget_class "*<GtkOptionMenu>"                                    style "combobox"
2650
2651# And disable separators on them
2652widget_class "*<GtkComboBox>.<GtkButton>*<GtkSeparator>"           style "disable_separator"
2653widget_class "*<GtkFontButton>*<GtkSeparator>"                     style "disable_separator"
2654widget_class "*<GtkFileChooserButton>*<GtkSeparator>"              style "disable_separator"
2655
2656# Join together the ComboBoxEntry entry and button
2657widget_class "*<GtkComboBoxEntry>*"                                style "combobox_entry"
2658
2659# Join the Combo entry and button
2660widget_class "*<GtkCombo>*"                                        style "combobox_entry"
2661
2662# Tweak the padding on the button a little bit because it
2663# uses it a bit differently
2664widget_class "*<GtkCombo>.<GtkButton>"                             style "combo_button_padding"
2665
2666# Alas we cannot do the same for ComboBoxText because there
2667# isn't a way to apply the style to only the comboboxes that
2668# have an entry inside
2669
2670# Tool buttons have different styles
2671widget_class "*<GtkToolButton>*<GtkButton>"                        style "tool_button"
2672widget_class "*<GtkVBox>*<GtkEventBox>.<GtkToolbar>*<GtkButton>"   style "tool_button"
2673
2674# Notebooks
2675widget_class "*<GtkNotebook>.<GtkLabel>"                           style "notebook_tab_label"
2676widget_class "*<GtkNotebook>.<GtkHBox>.<GtkLabel>"                 style "notebook_tab_label"
2677
2678# Notebooks are white, act accordingly
2679widget_class "*<GtkNotebook>*<GtkEntry>"                           style "notebook_entry"
2680widget_class "*<GtkNotebook>*<GtkProgressBar>"                     style "notebook_bg"
2681widget_class "*<GtkNotebook>*<GtkSpinButton>"                      style "notebook_bg"
2682widget_class "*<GtkNotebook>*<GtkScrolledWindow>*<GtkViewport>"    style "notebook_bg"
2683widget_class "*<GtkNotebook>*<GimpRuler>"                          style "notebook_bg"
2684widget_class "*<GtkNotebook>.<GimpDisplayShell>*<GtkEventBox>"     style "notebook_bg"
2685
2686# However, stuff inside eventboxes inside notebooks is grey
2687# again, react
2688widget_class "*<GtkNotebook>*<GtkEventBox>*<GtkEntry>"             style "normal_entry"
2689widget_class "*<GtkNotebook>*<GtkEventBox>*<GtkProgressBar>"       style "normal_bg"
2690widget_class "*<GtkNotebook>*<GtkEventBox>*<GtkSpinButton>"        style "normal_bg"
2691
2692# Button labels
2693widget_class "*<GtkButton>.<GtkLabel>"                             style "button_label"
2694
2695# Normalize button labels
2696widget_class "*<GtkCheckButton>.<GtkLabel>"                        style "normal_button_label"
2697widget_class "*<GtkOptionMenu>.<GtkLabel>"                         style "normal_button_label"
2698
2699# ComboBoxes tend to draw the button label with text[]
2700# instead of fg[], we need to fix that
2701widget_class "*<GtkComboBox>*<GtkCellView>"                        style "combobox_cellview"
2702
2703# Disable white text shadows
2704widget_class "*<GtkLabel>"                                         style "disable_text_shadow"
2705widget_class "*<GtkCellView>"                                      style "disable_text_shadow"
2706
2707# GTK tooltips
2708widget "gtk-tooltip*"                                              style "tooltip"
2709