Hi,
this patch adds the ability to drag activity icons out from the ring.
Thanks,
Tomeu
From 5b44c112e59ed581001bdcadb962ff7f2bb9f9d7 Mon Sep 17 00:00:00 2001
From: Tomeu Vizoso <[EMAIL PROTECTED](none)>
Date: Tue, 10 Jun 2008 16:55:37 +0200
Subject: [PATCH] Make the favorite activity icons draggable
---
src/view/home/FriendsBox.py | 12 ++-
src/view/home/HomeBox.py| 15 ++-
src/view/home/HomeWindow.py | 31 +++--
src/view/home/MeshBox.py| 12 ++-
src/view/home/activitieslist.py | 22 ++--
src/view/home/activitiesring.py | 263 ++-
src/view/home/launchbox.py |8 +-
src/view/home/transitionbox.py | 13 ++-
8 files changed, 274 insertions(+), 102 deletions(-)
diff --git a/src/view/home/FriendsBox.py b/src/view/home/FriendsBox.py
index 7c6648a..8c6ddcf 100644
--- a/src/view/home/FriendsBox.py
+++ b/src/view/home/FriendsBox.py
@@ -14,6 +14,7 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+import gobject
import gtk
import hippo
@@ -26,16 +27,19 @@ from model import shellmodel
from view.home.FriendView import FriendView
from view.home.spreadlayout import SpreadLayout
-class FriendsBox(hippo.CanvasBox):
+class FriendsBox(hippo.Canvas):
__gtype_name__ = 'SugarFriendsBox'
def __init__(self):
-hippo.CanvasBox.__init__(self,
- background_color=style.COLOR_WHITE.get_int())
+gobject.GObject.__init__(self)
+
+self._box = hippo.CanvasBox()
+self._box.props.background_color = style.COLOR_WHITE.get_int()
+self.set_root(self._box)
self._friends = {}
self._layout = SpreadLayout()
-self.set_layout(self._layout)
+self._box.set_layout(self._layout)
self._owner_icon = CanvasIcon(icon_name='computer-xo', cache=True,
xo_color=profile.get_color())
diff --git a/src/view/home/HomeBox.py b/src/view/home/HomeBox.py
index fa22a11..429b903 100644
--- a/src/view/home/HomeBox.py
+++ b/src/view/home/HomeBox.py
@@ -18,7 +18,6 @@ from gettext import gettext as _
import gobject
import gtk
-import hippo
from sugar.graphics import style
from sugar.graphics import iconentry
@@ -32,11 +31,11 @@ _LIST_VIEW = 1
_AUTOSEARCH_TIMEOUT = 1000
-class HomeBox(hippo.CanvasBox, hippo.CanvasItem):
+class HomeBox(gtk.VBox):
__gtype_name__ = 'SugarHomeBox'
def __init__(self):
-hippo.CanvasBox.__init__(self)
+gobject.GObject.__init__(self)
self._ring_view = ActivitiesRing()
self._list_view = ActivitiesList()
@@ -45,7 +44,8 @@ class HomeBox(hippo.CanvasBox, hippo.CanvasItem):
self._toolbar = HomeToolbar()
self._toolbar.connect('query-changed', self.__toolbar_query_changed_cb)
self._toolbar.connect('view-changed', self.__toolbar_view_changed_cb)
-self.append(hippo.CanvasWidget(widget=self._toolbar))
+self.pack_start(self._toolbar, expand=False)
+self._toolbar.show()
self._set_view(_RING_VIEW)
@@ -66,13 +66,14 @@ class HomeBox(hippo.CanvasBox, hippo.CanvasItem):
if self._enable_xo_palette:
self._ring_view.enable_xo_palette()
-self.append(self._ring_view, hippo.PACK_EXPAND)
-
+self.add(self._ring_view)
+self._ring_view.show()
elif view == _LIST_VIEW:
if self._ring_view in self.get_children():
self.remove(self._ring_view)
-self.append(self._list_view, hippo.PACK_EXPAND)
+self.add(self._list_view)
+self._list_view.show()
else:
raise ValueError('Invalid view: %r' % view)
diff --git a/src/view/home/HomeWindow.py b/src/view/home/HomeWindow.py
index 9151d46..03a571e 100644
--- a/src/view/home/HomeWindow.py
+++ b/src/view/home/HomeWindow.py
@@ -15,7 +15,6 @@
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
import gtk
-import hippo
from sugar.graphics import style
from sugar.graphics import palettegroup
@@ -44,10 +43,6 @@ class HomeWindow(gtk.Window):
self._active = False
self._level = ShellModel.ZOOM_HOME
-self._canvas = hippo.Canvas()
-self.add(self._canvas)
-self._canvas.show()
-
self.set_default_size(gtk.gdk.screen_width(),
gtk.gdk.screen_height())
@@ -70,8 +65,9 @@ class HomeWindow(gtk.Window):
self.launch_box = LaunchBox()
self._activate_view()
-self._canvas.set_root(self._home_box)
-
+self.add(self._home_box)
+self._home_box.show()
+
self._transition_box.connect('completed',
self._transition_completed_cb)
@@ -122,8 +118,9 @@ class HomeWindow(gtk.Window):
self._deactivate_view()
self.