Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/shell/model/shellmodel.py
diff options
context:
space:
mode:
Diffstat (limited to 'shell/model/shellmodel.py')
-rw-r--r--shell/model/shellmodel.py29
1 files changed, 26 insertions, 3 deletions
diff --git a/shell/model/shellmodel.py b/shell/model/shellmodel.py
index 1117ea5..4c3dfea 100644
--- a/shell/model/shellmodel.py
+++ b/shell/model/shellmodel.py
@@ -16,6 +16,7 @@
import os
+import wnck
import gobject
from sugar.presence import presenceservice
@@ -37,9 +38,12 @@ class ShellModel(gobject.GObject):
ZOOM_ACTIVITY = 3
__gproperties__ = {
- 'state' : (int, None, None,
- 0, 2, STATE_RUNNING,
- gobject.PARAM_READWRITE)
+ 'state' : (int, None, None,
+ 0, 2, STATE_RUNNING,
+ gobject.PARAM_READWRITE),
+ 'zoom-level' : (int, None, None,
+ 0, 3, ZOOM_HOME,
+ gobject.PARAM_READABLE)
}
def __init__(self):
@@ -47,6 +51,7 @@ class ShellModel(gobject.GObject):
self._current_activity = None
self._state = self.STATE_RUNNING
+ self._zoom_level = self.ZOOM_HOME
self._pservice = presenceservice.get_instance()
@@ -57,6 +62,19 @@ class ShellModel(gobject.GObject):
self._home = HomeModel()
self._devices = DevicesModel()
+ self._screen = wnck.screen_get_default()
+ self._screen.connect('showing-desktop-changed',
+ self._showing_desktop_changed_cb)
+
+ def set_zoom_level(self, level):
+ self._zoom_level = level
+
+ def get_zoom_level(self):
+ if self._screen.get_showing_desktop():
+ return self._zoom_level
+ else:
+ return self.ZOOM_ACTIVITY
+
def do_set_property(self, pspec, value):
if pspec.name == 'state':
self._state = value
@@ -64,6 +82,8 @@ class ShellModel(gobject.GObject):
def do_get_property(self, pspec):
if pspec.name == 'state':
return self._state
+ elif pspec.name == 'zoom-level':
+ return self.get_zoom_level()
def get_mesh(self):
return self._mesh
@@ -82,3 +102,6 @@ class ShellModel(gobject.GObject):
def get_devices(self):
return self._devices
+
+ def _showing_desktop_changed_cb(self, screen):
+ self.notify('zoom-level')