diff options
author | Marco Pesenti Gritti <marco@localhost.localdomain> | 2007-07-06 12:36:59 (GMT) |
---|---|---|
committer | Marco Pesenti Gritti <marco@localhost.localdomain> | 2007-07-06 12:36:59 (GMT) |
commit | 7468faa840203399542c1b5085a8c744df4eb14f (patch) | |
tree | 8fc05a241ab183f848d56261e4810c44c882eccc /shell | |
parent | 9ec946d2d0f9b689e18076c5eb41b37344d56b2d (diff) |
Implement palette groups. Use them to not popdown frame when hover a palette.
Diffstat (limited to 'shell')
-rw-r--r-- | shell/view/clipboardmenu.py | 2 | ||||
-rw-r--r-- | shell/view/frame/ActivitiesBox.py | 7 | ||||
-rw-r--r-- | shell/view/frame/FriendsBox.py | 1 | ||||
-rw-r--r-- | shell/view/frame/frame.py | 17 |
4 files changed, 22 insertions, 5 deletions
diff --git a/shell/view/clipboardmenu.py b/shell/view/clipboardmenu.py index 9be8fb8..648442a 100644 --- a/shell/view/clipboardmenu.py +++ b/shell/view/clipboardmenu.py @@ -44,6 +44,8 @@ class ClipboardMenu(Palette): self._percent = percent self._activity = activity + self.set_group_id('frame') + if percent < 100: self._progress_bar = gtk.ProgressBar() self._update_progress_bar() diff --git a/shell/view/frame/ActivitiesBox.py b/shell/view/frame/ActivitiesBox.py index 032a8bb..034ccab 100644 --- a/shell/view/frame/ActivitiesBox.py +++ b/shell/view/frame/ActivitiesBox.py @@ -18,6 +18,7 @@ import hippo import logging from sugar.graphics import units +from sugar.graphics.palette import Palette from sugar.graphics.xocolor import XoColor from sugar.graphics.iconbutton import IconButton from sugar import profile @@ -27,7 +28,11 @@ from model import bundleregistry class ActivityButton(IconButton): def __init__(self, activity): IconButton.__init__(self, icon_name=activity.get_icon()) - self.set_tooltip(activity.get_name()) + + palette = Palette(activity.get_name()) + palette.set_group_id('frame') + self.set_palette(palette) + self._activity = activity def get_bundle_id(self): diff --git a/shell/view/frame/FriendsBox.py b/shell/view/frame/FriendsBox.py index cde51f5..18b57d3 100644 --- a/shell/view/frame/FriendsBox.py +++ b/shell/view/frame/FriendsBox.py @@ -25,6 +25,7 @@ from model.BuddyModel import BuddyModel class FriendIcon(BuddyIcon): def __init__(self, shell, buddy): BuddyIcon.__init__(self, shell, buddy) + self.get_palette().set_group_id('frame') def prelight(self, enter): if enter: diff --git a/shell/view/frame/frame.py b/shell/view/frame/frame.py index 2b21576..3f3367b 100644 --- a/shell/view/frame/frame.py +++ b/shell/view/frame/frame.py @@ -20,6 +20,11 @@ import gtk import gobject import hippo +from sugar.graphics import animator +from sugar.graphics import units +from sugar.graphics import palettegroup +from sugar.clipboard import clipboardservice + from view.frame.eventarea import EventArea from view.frame.ActivitiesBox import ActivitiesBox from view.frame.ZoomBox import ZoomBox @@ -28,9 +33,6 @@ from view.frame.FriendsBox import FriendsBox from view.frame.framewindow import FrameWindow from view.frame.clipboardpanelwindow import ClipboardPanelWindow from model.shellmodel import ShellModel -from sugar.graphics import animator -from sugar.graphics import units -from sugar.clipboard import clipboardservice MODE_NONE = 0 MODE_MOUSE = 1 @@ -126,6 +128,9 @@ class Frame(object): self.mode = MODE_NONE self.visible = False + self._palette_group = palettegroup.get_group('frame') + self._palette_group.connect('popdown', self._palette_group_popdown_cb) + self._left_panel = None self._right_panel = None self._top_panel = None @@ -309,10 +314,14 @@ class Frame(object): if not self._hover: return - if not self._is_hover(): + if not self._is_hover() and not self._palette_group.is_up(): self._hover = False self._mouse_listener.mouse_leave() + def _palette_group_popdown_cb(self, group): + if not self._is_hover(): + self._mouse_listener.mouse_leave() + def _drag_motion_cb(self, window, context, x, y, time): self._mouse_listener.mouse_enter() |