Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/sugar/graphics/menu.py
diff options
context:
space:
mode:
authorMarco Pesenti Gritti <marco@localhost.localdomain>2006-10-02 14:37:30 (GMT)
committer Marco Pesenti Gritti <marco@localhost.localdomain>2006-10-02 14:37:30 (GMT)
commita951b36347bfb5350c4c6031ba1126c25b94f44d (patch)
tree63db8d067f78bdfe53d69b3eb472cbdffeba08ad /sugar/graphics/menu.py
parent4958c43b33f3a02982b58f612f2ba46b069d12bf (diff)
Reimplement menu using hippo and hook it up for the
activity menu.
Diffstat (limited to 'sugar/graphics/menu.py')
-rw-r--r--sugar/graphics/menu.py50
1 files changed, 50 insertions, 0 deletions
diff --git a/sugar/graphics/menu.py b/sugar/graphics/menu.py
new file mode 100644
index 0000000..9a85bcf
--- /dev/null
+++ b/sugar/graphics/menu.py
@@ -0,0 +1,50 @@
+import gtk
+import hippo
+import gobject
+
+from sugar.graphics.canvasicon import CanvasIcon
+
+class Menu(gtk.Window):
+ __gsignals__ = {
+ 'action': (gobject.SIGNAL_RUN_FIRST,
+ gobject.TYPE_NONE, ([int])),
+ }
+
+ def __init__(self, title, content_box=None):
+ gtk.Window.__init__(self, gtk.WINDOW_POPUP)
+
+ canvas = hippo.Canvas()
+ self.add(canvas)
+ canvas.show()
+
+ self._root = hippo.CanvasBox(background_color=0x000000FF,
+ spacing=6)
+ canvas.set_root(self._root)
+
+ text = hippo.CanvasText(text=title, color=0xFFFFFFFF)
+ self._root.append(text)
+
+ if content_box:
+ separator = self._create_separator()
+ self._root.append(separator)
+ self._root.append(content_box)
+
+ separator = self._create_separator()
+ self._root.append(separator)
+
+ self._action_box = hippo.CanvasBox(
+ orientation=hippo.ORIENTATION_HORIZONTAL)
+ self._root.append(self._action_box)
+
+ def _create_separator(self):
+ separator = hippo.CanvasBox(background_color=0xFFFFFFFF,
+ border_left=6, border_right=6,
+ box_height=2)
+ return separator
+
+ def add_action(self, icon, action_id):
+ icon.connect('activated', self._action_clicked_cb, action_id)
+ self._action_box.append(icon)
+
+ def _action_clicked_cb(self, icon, action):
+ self.emit('action', action)