diff options
author | Joshua Lock <josh@linux.intel.com> | 2012-03-02 15:41:21 -0800 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2012-03-12 02:26:12 +0000 |
commit | 26ff0faabd56e84df41eee507b860e75be3f8870 (patch) | |
tree | a51c194bb57b7a6d9f70d1010f4bd7b7aaa23e3e | |
parent | 9781b0905d9897693e408223c2bf1dce2f82de8f (diff) | |
download | poky-26ff0faabd56e84df41eee507b860e75be3f8870.tar.gz |
ui/crumbs/hobwidget: implement HobInfoButton per Hob interaction design
This button-like widget will display a persistent tooltip with the
supplied Pango Markup when it is clicked by the user. This widget features
prominently in the interaction design to offer help in a more prominent
manner.
(Bitbake rev: 43f33dcd6b7d1a08651cdf0715c2c2a9d488b103)
Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r-- | bitbake/lib/bb/ui/crumbs/hobwidget.py | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/bitbake/lib/bb/ui/crumbs/hobwidget.py b/bitbake/lib/bb/ui/crumbs/hobwidget.py index 9afbfdbe96..f4ff1dc881 100644 --- a/bitbake/lib/bb/ui/crumbs/hobwidget.py +++ b/bitbake/lib/bb/ui/crumbs/hobwidget.py | |||
@@ -23,6 +23,7 @@ import gobject | |||
23 | import os | 23 | import os |
24 | import os.path | 24 | import os.path |
25 | from bb.ui.crumbs.hobcolor import HobColors | 25 | from bb.ui.crumbs.hobcolor import HobColors |
26 | from bb.ui.crumbs.persistenttooltip import PersistentTooltip | ||
26 | 27 | ||
27 | class hwc: | 28 | class hwc: |
28 | 29 | ||
@@ -311,3 +312,51 @@ class HobXpmLabelButtonBox(gtk.EventBox): | |||
311 | """ Hide items - first time """ | 312 | """ Hide items - first time """ |
312 | pass | 313 | pass |
313 | 314 | ||
315 | class HobInfoButton(gtk.EventBox): | ||
316 | """ | ||
317 | This class implements a button-like widget per the Hob visual and UX designs | ||
318 | which will display a persistent tooltip, with the contents of tip_markup, when | ||
319 | clicked. | ||
320 | |||
321 | tip_markup: the Pango Markup to be displayed in the persistent tooltip | ||
322 | """ | ||
323 | def __init__(self, tip_markup, parent=None): | ||
324 | gtk.EventBox.__init__(self) | ||
325 | self.image = gtk.Image() | ||
326 | self.image.set_from_file(hic.ICON_INFO_DISPLAY_FILE) | ||
327 | self.image.show() | ||
328 | self.add(self.image) | ||
329 | |||
330 | self.set_events(gtk.gdk.BUTTON_RELEASE | | ||
331 | gtk.gdk.ENTER_NOTIFY_MASK | | ||
332 | gtk.gdk.LEAVE_NOTIFY_MASK) | ||
333 | |||
334 | self.ptip = PersistentTooltip(tip_markup) | ||
335 | |||
336 | if parent: | ||
337 | self.ptip.set_parent(parent) | ||
338 | self.ptip.set_transient_for(parent) | ||
339 | self.ptip.set_destroy_with_parent(True) | ||
340 | |||
341 | self.connect("button-release-event", self.button_release_cb) | ||
342 | self.connect("enter-notify-event", self.mouse_in_cb) | ||
343 | self.connect("leave-notify-event", self.mouse_out_cb) | ||
344 | |||
345 | """ | ||
346 | When the mouse click is released emulate a button-click and show the associated | ||
347 | PersistentTooltip | ||
348 | """ | ||
349 | def button_release_cb(self, widget, event): | ||
350 | self.ptip.show() | ||
351 | |||
352 | """ | ||
353 | Change to the prelight image when the mouse enters the widget | ||
354 | """ | ||
355 | def mouse_in_cb(self, widget, event): | ||
356 | self.image.set_from_file(hic.ICON_INFO_HOVER_FILE) | ||
357 | |||
358 | """ | ||
359 | Change to the stock image when the mouse enters the widget | ||
360 | """ | ||
361 | def mouse_out_cb(self, widget, event): | ||
362 | self.image.set_from_file(hic.ICON_INFO_DISPLAY_FILE) | ||