summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoshua Lock <josh@linux.intel.com>2012-03-02 15:41:21 -0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2012-03-12 02:26:12 +0000
commit26ff0faabd56e84df41eee507b860e75be3f8870 (patch)
treea51c194bb57b7a6d9f70d1010f4bd7b7aaa23e3e
parent9781b0905d9897693e408223c2bf1dce2f82de8f (diff)
downloadpoky-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.py49
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
23import os 23import os
24import os.path 24import os.path
25from bb.ui.crumbs.hobcolor import HobColors 25from bb.ui.crumbs.hobcolor import HobColors
26from bb.ui.crumbs.persistenttooltip import PersistentTooltip
26 27
27class hwc: 28class 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
315class 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)