diff options
Diffstat (limited to 'shell/view/ClipboardMenu.py')
-rw-r--r-- | shell/view/ClipboardMenu.py | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/shell/view/ClipboardMenu.py b/shell/view/ClipboardMenu.py new file mode 100644 index 0000000..44ca798 --- /dev/null +++ b/shell/view/ClipboardMenu.py @@ -0,0 +1,56 @@ +import gtk +import gobject +import hippo + +from sugar.graphics.menu import Menu +from sugar.graphics.canvasicon import CanvasIcon +from sugar.graphics.ClipboardBubble import ClipboardBubble +from sugar.graphics import style + +class ClipboardMenuItem(ClipboardBubble): + + def __init__(self, percent = 0, stylesheet="clipboard.Bubble"): + ClipboardBubble.__init__(self, percent = percent) + style.apply_stylesheet(self, stylesheet) + +class ClipboardMenu(Menu): + + ACTION_DELETE = 0 + ACTION_SHARE = 1 + ACTION_STOP_DOWNLOAD = 2 + + def __init__(self, name, percent): + Menu.__init__(self, name) + + self._progress_bar = ClipboardMenuItem(percent) + self._root.append(self._progress_bar) + + #icon = CanvasIcon(icon_name='stock-share-mesh') + #self.add_action(icon, ClipboardMenu.ACTION_SHARE) + + self._remove_icon = None + self._stop_icon = None + + self._create_icons(percent) + + def _create_icons(self, percent): + if percent == 100: + if not self._remove_icon: + self._remove_icon = CanvasIcon(icon_name='stock-remove') + self.add_action(self._remove_icon, ClipboardMenu.ACTION_DELETE) + + if self._stop_icon: + self.remove_action(self._stop_icon) + self._stop_icon = None + else: + if not self._stop_icon: + self._stop_icon = CanvasIcon(icon_name='stock-close') + self.add_action(self._stop_icon, ClipboardMenu.ACTION_STOP_DOWNLOAD) + + if self._remove_icon: + self.remove_action(self._remove_icon) + self._remove_icon = None + + def set_percent(self, percent): + self._progress_bar.set_property('percent', percent) + self._create_icons(percent) |