Write a GridModel, with correct size and layout, and use it

This commit is contained in:
Marco Pesenti Gritti 2006-09-07 19:03:40 +02:00
parent fbc7bd8b97
commit 5988a89517
3 changed files with 35 additions and 12 deletions

View File

@ -11,30 +11,24 @@ from sugar.canvas.ScreenContainer import ScreenContainer
from sugar.canvas.GridLayout import GridLayout
from sugar.canvas.GridLayout import GridConstraints
from sugar.canvas.GridLayout import GridGroup
from sugar.canvas.GridModel import GridModel
class Frame:
def __init__(self, shell, owner):
self._windows = []
self._model = goocanvas.CanvasModelSimple()
item = goocanvas.Rect(x=0, y=0, width=800, height=600,
line_width=0, fill_color="#4f4f4f")
self._model.get_root_item().add_child(item)
self._model = GridModel("#4f4f4f")
layout = self._model.get_layout()
self._screen_layout = GridLayout()
self._screen_container = ScreenContainer(self._windows)
group = GridGroup()
group.props.width = 800
group.props.height = 600
layout = group.get_layout()
constraints = GridConstraints(0, 11, 16, 1)
self._create_window(constraints)
panel = BottomPanel(shell, owner.get_invites())
layout.set_constraints(panel, constraints)
group.add_child(panel)
self._model.add(panel)
# Top
constraints = GridConstraints(0, 0, 16, 1)
@ -48,7 +42,6 @@ class Frame:
constraints = GridConstraints(15, 1, 1, 10)
self._create_window(constraints)
self._model.get_root_item().add_child(group)
self._screen_container.set_layout(self._screen_layout)
def _create_window(self, constraints):

View File

@ -6,7 +6,7 @@ class CanvasWindow(gtk.Window):
gtk.Window.__init__(self)
self._view = goocanvas.CanvasView()
self._view.set_model(model)
self._view.set_model(model.get())
self.add(self._view)
self._view.show()

30
sugar/canvas/GridModel.py Normal file
View File

@ -0,0 +1,30 @@
import goocanvas
from sugar.canvas.GridLayout import GridGroup
# FIXME model subclassing doesn't work in pygoocanvas
class GridModel:
def __init__(self, bg_color):
self._model = goocanvas.CanvasModelSimple()
self._width = 800
self._height = 600
item = goocanvas.Rect(width=self._width, height=self._height,
line_width=0, fill_color=bg_color)
self._model.get_root_item().add_child(item)
self._root = GridGroup()
self._root.props.width = self._width
self._root.props.height = self._height
self._model.get_root_item().add_child(self._root)
def add(self, child):
self._root.add_child(child)
def get(self):
return self._model
def get_layout(self):
return self._root.get_layout()