Move the zoom levels inside the model

This commit is contained in:
Marco Pesenti Gritti 2007-07-02 14:34:41 +02:00
parent 59bf818e99
commit 7024f93a43
10 changed files with 45 additions and 38 deletions

View File

@ -10,6 +10,6 @@ sugar_PYTHON = \
Invites.py \
Owner.py \
MeshModel.py \
ShellModel.py \
shellmodel.py \
homeactivity.py \
homemodel.py

View File

@ -31,6 +31,11 @@ class ShellModel(gobject.GObject):
STATE_RUNNING = 1
STATE_SHUTDOWN = 2
ZOOM_MESH = 0
ZOOM_FRIENDS = 1
ZOOM_HOME = 2
ZOOM_ACTIVITY = 3
__gproperties__ = {
'state' : (int, None, None,
0, 2, STATE_RUNNING,

View File

@ -35,7 +35,7 @@ logger.start('shell')
sys.path.insert(0, env.get_shell_path())
from view.Shell import Shell
from model.ShellModel import ShellModel
from model.shellmodel import ShellModel
from shellservice import ShellService
from intro import intro

View File

@ -29,14 +29,13 @@ from sugar.activity.activityhandle import ActivityHandle
from sugar.activity import activityfactory
from sugar.datastore import datastore
from sugar import profile
import sugar
from view.ActivityHost import ActivityHost
from view.frame.frame import Frame
from view.keyhandler import KeyHandler
from view.home.HomeWindow import HomeWindow
from model import bundleregistry
from model.shellmodel import ShellModel
from hardware import hardwaremanager
class Shell(gobject.GObject):
@ -58,7 +57,7 @@ class Shell(gobject.GObject):
self._home_window = HomeWindow(self)
self._home_window.show()
self._zoom_level = sugar.ZOOM_HOME
self._zoom_level = ShellModel.ZOOM_HOME
home_model = self._model.get_home()
home_model.connect('activity-started', self._activity_started_cb)
@ -102,9 +101,9 @@ class Shell(gobject.GObject):
if self._current_host:
self._current_host.set_active(True)
self.set_zoom_level(sugar.ZOOM_ACTIVITY)
self.set_zoom_level(ShellModel.ZOOM_ACTIVITY)
else:
self.set_zoom_level(sugar.ZOOM_HOME)
self.set_zoom_level(ShellModel.ZOOM_HOME)
def get_model(self):
return self._model
@ -134,7 +133,7 @@ class Shell(gobject.GObject):
def notify_launch(self, bundle_id, activity_id):
# Zoom to Home for launch feedback
self.set_zoom_level(sugar.ZOOM_HOME)
self.set_zoom_level(ShellModel.ZOOM_HOME)
home_model = self._model.get_home()
home_model.notify_activity_launch(activity_id, bundle_id)
@ -154,18 +153,18 @@ class Shell(gobject.GObject):
def set_zoom_level(self, level):
if self._zoom_level == level:
return
if len(self._hosts) == 0 and level == sugar.ZOOM_ACTIVITY:
if len(self._hosts) == 0 and level == ShellModel.ZOOM_ACTIVITY:
return
self._zoom_level = level
if self._zoom_level == sugar.ZOOM_ACTIVITY:
if self._zoom_level == ShellModel.ZOOM_ACTIVITY:
self._screen.toggle_showing_desktop(False)
else:
self._screen.toggle_showing_desktop(True)
self._home_window.set_zoom_level(self._zoom_level)
if self._zoom_level == sugar.ZOOM_HOME:
if self._zoom_level == ShellModel.ZOOM_HOME:
self._frame.show()
else:
self._frame.hide()

View File

@ -18,7 +18,8 @@ import hippo
from sugar.graphics import color
from sugar.graphics.iconbutton import IconButton
import sugar
from model.shellmodel import ShellModel
class ZoomBox(hippo.CanvasBox):
def __init__(self, shell):
@ -29,25 +30,33 @@ class ZoomBox(hippo.CanvasBox):
icon = IconButton(icon_name='theme:stock-zoom-mesh',
stroke_color=color.BLACK,
fill_color=color.WHITE)
icon.connect('activated', self._level_clicked_cb, sugar.ZOOM_MESH)
icon.connect('activated',
self._level_clicked_cb,
ShellModel.ZOOM_MESH)
self.append(icon)
icon = IconButton(icon_name='theme:stock-zoom-friends',
stroke_color=color.BLACK,
fill_color=color.WHITE)
icon.connect('activated', self._level_clicked_cb, sugar.ZOOM_FRIENDS)
icon.connect('activated',
self._level_clicked_cb,
ShellModel.ZOOM_FRIENDS)
self.append(icon)
icon = IconButton(icon_name='theme:stock-zoom-home',
stroke_color=color.BLACK,
fill_color=color.WHITE)
icon.connect('activated', self._level_clicked_cb, sugar.ZOOM_HOME)
icon.connect('activated',
self._level_clicked_cb,
ShellModel.ZOOM_HOME)
self.append(icon)
icon = IconButton(icon_name='theme:stock-zoom-activity',
stroke_color=color.BLACK,
fill_color=color.WHITE)
icon.connect('activated', self._level_clicked_cb, sugar.ZOOM_ACTIVITY)
icon.connect('activated',
self._level_clicked_cb,
ShellModel.ZOOM_ACTIVITY)
self.append(icon)
def _level_clicked_cb(self, item, level):

View File

@ -27,7 +27,7 @@ from view.frame.overlaybox import OverlayBox
from view.frame.FriendsBox import FriendsBox
from view.frame.framewindow import FrameWindow
from view.frame.clipboardpanelwindow import ClipboardPanelWindow
from model.ShellModel import ShellModel
from model.shellmodel import ShellModel
from sugar.graphics import animator
from sugar.graphics import units
from sugar.clipboard import clipboardservice

View File

@ -34,7 +34,7 @@ from sugar import env
from view.home.activitiesdonut import ActivitiesDonut
from view.devices import deviceview
from view.home.MyIcon import MyIcon
from model.ShellModel import ShellModel
from model.shellmodel import ShellModel
class HomeBox(hippo.CanvasBox, hippo.CanvasItem):
__gtype_name__ = 'SugarHomeBox'

View File

@ -19,12 +19,12 @@ import hippo
import cairo
from sugar.graphics import units
import sugar
from view.home.MeshBox import MeshBox
from view.home.HomeBox import HomeBox
from view.home.FriendsBox import FriendsBox
from view.home.transitionbox import TransitionBox
from model.shellmodel import ShellModel
_HOME_PAGE = 0
_FRIENDS_PAGE = 1
@ -37,7 +37,7 @@ class HomeWindow(gtk.Window):
self._shell = shell
self._active = False
self._level = sugar.ZOOM_HOME
self._level = ShellModel.ZOOM_HOME
self._canvas = hippo.Canvas()
self.add(self._canvas)
@ -94,7 +94,7 @@ class HomeWindow(gtk.Window):
self._home_box.release()
def _update_mesh_state(self):
if self._active and self._level == sugar.ZOOM_MESH:
if self._active and self._level == ShellModel.ZOOM_MESH:
self._mesh_box.resume()
else:
self._mesh_box.suspend()
@ -112,21 +112,21 @@ class HomeWindow(gtk.Window):
self._canvas.set_root(self._transition_box)
if level == sugar.ZOOM_HOME:
if level == ShellModel.ZOOM_HOME:
scale = units.XLARGE_ICON_SCALE
elif level == sugar.ZOOM_FRIENDS:
elif level == ShellModel.ZOOM_FRIENDS:
scale = units.LARGE_ICON_SCALE
elif level == sugar.ZOOM_MESH:
elif level == ShellModel.ZOOM_MESH:
scale = units.STANDARD_ICON_SCALE
self._transition_box.set_scale(scale)
def _transition_completed_cb(self, transition_box):
if self._level == sugar.ZOOM_HOME:
if self._level == ShellModel.ZOOM_HOME:
self._canvas.set_root(self._home_box)
elif self._level == sugar.ZOOM_FRIENDS:
elif self._level == ShellModel.ZOOM_FRIENDS:
self._canvas.set_root(self._friends_box)
elif self._level == sugar.ZOOM_MESH:
elif self._level == ShellModel.ZOOM_MESH:
self._canvas.set_root(self._mesh_box)
self._update_mesh_state()

View File

@ -24,9 +24,8 @@ import gtk
from sugar import env
from hardware import hardwaremanager
from model.ShellModel import ShellModel
from model.shellmodel import ShellModel
from sugar._sugarext import KeyGrabber
import sugar
_actions_table = {
'F1' : 'zoom_mesh',
@ -90,16 +89,16 @@ class KeyHandler(object):
hw_manager.set_display_mode(mode)
def handle_zoom_mesh(self):
self._shell.set_zoom_level(sugar.ZOOM_MESH)
self._shell.set_zoom_level(ShellModel.ZOOM_MESH)
def handle_zoom_friends(self):
self._shell.set_zoom_level(sugar.ZOOM_FRIENDS)
self._shell.set_zoom_level(ShellModel.ZOOM_FRIENDS)
def handle_zoom_home(self):
self._shell.set_zoom_level(sugar.ZOOM_HOME)
self._shell.set_zoom_level(ShellModel.ZOOM_HOME)
def handle_zoom_activity(self):
self._shell.set_zoom_level(sugar.ZOOM_ACTIVITY)
self._shell.set_zoom_level(ShellModel.ZOOM_ACTIVITY)
def handle_brightness_1(self):
self._set_display_brightness(0)

View File

@ -21,10 +21,5 @@ import os
from sugar import ltihooks
ZOOM_MESH = 0
ZOOM_FRIENDS = 1
ZOOM_HOME = 2
ZOOM_ACTIVITY = 3
if os.path.isfile(os.path.join(os.path.dirname(__file__), 'Makefile.am')):
ltihooks.install()