From patchwork Thu Mar 22 23:31:12 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [bitbake-devel, 7/9] lib/bb/ui/crumbs/hobwidget: add HobButton widget for the primary action Date: Thu, 22 Mar 2012 23:31:12 -0000 From: Joshua Lock X-Patchwork-Id: 24213 Message-Id: <132d0f52c83344c7ebb2fb972ff814038db3ff75.1332458487.git.josh@linux.intel.com> To: bitbake-devel@lists.openembedded.org The design uses a big, bold labelled, orange button for the primary action on each dialogue. The HobButton implements this design as a reusable widget. HobButton makes use of Pango Markup to use a relative size, x-large, for the button text to ensure it's relative to the system configured font sizes. Signed-off-by: Joshua Lock --- lib/bb/ui/crumbs/hobwidget.py | 20 ++++++++++++++++++++ 1 files changed, 20 insertions(+), 0 deletions(-) diff --git a/lib/bb/ui/crumbs/hobwidget.py b/lib/bb/ui/crumbs/hobwidget.py index b93e9d4..9d144c9 100644 --- a/lib/bb/ui/crumbs/hobwidget.py +++ b/lib/bb/ui/crumbs/hobwidget.py @@ -196,6 +196,26 @@ def soften_color(widget, state=gtk.STATE_NORMAL): color.blue = color.blue * blend + style.base[state].blue * (1.0 - blend) return color.to_string() +class HobButton(gtk.Button): + """ + A gtk.Button subclass which follows the visual design of Hob for primary + action buttons + + label: the text to display as the button's label + """ + def __init__(self, label): + gtk.Button.__init__(self, "%s" % gobject.markup_escape_text(label)) + self.child.set_use_markup(True) + + style = self.get_style() + button_color = gtk.gdk.Color(HobColors.ORANGE) + self.modify_bg(gtk.STATE_NORMAL, button_color) + self.modify_bg(gtk.STATE_PRELIGHT, button_color) + self.modify_bg(gtk.STATE_SELECTED, button_color) + + self.set_flags(gtk.CAN_DEFAULT) + self.grab_default() + class HobAltButton(gtk.Button): """ A gtk.Button subclass which has no relief, and so is more discrete