]> Dogcows Code - chaz/openbox/blob - otk/style.hh
look for xft
[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 class Style {
17 public:
18
19 enum Type { ButtonFocus, ButtonUnfocus, TitleFocus, TitleUnfocus,
20 LabelFocus, LabelUnfocus, HandleFocus, HandleUnfocus,
21 GripFocus, GripUnfocus };
22
23 enum TextJustify { LeftJustify = 1, RightJustify, CenterJustify };
24 enum BulletType { RoundBullet = 1, TriangleBullet, SquareBullet, NoBullet };
25
26 struct PixmapMask {
27 Pixmap mask;
28 unsigned int w, h;
29 };
30
31 // private:
32
33 BImageControl *image_control;
34
35 BColor
36 l_text_focus, l_text_unfocus,
37 b_pic_focus, b_pic_unfocus;
38
39 BColor border_color;
40
41 BFont *font;
42
43 BTexture
44 f_focus, f_unfocus,
45 t_focus, t_unfocus,
46 l_focus, l_unfocus,
47 h_focus, h_unfocus,
48 b_focus, b_unfocus,
49 b_pressed, b_pressed_focus, b_pressed_unfocus,
50 g_focus, g_unfocus;
51
52 PixmapMask close_button, max_button, icon_button, stick_button;
53 TextJustify justify;
54 BulletType bullet_type;
55
56 unsigned int handle_width, bevel_width, frame_width, border_width;
57
58 unsigned int screen_number;
59
60 bool shadow_fonts, aa_fonts;
61
62 public:
63
64 Style();
65 Style(unsigned int);
66 Style(unsigned int, BImageControl *);
67 ~Style();
68
69 void doJustify(const std::string &text, int &start_pos,
70 unsigned int max_length, unsigned int modifier) const;
71
72 void readDatabaseMask(const std::string &rname,
73 PixmapMask &pixmapMask,
74 const Configuration &style);
75
76 BTexture readDatabaseTexture(const std::string &rname,
77 const std::string &default_color,
78 const Configuration &style,
79 bool allowNoTexture = false);
80
81 BColor readDatabaseColor(const std::string &rname,
82 const std::string &default_color,
83 const Configuration &style);
84
85 BFont *readDatabaseFont(const std::string &rbasename,
86 const Configuration &style);
87
88 void load(Configuration &);
89
90 inline BColor *getBorderColor(void) { return &border_color; }
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 *getFrameFocus(void) { return &f_focus; }
99 inline BTexture *getFrameUnfocus(void) { return &f_unfocus; }
100
101 inline BTexture *getTitleFocus(void) { return &t_focus; }
102 inline BTexture *getTitleUnfocus(void) { return &t_unfocus; }
103
104 inline BTexture *getLabelFocus(void) { return &l_focus; }
105 inline BTexture *getLabelUnfocus(void) { return &l_unfocus; }
106
107 inline BTexture *getHandleFocus(void) { return &h_focus; }
108 inline BTexture *getHandleUnfocus(void) { return &h_unfocus; }
109
110 inline BTexture *getButtonFocus(void) { return &b_focus; }
111 inline BTexture *getButtonUnfocus(void) { return &b_unfocus; }
112
113 inline BTexture *getButtonPressedFocus(void)
114 { return &b_pressed_focus; }
115 inline BTexture *getButtonPressedUnfocus(void)
116 { return &b_pressed_unfocus; }
117
118 inline BTexture *getGripFocus(void) { return &g_focus; }
119 inline BTexture *getGripUnfocus(void) { return &g_unfocus; }
120
121 inline unsigned int getHandleWidth(void) const { return handle_width; }
122 inline unsigned int getBevelWidth(void) const { return bevel_width; }
123 inline unsigned int getFrameWidth(void) const { return frame_width; }
124 inline unsigned int getBorderWidth(void) const { return border_width; }
125
126 inline const BFont &getFont() const { return *font; }
127 inline bool hasAAFonts(void) const { return aa_fonts; }
128
129 inline TextJustify textJustify(void) { return justify; }
130 inline BulletType bulletType(void) { return bullet_type; }
131
132 inline const BColor &getBorderColor() const { return border_color; }
133
134 inline const BTexture &getFrameFocus() const { return f_focus; }
135 inline const BTexture &getFrameUnfocus() const { return f_unfocus; }
136
137 inline void setImageControl(BImageControl *c) { image_control = c; }
138 inline void setScreenNumber(unsigned int scr) { screen_number = scr; }
139 inline unsigned int getScreen(void) { return screen_number; }
140
141 // XXX add inline accessors for the rest of the bummy
142 };
143
144 }
145
146 #endif // __style_hh
This page took 0.043198 seconds and 4 git commands to generate.