diff options
author | fluxgen <fluxgen> | 2003-08-13 10:14:54 (GMT) |
---|---|---|
committer | fluxgen <fluxgen> | 2003-08-13 10:14:54 (GMT) |
commit | 662be09609358784d08f1aa6d01ae0c88047cafa (patch) | |
tree | 50e994e66fe823fe67c18292af0ae6c2206edc6e | |
parent | 225e89d7754f15fa5947548e552fa5ce03141f80 (diff) | |
download | fluxbox_lack-662be09609358784d08f1aa6d01ae0c88047cafa.zip fluxbox_lack-662be09609358784d08f1aa6d01ae0c88047cafa.tar.bz2 |
Button changed to a FbWindow
-rw-r--r-- | src/TextButton.cc | 8 | ||||
-rw-r--r-- | src/WinButton.cc | 153 |
2 files changed, 81 insertions, 80 deletions
diff --git a/src/TextButton.cc b/src/TextButton.cc index 7498ee1..3424533 100644 --- a/src/TextButton.cc +++ b/src/TextButton.cc | |||
@@ -19,7 +19,7 @@ | |||
19 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | 19 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
20 | // DEALINGS IN THE SOFTWARE. | 20 | // DEALINGS IN THE SOFTWARE. |
21 | 21 | ||
22 | // $Id: TextButton.cc,v 1.3 2003/08/11 14:34:46 fluxgen Exp $ | 22 | // $Id: TextButton.cc,v 1.4 2003/08/13 10:12:36 fluxgen Exp $ |
23 | 23 | ||
24 | #include "TextButton.hh" | 24 | #include "TextButton.hh" |
25 | #include "Font.hh" | 25 | #include "Font.hh" |
@@ -80,10 +80,12 @@ void TextButton::drawText(int x_offset, int y_offset) { | |||
80 | text().c_str(), text().size(), | 80 | text().c_str(), text().size(), |
81 | textlen // return new text len | 81 | textlen // return new text len |
82 | ); | 82 | ); |
83 | |||
83 | // center text by default | 84 | // center text by default |
84 | int center_pos = height()/2 + font().ascent()/2; | 85 | int center_pos = height()/2 + font().ascent()/2; |
85 | font().drawText(window().window(), // drawable | 86 | |
86 | window().screenNumber(), | 87 | font().drawText(window(), // drawable |
88 | screenNumber(), | ||
87 | gc(), // graphic context | 89 | gc(), // graphic context |
88 | text().c_str(), textlen, // string and string size | 90 | text().c_str(), textlen, // string and string size |
89 | align_x + x_offset, center_pos + y_offset); // position | 91 | align_x + x_offset, center_pos + y_offset); // position |
diff --git a/src/WinButton.cc b/src/WinButton.cc index 36c7360..078daa9 100644 --- a/src/WinButton.cc +++ b/src/WinButton.cc | |||
@@ -19,7 +19,7 @@ | |||
19 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | 19 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
20 | // DEALINGS IN THE SOFTWARE. | 20 | // DEALINGS IN THE SOFTWARE. |
21 | 21 | ||
22 | /// $Id: WinButton.cc,v 1.7 2003/08/04 12:52:39 fluxgen Exp $ | 22 | /// $Id: WinButton.cc,v 1.8 2003/08/13 10:14:54 fluxgen Exp $ |
23 | 23 | ||
24 | #include "WinButton.hh" | 24 | #include "WinButton.hh" |
25 | #include "App.hh" | 25 | #include "App.hh" |
@@ -82,7 +82,7 @@ WinButton::WinButton(const FluxboxWindow &listen_to, | |||
82 | void WinButton::exposeEvent(XExposeEvent &event) { | 82 | void WinButton::exposeEvent(XExposeEvent &event) { |
83 | FbTk::Button::exposeEvent(event); | 83 | FbTk::Button::exposeEvent(event); |
84 | drawType(); | 84 | drawType(); |
85 | window().updateTransparent(); | 85 | updateTransparent(); |
86 | } | 86 | } |
87 | 87 | ||
88 | void WinButton::buttonReleaseEvent(XButtonEvent &event) { | 88 | void WinButton::buttonReleaseEvent(XButtonEvent &event) { |
@@ -92,68 +92,67 @@ void WinButton::buttonReleaseEvent(XButtonEvent &event) { | |||
92 | 92 | ||
93 | void WinButton::drawType() { | 93 | void WinButton::drawType() { |
94 | 94 | ||
95 | |||
96 | switch (m_type) { | 95 | switch (m_type) { |
97 | case MAXIMIZE: | 96 | case MAXIMIZE: |
98 | if (m_theme.maximizePixmap().pixmap_scaled.drawable() != 0) { | 97 | if (m_theme.maximizePixmap().pixmap_scaled.drawable() != 0) { |
99 | if (pressed()) { | 98 | if (pressed()) { |
100 | window().setBackgroundPixmap(m_theme. | 99 | FbTk::FbWindow::setBackgroundPixmap(m_theme. |
101 | maximizePressedPixmap(). | 100 | maximizePressedPixmap(). |
102 | pixmap_scaled.drawable()); | 101 | pixmap_scaled.drawable()); |
103 | } else if (m_theme.maximizePixmap().pixmap_scaled.drawable()) { | 102 | } else if (m_theme.maximizePixmap().pixmap_scaled.drawable()) { |
104 | // check focus | 103 | // check focus |
105 | if (!m_listen_to.isFocused() && | 104 | if (!m_listen_to.isFocused() && |
106 | m_theme.maximizeUnfocusPixmap().pixmap_scaled.drawable() != 0) { | 105 | m_theme.maximizeUnfocusPixmap().pixmap_scaled.drawable() != 0) { |
107 | // not focused | 106 | // not focused |
108 | window().setBackgroundPixmap(m_theme. | 107 | FbTk::FbWindow::setBackgroundPixmap(m_theme. |
109 | maximizeUnfocusPixmap(). | 108 | maximizeUnfocusPixmap(). |
110 | pixmap_scaled.drawable()); | 109 | pixmap_scaled.drawable()); |
111 | } else { // focused | 110 | } else { // focused |
112 | window().setBackgroundPixmap(m_theme. | 111 | FbTk::FbWindow::setBackgroundPixmap(m_theme. |
113 | maximizePixmap(). | 112 | maximizePixmap(). |
114 | pixmap_scaled.drawable()); | 113 | pixmap_scaled.drawable()); |
115 | } | 114 | } |
116 | } | 115 | } |
117 | 116 | ||
118 | window().clear(); | 117 | FbTk::FbWindow::clear(); |
119 | 118 | ||
120 | } else { | 119 | } else { |
121 | if (gc() == 0) // must have valid graphic context | 120 | if (gc() == 0) // must have valid graphic context |
122 | return; | 121 | return; |
123 | window().drawRectangle(gc(), | 122 | drawRectangle(gc(), |
124 | 2, 2, width() - 5, height() - 5); | 123 | 2, 2, width() - 5, height() - 5); |
125 | window().drawLine(gc(), | 124 | drawLine(gc(), |
126 | 2, 3, width() - 3, 3); | 125 | 2, 3, width() - 3, 3); |
127 | } | 126 | } |
128 | break; | 127 | break; |
129 | case MINIMIZE: | 128 | case MINIMIZE: |
130 | if (m_theme.iconifyPixmap().pixmap_scaled.drawable() != 0) { | 129 | if (m_theme.iconifyPixmap().pixmap_scaled.drawable() != 0) { |
131 | if (pressed()) { | 130 | if (pressed()) { |
132 | window().setBackgroundPixmap(m_theme. | 131 | FbTk::FbWindow::setBackgroundPixmap(m_theme. |
133 | iconifyPressedPixmap(). | 132 | iconifyPressedPixmap(). |
134 | pixmap_scaled.drawable()); | 133 | pixmap_scaled.drawable()); |
135 | } else if (m_theme.iconifyPixmap().pixmap_scaled.drawable()){ | 134 | } else if (m_theme.iconifyPixmap().pixmap_scaled.drawable()){ |
136 | // check focus | 135 | // check focus |
137 | if (!m_listen_to.isFocused() && | 136 | if (!m_listen_to.isFocused() && |
138 | m_theme.iconifyUnfocusPixmap().pixmap_scaled.drawable() != 0) { | 137 | m_theme.iconifyUnfocusPixmap().pixmap_scaled.drawable() != 0) { |
139 | // not focused | 138 | // not focused |
140 | window().setBackgroundPixmap(m_theme. | 139 | FbTk::FbWindow::setBackgroundPixmap(m_theme. |
141 | iconifyUnfocusPixmap(). | 140 | iconifyUnfocusPixmap(). |
142 | pixmap_scaled.drawable()); | 141 | pixmap_scaled.drawable()); |
143 | } else { // focused | 142 | } else { // focused |
144 | window().setBackgroundPixmap(m_theme. | 143 | FbTk::FbWindow::setBackgroundPixmap(m_theme. |
145 | iconifyPixmap(). | 144 | iconifyPixmap(). |
146 | pixmap_scaled.drawable()); | 145 | pixmap_scaled.drawable()); |
147 | } | 146 | } |
148 | } | 147 | } |
149 | 148 | ||
150 | window().clear(); | 149 | FbTk::FbWindow::clear(); |
151 | 150 | ||
152 | } else { | 151 | } else { |
153 | if (gc() == 0) // must have valid graphic context | 152 | if (gc() == 0) // must have valid graphic context |
154 | return; | 153 | return; |
155 | window().drawRectangle(gc(), | 154 | FbTk::FbWindow::drawRectangle(gc(), |
156 | 2, height() - 5, width() - 5, 2); | 155 | 2, height() - 5, width() - 5, 2); |
157 | } | 156 | } |
158 | break; | 157 | break; |
159 | case STICK: | 158 | case STICK: |
@@ -165,51 +164,51 @@ void WinButton::drawType() { | |||
165 | if (!m_listen_to.isFocused() && | 164 | if (!m_listen_to.isFocused() && |
166 | m_theme.stuckUnfocusPixmap().pixmap_scaled.drawable() != 0) { | 165 | m_theme.stuckUnfocusPixmap().pixmap_scaled.drawable() != 0) { |
167 | // not focused | 166 | // not focused |
168 | window().setBackgroundPixmap(m_theme. | 167 | FbTk::FbWindow::setBackgroundPixmap(m_theme. |
169 | stuckUnfocusPixmap(). | 168 | stuckUnfocusPixmap(). |
170 | pixmap_scaled.drawable()); | 169 | pixmap_scaled.drawable()); |
171 | } else { // focused | 170 | } else { // focused |
172 | window().setBackgroundPixmap(m_theme. | 171 | FbTk::FbWindow::setBackgroundPixmap(m_theme. |
173 | stuckPixmap(). | 172 | stuckPixmap(). |
174 | pixmap_scaled.drawable()); | 173 | pixmap_scaled.drawable()); |
175 | } | 174 | } |
176 | } else { // not stuck | 175 | } else { // not stuck |
177 | 176 | ||
178 | if (pressed()) { | 177 | if (pressed()) { |
179 | window().setBackgroundPixmap(m_theme. | 178 | FbTk::FbWindow::setBackgroundPixmap(m_theme. |
180 | stickPressedPixmap(). | 179 | stickPressedPixmap(). |
181 | pixmap_scaled.drawable()); | 180 | pixmap_scaled.drawable()); |
182 | 181 | ||
183 | } else if (m_theme.stickPixmap().pixmap_scaled.drawable()) { | 182 | } else if (m_theme.stickPixmap().pixmap_scaled.drawable()) { |
184 | // check focus | 183 | // check focus |
185 | if (!m_listen_to.isFocused() && | 184 | if (!m_listen_to.isFocused() && |
186 | m_theme.stickUnfocusPixmap().pixmap_scaled.drawable() != 0) { | 185 | m_theme.stickUnfocusPixmap().pixmap_scaled.drawable() != 0) { |
187 | // not focused | 186 | // not focused |
188 | window().setBackgroundPixmap(m_theme. | 187 | FbTk::FbWindow::setBackgroundPixmap(m_theme. |
189 | stickUnfocusPixmap(). | 188 | stickUnfocusPixmap(). |
190 | pixmap_scaled.drawable()); | 189 | pixmap_scaled.drawable()); |
191 | } else { // focused | 190 | } else { // focused |
192 | window().setBackgroundPixmap(m_theme. | 191 | FbTk::FbWindow::setBackgroundPixmap(m_theme. |
193 | stickPixmap(). | 192 | stickPixmap(). |
194 | pixmap_scaled.drawable()); | 193 | pixmap_scaled.drawable()); |
195 | } | 194 | } |
196 | 195 | ||
197 | } | 196 | } |
198 | } // end if stuck | 197 | } // end if stuck |
199 | 198 | ||
200 | window().clear(); | 199 | FbTk::FbWindow::clear(); |
201 | 200 | ||
202 | } else { | 201 | } else { |
203 | if (m_listen_to.isStuck()) { | 202 | if (m_listen_to.isStuck()) { |
204 | window().fillRectangle(gc(), | 203 | fillRectangle(gc(), |
205 | width()/2 - width()/4, height()/2 - height()/4, | 204 | width()/2 - width()/4, height()/2 - height()/4, |
206 | width()/2, height()/2); | 205 | width()/2, height()/2); |
207 | } else { | 206 | } else { |
208 | if (gc() == 0) // must have valid graphic context | 207 | if (gc() == 0) // must have valid graphic context |
209 | return; | 208 | return; |
210 | window().fillRectangle(gc(), | 209 | fillRectangle(gc(), |
211 | width()/2 - width()/10, height()/2 - height()/10, | 210 | width()/2 - width()/10, height()/2 - height()/10, |
212 | width()/5, height()/5); | 211 | width()/5, height()/5); |
213 | } | 212 | } |
214 | } | 213 | } |
215 | break; | 214 | break; |
@@ -217,60 +216,60 @@ void WinButton::drawType() { | |||
217 | 216 | ||
218 | if (m_theme.closePixmap().pixmap_scaled.drawable() != 0) { | 217 | if (m_theme.closePixmap().pixmap_scaled.drawable() != 0) { |
219 | if (pressed()) { | 218 | if (pressed()) { |
220 | window().setBackgroundPixmap(m_theme. | 219 | FbTk::FbWindow::setBackgroundPixmap(m_theme. |
221 | closePressedPixmap(). | 220 | closePressedPixmap(). |
222 | pixmap_scaled.drawable()); | 221 | pixmap_scaled.drawable()); |
223 | 222 | ||
224 | } else if (m_theme.closePixmap().pixmap_scaled.drawable()) { | 223 | } else if (m_theme.closePixmap().pixmap_scaled.drawable()) { |
225 | // check focus | 224 | // check focus |
226 | if (!m_listen_to.isFocused() && | 225 | if (!m_listen_to.isFocused() && |
227 | m_theme.closeUnfocusPixmap().pixmap_scaled.drawable() != 0) { | 226 | m_theme.closeUnfocusPixmap().pixmap_scaled.drawable() != 0) { |
228 | // not focused | 227 | // not focused |
229 | window().setBackgroundPixmap(m_theme. | 228 | FbTk::FbWindow::setBackgroundPixmap(m_theme. |
230 | closeUnfocusPixmap(). | 229 | closeUnfocusPixmap(). |
231 | pixmap_scaled.drawable()); | 230 | pixmap_scaled.drawable()); |
232 | } else { // focused | 231 | } else { // focused |
233 | window().setBackgroundPixmap(m_theme. | 232 | FbTk::FbWindow::setBackgroundPixmap(m_theme. |
234 | closePixmap(). | 233 | closePixmap(). |
235 | pixmap_scaled.drawable()); | 234 | pixmap_scaled.drawable()); |
236 | } | 235 | } |
237 | } | 236 | } |
238 | 237 | ||
239 | window().clear(); | 238 | FbTk::FbWindow::clear(); |
240 | 239 | ||
241 | } else { | 240 | } else { |
242 | if (gc() == 0) // must have valid graphic context | 241 | if (gc() == 0) // must have valid graphic context |
243 | return; | 242 | return; |
244 | window().drawLine(gc(), | 243 | drawLine(gc(), |
245 | 2, 2, | 244 | 2, 2, |
246 | width() - 3, height() - 3); | 245 | width() - 3, height() - 3); |
247 | window().drawLine(gc(), | 246 | drawLine(gc(), |
248 | 2, width() - 3, | 247 | 2, width() - 3, |
249 | height() - 3, 2); | 248 | height() - 3, 2); |
250 | } | 249 | } |
251 | break; | 250 | break; |
252 | case SHADE: | 251 | case SHADE: |
253 | if (m_theme.shadePixmap().pixmap_scaled.drawable() != 0) { | 252 | if (m_theme.shadePixmap().pixmap_scaled.drawable() != 0) { |
254 | if (pressed()) { | 253 | if (pressed()) { |
255 | window().setBackgroundPixmap(m_theme. | 254 | FbTk::FbWindow::setBackgroundPixmap(m_theme. |
256 | shadePressedPixmap(). | 255 | shadePressedPixmap(). |
257 | pixmap_scaled.drawable()); | 256 | pixmap_scaled.drawable()); |
258 | } else if (m_theme.shadePixmap().pixmap_scaled.drawable()) { | 257 | } else if (m_theme.shadePixmap().pixmap_scaled.drawable()) { |
259 | // check focus | 258 | // check focus |
260 | if (!m_listen_to.isFocused() && | 259 | if (!m_listen_to.isFocused() && |
261 | m_theme.shadeUnfocusPixmap().pixmap_scaled.drawable() != 0) { | 260 | m_theme.shadeUnfocusPixmap().pixmap_scaled.drawable() != 0) { |
262 | // not focused | 261 | // not focused |
263 | window().setBackgroundPixmap(m_theme. | 262 | FbTk::FbWindow::setBackgroundPixmap(m_theme. |
264 | shadeUnfocusPixmap(). | 263 | shadeUnfocusPixmap(). |
265 | pixmap_scaled.drawable()); | 264 | pixmap_scaled.drawable()); |
266 | } else { // focused | 265 | } else { // focused |
267 | window().setBackgroundPixmap(m_theme. | 266 | FbTk::FbWindow::setBackgroundPixmap(m_theme. |
268 | shadePixmap(). | 267 | shadePixmap(). |
269 | pixmap_scaled.drawable()); | 268 | pixmap_scaled.drawable()); |
270 | } | 269 | } |
271 | } | 270 | } |
272 | 271 | ||
273 | window().clear(); | 272 | FbTk::FbWindow::clear(); |
274 | } | 273 | } |
275 | break; | 274 | break; |
276 | } | 275 | } |