#include "font.hh"
#include <string>
+#include <list>
namespace otk {
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<StyleNotify*> *_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;
RenderTexture *_grip_unfocus;
Font *_label_font;
- TextJustify _label_justify;
+ Justify _label_justify;
PixmapMask *_max_mask;
PixmapMask *_icon_mask;
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; }
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; }