Write a GridModel, with correct size and layout, and use it
This commit is contained in:
parent
fbc7bd8b97
commit
5988a89517
@ -11,30 +11,24 @@ from sugar.canvas.ScreenContainer import ScreenContainer
|
|||||||
from sugar.canvas.GridLayout import GridLayout
|
from sugar.canvas.GridLayout import GridLayout
|
||||||
from sugar.canvas.GridLayout import GridConstraints
|
from sugar.canvas.GridLayout import GridConstraints
|
||||||
from sugar.canvas.GridLayout import GridGroup
|
from sugar.canvas.GridLayout import GridGroup
|
||||||
|
from sugar.canvas.GridModel import GridModel
|
||||||
|
|
||||||
class Frame:
|
class Frame:
|
||||||
def __init__(self, shell, owner):
|
def __init__(self, shell, owner):
|
||||||
self._windows = []
|
self._windows = []
|
||||||
|
|
||||||
self._model = goocanvas.CanvasModelSimple()
|
self._model = GridModel("#4f4f4f")
|
||||||
item = goocanvas.Rect(x=0, y=0, width=800, height=600,
|
layout = self._model.get_layout()
|
||||||
line_width=0, fill_color="#4f4f4f")
|
|
||||||
self._model.get_root_item().add_child(item)
|
|
||||||
|
|
||||||
self._screen_layout = GridLayout()
|
self._screen_layout = GridLayout()
|
||||||
self._screen_container = ScreenContainer(self._windows)
|
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)
|
constraints = GridConstraints(0, 11, 16, 1)
|
||||||
self._create_window(constraints)
|
self._create_window(constraints)
|
||||||
|
|
||||||
panel = BottomPanel(shell, owner.get_invites())
|
panel = BottomPanel(shell, owner.get_invites())
|
||||||
layout.set_constraints(panel, constraints)
|
layout.set_constraints(panel, constraints)
|
||||||
group.add_child(panel)
|
self._model.add(panel)
|
||||||
|
|
||||||
# Top
|
# Top
|
||||||
constraints = GridConstraints(0, 0, 16, 1)
|
constraints = GridConstraints(0, 0, 16, 1)
|
||||||
@ -48,7 +42,6 @@ class Frame:
|
|||||||
constraints = GridConstraints(15, 1, 1, 10)
|
constraints = GridConstraints(15, 1, 1, 10)
|
||||||
self._create_window(constraints)
|
self._create_window(constraints)
|
||||||
|
|
||||||
self._model.get_root_item().add_child(group)
|
|
||||||
self._screen_container.set_layout(self._screen_layout)
|
self._screen_container.set_layout(self._screen_layout)
|
||||||
|
|
||||||
def _create_window(self, constraints):
|
def _create_window(self, constraints):
|
||||||
|
@ -6,7 +6,7 @@ class CanvasWindow(gtk.Window):
|
|||||||
gtk.Window.__init__(self)
|
gtk.Window.__init__(self)
|
||||||
|
|
||||||
self._view = goocanvas.CanvasView()
|
self._view = goocanvas.CanvasView()
|
||||||
self._view.set_model(model)
|
self._view.set_model(model.get())
|
||||||
self.add(self._view)
|
self.add(self._view)
|
||||||
self._view.show()
|
self._view.show()
|
||||||
|
|
||||||
|
30
sugar/canvas/GridModel.py
Normal file
30
sugar/canvas/GridModel.py
Normal 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()
|
Loading…
Reference in New Issue
Block a user