X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=render%2Ftheme.h;h=b4d7cd1dcb92434a7ea02d27c09b01f66609f04d;hb=f33bbca9e6dfa55862de54501c07af635d56c137;hp=0f87b80867ef1077631f19b050ef83c6a3f95c78;hpb=cd12a2eae5b5b72df08d588ac71d1f6cf6725dfb;p=chaz%2Fopenbox diff --git a/render/theme.h b/render/theme.h index 0f87b808..b4d7cd1d 100644 --- a/render/theme.h +++ b/render/theme.h @@ -2,91 +2,165 @@ #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) -#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 *path; + 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 - optional decor */ + gboolean show_handle; -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 - geometry */ + gint bevel; + gint handle_height; + gint bwidth; + gint cbwidth; + gint label_height; + gint title_height; + gint button_size; + gint grip_width; + gint menu_overlap; -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; -extern Appearance *theme_a_menu_title; -extern Appearance *theme_a_menu; -extern Appearance *theme_a_menu_item; -extern Appearance *theme_a_menu_disabled; -extern Appearance *theme_a_menu_hilite; + /* style settings - colors */ + RrColor *b_color; + RrColor *cb_focused_color; + RrColor *cb_unfocused_color; + RrColor *title_focused_color; + RrColor *title_unfocused_color; + RrColor *titlebut_disabled_focused_color; + RrColor *titlebut_disabled_unfocused_color; + RrColor *titlebut_hover_focused_color; + RrColor *titlebut_hover_unfocused_color; + RrColor *titlebut_toggled_focused_color; + RrColor *titlebut_toggled_unfocused_color; + RrColor *titlebut_focused_pressed_color; + RrColor *titlebut_unfocused_pressed_color; + RrColor *titlebut_focused_unpressed_color; + RrColor *titlebut_unfocused_unpressed_color; + RrColor *menu_title_color; + RrColor *menu_color; + RrColor *menu_bullet_color; + RrColor *menu_disabled_color; + RrColor *menu_selected_color; -extern Appearance *theme_app_hilite_bg; -extern Appearance *theme_app_unhilite_bg; -extern Appearance *theme_app_hilite_label; -extern Appearance *theme_app_unhilite_label; -extern Appearance *theme_app_icon; + /* style settings - fonts */ + gint winfont_height; + RrFont *winfont_focused; + RrFont *winfont_unfocused; + gint mtitlefont_height; + RrFont *mtitlefont; + gint mfont_height; + RrFont *mfont; -void theme_startup(); -void theme_shutdown(); + /* style settings - masks */ + RrPixmapMask *max_mask; + RrPixmapMask *max_toggled_mask; + RrPixmapMask *max_hover_mask; + RrPixmapMask *max_disabled_mask; + RrPixmapMask *max_pressed_mask; + RrPixmapMask *iconify_mask; + RrPixmapMask *iconify_hover_mask; + RrPixmapMask *iconify_disabled_mask; + RrPixmapMask *iconify_pressed_mask; + RrPixmapMask *desk_mask; + RrPixmapMask *desk_toggled_mask; + RrPixmapMask *desk_hover_mask; + RrPixmapMask *desk_disabled_mask; + RrPixmapMask *desk_pressed_mask; + RrPixmapMask *shade_mask; + RrPixmapMask *shade_toggled_mask; + RrPixmapMask *shade_hover_mask; + RrPixmapMask *shade_disabled_mask; + RrPixmapMask *shade_pressed_mask; + RrPixmapMask *close_mask; + RrPixmapMask *close_hover_mask; + RrPixmapMask *close_disabled_mask; + RrPixmapMask *close_pressed_mask; -char *theme_load(char *theme); + RrPixmapMask *menu_bullet_mask; /* submenu pointer */ + RrPixmapMask *menu_toggle_mask; /* menu boolean */ + + /* global appearances */ + RrAppearance *a_disabled_focused_max; + RrAppearance *a_disabled_unfocused_max; + RrAppearance *a_hover_focused_max; + RrAppearance *a_hover_unfocused_max; + RrAppearance *a_toggled_focused_max; + RrAppearance *a_toggled_unfocused_max; + RrAppearance *a_focused_unpressed_max; + RrAppearance *a_focused_pressed_max; + RrAppearance *a_unfocused_unpressed_max; + RrAppearance *a_unfocused_pressed_max; + RrAppearance *a_disabled_focused_close; + RrAppearance *a_disabled_unfocused_close; + RrAppearance *a_hover_focused_close; + RrAppearance *a_hover_unfocused_close; + RrAppearance *a_focused_unpressed_close; + RrAppearance *a_focused_pressed_close; + RrAppearance *a_unfocused_unpressed_close; + RrAppearance *a_unfocused_pressed_close; + RrAppearance *a_disabled_focused_desk; + RrAppearance *a_disabled_unfocused_desk; + RrAppearance *a_hover_focused_desk; + RrAppearance *a_hover_unfocused_desk; + RrAppearance *a_toggled_focused_desk; + RrAppearance *a_toggled_unfocused_desk; + RrAppearance *a_focused_unpressed_desk; + RrAppearance *a_focused_pressed_desk; + RrAppearance *a_unfocused_unpressed_desk; + RrAppearance *a_unfocused_pressed_desk; + RrAppearance *a_disabled_focused_shade; + RrAppearance *a_disabled_unfocused_shade; + RrAppearance *a_hover_focused_shade; + RrAppearance *a_hover_unfocused_shade; + RrAppearance *a_toggled_focused_shade; + RrAppearance *a_toggled_unfocused_shade; + RrAppearance *a_focused_unpressed_shade; + RrAppearance *a_focused_pressed_shade; + RrAppearance *a_unfocused_unpressed_shade; + RrAppearance *a_unfocused_pressed_shade; + RrAppearance *a_disabled_focused_iconify; + RrAppearance *a_disabled_unfocused_iconify; + RrAppearance *a_hover_focused_iconify; + RrAppearance *a_hover_unfocused_iconify; + 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_selected; + RrAppearance *a_menu_text_item; + RrAppearance *a_menu_text_disabled; + RrAppearance *a_menu_text_selected; + RrAppearance *a_menu_bullet; + RrAppearance *a_clear; /* clear with no texture */ + RrAppearance *a_clear_tex; /* clear with a texture */ + + RrAppearance *app_selected_bg; + RrAppearance *app_unselected_bg; + RrAppearance *app_selected_label; + RrAppearance *app_unselected_label; + +}; + +RrTheme *RrThemeNew(const RrInstance *inst, gchar *theme); +void RrThemeFree(RrTheme *theme); #endif