X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=otk%2Frenderstyle.hh;h=697455337c9cae067952d92cf037016ff7a7f32c;hb=6a88803b8c42f44a6f09facc20fcb6fe7901a2f3;hp=ccdf3ebf7949180cef811082aad6bd1fa5fb20c6;hpb=033e9843bcec8340c9e657fe0f0519f86075424b;p=chaz%2Fopenbox diff --git a/otk/renderstyle.hh b/otk/renderstyle.hh index ccdf3ebf..69745533 100644 --- a/otk/renderstyle.hh +++ b/otk/renderstyle.hh @@ -7,20 +7,45 @@ #include "font.hh" #include +#include namespace otk { +struct PixmapMask { + Pixmap mask; + unsigned int w, h; + PixmapMask() { mask = None; w = h = 0; } +}; + +class RenderStyle; + +class StyleNotify { +public: + //! Called when the style is changed on the same screen as the handler. + virtual void styleChanged(const RenderStyle &) {} +}; + class RenderStyle { + static RenderStyle **_styles; + static std::list *_notifies; public: - enum TextJustify { - LeftJustify, - RightJustify, + static void initialize(); + static void destroy(); + static void registerNotify(int screen, StyleNotify *n); + static void unregisterNotify(int screen, StyleNotify *n); + static RenderStyle *style(int screen); + + enum Justify { + LeftTopJustify, + RightBottomJustify, CenterJustify }; private: int _screen; std::string _file; + + RenderColor *_root_color; RenderColor *_text_color_focus; RenderColor *_text_color_unfocus; @@ -53,7 +78,12 @@ private: RenderTexture *_grip_unfocus; Font *_label_font; - TextJustify _label_justify; + Justify _label_justify; + + PixmapMask *_max_mask; + PixmapMask *_icon_mask; + PixmapMask *_alldesk_mask; + PixmapMask *_close_mask; int _handle_width; int _bevel_width; @@ -64,6 +94,8 @@ public: inline int screen() const { return _screen; } + inline RenderColor *rootColor() const { return _root_color; } + inline RenderColor *textFocusColor() const { return _text_color_focus; } inline RenderColor *textUnfocusColor() const { return _text_color_unfocus; } @@ -101,12 +133,17 @@ public: inline RenderTexture *buttonPressUnfocusBackground() const { return _button_press_unfocus; } - inline RenderTexture *gripdFocusBackground() const { return _grip_focus; } + inline RenderTexture *gripFocusBackground() const { return _grip_focus; } inline RenderTexture *gripUnfocusBackground() const { return _grip_unfocus; } inline Font *labelFont() const { return _label_font; } - inline TextJustify labelTextJustify() const { return _label_justify; } + inline Justify labelTextJustify() const { return _label_justify; } + inline PixmapMask *maximizeMask() const { return _max_mask; } + inline PixmapMask *iconifyMask() const { return _icon_mask; } + inline PixmapMask *alldesktopsMask() const { return _alldesk_mask; } + inline PixmapMask *closeMask() const { return _close_mask; } + inline int handleWidth() const { return _handle_width; } inline int bevelWidth() const { return _bevel_width; } };