From 213045b8471a506fcc8ecf5b71a89770aee0f9bb Mon Sep 17 00:00:00 2001 From: Vincent Vinet Date: Wed, 09 Dec 2009 01:12:19 +0000 Subject: WIP --- diff --git a/src/jarabe/desktop/homewindow.py b/src/jarabe/desktop/homewindow.py index 1022588..3aa88dc 100644 --- a/src/jarabe/desktop/homewindow.py +++ b/src/jarabe/desktop/homewindow.py @@ -21,7 +21,7 @@ import gtk from sugar.graphics import style from sugar.graphics import palettegroup from sugar.tutorius import TProbe -from sugar.tutorius.overlayer import Overlayer +from sugar.tutorius.overlayer import FrameOverlayer, TextBubble from jarabe.desktop.meshbox import MeshBox from jarabe.desktop.homebox import HomeBox @@ -61,19 +61,27 @@ class HomeWindow(gtk.Window): self.connect('key-release-event', self.__key_release_event_cb) self._home_box = HomeBox() - self._home_box.show() self._group_box = GroupBox() - self._group_box.show() self._mesh_box = MeshBox() - self._mesh_box.show() self._transition_box = TransitionBox() - self._home_overlay = Overlayer(self._home_box) - self._group_overlay = Overlayer(self._group_box) - self._mesh_overlay = Overlayer(self._mesh_box) - - self.add(self._home_overlay) - self._home_overlay.show_all() + self._home_overlay = FrameOverlayer(self._home_box) + self._group_overlay = FrameOverlayer(self._group_box) + self._mesh_overlay = FrameOverlayer(self._mesh_box) + #Hide them f... + self._home_overlay.hide() + self._group_overlay.hide() + self._mesh_overlay.hide() + #Make em overlap this window + self._home_overlay.set_transient_for(self) + self._group_overlay.set_transient_for(self) + self._mesh_overlay.set_transient_for(self) + + self.add(self._home_box) + self._home_box.show() + self._home_overlay.put(TextBubble("testhome"), 100, 200) + self._group_overlay.put(TextBubble("testgroup"), 200, 200) + self._mesh_overlay.put(TextBubble("testmesh"), 300, 200) self._transition_box.connect('completed', self._transition_completed_cb) @@ -130,7 +138,7 @@ class HomeWindow(gtk.Window): def __map_event_cb(self, window, event): # have to make the desktop window active # since metacity doesn't make it on startup - timestamp = event.time + timestamp = getattr(event,"time",None) if not timestamp: timestamp = gtk.gdk.x11_get_server_time(self.window) self.window.focus(timestamp) @@ -138,13 +146,15 @@ class HomeWindow(gtk.Window): def __zoom_level_changed_cb(self, **kwargs): old_level = kwargs['old_level'] new_level = kwargs['new_level'] - + logging.debug("ET PHONE HOME zoom changed %s->%s", old_level, new_level) self._deactivate_view(old_level) self._activate_view(new_level) if old_level != ShellModel.ZOOM_ACTIVITY and \ new_level != ShellModel.ZOOM_ACTIVITY: - self.remove(self.get_child()) + child = self.get_child() + child.hide() + self.remove(child) self.add(self._transition_box) self._transition_box.show() @@ -167,25 +177,28 @@ class HomeWindow(gtk.Window): self._update_view(new_level) def _transition_completed_cb(self, transition_box): + logging.debug("ET PHONE HOME transition_completed") self._update_view(shell.get_model().zoom_level) def _update_view(self, level): + logging.debug("ET PHONE HOME _update_view %s", level) if level == ShellModel.ZOOM_ACTIVITY: return current_child = self.get_child() + current_child.hide() self.remove(current_child) if level == ShellModel.ZOOM_HOME: - self.add(self._home_overlay) - self._home_overlay.show_all() + self.add(self._home_box) + self._home_box.show() self._home_box.focus_search_entry() elif level == ShellModel.ZOOM_GROUP: - self.add(self._group_overlay) - self._group_overlay.show_all() + self.add(self._group_box) + self._group_box.show() elif level == ShellModel.ZOOM_MESH: - self.add(self._mesh_overlay) - self._mesh_overlay.show_all() + self.add(self._mesh_box) + self._mesh_box.show() self._mesh_box.focus_search_entry() def get_home_box(self): diff --git a/src/jarabe/desktop/meshbox.py b/src/jarabe/desktop/meshbox.py index 2ba23d5..756e089 100644 --- a/src/jarabe/desktop/meshbox.py +++ b/src/jarabe/desktop/meshbox.py @@ -786,7 +786,7 @@ class MeshBox(gtk.VBox): min_h_, icon_height = self._owner_icon.get_height_request(icon_width) x = (width - icon_width) / 2 y = (height - icon_height) / 2 - style.GRID_CELL_SIZE - self._layout.move(self._owner_icon, x, y) + self._layout.move(self._owner_icon, max(x,0), max(y,0)) gtk.VBox.do_size_allocate(self, allocation) -- cgit v0.9.1