sugar-toolkit-gtk3/shell/home/HomeWindow.py

62 lines
1.8 KiB
Python
Raw Normal View History

2006-08-19 01:29:42 +02:00
import gtk
import goocanvas
import cairo
2006-08-19 01:29:42 +02:00
from home.MeshGroup import MeshGroup
from home.HomeGroup import HomeGroup
from home.FriendsGroup import FriendsGroup
import sugar
2006-08-19 01:29:42 +02:00
class HomeWindow(gtk.Window):
def __init__(self, shell):
2006-08-19 01:29:42 +02:00
gtk.Window.__init__(self)
self._shell = shell
2006-08-29 14:39:34 +02:00
self._width = MeshGroup.WIDTH
self._height = MeshGroup.HEIGHT
2006-08-19 01:29:42 +02:00
self.realize()
self.window.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_DESKTOP)
def set_model(self, model):
self._model = goocanvas.CanvasModelSimple()
root = self._model.get_root_item()
2006-08-19 01:29:42 +02:00
data_model = model.get_mesh()
self._mesh_group = MeshGroup(data_model)
root.add_child(self._mesh_group)
2006-08-19 01:29:42 +02:00
data_model = model.get_friends()
self._friends_group = FriendsGroup(data_model)
2006-08-29 14:39:34 +02:00
self._friends_group.translate((self._width - FriendsGroup.WIDTH) / 2,
(self._height - FriendsGroup.HEIGHT) / 2)
root.add_child(self._friends_group)
self._home_group = HomeGroup(self._shell)
2006-08-29 14:39:34 +02:00
self._home_group.translate((self._width - HomeGroup.WIDTH) / 2,
(self._height - HomeGroup.HEIGHT) / 2)
root.add_child(self._home_group)
2006-08-29 14:39:34 +02:00
self._canvas = goocanvas.CanvasView()
self._canvas.set_size_request(gtk.gdk.screen_width(),
gtk.gdk.screen_height())
self._canvas.set_model(self._model)
2006-08-29 14:39:34 +02:00
self.add(self._canvas)
self._canvas.show()
def set_zoom_level(self, level):
if level == sugar.ZOOM_HOME:
2006-08-29 14:39:34 +02:00
width = HomeGroup.WIDTH * 1.1
height = HomeGroup.HEIGHT * 1.1
elif level == sugar.ZOOM_FRIENDS:
2006-08-29 14:39:34 +02:00
width = FriendsGroup.WIDTH * 1.1
height = FriendsGroup.HEIGHT * 1.1
elif level == sugar.ZOOM_MESH:
2006-08-29 14:39:34 +02:00
width = MeshGroup.WIDTH
height = MeshGroup.HEIGHT
self._canvas.set_bounds((self._width - width) / 2,
(self._height - height) / 2,
width, height)
self._canvas.set_scale(gtk.gdk.screen_width() / width)