From ebb2f2da5760329d5c15785f4429a009806d25a2 Mon Sep 17 00:00:00 2001 From: Walter Bender Date: Wed, 03 Feb 2010 21:07:31 +0000 Subject: cleaning up imports --- (limited to 'tablock.py') diff --git a/tablock.py b/tablock.py new file mode 100644 index 0000000..e740c9e --- /dev/null +++ b/tablock.py @@ -0,0 +1,704 @@ +# -*- coding: utf-8 -*- +#Copyright (c) 2010 Walter Bender + +#Permission is hereby granted, free of charge, to any person obtaining a copy +#of this software and associated documentation files (the "Software"), to deal +#in the Software without restriction, including without limitation the rights +#to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +#copies of the Software, and to permit persons to whom the Software is +#furnished to do so, subject to the following conditions: + +#The above copyright notice and this permission notice shall be included in +#all copies or substantial portions of the Software. + +#THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +#IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +#FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +#AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +#LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +#OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +#THE SOFTWARE. + +from taconstants import * +from sprite_factory import SVG, svg_str_to_pixbuf +import sprites +from gettext import gettext as _ + +# +# A class for the list of blocks and everything they share in common +# +class Blocks: + def __init__(self, font_scale_factor = 1): + self.list = [] + self.font_scale_factor = font_scale_factor + + def get_block(self, i): + if i < 0 or i > len(self.list)-1: + return(None) + else: + return(self.list[i]) + + def length_of_list(self): + return(len(self.list)) + + def append_to_list(self,block): + self.list.append(block) + + def remove_from_list(self, block): + if block in self.list: + self.list.remove(block) + + def print_list(self, block_type=None): + for i, block in enumerate(self.list): + if block_type is None or block_type == block.type: + print "%d: %s" % (i, block.name) + + # + # sprite utilities + # + def spr_to_block(self, spr): + for b in self.list: + if spr == b.spr: + return b + return None + +# +# A class for the individual blocks +# +class Block: + # + # TODO: + # block data should be stored in block, not in block.spr.label + # Logo code + # HTML code + # debug code + # etc. + def __init__(self, block_list, sprite_list, name, x, y, type='block', + values=[], scale=BLOCK_SCALE, colors=["#00FF00","#00A000"]): + self.spr = None + self.shapes = [] + self.name = name + self.colors = colors + self.scale = scale + self.docks = None + self.connections = None + self.values = [] + self.primitive = None + self.type = type + self._dx = 0 + self._ei = 0 + self._ex = 0 + self._ey = 0 + self._font_size = [6.0, 4.5] + self._left = 2 + self._right = 2 + + if OLD_NAMES.has_key(self.name): + self.name = OLD_NAMES[self.name] + + for i in range(len(self._font_size)): + self._font_size[i] *= self.scale*block_list.font_scale_factor + + for v in (values): + self.values.append(v) + + self._new_block_from_factory(sprite_list, x, y) + + if PRIMITIVES.has_key(name): + self.primitive = PRIMITIVES[self.name] + + block_list.append_to_list(self) + + # We need to resize some blocks on the fly. + def resize(self): + # make sure the label fits + lw = self.spr.label_width() + lwh = self.spr.label_area_dimensions() + self._dx = (lw-lwh[0]) + if self._dx < 0: + self._dx = 0 + self._make_block(self.svg) + self.spr.set_shape(self.shapes[0]) + + # We may want to rescale blocks as well. + def rescale(self, scale): + for i in range(len(self._font_size)): + self._font_size[i] /= self.scale + self.scale = scale + for i in range(len(self._font_size)): + self._font_size[i] *= self.scale + self._make_block(self.svg) + self.spr.set_shape(self.shapes[0]) + + # We may want to add "innies" + def add_arg(self): + h = self.svg.get_height() + self._ei += 1 + self.svg.set_show(True) + self._make_block(self.svg) + self.spr.set_shape(self.shapes[0]) + return self.svg.get_height()-h + + # We may want to grow a block vertically. + def expand_in_y(self, dy): + self._ey += dy + self.svg.set_hide(True) + self.svg.set_show(True) + self._make_block(self.svg) + self.spr.set_shape(self.shapes[0]) + + # We may want to grow a block horizontally. + def expand_in_x(self, dx): + self._ex += dx + self.svg.set_hide(True) + self.svg.set_show(True) + self._make_block(self.svg) + self.spr.set_shape(self.shapes[0]) + + def reset_x(self): + dx = -self._ex + self._ex = 0 + self.svg.set_hide(False) + self.svg.set_show(True) + self._make_block(self.svg) + self.spr.set_shape(self.shapes[0]) + return dx + + def reset_y(self): + dy = -self._ey + self._ey = 0 + self.svg.set_hide(False) + self.svg.set_show(True) + self._make_block(self.svg) + self.spr.set_shape(self.shapes[0]) + return dy + + def get_expand_x_y(self): + return (self._ex, self._ey) + + def _new_block_from_factory(self, sprite_list, x, y): + self.svg = SVG() + self.svg.set_scale(self.scale) + self.svg.set_gradiant(True) + self.svg.set_innie([False]) + self.svg.set_outie(False) + self.svg.set_tab(True) + self.svg.set_slot(True) + + if self.name in EXPANDABLE and self.type == 'block': + self.svg.set_show(True) + + self._make_block(self.svg) + self.spr = sprites.Sprite(sprite_list, x, y, self.shapes[0]) + + self.spr.set_margins(self._left, self.svg.get_slot_depth(), self._right, + self.svg.get_slot_depth()*2) + + if self.name in CONTENT_BLOCKS and len(self.values) > 0: + for i, v in enumerate(self.values): + self._set_labels(i, str(v)) + elif BLOCK_NAMES.has_key(self.name): + for i, n in enumerate(BLOCK_NAMES[self.name]): + self._set_labels(i, n) + + # Make sure the labels fit. + self.resize() + + def _set_labels(self, i, label): + if i == 1: # top + self.spr.set_label_attributes(int(self._font_size[1]+0.5), True, + "right", "top", i) + elif i == 2: # bottom + self.spr.set_label_attributes(int(self._font_size[1]+0.5), True, + "right", "bottom", i) + else: + self.spr.set_label_attributes(int(self._font_size[0]+0.5), True, + "center", "middle", i) + self.spr.set_label(label, i) + + def _make_block(self, svg): + self._set_colors(svg) + self.svg.set_stroke_width(STANDARD_STROKE_WIDTH) + self.svg.clear_docks() + self.shapes = [] + if self.name in BASIC_STYLE: + self._make_basic_style(svg) + elif self.name in BASIC_STYLE_HEAD: + self._make_basic_style_head(svg) + elif self.name in BASIC_STYLE_HEAD_1ARG: + self._make_basic_style_head_1arg(svg) + elif self.name in BASIC_STYLE_TAIL: + self._make_basic_style_tail(svg) + elif self.name in BASIC_STYLE_1ARG: + self._make_basic_style_1arg(svg) + elif self.name in BASIC_STYLE_2ARG: + self._make_basic_style_2arg(svg) + elif self.name in BULLET_STYLE: + self._make_basic_style_var_arg(svg) + elif self.name in BOX_STYLE: + self._make_box_style(svg) + elif self.name in BOX_STYLE_MEDIA: + self._make_media_style(svg) + elif self.name in NUMBER_STYLE: + self._make_number_style(svg) + elif self.name in NUMBER_STYLE_BLOCK: + self._make_number_style_block(svg) + elif self.name in NUMBER_STYLE_1ARG: + self._make_number_style_1arg(svg) + elif self.name in NUMBER_STYLE_1STRARG: + self._make_number_style_1strarg(svg) + elif self.name in NUMBER_STYLE_PORCH: + self._make_number_style_porch(svg) + elif self.name in COMPARE_STYLE: + self._make_compare_style(svg) + elif self.name in BOOLEAN_STYLE: + self._make_boolean_style(svg) + elif self.name in NOT_STYLE: + self._make_not_style(svg) + elif self.name in FLOW_STYLE: + self._make_flow_style(svg) + elif self.name in FLOW_STYLE_1ARG: + self._make_flow_style_1arg(svg) + elif self.name in FLOW_STYLE_BOOLEAN: + self._make_flow_style_boolean(svg) + elif self.name in FLOW_STYLE_ELSE: + self._make_flow_style_else(svg) + elif self.name in PORTFOLIO_STYLE_2x2: + self._make_portfolio_style_2x2(svg) + elif self.name in PORTFOLIO_STYLE_2x1: + self._make_portfolio_style_2x1(svg) + elif self.name in PORTFOLIO_STYLE_1x1: + self._make_portfolio_style_1x1(svg) + elif self.name in PORTFOLIO_STYLE_1x2: + self._make_portfolio_style_1x2(svg) + else: + self._make_basic_style(svg) + print ">>>>> I don't know how to create a %s block" % (self.name) + + def _set_colors(self, svg): + if BOX_COLORS.has_key(self.name): + self.colors = BOX_COLORS[self.name] + else: + for p in range(len(PALETTES)): + if self.name in PALETTES[p]: + self.colors = COLORS[p] + self.svg.set_colors(self.colors) + + def _make_basic_style(self, svg): + self.svg.expand(self._dx+self._ex, self._ey) + self._make_basic_block(svg) + self.docks = [['flow',True,self.svg.docks[0][0],self.svg.docks[0][1]], + ['flow',False,self.svg.docks[1][0],self.svg.docks[1][1]]] + self._left, self._right = 2, 2 + + def _make_basic_style_head(self, svg): + self.svg.expand(10+self._dx+self._ex, self._ey) + self.svg.set_slot(False) + self.svg.set_cap(True) + self._make_basic_block(svg) + self.docks = [['start', True, 0, 0], + ['flow', False, self.svg.docks[0][0], + self.svg.docks[0][1]]] + self._left, self._right = 2, 2 + + def _make_basic_style_head_1arg(self, svg): + self.svg.expand(10+self._dx+self._ex, self._ey) + self.svg.set_innie([True]) + self.svg.set_slot(False) + self.svg.set_cap(True) + self._make_basic_block(svg) + self.docks = [['start', True, 0, 0], + ['string', False, self.svg.docks[0][0], + self.svg.docks[0][1]], + ['flow', False, self.svg.docks[1][0], + self.svg.docks[1][1]]] + self._left, self._right = 2, self.svg.get_innie_width()*1.5 + + def _make_basic_style_tail(self, svg): + self.svg.expand(10+self._dx+self._ex, self._ey) + self.svg.set_tab(False) + self._make_basic_block(svg) + self.docks = [['flow', True, self.svg.docks[0][0], + self.svg.docks[0][1]], + ['unavailable', False, 0, 0]] + + def _make_basic_style_1arg(self, svg): + self.svg.expand(10+self._dx+self._ex, self._ey) + self.svg.set_innie([True]) + self._make_basic_block(svg) + self.docks = [['flow', True, self.svg.docks[0][0], + self.svg.docks[0][1]], + ['number', False, self.svg.docks[1][0], + self.svg.docks[1][1]], + ['flow', False, self.svg.docks[2][0], + self.svg.docks[2][1]]] + self._left, self._right = 2, self.svg.get_innie_width()*1.5 + + def _make_basic_style_2arg(self, svg): + self.svg.expand(10+self._dx+self._ex, self._ey) + self.svg.set_innie([True,True]) + self._make_basic_block(svg) + self.docks = [['flow', True, self.svg.docks[0][0], + self.svg.docks[0][1]], + ['number', False, self.svg.docks[1][0], + self.svg.docks[1][1]], + ['number', False, self.svg.docks[2][0], + self.svg.docks[2][1]], + ['flow', False, self.svg.docks[3][0], + self.svg.docks[3][1]]] + self._left, self._right = 2, self.svg.get_innie_width()*1.5 + + def _make_basic_style_var_arg(self, svg): + self.svg.expand(10+self._dx+self._ex, self._ey) + innie = [True, True] + for i in range(self._ei): + innie.append(True) + self.svg.set_innie(innie) + self._make_basic_block(svg) + self.docks = [['flow', True, self.svg.docks[0][0], + self.svg.docks[0][1]], + ['string', False, self.svg.docks[1][0], + self.svg.docks[1][1]], + ['string', False, self.svg.docks[2][0], + self.svg.docks[2][1], '[']] + for i in range(self._ei): + self.docks.append(['string', False, self.svg.docks[i+3][0], + self.svg.docks[i+3][1]]) + self.docks.append(['flow', False, self.svg.docks[self._ei+3][0], + self.svg.docks[self._ei+3][1], ']']) + self._left, self._right = 2, self.svg.get_innie_width()*1.5 + + def _make_box_style(self, svg): + self.svg.expand(60+self._dx+self._ex, self._ey) + self._make_basic_box(svg) + self.docks = [['number', True, self.svg.docks[0][0], + self.svg.docks[0][1]], + ['unavailable', False, 0, 0]] + self._left, self._right = self.svg.docks[1][0], 1 + + def _make_media_style(self, svg): + self.svg.expand(40+self._dx+self._ex, 10+self._ey) + self._make_basic_box(svg) + self.docks = [['number', True, self.svg.docks[0][0], + self.svg.docks[0][1]], + ['unavailable', False, 0, 0]] + self._left, self._right = self.svg.docks[1][0], 1 + + def _make_number_style(self, svg): + self.svg.expand(self._dx+self._ex, self._ey) + self.svg.set_innie([True,True]) + self.svg.set_outie(True) + self.svg.set_tab(False) + self.svg.set_slot(False) + self._make_basic_block(svg) + """ + NOTE: The "outie" is added last, so the dock order in the NUMBER_STYLE + needs to be modified. + """ + self.docks = [['number', True, self.svg.docks[2][0], + self.svg.docks[2][1]], + ['number', False, self.svg.docks[0][0], + self.svg.docks[0][1]], + ['number', False, self.svg.docks[1][0], + self.svg.docks[1][1]]] + self._left = self.svg.docks[2][0] + self._right = self.svg.get_innie_width()*1.5 + + def _make_number_style_block(self, svg): + self.svg.expand(self._dx+self._ex, self._ey) + self.svg.set_innie([True,True]) + self.svg.set_outie(True) + self.svg.set_tab(False) + self.svg.set_slot(False) + self._make_basic_block(svg) + self.docks = [['number', True, self.svg.docks[2][0], + self.svg.docks[2][1], '('], + ['number', False, self.svg.docks[0][0], + self.svg.docks[0][1]], + ['number', False, self.svg.docks[1][0], + self.svg.docks[1][1]], + ['unavailable', False, 0, 0, ')']] + self._left = self.svg.docks[2][0] + self._right = self.svg.get_innie_width()*1.5 + + def _make_number_style_1arg(self, svg): + self.svg.expand(self._dx+self._ex, self._ey) + self.svg.set_innie([True]) + self.svg.set_outie(True) + self.svg.set_tab(False) + self.svg.set_slot(False) + self._make_basic_block(svg) + self.docks = [['number', True, self.svg.docks[1][0], + self.svg.docks[1][1]], + ['number', False, self.svg.docks[0][0], + self.svg.docks[0][1]]] + self._left, self._right = self.svg.docks[1][0], self.svg.docks[1][0] + + def _make_number_style_1strarg(self, svg): + self.svg.expand(self._dx+self._ex, self._ey) + self.svg.set_innie([True]) + self.svg.set_outie(True) + self.svg.set_tab(False) + self.svg.set_slot(False) + self._make_basic_block(svg) + self.docks = [['number', True, self.svg.docks[1][0], + self.svg.docks[1][1]], + ['string', False, self.svg.docks[0][0], + self.svg.docks[0][1]], + ['unavailable', False, 0, 0]] + self._left, self._right = self.svg.docks[1][0], self.svg.docks[1][0] + + def _make_number_style_porch(self, svg): + self.svg.expand(self._dx+self._ex, self._ey) + self.svg.set_innie([True,True]) + self.svg.set_outie(True) + self.svg.set_tab(False) + self.svg.set_slot(False) + self.svg.set_porch(True) + self._make_basic_block(svg) + self.docks = [['number', True, self.svg.docks[2][0], + self.svg.docks[2][1]], + ['number', False, self.svg.docks[0][0], + self.svg.docks[0][1]], + ['number', False, self.svg.docks[1][0], + self.svg.docks[1][1]]] + self._left = self.svg.docks[2][0] + self._right = self.svg.get_width()-self.svg.docks[0][0] + + def _make_compare_style(self, svg): + self.svg.expand(10+self._dx+self._ex, self._ey) + self._make_boolean_compare(svg) + self.docks = [['bool', True, self.svg.docks[0][0], + self.svg.docks[0][1], '('], + ['number', False, self.svg.docks[1][0], + self.svg.docks[1][1]], + ['number', False, self.svg.docks[2][0], + self.svg.docks[2][1]], + ['unavailable', False, 0, 0, ')']] + self._left, self._right = self.svg.get_width()-self.svg.docks[2][0], 0 + + def _make_boolean_style(self, svg): + self.svg.expand(10+self._dx+self._ex, self._ey) + self._make_boolean_and_or(svg) + self.docks = [['bool', True, self.svg.docks[0][0], + self.svg.docks[0][1]], + ['bool', False, self.svg.docks[1][0], + self.svg.docks[1][1]], + ['bool', False, self.svg.docks[2][0], + self.svg.docks[2][1]]] + self._left, self._right = self.svg.get_width()-self.svg.docks[1][0], 0 + + def _make_not_style(self, svg): + self.svg.expand(15+self._dx+self._ex, self._ey) + self._make_boolean_not(svg) + self.docks = [['bool', True, self.svg.docks[0][0], + self.svg.docks[0][1]], + ['bool', False, self.svg.docks[1][0], + self.svg.docks[1][1]]] + self._right = self.svg.get_width()-self.svg.docks[1][0] + self._left = self._right + + def _make_flow_style(self, svg): + self.svg.expand(10+self._dx+self._ex, self._ey) + self.svg.set_slot(True) + self.svg.set_tab(False) + self._make_basic_flow(svg) + # This is an ugly hack. + if self.name == 'forever': + self.docks = [['flow', True, self.svg.docks[0][0], + self.svg.docks[0][1]], + ['flow', False, self.svg.docks[1][0], + self.svg.docks[1][1], '['], + ['unavailable', False, 0, 0, ']']] + else: + self.docks = [['flow', True, self.svg.docks[0][0], + self.svg.docks[0][1]], + ['flow', False, self.svg.docks[1][0], + self.svg.docks[1][1]]] + self._left, self._right = 0, self.svg.get_width()-self.svg.docks[1][0] + + def _make_flow_style_1arg(self, svg): + self.svg.expand(self._dx+self._ex, self._ey) + self.svg.set_slot(True) + self.svg.set_tab(True) + self.svg.set_innie([True]) + self._make_basic_flow(svg) + self.docks = [['flow', True, self.svg.docks[0][0], + self.svg.docks[0][1]], + ['number', False, self.svg.docks[1][0], + self.svg.docks[1][1]], + ['flow', False, self.svg.docks[2][0], + self.svg.docks[2][1], '['], + ['flow', False, self.svg.docks[3][0], + self.svg.docks[3][1], ']']] + self._left = 2 + self._right = self.svg.get_width()-self.svg.docks[1][0]+ \ + self.svg.get_innie_width()*1.5 + + def _make_flow_style_boolean(self, svg): + self.svg.expand(self._dx+self._ex, self._ey) + self.svg.set_slot(True) + self.svg.set_tab(True) + self.svg.set_boolean(True) + self._make_basic_flow(svg) + self.docks = [['flow', True, self.svg.docks[0][0], + self.svg.docks[0][1]], + ['bool', False, self.svg.docks[1][0], + self.svg.docks[1][1]], + ['flow', False, self.svg.docks[2][0], + self.svg.docks[2][1], '['], + ['flow', False, self.svg.docks[3][0], + self.svg.docks[3][1], ']']] + self._left, self._right = 2, self.svg.get_width()-self.svg.docks[1][0] + + def _make_flow_style_else(self, svg): + self.svg.expand(self._dx+self._ex, self._ey) + self.svg.set_slot(True) + self.svg.set_tab(True) + self.svg.set_else(True) + self.svg.set_boolean(True) + self._make_basic_flow(svg) + self.docks = [['flow', True, self.svg.docks[0][0], + self.svg.docks[0][1]], + ['bool', False, self.svg.docks[1][0], + self.svg.docks[1][1]], + ['flow', False, self.svg.docks[3][0], + self.svg.docks[3][1], '['], + ['flow', False, self.svg.docks[2][0], + self.svg.docks[2][1], ']['], + ['flow', False, self.svg.docks[4][0], + self.svg.docks[4][1], ']']] + self._left, self._right = 2, self.svg.get_width()-self.svg.docks[1][0] + + def _make_portfolio_style_2x2(self, svg): + self.svg.expand(30+self._dx+self._ex, 10+self._ey) + self.svg.set_slot(True) + self.svg.set_tab(True) + self.svg.set_innie([True, True, False, True]) + self._make_portfolio(svg) + self.docks = [['flow', True, self.svg.docks[0][0], + self.svg.docks[0][1]], + ['string', False, self.svg.docks[6][0], + self.svg.docks[6][1]], + ['media', False, self.svg.docks[5][0], + self.svg.docks[5][1]], + ['media', False, self.svg.docks[1][0], + self.svg.docks[1][1]], + ['media', False, self.svg.docks[4][0], + self.svg.docks[4][1]], + ['media', False, self.svg.docks[2][0], + self.svg.docks[2][1]], + ['flow', False, self.svg.docks[3][0], + self.svg.docks[3][1]]] + self._left, self._right = 2, self.svg.get_width()-2 + + def _make_portfolio_style_2x1(self, svg): + self.svg.expand(30+self._dx+self._ex, 10+self._ey) + self.svg.set_slot(True) + self.svg.set_tab(True) + self.svg.set_innie([True, True]) + self._make_portfolio(svg) + self.docks = [['flow', True, self.svg.docks[0][0], + self.svg.docks[0][1]], + ['string', False, self.svg.docks[4][0], + self.svg.docks[4][1]], + ['media', False, self.svg.docks[3][0], + self.svg.docks[3][1]], + ['media', False, self.svg.docks[1][0], + self.svg.docks[1][1]], + ['flow', False, self.svg.docks[2][0], + self.svg.docks[2][1]]] + self._left, self._right = 2, self.svg.get_width()-2 + + def _make_portfolio_style_1x2(self, svg): + self.svg.expand(30+self._dx+self._ex, 15+self._ey) + self.svg.set_slot(True) + self.svg.set_tab(True) + self.svg.set_innie([True, True, False, True]) + self.svg.set_draw_innies(False) + self._make_portfolio(svg) + self.docks = [['flow', True, self.svg.docks[0][0], + self.svg.docks[0][1]], + ['string', False, self.svg.docks[4][0], + self.svg.docks[4][1]], + ['media', False, self.svg.docks[3][0], + self.svg.docks[3][1]], + ['media', False, self.svg.docks[2][0], + self.svg.docks[2][1]], + ['flow', False, self.svg.docks[1][0], + self.svg.docks[1][1]]] + self._left, self._right = 2, self.svg.get_width()-2 + + + def _make_portfolio_style_1x1(self, svg): + self.svg.expand(30+self._dx+self._ex, 15+self._ey) + self.svg.set_slot(True) + self.svg.set_tab(True) + self.svg.set_innie([True, True]) + self.svg.set_draw_innies(False) + self._make_portfolio(svg) + self.docks = [['flow', True, self.svg.docks[0][0], + self.svg.docks[0][1]], + ['string', False, self.svg.docks[3][0], + self.svg.docks[3][1]], + ['media', False, self.svg.docks[2][0], + self.svg.docks[2][1]], + ['flow', False, self.svg.docks[1][0], + self.svg.docks[1][1]]] + self._left, self._right = 2, self.svg.get_width()-2 + + def _make_basic_block(self, svg): + self.shapes.append(svg_str_to_pixbuf(self.svg.basic_block())) + self.width = self.svg.get_width() + self.height = self.svg.get_height() + self.svg.set_stroke_width(SELECTED_STROKE_WIDTH) + self.svg.set_stroke_color(SELECTED_COLOR) + self.shapes.append(svg_str_to_pixbuf(self.svg.basic_block())) + + def _make_basic_box(self, svg): + self.shapes.append(svg_str_to_pixbuf(self.svg.basic_box())) + self.width = self.svg.get_width() + self.height = self.svg.get_height() + self.svg.set_stroke_width(SELECTED_STROKE_WIDTH) + self.svg.set_stroke_color(SELECTED_COLOR) + self.shapes.append(svg_str_to_pixbuf(self.svg.basic_box())) + + def _make_portfolio(self, svg): + self.shapes.append(svg_str_to_pixbuf(self.svg.portfolio())) + self.width = self.svg.get_width() + self.height = self.svg.get_height() + self.svg.set_stroke_width(SELECTED_STROKE_WIDTH) + self.svg.set_stroke_color(SELECTED_COLOR) + self.shapes.append(svg_str_to_pixbuf(self.svg.portfolio())) + + def _make_basic_flow(self, svg): + self.shapes.append(svg_str_to_pixbuf(self.svg.basic_flow())) + self.width = self.svg.get_width() + self.height = self.svg.get_height() + self.svg.set_stroke_width(SELECTED_STROKE_WIDTH) + self.svg.set_stroke_color(SELECTED_COLOR) + self.shapes.append(svg_str_to_pixbuf(self.svg.basic_flow())) + + def _make_boolean_compare(self, svg): + self.shapes.append(svg_str_to_pixbuf(self.svg.boolean_compare())) + self.width = self.svg.get_width() + self.height = self.svg.get_height() + self.svg.set_stroke_width(SELECTED_STROKE_WIDTH) + self.svg.set_stroke_color(SELECTED_COLOR) + self.shapes.append(svg_str_to_pixbuf(self.svg.boolean_compare())) + + def _make_boolean_and_or(self, svg): + self.shapes.append(svg_str_to_pixbuf(self.svg.boolean_and_or())) + self.width = self.svg.get_width() + self.height = self.svg.get_height() + self.svg.set_stroke_width(SELECTED_STROKE_WIDTH) + self.svg.set_stroke_color(SELECTED_COLOR) + self.shapes.append(svg_str_to_pixbuf(self.svg.boolean_and_or())) + + def _make_boolean_not(self, svg): + self.shapes.append(svg_str_to_pixbuf(self.svg.boolean_not())) + self.width = self.svg.get_width() + self.height = self.svg.get_height() + self.svg.set_stroke_width(SELECTED_STROKE_WIDTH) + self.svg.set_stroke_color(SELECTED_COLOR) + self.shapes.append(svg_str_to_pixbuf(self.svg.boolean_not())) -- cgit v0.9.1