Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/sugar
diff options
context:
space:
mode:
authorMarco Pesenti Gritti <marco@localhost.localdomain>2006-11-11 22:51:16 (GMT)
committer Marco Pesenti Gritti <marco@localhost.localdomain>2006-11-11 22:51:16 (GMT)
commitd3e99e76ef12ee0037e54d268cf2727da6be9f50 (patch)
treebe75e93faf8df466677dd4c935819deef4ff4561 /sugar
parent053dd74e0b50ca528e66d29364d34cf11f5a3740 (diff)
Add a shutdown button
Diffstat (limited to 'sugar')
-rw-r--r--sugar/graphics/menu.py37
-rw-r--r--sugar/graphics/stylesheet.py5
2 files changed, 38 insertions, 4 deletions
diff --git a/sugar/graphics/menu.py b/sugar/graphics/menu.py
index 5404cf5..dfc0e47 100644
--- a/sugar/graphics/menu.py
+++ b/sugar/graphics/menu.py
@@ -28,7 +28,7 @@ class Menu(gtk.Window):
gobject.TYPE_NONE, ([int])),
}
- def __init__(self, title, content_box=None):
+ def __init__(self, title=None, content_box=None):
gtk.Window.__init__(self, gtk.WINDOW_POPUP)
canvas = hippo.Canvas()
@@ -39,9 +39,12 @@ class Menu(gtk.Window):
style.apply_stylesheet(self._root, 'menu')
canvas.set_root(self._root)
- text = hippo.CanvasText(text=title)
- style.apply_stylesheet(text, 'menu.Title')
- self._root.append(text)
+ if title:
+ self._title_item = hippo.CanvasText(text=title)
+ style.apply_stylesheet(self._title_item, 'menu.Title')
+ self._root.append(self._title_item)
+ else:
+ self._title_item = None
if content_box:
separator = self._create_separator()
@@ -49,12 +52,22 @@ class Menu(gtk.Window):
self._root.append(content_box)
self._action_box = None
+ self._item_box = None
def _create_separator(self):
separator = hippo.CanvasBox()
style.apply_stylesheet(separator, 'menu.Separator')
return separator
+ def _create_item_box(self):
+ if self._title_item:
+ separator = self._create_separator()
+ self._root.append(separator)
+
+ self._item_box = hippo.CanvasBox(
+ orientation=hippo.ORIENTATION_VERTICAL)
+ self._root.append(self._item_box)
+
def _create_action_box(self):
separator = self._create_separator()
self._root.append(separator)
@@ -63,6 +76,19 @@ class Menu(gtk.Window):
orientation=hippo.ORIENTATION_HORIZONTAL)
self._root.append(self._action_box)
+ def add_item(self, label, action_id):
+ if not self._item_box:
+ self._create_item_box()
+
+ text = hippo.CanvasText(text=label)
+ style.apply_stylesheet(text, 'menu.Item')
+
+ # FIXME need a way to make hippo items activable in python
+ text.connect('button-press-event', self._item_clicked_cb, action_id)
+ #text.connect('activated', self._action_clicked_cb, action_id)
+
+ self._item_box.append(text)
+
def add_action(self, icon, action_id):
if not self._action_box:
self._create_action_box()
@@ -71,5 +97,8 @@ class Menu(gtk.Window):
icon.connect('activated', self._action_clicked_cb, action_id)
self._action_box.append(icon)
+ def _item_clicked_cb(self, icon, event, action):
+ self.emit('action', action)
+
def _action_clicked_cb(self, icon, action):
self.emit('action', action)
diff --git a/sugar/graphics/stylesheet.py b/sugar/graphics/stylesheet.py
index 98ae059..d349733 100644
--- a/sugar/graphics/stylesheet.py
+++ b/sugar/graphics/stylesheet.py
@@ -20,6 +20,11 @@ menu_ActionIcon = {
'size' : style.standard_icon_size
}
+menu_Item = {
+ 'color' : 0xFFFFFFFF,
+ 'font' : style.get_font_description('Plain', 1.1)
+}
+
menu_Text = {
'color' : 0xFFFFFFFF,
'font' : style.get_font_description('Plain', 1.2)