From 6f77290880dbb6dcb9d37988697124c073e3b381 Mon Sep 17 00:00:00 2001 From: Marco Pesenti Gritti Date: Thu, 18 May 2006 15:58:42 -0400 Subject: [PATCH] Improve notification bar appeareance. --- sugar/browser/NotificationBar.py | 25 +++++++++++++++++++++++-- sugar/browser/browser.py | 12 ++++++++---- sugar/browser/browser.rc | 7 +++++++ sugar/session/session.py | 2 -- 4 files changed, 38 insertions(+), 8 deletions(-) create mode 100644 sugar/browser/browser.rc diff --git a/sugar/browser/NotificationBar.py b/sugar/browser/NotificationBar.py index 0220ea06..71ce1512 100644 --- a/sugar/browser/NotificationBar.py +++ b/sugar/browser/NotificationBar.py @@ -2,6 +2,7 @@ import pygtk pygtk.require('2.0') import gtk import gobject +import cairo class NotificationBar(gtk.HBox): __gsignals__ = { @@ -11,17 +12,37 @@ class NotificationBar(gtk.HBox): def __init__(self): gtk.HBox.__init__(self) + + self.set_name("notif bar") + self.set_border_width(3) + self._text_label = gtk.Label() + self._text_label.set_alignment(0.0, 0.5) self.pack_start(self._text_label) self._text_label.show() - + self._action_button = gtk.Button() self._action_button.connect('clicked', self.__button_clicked) self.pack_start(self._action_button, False) self._action_button.show() + + self.connect('expose_event', self.expose) + + def expose(self, widget, event): + rect = self.get_allocation() + ctx = widget.window.cairo_create() + + ctx.new_path() + ctx.rectangle(rect.x, rect.y, rect.width, rect.height) + ctx.set_source_rgb(0.56 , 0.75 , 1) + ctx.fill_preserve() + ctx.set_source_rgb(0.16 , 0.35 , 0.6) + ctx.stroke() + + return False def set_text(self, text): - self._text_label.set_text(text) + self._text_label.set_markup('' + text + '') def set_action(self, action_id, action_text): self._action_id = action_id diff --git a/sugar/browser/browser.py b/sugar/browser/browser.py index 2797d81a..bec69ebf 100755 --- a/sugar/browser/browser.py +++ b/sugar/browser/browser.py @@ -1,7 +1,8 @@ #!/usr/bin/env python - import sys +from xml.sax import saxutils + import dbus import dbus.service import dbus.glib @@ -240,8 +241,11 @@ class BrowserActivity(activity.Activity): bus = dbus.SessionBus() proxy_obj = bus.get_object('com.redhat.Sugar.Chat', '/com/redhat/Sugar/Chat') chat_shell = dbus.Interface(proxy_obj, 'com.redhat.Sugar.ChatShell') - chat_shell.send_message('' + - self.embed.get_title() + '') + + escaped_address = saxutils.escape(self.embed.get_title()) + escaped_title = saxutils.escape(address) + chat_shell.send_message('' + escaped_title + '') def __title_cb(self, embed): self.activity_set_tab_text(embed.get_title()) @@ -339,7 +343,7 @@ class BrowserShell(dbus.service.Object): if len(sys.argv) > 1 and sys.argv[1] == "--console": sys.stdout = LogWriter("Web Browser") sys.stderr = LogWriter("Web Browser") - + gtk.rc_parse(sugar.env.get_data_file('browser.rc')) BrowserShell.get_instance().open_web_activity() diff --git a/sugar/browser/browser.rc b/sugar/browser/browser.rc new file mode 100644 index 00000000..69f13204 --- /dev/null +++ b/sugar/browser/browser.rc @@ -0,0 +1,7 @@ +style "NotificationBarButton" = "button" +{ + xthickness = 0 + ythickness = 0 +} + +widget "*.notif bar.*GtkButton*" style "NotificationBarButton" diff --git a/sugar/session/session.py b/sugar/session/session.py index aedf8ceb..94a61263 100644 --- a/sugar/session/session.py +++ b/sugar/session/session.py @@ -27,11 +27,9 @@ def start(console): for filename in os.listdir(activities_dir): if filename.endswith(".activity"): path = os.path.join(activities_dir, filename) - cp = ConfigParser() cp.read([path]) python_class = cp.get('Activity', "python_class") - activities.append(python_class) for activity in activities: