X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=render%2Ftheme.h;h=5c39b3dfc276d9ea72d8c0299a21daddb8842289;hb=069e9607fa433190307bb8242294a109e88165de;hp=5d5bac10378fbf8e96d1f7393205a1b185cd4a45;hpb=5cf61ee02354c1c9f80c11f3796afc4b948055d6;p=chaz%2Fopenbox diff --git a/render/theme.h b/render/theme.h index 5d5bac10..5c39b3df 100644 --- a/render/theme.h +++ b/render/theme.h @@ -2,83 +2,118 @@ #define __theme_h #include "render.h" -#include "color.h" -#include "font.h" -#include "mask.h" -extern int theme_bevel; -extern int theme_handle_height; -extern int theme_bwidth; -extern int theme_cbwidth; +typedef struct _RrTheme RrTheme; -#define theme_label_height (theme_winfont_height + 2) -#define theme_title_height (theme_label_height + theme_bevel * 2) -#define theme_button_size (theme_label_height - 2) -#define theme_grip_width (theme_button_size * 2) +struct _RrTheme { + gchar *name; -extern color_rgb *theme_b_color; -extern color_rgb *theme_cb_focused_color; -extern color_rgb *theme_cb_unfocused_color; -extern color_rgb *theme_title_focused_color; -extern color_rgb *theme_title_unfocused_color; -extern color_rgb *theme_titlebut_focused_color; -extern color_rgb *theme_titlebut_unfocused_color; + const RrInstance *inst; -extern int theme_winfont_height; -extern ObFont *theme_winfont; -extern char *theme_title_layout; + /* style settings - geometry */ + gint bevel; + gint handle_height; + gint bwidth; + gint cbwidth; + gint label_height; + gint title_height; + gint button_size; + gint grip_width; -extern pixmap_mask *theme_max_set_mask; -extern pixmap_mask *theme_max_unset_mask; -extern pixmap_mask *theme_iconify_mask; -extern pixmap_mask *theme_desk_set_mask; -extern pixmap_mask *theme_desk_unset_mask; -extern pixmap_mask *theme_shade_set_mask; -extern pixmap_mask *theme_shade_unset_mask; -extern pixmap_mask *theme_close_mask; + /* style settings - colors */ + RrColor *b_color; + RrColor *cb_focused_color; + RrColor *cb_unfocused_color; + RrColor *title_focused_color; + RrColor *title_unfocused_color; + RrColor *titlebut_focused_color; + RrColor *titlebut_unfocused_color; + RrColor *menu_title_color; + RrColor *menu_color; + RrColor *menu_disabled_color; + RrColor *menu_hilite_color; -extern Appearance *theme_a_focused_unpressed_max; -extern Appearance *theme_a_focused_pressed_max; -extern Appearance *theme_a_focused_pressed_set_max; -extern Appearance *theme_a_unfocused_unpressed_max; -extern Appearance *theme_a_unfocused_pressed_max; -extern Appearance *theme_a_unfocused_pressed_set_max; -extern Appearance *theme_a_focused_unpressed_close; -extern Appearance *theme_a_focused_pressed_close; -extern Appearance *theme_a_unfocused_unpressed_close; -extern Appearance *theme_a_unfocused_pressed_close; -extern Appearance *theme_a_focused_unpressed_desk; -extern Appearance *theme_a_focused_pressed_desk; -extern Appearance *theme_a_focused_pressed_set_desk; -extern Appearance *theme_a_unfocused_unpressed_desk; -extern Appearance *theme_a_unfocused_pressed_desk; -extern Appearance *theme_a_unfocused_pressed_set_desk; -extern Appearance *theme_a_focused_unpressed_shade; -extern Appearance *theme_a_focused_pressed_shade; -extern Appearance *theme_a_focused_pressed_set_shade; -extern Appearance *theme_a_unfocused_unpressed_shade; -extern Appearance *theme_a_unfocused_pressed_shade; -extern Appearance *theme_a_unfocused_pressed_set_shade; -extern Appearance *theme_a_focused_unpressed_iconify; -extern Appearance *theme_a_focused_pressed_iconify; -extern Appearance *theme_a_unfocused_unpressed_iconify; -extern Appearance *theme_a_unfocused_pressed_iconify; -extern Appearance *theme_a_focused_grip; -extern Appearance *theme_a_unfocused_grip; -extern Appearance *theme_a_focused_title; -extern Appearance *theme_a_unfocused_title; -extern Appearance *theme_a_focused_label; -extern Appearance *theme_a_unfocused_label; -extern Appearance *theme_a_icon; -extern Appearance *theme_a_focused_handle; -extern Appearance *theme_a_unfocused_handle; + /* style settings - fonts */ + gint winfont_height; + RrFont *winfont; + gboolean winfont_shadow; + gint winfont_shadow_offset; + gint winfont_shadow_tint; + gint mtitlefont_height; + RrFont *mtitlefont; + gboolean mtitlefont_shadow; + gint mtitlefont_shadow_offset; + gint mtitlefont_shadow_tint; + gint mfont_height; + RrFont *mfont; + gboolean mfont_shadow; + gint mfont_shadow_offset; + gint mfont_shadow_tint; -extern Appearance *theme_app_hilite_label; -extern Appearance *theme_app_unhilite_label; + /* style settings - title layout */ + gchar *title_layout; -void theme_startup(); -void theme_shutdown(); + /* style settings - masks */ + RrPixmapMask *max_set_mask; + RrPixmapMask *max_unset_mask; + RrPixmapMask *iconify_mask; + RrPixmapMask *desk_set_mask; + RrPixmapMask *desk_unset_mask; + RrPixmapMask *shade_set_mask; + RrPixmapMask *shade_unset_mask; + RrPixmapMask *close_mask; -char *theme_load(char *theme); + /* global appearances */ + RrAppearance *a_focused_unpressed_max; + RrAppearance *a_focused_pressed_max; + RrAppearance *a_focused_pressed_set_max; + RrAppearance *a_unfocused_unpressed_max; + RrAppearance *a_unfocused_pressed_max; + RrAppearance *a_unfocused_pressed_set_max; + RrAppearance *a_focused_unpressed_close; + RrAppearance *a_focused_pressed_close; + RrAppearance *a_unfocused_unpressed_close; + RrAppearance *a_unfocused_pressed_close; + RrAppearance *a_focused_unpressed_desk; + RrAppearance *a_focused_pressed_desk; + RrAppearance *a_focused_pressed_set_desk; + RrAppearance *a_unfocused_unpressed_desk; + RrAppearance *a_unfocused_pressed_desk; + RrAppearance *a_unfocused_pressed_set_desk; + RrAppearance *a_focused_unpressed_shade; + RrAppearance *a_focused_pressed_shade; + RrAppearance *a_focused_pressed_set_shade; + RrAppearance *a_unfocused_unpressed_shade; + RrAppearance *a_unfocused_pressed_shade; + RrAppearance *a_unfocused_pressed_set_shade; + RrAppearance *a_focused_unpressed_iconify; + RrAppearance *a_focused_pressed_iconify; + RrAppearance *a_unfocused_unpressed_iconify; + RrAppearance *a_unfocused_pressed_iconify; + RrAppearance *a_focused_grip; + RrAppearance *a_unfocused_grip; + RrAppearance *a_focused_title; + RrAppearance *a_unfocused_title; + RrAppearance *a_focused_label; + RrAppearance *a_unfocused_label; + /* always parentrelative, so no focused/unfocused */ + RrAppearance *a_icon; + RrAppearance *a_focused_handle; + RrAppearance *a_unfocused_handle; + RrAppearance *a_menu_title; + RrAppearance *a_menu; + RrAppearance *a_menu_item; + RrAppearance *a_menu_disabled; + RrAppearance *a_menu_hilite; + + RrAppearance *app_hilite_bg; + RrAppearance *app_unhilite_bg; + RrAppearance *app_hilite_label; + RrAppearance *app_unhilite_label; + RrAppearance *app_icon; +}; + +RrTheme *RrThemeNew(const RrInstance *inst, gchar *theme); +void RrThemeFree(RrTheme *theme); #endif