Get rid of the old Grid and CanvasBox

This commit is contained in:
Marco Pesenti Gritti
2006-10-04 00:25:03 +02:00
parent 6f337e0b14
commit 717bdd66f4
7 changed files with 5 additions and 148 deletions
-51
View File
@@ -1,51 +0,0 @@
import goocanvas
class CanvasBox(goocanvas.Group):
VERTICAL = 0
HORIZONTAL = 1
def __init__(self, grid, orientation, padding=0):
goocanvas.Group.__init__(self)
self._grid = grid
self._orientation = orientation
self._padding = padding
self._constraints = {}
self.connect('child-added', self._child_added_cb)
self.connect('child-removed', self._child_removed_cb)
def set_constraints(self, item, width, height):
self._constraints[item] = [width, height]
def _layout(self, start_item):
if start_item == -1:
start_item = self.get_n_children() - 1
pos = 0
i = 0
while i < self.get_n_children():
item = self.get_child(i)
[width, height] = self._constraints[item]
pos += self._padding
if self._orientation == CanvasBox.VERTICAL:
x = self._padding
y = pos
pos += height + self._padding
else:
x = pos
y = self._padding
pos += width + self._padding
if i >= start_item:
self._grid.set_constraints(item, x, y, width, height)
i += 1
def _child_added_cb(self, item, position):
self._layout(position)
def _child_removed_cb(self, item, position):
self._layout(position)
-83
View File
@@ -1,83 +0,0 @@
import gtk
import goocanvas
import cairo
from sugar.canvas.IconItem import IconItem
class Grid:
COLS = 80.0
ROWS = 60.0
MACRO_CELL_FACTOR = 5.0
def get_macro_rows(self):
return Grid.ROWS / Grid.MACRO_CELL_FACTOR
def get_macro_cols(self):
return Grid.COLS / Grid.MACRO_CELL_FACTOR
def macro_to_micro(self, x, y):
return [round(x * Grid.MACRO_CELL_FACTOR),
round(y * Grid.MACRO_CELL_FACTOR)]
def micro_to_macro(self, x, y):
return [round(x / Grid.MACRO_CELL_FACTOR),
round(y / Grid.MACRO_CELL_FACTOR)]
def convert_from_screen(self, x, y):
factor = Grid.COLS / gtk.gdk.screen_width()
grid_x = round(x * factor)
grid_y = round(y * factor)
return [grid_x, grid_y]
def convert_to_canvas(self, grid_x, grid_y):
scale = 1200 / Grid.COLS
return [grid_x * scale, grid_y * scale]
def set_constraints(self, component, x, y, width=-1, height=-1):
if isinstance(component, gtk.Window):
self._layout_window(component, x, y, width, height)
elif isinstance(component, goocanvas.Item):
self._layout_item(component, x, y, width, height)
elif isinstance(component, goocanvas.CanvasView):
self._layout_canvas(component, x, y, width, height)
def _layout_window(self, window, x, y, width, height):
scale = gtk.gdk.screen_width() / Grid.COLS
window.move(int(x * scale), int(y * scale))
window.resize(int(width * scale), int(height * scale))
def _layout_item(self, item, x, y, width, height):
scale = 1200 / Grid.COLS
self._allocate_item_position(item, x * scale, y * scale)
if width > 0 and height > 0:
self._allocate_item_size(item, width * scale, height * scale)
# FIXME We really need layout support in goocanvas
def _allocate_item_size(self, item, width, height):
if isinstance(item, goocanvas.Rect):
item.props.width = width - (item.props.line_width - 1) * 2
item.props.height = height - (item.props.line_width - 1) * 2
elif isinstance(item, goocanvas.Text):
item.props.width = width
elif isinstance(item, goocanvas.Image):
item.props.width = width
item.props.height = height
elif isinstance(item, IconItem):
item.props.size = width
def _allocate_item_position(self, item, x, y):
if isinstance(item, goocanvas.Rect):
x = x + (item.props.line_width - 1)
y = y + (item.props.line_width - 1)
matrix = cairo.Matrix(1, 0, 0, 1, 0, 0)
matrix.translate(x, y)
item.set_transform(matrix)
def _layout_canvas(self, canvas, x, y, width, height):
scale = 1200 / Grid.COLS
canvas.set_bounds(x * scale, y * scale, width * scale, height * scale)
+1 -5
View File
@@ -8,10 +8,9 @@ class MenuShell(gobject.GObject):
gobject.TYPE_NONE, ([])),
}
def __init__(self, grid):
def __init__(self):
gobject.GObject.__init__(self)
self._menu_controller = None
self._grid = grid
def is_active(self):
return (self._menu_controller != None)
@@ -25,6 +24,3 @@ class MenuShell(gobject.GObject):
if self._menu_controller:
self._menu_controller.popdown()
self._menu_controller = controller
def get_grid(self):
return self._grid