Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/TurtleArt
diff options
context:
space:
mode:
authorWalter Bender <walter.bender@gmail.com>2012-02-04 17:35:55 (GMT)
committer Walter Bender <walter.bender@gmail.com>2012-02-04 17:35:55 (GMT)
commitf3f81ec511d524750bc2875b45d474e05a616d3e (patch)
tree63dda8fcd3fe31d16f53667bba9f25a797d50865 /TurtleArt
parent72b8ab394f2623fb9e378bd6ea559767ae3bc1bd (diff)
using visibility mechanism for hidden blocks
Diffstat (limited to 'TurtleArt')
-rw-r--r--TurtleArt/tapalette.py11
-rw-r--r--TurtleArt/tawindow.py13
2 files changed, 17 insertions, 7 deletions
diff --git a/TurtleArt/tapalette.py b/TurtleArt/tapalette.py
index 61fcb14..2b70670 100644
--- a/TurtleArt/tapalette.py
+++ b/TurtleArt/tapalette.py
@@ -31,6 +31,7 @@ logo_functions = {}
special_names = {} # Names for blocks without names for popup help
content_blocks = ['number', 'string', 'description', 'audio', 'video',
'journal']
+hidden_proto_blocks = [] # proto blocks that are (at least initially) hidden
value_blocks = [] # blocks whose labels are updated get added here
special_block_colors = {}
block_styles = {'basic-style': [],
@@ -155,8 +156,9 @@ class Palette():
block.set_colors(colors)
block.set_value_block(value_block)
block.set_content_block(content_block)
- if not hidden:
- block.set_palette(self._name)
+ block.set_palette(self._name)
+ if hidden:
+ block.set_hidden()
block.add_block()
@@ -179,10 +181,12 @@ def palette_name_to_index(palette_name):
else:
return None
+
def define_logo_function(key, value):
''' Add a logo function to the table. '''
logo_functions[key] = value
+
class Block():
""" a class for defining new block primitives """
@@ -253,6 +257,9 @@ class Block():
if self._colors is not None:
special_block_colors[self._name] = self._colors
+ def set_hidden(self):
+ hidden_proto_blocks.append(self._name)
+
def set_colors(self, colors=None):
self._colors = colors
diff --git a/TurtleArt/tawindow.py b/TurtleArt/tawindow.py
index 82bac8e..e5175d3 100644
--- a/TurtleArt/tawindow.py
+++ b/TurtleArt/tawindow.py
@@ -53,7 +53,7 @@ from taconstants import HORIZONTAL_PALETTE, VERTICAL_PALETTE, BLOCK_SCALE, \
CONSTANTS, EXPAND_SKIN, PROTO_LAYER
from tapalette import palette_names, palette_blocks, expandable_blocks, \
block_names, content_blocks, default_values, special_names, block_styles, \
- help_strings
+ help_strings, hidden_proto_blocks
from talogo import LogoCode
from tacanvas import TurtleGraphics
from tablock import Blocks, Block
@@ -607,7 +607,7 @@ class TurtleArtWindow():
self.show_palette()
def show_palette(self, n=None):
- """ Show palette """
+ """ Show palette. """
if n is None:
if self.selected_palette is None:
n = 0
@@ -859,6 +859,8 @@ class TurtleArtWindow():
self.palettes[n].append(Block(
self.block_list, self.sprite_list, name, 0, 0,
'proto', [], PALETTE_SCALE))
+ if name in hidden_proto_blocks:
+ self.palettes[n][i].set_visibility(False)
self.palettes[n][i].spr.set_layer(PROTO_LAYER)
self.palettes[n][i].unhighlight()
@@ -897,9 +899,10 @@ class TurtleArtWindow():
if self.activity is None or not self.activity.has_toolbarbox:
self.selectors[palette].set_shape(
self.selector_shapes[palette][0])
- elif palette is not None and palette != self.selected_palette:
- self.activity.palette_buttons[palette].set_icon(
- palette_names[palette] + 'off')
+ elif palette is not None and palette != self.selected_palette \
+ and not self.activity.has_toolbarbox:
+ self.activity.palette_buttons[palette].set_icon(
+ palette_names[palette] + 'off')
if palette == palette_names.index('trash'):
for blk in self.trash_stack:
for gblk in find_group(blk):