diff options
-rw-r--r-- | bitbake/lib/bb/ui/crumbs/hobwidget.py | 53 |
1 files changed, 33 insertions, 20 deletions
diff --git a/bitbake/lib/bb/ui/crumbs/hobwidget.py b/bitbake/lib/bb/ui/crumbs/hobwidget.py index 7988975621..8936f0a42a 100644 --- a/bitbake/lib/bb/ui/crumbs/hobwidget.py +++ b/bitbake/lib/bb/ui/crumbs/hobwidget.py | |||
@@ -205,49 +205,62 @@ class HobButton(gtk.Button): | |||
205 | label: the text to display as the button's label | 205 | label: the text to display as the button's label |
206 | """ | 206 | """ |
207 | def __init__(self, label): | 207 | def __init__(self, label): |
208 | gtk.Button.__init__(self, "<span size='x-large'><b>%s</b></span>" % gobject.markup_escape_text(label)) | 208 | gtk.Button.__init__(self, label) |
209 | self.child.set_use_markup(True) | 209 | HobButton.style_button(self) |
210 | 210 | ||
211 | style = self.get_style() | 211 | @staticmethod |
212 | def style_button(button): | ||
213 | style = button.get_style() | ||
212 | button_color = gtk.gdk.Color(HobColors.ORANGE) | 214 | button_color = gtk.gdk.Color(HobColors.ORANGE) |
213 | self.modify_bg(gtk.STATE_NORMAL, button_color) | 215 | button.modify_bg(gtk.STATE_NORMAL, button_color) |
214 | self.modify_bg(gtk.STATE_PRELIGHT, button_color) | 216 | button.modify_bg(gtk.STATE_PRELIGHT, button_color) |
215 | self.modify_bg(gtk.STATE_SELECTED, button_color) | 217 | button.modify_bg(gtk.STATE_SELECTED, button_color) |
218 | |||
219 | button.set_flags(gtk.CAN_DEFAULT) | ||
220 | button.grab_default() | ||
216 | 221 | ||
217 | self.set_flags(gtk.CAN_DEFAULT) | 222 | label = "<span size='x-large'><b>%s</b></span>" % gobject.markup_escape_text(button.get_label()) |
218 | self.grab_default() | 223 | button.set_label(label) |
224 | button.child.set_use_markup(True) | ||
219 | 225 | ||
220 | class HobAltButton(gtk.Button): | 226 | class HobAltButton(gtk.Button): |
221 | """ | 227 | """ |
222 | A gtk.Button subclass which has no relief, and so is more discrete | 228 | A gtk.Button subclass which has no relief, and so is more discrete |
223 | """ | 229 | """ |
224 | def __init__(self, label): | 230 | def __init__(self, label): |
225 | gtk.Button.__init__(self) | 231 | gtk.Button.__init__(self, label) |
226 | self.text = label | 232 | HobAltButton.style_button(self) |
227 | self.set_text() | ||
228 | self.set_relief(gtk.RELIEF_NONE) | ||
229 | self.connect("state-changed", self.desensitise_on_state_change_cb) | ||
230 | 233 | ||
231 | """ | 234 | """ |
232 | A callback for the state-changed event to ensure the text is displayed | 235 | A callback for the state-changed event to ensure the text is displayed |
233 | differently when the widget is not sensitive | 236 | differently when the widget is not sensitive |
234 | """ | 237 | """ |
235 | def desensitise_on_state_change_cb(self, widget, state): | 238 | @staticmethod |
236 | if widget.get_state() == gtk.STATE_INSENSITIVE: | 239 | def desensitise_on_state_change_cb(button, state): |
237 | self.set_text(False) | 240 | if button.get_state() == gtk.STATE_INSENSITIVE: |
241 | HobAltButton.set_text(button, False) | ||
238 | else: | 242 | else: |
239 | self.set_text(True) | 243 | HobAltButton.set_text(button, True) |
240 | 244 | ||
241 | """ | 245 | """ |
242 | Set the button label with an appropriate colour for the current widget state | 246 | Set the button label with an appropriate colour for the current widget state |
243 | """ | 247 | """ |
244 | def set_text(self, sensitive=True): | 248 | @staticmethod |
249 | def set_text(button, sensitive=True): | ||
245 | if sensitive: | 250 | if sensitive: |
246 | colour = HobColors.PALE_BLUE | 251 | colour = HobColors.PALE_BLUE |
247 | else: | 252 | else: |
248 | colour = HobColors.LIGHT_GRAY | 253 | colour = HobColors.LIGHT_GRAY |
249 | self.set_label("<span color='%s'><b>%s</b></span>" % (colour, gobject.markup_escape_text(self.text))) | 254 | button.set_label("<span color='%s'><b>%s</b></span>" % (colour, gobject.markup_escape_text(button.text))) |
250 | self.child.set_use_markup(True) | 255 | button.child.set_use_markup(True) |
256 | |||
257 | @staticmethod | ||
258 | def style_button(button): | ||
259 | button.text = button.get_label() | ||
260 | button.connect("state-changed", HobAltButton.desensitise_on_state_change_cb) | ||
261 | HobAltButton.set_text(button) | ||
262 | button.child.set_use_markup(True) | ||
263 | button.set_relief(gtk.RELIEF_NONE) | ||
251 | 264 | ||
252 | class HobImageButton(gtk.Button): | 265 | class HobImageButton(gtk.Button): |
253 | """ | 266 | """ |