Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/sugar/graphics/menuicon.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/menuicon.py
parent4958c43b33f3a02982b58f612f2ba46b069d12bf (diff)
Reimplement menu using hippo and hook it up for the
activity menu.
Diffstat (limited to 'sugar/graphics/menuicon.py')
-rw-r--r--sugar/graphics/menuicon.py28
1 files changed, 4 insertions, 24 deletions
diff --git a/sugar/graphics/menuicon.py b/sugar/graphics/menuicon.py
index 88a8d56..3f6d477 100644
--- a/sugar/graphics/menuicon.py
+++ b/sugar/graphics/menuicon.py
@@ -4,26 +4,14 @@ import gobject
from sugar.graphics.canvasicon import CanvasIcon
class _MenuStrategy:
- def get_menu_position(self, menu, grid_x1, grid_y1, grid_x2, grid_y2):
- grid_x = grid_x2
- if grid_x + menu.get_width() > Grid.COLS:
- grid_x = grid_x1 - menu.get_width() + 1
-
- grid_y = grid_y1
-
- if grid_y < 0:
- grid_y = 0
- if grid_y + menu.get_width() > Grid.ROWS:
- grid_y = Grid.ROWS - menu.get_width()
-
- return [grid_x, grid_y]
+ def get_menu_position(self, menu, x1, y1, x2, y2):
+ return [x1, y1]
class MenuIcon(CanvasIcon):
def __init__(self, menu_shell, **kwargs):
CanvasIcon.__init__(self, **kwargs)
self._menu_shell = menu_shell
- self._grid = menu_shell.get_grid()
self._menu = None
self._hover_menu = False
self._popdown_on_leave = False
@@ -46,24 +34,16 @@ class MenuIcon(CanvasIcon):
self._menu_shell.set_active(None)
- grid = self._shell.get_grid()
self._menu = self.create_menu()
self._menu.connect('enter-notify-event',
self._menu_enter_notify_event_cb)
self._menu.connect('leave-notify-event',
self._menu_leave_notify_event_cb)
- [grid_x1, grid_y1] = grid.convert_from_screen(x1, y1)
- [grid_x2, grid_y2] = grid.convert_from_screen(x2, y2)
-
strategy = self._menu_strategy
- [grid_x, grid_y] = strategy.get_menu_position(self._menu,
- grid_x1, grid_y1,
- grid_x2, grid_y2)
-
- grid.set_constraints(self._menu, grid_x, grid_y,
- self._menu.get_width(), self._menu.get_height())
+ [x, y] = strategy.get_menu_position(self._menu, x1, y1, x2, y2)
+ self._menu.move(x, y)
self._menu.show()
self._menu_shell.set_active(self)