diff options
author | Marco 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) |
commit | a951b36347bfb5350c4c6031ba1126c25b94f44d (patch) | |
tree | 63db8d067f78bdfe53d69b3eb472cbdffeba08ad /sugar/graphics/menuicon.py | |
parent | 4958c43b33f3a02982b58f612f2ba46b069d12bf (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.py | 28 |
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) |