Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/sugar
diff options
context:
space:
mode:
authorMarco Pesenti Gritti <marco@localhost.localdomain>2006-09-13 11:53:27 (GMT)
committer Marco Pesenti Gritti <marco@localhost.localdomain>2006-09-13 11:53:27 (GMT)
commit016891ec9a89c61a739e3b8c8d85fb640ad543b0 (patch)
tree3b2ff1020e08e744bd3b572c33dc8b434cb0f2b0 /sugar
parent5086f2835e12ce4feebfa6e7c9d1e288552a1534 (diff)
Get rid of old grid implementation leftovers
Diffstat (limited to 'sugar')
-rw-r--r--sugar/canvas/GridBox.py51
-rw-r--r--sugar/canvas/GridLayout.py138
-rw-r--r--sugar/canvas/GridModel.py36
-rw-r--r--sugar/canvas/GridWindow.py25
-rw-r--r--sugar/canvas/Makefile.am7
-rw-r--r--sugar/canvas/ScreenContainer.py36
6 files changed, 1 insertions, 292 deletions
diff --git a/sugar/canvas/GridBox.py b/sugar/canvas/GridBox.py
deleted file mode 100644
index d665c88..0000000
--- a/sugar/canvas/GridBox.py
+++ /dev/null
@@ -1,51 +0,0 @@
-import goocanvas
-
-from sugar.canvas.GridLayout import GridGroup
-from sugar.canvas.GridLayout import GridConstraints
-
-class GridBox(GridGroup, goocanvas.Item):
- __gtype_name__ = 'GridBox'
-
- VERTICAL = 0
- HORIZONTAL = 1
-
- def __init__(self, direction, size, padding):
- if direction == GridBox.VERTICAL:
- GridGroup.__init__(self, 1, size)
- else:
- GridGroup.__init__(self, size, 1)
-
- self._direction = direction
- self._padding = padding
-
- def _update_constraints(self, item, position):
- if self._direction == GridBox.HORIZONTAL:
- col = position
- row = 0
- else:
- col = 0
- row = position
-
- constraints = GridConstraints(col, row, 1, 1, self._padding)
- self._layout.set_constraints(item, constraints)
-
- def do_add_child(self, item, position=-1):
- if position == -1:
- position = self.get_n_children()
-
- self._update_constraints(item, position)
-
- i = position
- while i < self.get_n_children():
- self._update_constraints(self.get_child(i), i + 1)
- i += 1
-
- GridGroup.do_add_child(self, item, position)
-
- def do_remove_child(self, position):
- GridGroup.do_remove_child(self, position)
-
- i = position
- while i < self.get_n_children():
- self._update_constraints(self.get_child(i), i)
- i += 1
diff --git a/sugar/canvas/GridLayout.py b/sugar/canvas/GridLayout.py
deleted file mode 100644
index 0507456..0000000
--- a/sugar/canvas/GridLayout.py
+++ /dev/null
@@ -1,138 +0,0 @@
-import cairo
-import gobject
-import goocanvas
-
-class GridConstraints:
- def __init__(self, x, y, width, height, padding=0):
- self.x = x
- self.y = y
- self.width = width
- self.height = height
- self.padding = padding
-
-class GridLayout:
- def __init__(self, cols=16, rows=12):
- self._rows = rows
- self._cols = cols
-
- self._constraints = {}
-
- def set_constraints(self, component, constraints):
- self._constraints[component] = constraints
- if isinstance(component, goocanvas.Item):
- self.layout_canvas_item(component)
-
- def _get_geometry(self, container, component):
- constraints = self._constraints[component]
- if constraints:
- return self.get_bounds(container, constraints)
- else:
- return [0, 0, 0, 0]
-
- def get_bounds(self, container, constraints):
- w = container.props.width
- h = container.props.height
- padding = constraints.padding
-
- x = constraints.x * w / self._cols + padding
- y = constraints.y * h / self._rows + padding
-
- width = constraints.width * w / self._cols - padding * 2
- height = constraints.height * h / self._rows - padding * 2
-
- width = max(0, width)
- height = max(0, height)
-
- return [x, y, width, height]
-
- def layout_canvas_item(self, item):
- group = item.get_parent()
- if group == None:
- return
-
- [x, y, width, height] = self._get_geometry(group, item)
-
- item.props.x = x
- item.props.y = y
-
- try:
- item.props.width = width
- item.props.height = height
- except:
- item.props.size = width
-
- def layout_screen(self, screen):
- for window in screen.get_windows():
- [x, y, width, height] = self._get_geometry(screen, window)
- window.move(int(x), int(y))
- window.resize(int(width), int(height))
-
-class GridGroup(goocanvas.Group):
- __gproperties__ = {
- 'x' : (float, None, None, -10e6, 10e6, 800.0,
- gobject.PARAM_READWRITE),
- 'y' : (float, None, None, -10e6, 10e6, 600.0,
- gobject.PARAM_READWRITE),
- 'width' : (float, None, None, 0, 10e6, 800.0,
- gobject.PARAM_READWRITE),
- 'height' : (float, None, None, 0, 10e6, 600.0,
- gobject.PARAM_READWRITE)
- }
-
- def _update_position(self):
- if self._x != 0 or self._y != 0:
- matrix = cairo.Matrix(1, 0, 0, 1, 0, 0)
- matrix.translate(self._x, self._y)
- self.set_transform(matrix)
-
- def _update_layout(self):
- i = 0
- while i < self.get_n_children():
- self._layout.layout_canvas_item(self.get_child(i))
- i += 1
-
- def do_set_property(self, pspec, value):
- if pspec.name == 'width':
- self._width = value
- self._update_layout()
- elif pspec.name == 'height':
- self._height = value
- self._update_layout()
- elif pspec.name == 'x':
- self._x = value
- self._update_position()
- elif pspec.name == 'y':
- self._y = value
- self._update_position()
-
- def do_get_property(self, pspec):
- if pspec.name == 'width':
- return self._width
- elif pspec.name == 'height':
- return self._height
- elif pspec.name == 'x':
- return self._x
- elif pspec.name == 'x':
- return self._x
-
- def __init__(self, cols=-1, rows=-1):
- self._x = 0
- self._y = 0
- self._width = 0
- self._height = 0
-
- goocanvas.Group.__init__(self)
-
- if rows < 0 and cols < 0:
- self._layout = GridLayout()
- else:
- self._layout = GridLayout(cols, rows)
-
- self.connect('child-added', self.__child_added_cb)
-
- def get_layout(self):
- return self._layout
-
- def __child_added_cb(self, group, position):
- item = group.get_child(position)
- self._layout.layout_canvas_item(item)
diff --git a/sugar/canvas/GridModel.py b/sugar/canvas/GridModel.py
deleted file mode 100644
index 4d7f7fe..0000000
--- a/sugar/canvas/GridModel.py
+++ /dev/null
@@ -1,36 +0,0 @@
-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 = 1200
- self._height = 900
-
- 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_width(self):
- return self._width
-
- def get_bounds(self, constraints):
- return self.get_layout().get_bounds(self._root, constraints)
-
- def get_layout(self):
- return self._root.get_layout()
diff --git a/sugar/canvas/GridWindow.py b/sugar/canvas/GridWindow.py
deleted file mode 100644
index c54f24b..0000000
--- a/sugar/canvas/GridWindow.py
+++ /dev/null
@@ -1,25 +0,0 @@
-import gtk
-import goocanvas
-
-class GridWindow(gtk.Window):
- def __init__(self, model):
- gtk.Window.__init__(self)
-
- self._model = model
-
- self._view = goocanvas.CanvasView()
- self._view.set_model(model.get())
- self.add(self._view)
- self._view.show()
-
- def scale_to_screen(self):
- self._view.set_scale(float(gtk.gdk.screen_width()) /
- float(self._model.get_width()))
-
- def set_bounds(self, constraints):
- bounds = self._model.get_bounds(constraints)
- self._view.set_bounds(bounds[0], bounds[1],
- bounds[2], bounds[3])
-
- def get_view(self):
- return self._view
diff --git a/sugar/canvas/Makefile.am b/sugar/canvas/Makefile.am
index 0ec1ac9..ebccb01 100644
--- a/sugar/canvas/Makefile.am
+++ b/sugar/canvas/Makefile.am
@@ -5,10 +5,5 @@ sugar_PYTHON = \
CanvasBox.py \
Colors.py \
Grid.py \
- GridBox.py \
- GridLayout.py \
- GridModel.py \
- GridWindow.py \
IconItem.py \
- IconColor.py \
- ScreenContainer.py
+ IconColor.py
diff --git a/sugar/canvas/ScreenContainer.py b/sugar/canvas/ScreenContainer.py
deleted file mode 100644
index 16bf30d..0000000
--- a/sugar/canvas/ScreenContainer.py
+++ /dev/null
@@ -1,36 +0,0 @@
-import gobject
-import gtk
-
-class ScreenContainer(gobject.GObject):
- __gproperties__ = {
- 'width' : (float, None, None, 0, 10e6, 800.0,
- gobject.PARAM_READABLE),
- 'height' : (float, None, None, 0, 10e6, 600.0,
- gobject.PARAM_READABLE)
- }
-
- def __init__(self, windows, **kwargs):
- self._width = gtk.gdk.screen_width()
- self._height = gtk.gdk.screen_height()
- self._windows = windows
-
- gobject.GObject.__init__(self, **kwargs)
-
- def do_set_property(self, pspec, value):
- if pspec.name == 'width':
- self._width = value
- elif pspec.name == 'height':
- self._height = value
-
- def do_get_property(self, pspec):
- if pspec.name == 'width':
- return self._width
- elif pspec.name == 'height':
- return self._height
-
- def set_layout(self, layout):
- self._layout = layout
- self._layout.layout_screen(self)
-
- def get_windows(self):
- return self._windows