From f3f81ec511d524750bc2875b45d474e05a616d3e Mon Sep 17 00:00:00 2001 From: Walter Bender Date: Sat, 04 Feb 2012 17:35:55 +0000 Subject: using visibility mechanism for hidden blocks --- (limited to 'TurtleArt') 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): -- cgit v0.9.1