diff options
author | Marco Pesenti Gritti <marco@localhost.localdomain> | 2006-09-19 12:04:11 (GMT) |
---|---|---|
committer | Marco Pesenti Gritti <marco@localhost.localdomain> | 2006-09-19 12:04:11 (GMT) |
commit | 9ff192d0b3ab7ed3259e1f934eb4421e3ff9032d (patch) | |
tree | 4d14ef19d61569ad446e431f61689ea84b3a319a /sugar | |
parent | e8a457a2663f809e3d745bac35f718fe420e1135 (diff) |
Use a different menu shell for the zoom view and the frame
Diffstat (limited to 'sugar')
-rw-r--r-- | sugar/canvas/MenuIcon.py | 21 | ||||
-rw-r--r-- | sugar/canvas/MenuShell.py | 12 |
2 files changed, 18 insertions, 15 deletions
diff --git a/sugar/canvas/MenuIcon.py b/sugar/canvas/MenuIcon.py index b4297e5..bd4122e 100644 --- a/sugar/canvas/MenuIcon.py +++ b/sugar/canvas/MenuIcon.py @@ -4,15 +4,6 @@ import gobject from sugar.canvas.IconItem import IconItem from sugar.canvas.Grid import Grid -class _MenuShell: - def __init__(self): - self._menu_controller = None - - def set_active(self, controller): - if self._menu_controller: - self._menu_controller.popdown() - self._menu_controller = controller - class _MenuStrategy: def get_menu_position(self, menu, grid_x1, grid_y1, grid_x2, grid_y2): grid_x = grid_x2 @@ -29,12 +20,11 @@ class _MenuStrategy: return [grid_x, grid_y] class MenuIcon(IconItem, goocanvas.Item): - _menu_shell = _MenuShell() - - def __init__(self, grid, **kwargs): + def __init__(self, menu_shell, **kwargs): IconItem.__init__(self, **kwargs) - self._grid = grid + self._menu_shell = menu_shell + self._grid = menu_shell.get_grid() self._menu = None self._hover_menu = False self._popdown_on_leave = False @@ -45,6 +35,7 @@ class MenuIcon(IconItem, goocanvas.Item): if self._menu: self._menu.destroy() self._menu = None + self._menu_shell.set_active(None) def set_menu_strategy(self, strategy): self._menu_strategy = strategy @@ -52,7 +43,7 @@ class MenuIcon(IconItem, goocanvas.Item): def _popup(self, x1, y1, x2, y2): self.popdown() - MenuIcon._menu_shell.set_active(None) + self._menu_shell.set_active(None) grid = self._shell.get_grid() self._menu = self.create_menu() @@ -74,7 +65,7 @@ class MenuIcon(IconItem, goocanvas.Item): self._menu.show() - MenuIcon._menu_shell.set_active(self) + self._menu_shell.set_active(self) def _menu_enter_notify_event_cb(self, widget, event): self._hover_menu = True diff --git a/sugar/canvas/MenuShell.py b/sugar/canvas/MenuShell.py new file mode 100644 index 0000000..fad35f4 --- /dev/null +++ b/sugar/canvas/MenuShell.py @@ -0,0 +1,12 @@ +class MenuShell: + def __init__(self, grid): + self._menu_controller = None + self._grid = grid + + def set_active(self, controller): + if self._menu_controller: + self._menu_controller.popdown() + self._menu_controller = controller + + def get_grid(self): + return self._grid |