]> icculus.org git repositories - dana/openbox.git/blob - render/theme.h
look in ~/.themes for themes also
[dana/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 *path;
10     gchar *name;
11
12     const RrInstance *inst;
13
14     /* style settings - optional decor */
15     gboolean show_handle;
16
17     /* style settings - geometry */
18     gint padding;
19     gint handle_height;
20     gint bwidth;
21     gint cbwidth;
22     gint label_height;
23     gint title_height;
24     gint button_size;
25     gint grip_width;
26     gint menu_overlap;
27
28     /* style settings - colors */
29     RrColor *b_color;
30     RrColor *cb_focused_color;
31     RrColor *cb_unfocused_color;
32     RrColor *title_focused_color;
33     RrColor *title_unfocused_color;
34     RrColor *titlebut_disabled_focused_color;
35     RrColor *titlebut_disabled_unfocused_color;
36     RrColor *titlebut_hover_focused_color;
37     RrColor *titlebut_hover_unfocused_color;
38     RrColor *titlebut_toggled_focused_color;
39     RrColor *titlebut_toggled_unfocused_color;
40     RrColor *titlebut_focused_pressed_color;
41     RrColor *titlebut_unfocused_pressed_color;
42     RrColor *titlebut_focused_unpressed_color;
43     RrColor *titlebut_unfocused_unpressed_color;
44     RrColor *menu_title_color;
45     RrColor *menu_color;
46     RrColor *menu_disabled_color;
47     RrColor *menu_selected_color;
48
49     /* style settings - fonts */
50     gint winfont_height;
51     RrFont *winfont_focused;
52     RrFont *winfont_unfocused;
53     gint mtitlefont_height;
54     RrFont *mtitlefont;
55     gint mfont_height;
56     RrFont *mfont;
57
58     /* style settings - pics */
59     RrPixel32 *def_win_icon; /* 48x48 RGBA */
60
61     /* style settings - masks */
62     RrPixmapMask *max_mask;
63     RrPixmapMask *max_toggled_mask;
64     RrPixmapMask *max_hover_mask;
65     RrPixmapMask *max_disabled_mask;
66     RrPixmapMask *max_pressed_mask;
67     RrPixmapMask *iconify_mask;
68     RrPixmapMask *iconify_hover_mask;
69     RrPixmapMask *iconify_disabled_mask;
70     RrPixmapMask *iconify_pressed_mask;
71     RrPixmapMask *desk_mask;
72     RrPixmapMask *desk_toggled_mask;
73     RrPixmapMask *desk_hover_mask;
74     RrPixmapMask *desk_disabled_mask;
75     RrPixmapMask *desk_pressed_mask;
76     RrPixmapMask *shade_mask;
77     RrPixmapMask *shade_toggled_mask;
78     RrPixmapMask *shade_hover_mask;
79     RrPixmapMask *shade_disabled_mask;
80     RrPixmapMask *shade_pressed_mask;
81     RrPixmapMask *close_mask;
82     RrPixmapMask *close_hover_mask;
83     RrPixmapMask *close_disabled_mask;
84     RrPixmapMask *close_pressed_mask;
85
86     RrPixmapMask *menu_bullet_mask; /* submenu pointer */
87     RrPixmapMask *menu_toggle_mask; /* menu boolean */
88
89     /* global appearances */
90     RrAppearance *a_disabled_focused_max;
91     RrAppearance *a_disabled_unfocused_max;
92     RrAppearance *a_hover_focused_max;
93     RrAppearance *a_hover_unfocused_max;
94     RrAppearance *a_toggled_focused_max;
95     RrAppearance *a_toggled_unfocused_max;
96     RrAppearance *a_focused_unpressed_max;
97     RrAppearance *a_focused_pressed_max;
98     RrAppearance *a_unfocused_unpressed_max;
99     RrAppearance *a_unfocused_pressed_max;
100     RrAppearance *a_disabled_focused_close;
101     RrAppearance *a_disabled_unfocused_close;
102     RrAppearance *a_hover_focused_close;
103     RrAppearance *a_hover_unfocused_close;
104     RrAppearance *a_focused_unpressed_close;
105     RrAppearance *a_focused_pressed_close;
106     RrAppearance *a_unfocused_unpressed_close;
107     RrAppearance *a_unfocused_pressed_close;
108     RrAppearance *a_disabled_focused_desk;
109     RrAppearance *a_disabled_unfocused_desk;
110     RrAppearance *a_hover_focused_desk;
111     RrAppearance *a_hover_unfocused_desk;
112     RrAppearance *a_toggled_focused_desk;
113     RrAppearance *a_toggled_unfocused_desk;
114     RrAppearance *a_focused_unpressed_desk;
115     RrAppearance *a_focused_pressed_desk;
116     RrAppearance *a_unfocused_unpressed_desk;
117     RrAppearance *a_unfocused_pressed_desk;
118     RrAppearance *a_disabled_focused_shade;
119     RrAppearance *a_disabled_unfocused_shade;
120     RrAppearance *a_hover_focused_shade;
121     RrAppearance *a_hover_unfocused_shade;
122     RrAppearance *a_toggled_focused_shade;
123     RrAppearance *a_toggled_unfocused_shade;
124     RrAppearance *a_focused_unpressed_shade;
125     RrAppearance *a_focused_pressed_shade;
126     RrAppearance *a_unfocused_unpressed_shade;
127     RrAppearance *a_unfocused_pressed_shade;
128     RrAppearance *a_disabled_focused_iconify;
129     RrAppearance *a_disabled_unfocused_iconify;
130     RrAppearance *a_hover_focused_iconify;
131     RrAppearance *a_hover_unfocused_iconify;
132     RrAppearance *a_focused_unpressed_iconify;
133     RrAppearance *a_focused_pressed_iconify;
134     RrAppearance *a_unfocused_unpressed_iconify;
135     RrAppearance *a_unfocused_pressed_iconify;
136     RrAppearance *a_focused_grip;
137     RrAppearance *a_unfocused_grip;
138     RrAppearance *a_focused_title;
139     RrAppearance *a_unfocused_title;
140     RrAppearance *a_focused_label;
141     RrAppearance *a_unfocused_label;
142     /* always parentrelative, so no focused/unfocused */
143     RrAppearance *a_icon;
144     RrAppearance *a_focused_handle;
145     RrAppearance *a_unfocused_handle;
146     RrAppearance *a_menu_title;
147     RrAppearance *a_menu;
148     RrAppearance *a_menu_normal;
149     RrAppearance *a_menu_disabled;
150     RrAppearance *a_menu_selected;
151     RrAppearance *a_menu_text_normal;
152     RrAppearance *a_menu_text_disabled;
153     RrAppearance *a_menu_text_selected;
154     RrAppearance *a_menu_bullet_normal;
155     RrAppearance *a_menu_bullet_selected;
156     RrAppearance *a_clear;     /* clear with no texture */
157     RrAppearance *a_clear_tex; /* clear with a texture */
158
159     RrAppearance *app_hilite_bg;
160     RrAppearance *app_unhilite_bg;
161     RrAppearance *app_hilite_fg; /* never parent relative */
162     RrAppearance *app_unhilite_fg; /* never parent relative */
163     RrAppearance *app_hilite_label; /* can be parent relative */
164     RrAppearance *app_unhilite_label; /* can be parent relative */
165
166 };
167
168 RrTheme* RrThemeNew(const RrInstance *inst, gchar *theme);
169 void RrThemeFree(RrTheme *theme);
170
171 #endif