From c2e939def27ef50d443ceb4ddbcd9e38bf88ace6 Mon Sep 17 00:00:00 2001 From: Walter Bender Date: Thu, 03 Mar 2011 03:43:25 +0000 Subject: added make_palette helper function --- diff --git a/TurtleArt/tabasics.py b/TurtleArt/tabasics.py index 984a839..de64608 100644 --- a/TurtleArt/tabasics.py +++ b/TurtleArt/tabasics.py @@ -66,7 +66,7 @@ from random import uniform from gettext import gettext as _ -from taprimitive import Palette, make_prim +from taprimitive import make_palette, make_prim from talogo import PLUGIN_DICTIONARY, logoerror from taconstants import CONSTANTS, BLACK, WHITE from tautils import convert, chr_to_ord, round_int, strtype @@ -94,38 +94,31 @@ class Palettes(): def __init__(self, parent): self.tw = parent - p = Palette('turtle', ["#00FF00", "#00A000"]) - p.set_help(_('Palette of turtle commands')) - p.add_palette() + make_palette('turtle', ["#00FF00", "#00A000"], + _('Palette of turtle commands')) self._turtle_palette() - p = Palette('pen', ["#00FFFF", "#00A0A0"]) - p.set_help(_('Palette of pen commands')) - p.add_palette() + make_palette('pen', ["#00FFFF", "#00A0A0"], + _('Palette of pen commands')) self._pen_palette() - p = Palette('colors', ["#00FFFF", "#00A0A0"]) - p.set_help(_('Palette of pen colors')) - p.add_palette() + make_palette('colors', ["#00FFFF", "#00A0A0"], + _('Palette of pen colors')) self._color_palette() - p = Palette('numbers', ["#FF00FF", "#A000A0"]) - p.set_help(_('Palette of numeric operators')) - p.add_palette() + make_palette('numbers', ["#FF00FF", "#A000A0"], + _('Palette of numeric operators')) self._numbers_palette() - p = Palette('flow', ["#FFC000", "#A08000"]) - p.set_help(_('Palette of flow operators')) - p.add_palette() + make_palette('flow', ["#FFC000", "#A08000"], + _('Palette of flow operators')) self._flow_palette() - p = Palette('blocks', ["#FFFF00", "#A0A000"]) - p.set_help(_('Palette of variable blocks')) - p.add_palette() + make_palette('blocks', ["#FFFF00", "#A0A000"], + _('Palette of variable blocks')) self._blocks_palette() - p = Palette('trash', ["#FFFF00", "#A0A000"]) - p.add_palette() + make_palette('trash', ["#FFFF00", "#A0A000"]) self._trash_palette() # Palette definitions diff --git a/TurtleArt/taprimitive.py b/TurtleArt/taprimitive.py index 7f985f8..7d73ff2 100644 --- a/TurtleArt/taprimitive.py +++ b/TurtleArt/taprimitive.py @@ -71,6 +71,17 @@ class Palette(): self._special_name = name +def make_palette(palette_name, colors=None, help_string=None): + """ Palette helper function """ + if colors is None: + p = Palette(palette_name) + else: + p = Palette(palette_name, colors) + if help_string is not None: + p.set_help(help_string) + p.add_palette() + + class Primitive(): """ a class for defining new block primitives """ @@ -176,7 +187,7 @@ class Primitive(): def make_prim(block_name, style='basic-block', palette=None, label=None, special_name=None, default=None, prim_name=None, help_string=None, value_block=False, content_block=False): - """ Block factory """ + """ Primitive helper function """ b = Primitive(block_name) b.set_style(style) if palette is not None: diff --git a/plugins/camera_plugin.py b/plugins/camera_plugin.py index 26150f4..ebc45a0 100644 --- a/plugins/camera_plugin.py +++ b/plugins/camera_plugin.py @@ -31,7 +31,7 @@ from camera.v4l2 import v4l2_control, V4L2_CID_AUTOGAIN, VIDIOC_G_CTRL, \ from plugin import Plugin -from TurtleArt.taprimitive import Palette, make_prim +from TurtleArt.taprimitive import make_palette, make_prim from TurtleArt.talogo import MEDIA_BLOCKS_DICTIONARY, PLUGIN_DICTIONARY from TurtleArt.tautils import get_path @@ -58,9 +58,8 @@ class Camera_plugin(Plugin): self._status = True def setup(self): - sensors = Palette('sensor') - sensors.set_help(_('Palette of sensor blocks')) - sensors.add_palette() + make_palette('sensor', ["#FF6060", "#A06060"], + _('Palette of sensor blocks')) # set up camera-specific blocks if self._status: diff --git a/plugins/rfid_plugin.py b/plugins/rfid_plugin.py index a69eb6d..03b08bd 100644 --- a/plugins/rfid_plugin.py +++ b/plugins/rfid_plugin.py @@ -29,7 +29,7 @@ from rfid.rfidutils import strhex2bin, strbin2dec, find_device from plugin import Plugin -from TurtleArt.taprimitive import Palette, make_prim +from TurtleArt.taprimitive import make_palette, make_prim from TurtleArt.talogo import PLUGIN_DICTIONARY import logging @@ -86,9 +86,8 @@ class Rfid_plugin(Plugin): def setup(self): # set up RFID-specific blocks if self._status: - sensors = Palette('sensor') - sensors.set_help(_('Palette of sensor blocks')) - sensors.add_palette() + make_palette('sensor', ["#FF6060", "#A06060"], + _('Palette of sensor blocks')) PLUGIN_DICTIONARY['rfid'] = self.prim_read_camera make_prim('rfid', diff --git a/plugins/turtle_blocks_plugin.py b/plugins/turtle_blocks_plugin.py index 969fde8..ce6f73b 100644 --- a/plugins/turtle_blocks_plugin.py +++ b/plugins/turtle_blocks_plugin.py @@ -30,7 +30,7 @@ except ImportError: pass from plugin import Plugin -from TurtleArt.taprimitive import Palette, make_prim +from TurtleArt.taprimitive import make_palette, make_prim from TurtleArt.talogo import PLUGIN_DICTIONARY, logoerror, \ MEDIA_BLOCKS_DICTIONARY from TurtleArt.taconstants import DEFAULT_SCALE, CONSTANTS, ICON_SIZE @@ -81,24 +81,20 @@ class Turtle_blocks_plugin(Plugin): # set up Turtle Block palettes self._flow_palette() - p = Palette('media', ["#A0FF00", "#80A000"]) - p.set_help(_('Palette of media objects')) - p.add_palette() + make_palette('media', ["#A0FF00", "#80A000"], + _('Palette of media objects')) self._media_palette() - p = Palette('sensor', ["#FF6060", "#A06060"]) - p.set_help(_('Palette of sensor blocks')) - p.add_palette() + make_palette('sensor', ["#FF6060", "#A06060"], + _('Palette of sensor blocks')) self._sensor_palette() - p = Palette('extras', ["#FF0000", "#A00000"]) - p.set_help(_('Palette of extra options')) - p.add_palette() + make_palette('extras', ["#FF0000", "#A00000"], + _('Palette of extra options')) self._extras_palette() - p = Palette('portfolio', ["#0606FF", "#0606A0"]) - p.set_help(_('Palette of presentation templates')) - p.add_palette() + make_palette('portfolio', ["#0606FF", "#0606A0"], + _('Palette of presentation templates')) self._portfolio_palette() def start(self): -- cgit v0.9.1