X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=otk%2Fstyle.hh;h=2944339dddcd4cdc11f74f79d369e0ec7447e652;hb=a2de94e91e1c0e7775c97745ae11d14e5c5f5659;hp=ac22559c07d0a678acf2afb67805d33e87fb9754;hpb=196996230c7a3ac409c317a8a3be3970917bdd9a;p=chaz%2Fopenbox diff --git a/otk/style.hh b/otk/style.hh index ac22559c..2944339d 100644 --- a/otk/style.hh +++ b/otk/style.hh @@ -13,17 +13,22 @@ namespace otk { +struct PixmapMask { + Pixmap mask; + unsigned int w, h; + PixmapMask() { mask = None; w = h = 0; } +}; + class Style { public: + enum Type { ButtonFocus, ButtonUnfocus, TitleFocus, TitleUnfocus, + LabelFocus, LabelUnfocus, HandleFocus, HandleUnfocus, + GripFocus, GripUnfocus }; + enum TextJustify { LeftJustify = 1, RightJustify, CenterJustify }; enum BulletType { RoundBullet = 1, TriangleBullet, SquareBullet, NoBullet }; - struct PixmapMask { - Pixmap mask; - unsigned int w, h; - }; - // private: BImageControl *image_control; @@ -42,11 +47,12 @@ public: l_focus, l_unfocus, h_focus, h_unfocus, b_focus, b_unfocus, - b_pressed, b_pressed_focus, b_pressed_unfocus, + b_pressed_focus, b_pressed_unfocus, g_focus, g_unfocus; PixmapMask close_button, max_button, icon_button, stick_button; TextJustify justify; + BulletType bullet_type; unsigned int handle_width, bevel_width, frame_width, border_width; @@ -57,38 +63,84 @@ public: public: Style(); - Style(unsigned int); - Style(unsigned int, BImageControl *); + Style(BImageControl *); ~Style(); - void doJustify(const std::string &text, int &start_pos, - unsigned int max_length, unsigned int modifier) const; - void readDatabaseMask(const std::string &rname, PixmapMask &pixmapMask, const Configuration &style); BTexture readDatabaseTexture(const std::string &rname, - const std::string &default_color, - const Configuration &style, - bool allowNoTexture = false); + const std::string &default_color, + const Configuration &style, + bool allowNoTexture = false); BColor readDatabaseColor(const std::string &rname, - const std::string &default_color, - const Configuration &style); + const std::string &default_color, + const Configuration &style); BFont *readDatabaseFont(const std::string &rbasename, - const Configuration &style); + const Configuration &style); + + void load(const Configuration &style); + + inline PixmapMask *getCloseButtonMask(void) { return &close_button; } + inline PixmapMask *getMaximizeButtonMask(void) { return &max_button; } + inline PixmapMask *getIconifyButtonMask(void) { return &icon_button; } + inline PixmapMask *getStickyButtonMask(void) { return &stick_button; } + + inline BColor *getTextFocus(void) { return &l_text_focus; } + inline BColor *getTextUnfocus(void) { return &l_text_unfocus; } + + inline BColor *getButtonPicFocus(void) { return &b_pic_focus; } + inline BColor *getButtonPicUnfocus(void) { return &b_pic_unfocus; } + + inline BTexture *getTitleFocus(void) { return &t_focus; } + inline BTexture *getTitleUnfocus(void) { return &t_unfocus; } - void load(Configuration &); + inline BTexture *getLabelFocus(void) { return &l_focus; } + inline BTexture *getLabelUnfocus(void) { return &l_unfocus; } + + inline BTexture *getHandleFocus(void) { return &h_focus; } + inline BTexture *getHandleUnfocus(void) { return &h_unfocus; } + + inline BTexture *getButtonFocus(void) { return &b_focus; } + inline BTexture *getButtonUnfocus(void) { return &b_unfocus; } + + inline BTexture *getButtonPressedFocus(void) + { return &b_pressed_focus; } + inline BTexture *getButtonPressedUnfocus(void) + { return &b_pressed_unfocus; } + + inline BTexture *getGripFocus(void) { return &g_focus; } + inline BTexture *getGripUnfocus(void) { return &g_unfocus; } inline unsigned int getHandleWidth(void) const { return handle_width; } inline unsigned int getBevelWidth(void) const { return bevel_width; } inline unsigned int getFrameWidth(void) const { return frame_width; } inline unsigned int getBorderWidth(void) const { return border_width; } - inline void setImageControl(BImageControl *c) { image_control = c; } - inline void setScreenNumber(unsigned int scr) { screen_number = scr; } + inline const BFont *getFont() const { return font; } + + inline void setShadowFonts(bool fonts) { shadow_fonts = fonts; } + inline bool hasShadowFonts(void) const { return shadow_fonts; } + + inline void setAAFonts(bool fonts) { aa_fonts = fonts; } + inline bool hasAAFonts(void) const { return aa_fonts; } + + inline TextJustify textJustify(void) { return justify; } + inline BulletType bulletType(void) { return bullet_type; } + + inline const BColor *getBorderColor() const { return &border_color; } + + inline const BTexture *getFrameFocus() const { return &f_focus; } + inline const BTexture *getFrameUnfocus() const { return &f_unfocus; } + + inline void setImageControl(BImageControl *c) { + image_control = c; + screen_number = c->getScreenInfo()->screen(); + } + inline unsigned int getScreen(void) { return screen_number; } // XXX add inline accessors for the rest of the bummy };