diff options
author | Marco Pesenti Gritti <marco@localhost.localdomain> | 2006-10-03 22:25:03 (GMT) |
---|---|---|
committer | Marco Pesenti Gritti <marco@localhost.localdomain> | 2006-10-03 22:25:03 (GMT) |
commit | 717bdd66f45e31074952bbf49c78e14153f92c57 (patch) | |
tree | e0b49f87de5d724932cd3f458efaeb34692a329f /sugar | |
parent | 6f337e0b14f022e942c723ddcad89279f727a099 (diff) |
Get rid of the old Grid and CanvasBox
Diffstat (limited to 'sugar')
-rw-r--r-- | sugar/canvas/CanvasBox.py | 51 | ||||
-rw-r--r-- | sugar/canvas/Grid.py | 83 | ||||
-rw-r--r-- | sugar/canvas/MenuShell.py | 6 |
3 files changed, 1 insertions, 139 deletions
diff --git a/sugar/canvas/CanvasBox.py b/sugar/canvas/CanvasBox.py deleted file mode 100644 index b990b89..0000000 --- a/sugar/canvas/CanvasBox.py +++ /dev/null @@ -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) diff --git a/sugar/canvas/Grid.py b/sugar/canvas/Grid.py deleted file mode 100644 index 5a48890..0000000 --- a/sugar/canvas/Grid.py +++ /dev/null @@ -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) diff --git a/sugar/canvas/MenuShell.py b/sugar/canvas/MenuShell.py index 9b86902..58358fb 100644 --- a/sugar/canvas/MenuShell.py +++ b/sugar/canvas/MenuShell.py @@ -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 |