Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/shell
diff options
context:
space:
mode:
authorMarco Pesenti Gritti <mpg@redhat.com>2007-03-12 19:18:55 (GMT)
committer Marco Pesenti Gritti <mpg@redhat.com>2007-03-12 19:18:55 (GMT)
commitbf80cb55b99fd2594e2cb85abddfb787c5b08485 (patch)
tree4ae85e7bc8387206b783422f00b0b7fe026bef94 /shell
parent2bd609e5fda7c1ba4ebb04d159e63a3c24a555ec (diff)
Some cleanups in the Shell. Add a way to save/restore the frame state.
Diffstat (limited to 'shell')
-rw-r--r--shell/view/Shell.py16
-rw-r--r--shell/view/frame/frame.py16
2 files changed, 25 insertions, 7 deletions
diff --git a/shell/view/Shell.py b/shell/view/Shell.py
index 9a2772f..f4ba70c 100644
--- a/shell/view/Shell.py
+++ b/shell/view/Shell.py
@@ -38,11 +38,13 @@ class Shell(gobject.GObject):
self._current_host = None
self._screen_rotation = 0
+ self._key_handler = KeyHandler(self)
+ self._popup_context = PopupContext()
+ self._frame = Frame(self)
+
self._home_window = HomeWindow(self)
self._home_window.show()
- self.set_zoom_level(sugar.ZOOM_HOME)
-
- self._key_handler = KeyHandler(self)
+ self._zoom_level = sugar.ZOOM_HOME
home_model = self._model.get_home()
home_model.connect('activity-added', self._activity_added_cb)
@@ -50,10 +52,6 @@ class Shell(gobject.GObject):
home_model.connect('active-activity-changed',
self._active_activity_changed_cb)
- self._popup_context = PopupContext()
-
- self._frame = Frame(self)
-
#self.start_activity('org.laptop.JournalActivity')
def _activity_added_cb(self, home_model, home_activity):
@@ -137,6 +135,10 @@ class Shell(gobject.GObject):
self.set_zoom_level(sugar.ZOOM_HOME)
def set_zoom_level(self, level):
+ self._zoom_level = level
+ self._update_zoom_level()
+
+ def _update_zoom_level(self):
if level == sugar.ZOOM_ACTIVITY:
self._screen.toggle_showing_desktop(False)
else:
diff --git a/shell/view/frame/frame.py b/shell/view/frame/frame.py
index 11aea67..51a8032 100644
--- a/shell/view/frame/frame.py
+++ b/shell/view/frame/frame.py
@@ -110,6 +110,11 @@ class _KeyListener(object):
self._hide_sid = gobject.timeout_add(
100, self._hide_frame_timeout_cb)
+class _FrameState(object):
+ def __init__(self, visible, mode):
+ self.visible = visible
+ self.mode = mode
+
class Frame(object):
def __init__(self, shell):
self.mode = MODE_NONE
@@ -124,6 +129,7 @@ class Frame(object):
self._current_position = 0.0
self._animator = None
self._hover = False
+ self._saved_state = None
self._event_frame = EventFrame()
self._event_frame.connect('enter-corner', self._enter_corner_cb)
@@ -149,6 +155,16 @@ class Frame(object):
self._key_listener = _KeyListener(self)
self._mouse_listener = _MouseListener(self)
+ def save_state(self):
+ self._saved_state = _FrameState(self.visible, self.mode)
+
+ def restore_state(self):
+ if self.saved_state.visible:
+ self.show()
+ else:
+ self.hide()
+ self.mode = self._saved_state.mode
+
def hide(self, force=False):
if not self.visible:
return