]> Dogcows Code - chaz/openbox/blob - otk/style.hh
in synch mode, chew up 100% cpu, cuz we cant select on the display's fd
[chaz/openbox] / otk / style.hh
1 #ifndef __style_hh
2 #define __style_hh
3
4 #include <string>
5
6 #include "color.hh"
7 #include "font.hh"
8 #include "texture.hh"
9 #include "image.hh"
10 #include "configuration.hh"
11
12 // XXX: document
13
14 namespace otk {
15
16 struct PixmapMask {
17 Pixmap mask;
18 unsigned int w, h;
19 PixmapMask() { mask = None; w = h = 0; }
20 };
21
22 class Style {
23 public:
24
25 enum Type { ButtonFocus, ButtonUnfocus, TitleFocus, TitleUnfocus,
26 LabelFocus, LabelUnfocus, HandleFocus, HandleUnfocus,
27 GripFocus, GripUnfocus };
28
29 enum TextJustify { LeftJustify = 1, RightJustify, CenterJustify };
30 enum BulletType { RoundBullet = 1, TriangleBullet, SquareBullet, NoBullet };
31
32 // private:
33
34 BImageControl *image_control;
35
36 BColor
37 l_text_focus, l_text_unfocus,
38 b_pic_focus, b_pic_unfocus;
39
40 BColor border_color;
41
42 BFont *font;
43
44 BTexture
45 f_focus, f_unfocus,
46 t_focus, t_unfocus,
47 l_focus, l_unfocus,
48 h_focus, h_unfocus,
49 b_focus, b_unfocus,
50 b_pressed_focus, b_pressed_unfocus,
51 g_focus, g_unfocus;
52
53 PixmapMask close_button, max_button, icon_button, stick_button;
54 TextJustify justify;
55 BulletType bullet_type;
56
57 unsigned int handle_width, bevel_width, frame_width, border_width;
58
59 unsigned int screen_number;
60
61 bool shadow_fonts, aa_fonts;
62
63 public:
64
65 Style();
66 Style(BImageControl *);
67 ~Style();
68
69 void readDatabaseMask(const std::string &rname,
70 PixmapMask &pixmapMask,
71 const Configuration &style);
72
73 BTexture readDatabaseTexture(const std::string &rname,
74 const std::string &default_color,
75 const Configuration &style,
76 bool allowNoTexture = false);
77
78 BColor readDatabaseColor(const std::string &rname,
79 const std::string &default_color,
80 const Configuration &style);
81
82 BFont *readDatabaseFont(const std::string &rbasename,
83 const Configuration &style);
84
85 void load(const Configuration &style);
86
87 inline PixmapMask *getCloseButtonMask(void) { return &close_button; }
88 inline PixmapMask *getMaximizeButtonMask(void) { return &max_button; }
89 inline PixmapMask *getIconifyButtonMask(void) { return &icon_button; }
90 inline PixmapMask *getStickyButtonMask(void) { return &stick_button; }
91
92 inline BColor *getTextFocus(void) { return &l_text_focus; }
93 inline BColor *getTextUnfocus(void) { return &l_text_unfocus; }
94
95 inline BColor *getButtonPicFocus(void) { return &b_pic_focus; }
96 inline BColor *getButtonPicUnfocus(void) { return &b_pic_unfocus; }
97
98 inline BTexture *getTitleFocus(void) { return &t_focus; }
99 inline BTexture *getTitleUnfocus(void) { return &t_unfocus; }
100
101 inline BTexture *getLabelFocus(void) { return &l_focus; }
102 inline BTexture *getLabelUnfocus(void) { return &l_unfocus; }
103
104 inline BTexture *getHandleFocus(void) { return &h_focus; }
105 inline BTexture *getHandleUnfocus(void) { return &h_unfocus; }
106
107 inline BTexture *getButtonFocus(void) { return &b_focus; }
108 inline BTexture *getButtonUnfocus(void) { return &b_unfocus; }
109
110 inline BTexture *getButtonPressedFocus(void)
111 { return &b_pressed_focus; }
112 inline BTexture *getButtonPressedUnfocus(void)
113 { return &b_pressed_unfocus; }
114
115 inline BTexture *getGripFocus(void) { return &g_focus; }
116 inline BTexture *getGripUnfocus(void) { return &g_unfocus; }
117
118 inline unsigned int getHandleWidth(void) const { return handle_width; }
119 inline unsigned int getBevelWidth(void) const { return bevel_width; }
120 inline unsigned int getFrameWidth(void) const { return frame_width; }
121 inline unsigned int getBorderWidth(void) const { return border_width; }
122
123 inline const BFont *getFont() const { return font; }
124
125 inline void setShadowFonts(bool fonts) { shadow_fonts = fonts; }
126 inline bool hasShadowFonts(void) const { return shadow_fonts; }
127
128 inline void setAAFonts(bool fonts) { aa_fonts = fonts; }
129 inline bool hasAAFonts(void) const { return aa_fonts; }
130
131 inline TextJustify textJustify(void) { return justify; }
132 inline BulletType bulletType(void) { return bullet_type; }
133
134 inline const BColor *getBorderColor() const { return &border_color; }
135
136 inline const BTexture *getFrameFocus() const { return &f_focus; }
137 inline const BTexture *getFrameUnfocus() const { return &f_unfocus; }
138
139 inline void setImageControl(BImageControl *c) {
140 image_control = c;
141 screen_number = c->getScreenInfo()->screen();
142 }
143 inline unsigned int getScreen(void) { return screen_number; }
144
145 // XXX add inline accessors for the rest of the bummy
146 };
147
148 }
149
150 #endif // __style_hh
This page took 0.040688 seconds and 4 git commands to generate.