From f0330df08bec4aa9eb7d9bca6e4ef927ee5b1f36 Mon Sep 17 00:00:00 2001 From: Walter Bender Date: Wed, 27 Jan 2010 17:31:15 +0000 Subject: scaled palette width --- diff --git a/constants.py b/constants.py index b6dbb9f..49d36d0 100644 --- a/constants.py +++ b/constants.py @@ -73,6 +73,7 @@ COLORS = [["#00FF00","#00A000"], ["#00FFFF","#00A0A0"], ["#FF00FF","#A000A0"], PALETTE_HEIGHT = 175 +SELECTOR_WIDTH = 55 ICON_SIZE = 55 SELECTED_COLOR = "#0000FF" SELECTED_STROKE_WIDTH = 1.5 diff --git a/tawindow.py b/tawindow.py index 1758873..aff0a83 100644 --- a/tawindow.py +++ b/tawindow.py @@ -132,7 +132,7 @@ class TurtleArtWindow(): self.overlay_shapes = {} self.status_spr = None self.status_shapes = {} - self.palette_spr = None + self.palette_sprs = [] self.palettes = [] self.selected_palette = None self.selectors = [] @@ -316,11 +316,11 @@ class TurtleArtWindow(): def hide_toolbar_palette(self, hide_palette_spr=True): for i in range(len(PALETTES[self.selected_palette])): self.palettes[self.selected_palette][i].spr.set_layer(HIDE_LAYER) - if hide_palette_spr is True: - self.palette_spr.set_layer(HIDE_LAYER) - self.selected_palette = None for i in range(len(PALETTES)): self.selectors[i].set_layer(HIDE_LAYER) + if self.palette_sprs[i] is not None: + self.palette_sprs[i].set_layer(HIDE_LAYER) + self.selected_palette = None def show_toolbar_palette(self, n, init_only=False): if self.selectors == []: @@ -338,14 +338,8 @@ class TurtleArtWindow(): self.selectors[i].set_layer(TAB_LAYER) w, h = self.selectors[i].get_dimensions() x += int(w+5) - # TODO: We should have one per palette that is only just wide enough - if self.palette_spr is None: - svg = sprite_factory.SVG() - self.palette_spr = sprites.Sprite(self.sprite_list, 0, 0, - sprite_factory.svg_str_to_pixbuf(svg.palette(self.width, - PALETTE_HEIGHT))) - self.palette_spr.type = 'category' - self.palette_spr.set_layer(CATEGORY_LAYER) + self.palette_sprs.append(None) + if len(self.palettes) == 0: for i in range(len(PALETTES)): self.palettes.append([]); @@ -356,6 +350,9 @@ class TurtleArtWindow(): if self.selected_palette is not None: self.hide_toolbar_palette(False) + if self.palette_sprs[n] is not None: + self.palette_sprs[n].set_layer(CATEGORY_LAYER) + for i in range(len(PALETTES)): self.selectors[i].set_layer(TAB_LAYER) @@ -382,6 +379,16 @@ class TurtleArtWindow(): y += int(h+5) if w > max_width: max_width = w + + svg = sprite_factory.SVG() + w = x+max_width+5 + if w < len(PALETTES)*(SELECTOR_WIDTH+5) + 5: + w = len(PALETTES)*(SELECTOR_WIDTH+5) + 5 + self.palette_sprs[n] = sprites.Sprite(self.sprite_list, 0, 0, + sprite_factory.svg_str_to_pixbuf(svg.palette(w, self.width, + PALETTE_HEIGHT))) + self.palette_sprs[n].type = 'category' + self.palette_sprs[n].set_layer(CATEGORY_LAYER) else: for blk in self.palettes[n]: blk.spr.set_layer(CATEGORY_LAYER) -- cgit v0.9.1