Implement palette groups. Use them to not popdown frame when hover a palette.

This commit is contained in:
Marco Pesenti Gritti
2007-07-06 14:36:59 +02:00
parent 9ec946d2d0
commit 7468faa840
6 changed files with 52 additions and 7 deletions
+6 -1
View File
@@ -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):
+1
View File
@@ -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:
+13 -4
View File
@@ -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()