Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/src/jarabe/desktop/homewindow.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/jarabe/desktop/homewindow.py')
-rw-r--r--src/jarabe/desktop/homewindow.py82
1 files changed, 47 insertions, 35 deletions
diff --git a/src/jarabe/desktop/homewindow.py b/src/jarabe/desktop/homewindow.py
index e673414..e88fca6 100644
--- a/src/jarabe/desktop/homewindow.py
+++ b/src/jarabe/desktop/homewindow.py
@@ -40,7 +40,6 @@ class HomeWindow(gtk.Window):
self.add_accel_group(accel_group)
self._active = False
- self._level = ShellModel.ZOOM_HOME
self.set_default_size(gtk.gdk.screen_width(),
gtk.gdk.screen_height())
@@ -62,16 +61,14 @@ class HomeWindow(gtk.Window):
self._mesh_box = MeshBox()
self._transition_box = TransitionBox()
- self._activate_view()
self.add(self._home_box)
self._home_box.show()
self._transition_box.connect('completed',
self._transition_completed_cb)
- model = shell.get_model()
- model.connect('notify::zoom-level', self.__zoom_level_changed_cb)
- print model
+ shell.get_model().zoom_level_changed.connect(
+ self.__zoom_level_changed_cb)
def _enter_notify_event_cb(self, window, event):
if event.x != gtk.gdk.screen_width() / 2 or \
@@ -92,18 +89,18 @@ class HomeWindow(gtk.Window):
self.disconnect(self._motion_sid)
self.disconnect(self._enter_sid)
- def _deactivate_view(self):
+ def _deactivate_view(self, level):
group = palettegroup.get_group("default")
group.popdown()
- if self._level == ShellModel.ZOOM_HOME:
+ if level == ShellModel.ZOOM_HOME:
self._home_box.suspend()
- elif self._level == ShellModel.ZOOM_MESH:
+ elif level == ShellModel.ZOOM_MESH:
self._mesh_box.suspend()
- def _activate_view(self):
- if self._level == ShellModel.ZOOM_HOME:
+ def _activate_view(self, level):
+ if level == ShellModel.ZOOM_HOME:
self._home_box.resume()
- elif self._level == ShellModel.ZOOM_MESH:
+ elif level == ShellModel.ZOOM_MESH:
self._mesh_box.resume()
def _visibility_notify_event_cb(self, window, event):
@@ -112,40 +109,55 @@ class HomeWindow(gtk.Window):
else:
self._activate_view()
- def __zoom_level_changed_cb(self, model, pspec):
- level = model.props.zoom_level
+ def __zoom_level_changed_cb(self, **kwargs):
+ old_level = kwargs['old_level']
+ new_level = kwargs['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())
+ self.add(self._transition_box)
+ self._transition_box.show()
+
+ if new_level == ShellModel.ZOOM_HOME:
+ end_size = style.XLARGE_ICON_SIZE
+ elif new_level == ShellModel.ZOOM_GROUP:
+ end_size = style.LARGE_ICON_SIZE
+ elif new_level == ShellModel.ZOOM_MESH:
+ end_size = style.STANDARD_ICON_SIZE
+
+ if old_level == ShellModel.ZOOM_HOME:
+ start_size = style.XLARGE_ICON_SIZE
+ elif old_level == ShellModel.ZOOM_GROUP:
+ start_size = style.LARGE_ICON_SIZE
+ elif old_level == ShellModel.ZOOM_MESH:
+ start_size = style.STANDARD_ICON_SIZE
+
+ self._transition_box.start_transition(start_size, end_size)
+ else:
+ self._update_view(new_level)
+
+ def _transition_completed_cb(self, transition_box):
+ self._update_view(shell.get_model().zoom_level)
+
+ def _update_view(self, level):
if level == ShellModel.ZOOM_ACTIVITY:
return
- self._deactivate_view()
- self._level = level
- self._activate_view()
-
- self.remove(self.get_child())
- self.add(self._transition_box)
- self._transition_box.show()
-
- if self._level == ShellModel.ZOOM_HOME:
- size = style.XLARGE_ICON_SIZE
- elif self._level == ShellModel.ZOOM_GROUP:
- size = style.LARGE_ICON_SIZE
- elif self._level == ShellModel.ZOOM_MESH:
- size = style.STANDARD_ICON_SIZE
-
- self._transition_box.set_size(size)
-
- def _transition_completed_cb(self, transition_box):
- current_child = self.get_child()
+ current_child = self.get_child()
self.remove(current_child)
- if self._level == ShellModel.ZOOM_HOME:
+ if level == ShellModel.ZOOM_HOME:
self.add(self._home_box)
self._home_box.show()
self._home_box.focus_search_entry()
- elif self._level == ShellModel.ZOOM_GROUP:
+ elif level == ShellModel.ZOOM_GROUP:
self.add(self._group_box)
self._group_box.show()
- elif self._level == ShellModel.ZOOM_MESH:
+ elif level == ShellModel.ZOOM_MESH:
self.add(self._mesh_box)
self._mesh_box.show()
self._mesh_box.focus_search_entry()