dont destroy the match pattern, it seems that Xft holds onto the pointer
[mikachu/openbox.git] / render / theme.h
1 #ifndef __theme_h
2 #define __theme_h
3
4 #include "render.h"
5
6 typedef struct _RrTheme RrTheme;
7
8 struct _RrTheme {
9     gchar *name;
10
11     const RrInstance *inst;
12
13     /* style settings - geometry */
14     gint bevel;
15     gint handle_height;
16     gint bwidth;
17     gint cbwidth;
18     gint label_height;
19     gint title_height;
20     gint button_size;
21     gint grip_width;
22
23     /* style settings - colors */
24     RrColor *b_color;
25     RrColor *cb_focused_color;
26     RrColor *cb_unfocused_color;
27     RrColor *title_focused_color;
28     RrColor *title_unfocused_color;
29     RrColor *titlebut_focused_color;
30     RrColor *titlebut_unfocused_color;
31     RrColor *menu_title_color;
32     RrColor *menu_color;
33     RrColor *menu_disabled_color;
34     RrColor *menu_hilite_color;
35
36     /* style settings - fonts */
37     gint winfont_height;
38     RrFont *winfont;
39     gint mtitlefont_height;
40     RrFont *mtitlefont;
41     gint mfont_height;
42     RrFont *mfont;
43
44     /* style settings - title layout */
45     gchar *title_layout;
46
47     /* style settings - masks */
48     RrPixmapMask *max_set_mask;
49     RrPixmapMask *max_unset_mask;
50     RrPixmapMask *iconify_mask;
51     RrPixmapMask *desk_set_mask;
52     RrPixmapMask *desk_unset_mask;
53     RrPixmapMask *shade_set_mask;
54     RrPixmapMask *shade_unset_mask;
55     RrPixmapMask *close_mask;
56
57     /* global appearances */
58     RrAppearance *a_focused_unpressed_max;
59     RrAppearance *a_focused_pressed_max;
60     RrAppearance *a_focused_pressed_set_max;
61     RrAppearance *a_unfocused_unpressed_max;
62     RrAppearance *a_unfocused_pressed_max;
63     RrAppearance *a_unfocused_pressed_set_max;
64     RrAppearance *a_focused_unpressed_close;
65     RrAppearance *a_focused_pressed_close;
66     RrAppearance *a_unfocused_unpressed_close;
67     RrAppearance *a_unfocused_pressed_close;
68     RrAppearance *a_focused_unpressed_desk;
69     RrAppearance *a_focused_pressed_desk;
70     RrAppearance *a_focused_pressed_set_desk;
71     RrAppearance *a_unfocused_unpressed_desk;
72     RrAppearance *a_unfocused_pressed_desk;
73     RrAppearance *a_unfocused_pressed_set_desk;
74     RrAppearance *a_focused_unpressed_shade;
75     RrAppearance *a_focused_pressed_shade;
76     RrAppearance *a_focused_pressed_set_shade;
77     RrAppearance *a_unfocused_unpressed_shade;
78     RrAppearance *a_unfocused_pressed_shade;
79     RrAppearance *a_unfocused_pressed_set_shade;
80     RrAppearance *a_focused_unpressed_iconify;
81     RrAppearance *a_focused_pressed_iconify;
82     RrAppearance *a_unfocused_unpressed_iconify;
83     RrAppearance *a_unfocused_pressed_iconify;
84     RrAppearance *a_focused_grip;
85     RrAppearance *a_unfocused_grip;
86     RrAppearance *a_focused_title;
87     RrAppearance *a_unfocused_title;
88     RrAppearance *a_focused_label;
89     RrAppearance *a_unfocused_label;
90     /* always parentrelative, so no focused/unfocused */
91     RrAppearance *a_icon;
92     RrAppearance *a_focused_handle;
93     RrAppearance *a_unfocused_handle;
94     RrAppearance *a_menu_title;
95     RrAppearance *a_menu;
96     RrAppearance *a_menu_item;
97     RrAppearance *a_menu_disabled;
98     RrAppearance *a_menu_hilite;
99
100     RrAppearance *app_hilite_bg;
101     RrAppearance *app_unhilite_bg;
102     RrAppearance *app_hilite_label;
103     RrAppearance *app_unhilite_label;
104     RrAppearance *app_icon;
105 };
106
107 RrTheme *RrThemeNew(const RrInstance *inst, gchar *theme);
108 void RrThemeFree(RrTheme *theme);
109
110 #endif