Mercurial > mamba
diff mamba/habitats/editor.py @ 265:74ae1645df6e
Move hackery into list widget
author | Neil Muller <drnlmuller@gmail.com> |
---|---|
date | Thu, 15 Sep 2011 12:24:05 +0200 |
parents | f0c14d9abd84 |
children | 1e8dca95c48a |
line wrap: on
line diff
--- a/mamba/habitats/editor.py Thu Sep 15 12:09:55 2011 +0200 +++ b/mamba/habitats/editor.py Thu Sep 15 12:24:05 2011 +0200 @@ -9,6 +9,7 @@ from mamba.widgets.imagebutton import ImageButtonWidget #from mamba.widgets.messagebox import MessageBox from mamba.widgets.entrybox import EntryBox +from mamba.widgets.toollist import ToolListWidget from mamba.level import Level, TILE_MAP, THING_MAP from mamba.data import check_level_exists from mamba.constants import SCREEN, EDIT_SCREEN, NAME, ESCAPE_KEYS @@ -24,7 +25,6 @@ self.container.add(self.edit_widget) self.container.add_callback(KEYDOWN, self.keydown_event) self.mode = 'Tile' - self.tool_page = 0 def on_enter(self): # We need to juggle the display to the correct size @@ -96,11 +96,8 @@ elif self.mode == 'Thing': tile_map = THING_MAP change_mode_text = 'Switch to Tiles' - total_tools = len(tile_map) - start_page = MAX_TOOLS * self.tool_page - end_page = start_page + MAX_TOOLS - tile_map = sorted(tile_map)[start_page:end_page] - for tile_char in tile_map: + tool_list = [] + for tile_char in sorted(tile_map): try: tile = self.level.tileset[tile_char] except pygame.error: @@ -112,32 +109,16 @@ text = tile.name else: text = 'Tile' - tile_button = ImageButtonWidget( - (button_left, button_height), tile.image, - text, color='white') + tile_button = ImageButtonWidget((0, 0), tile.image, text, + color='white') tile_button.add_callback('clicked', self.change_tool, tile_char, text) - self.container.add(tile_button) - button_height += \ - tile_button.surface.get_height() + button_padding - button_height += 2 + tool_list.append(tile_button) + tool_widget = ToolListWidget((button_left, button_height), + tool_list, MAX_TOOLS) + self.container.add(tool_widget) + button_height += tool_widget.rect.height + 2 - prev_page = None - next_page = None - if start_page > 0: - prev_page = TextButton((button_left, button_height), - 'Prev') - prev_page.add_callback('clicked', self.change_page, -1) - self.container.add(prev_page) - if end_page < total_tools: - next_page = TextButton((button_left + 100, button_height), - 'Next') - next_page.add_callback('clicked', self.change_page, +1) - self.container.add(next_page) - if prev_page: - button_height += prev_page.rect.height - elif next_page: - button_height += next_page.rect.height mode_button = TextButton((button_left, button_height), change_mode_text) mode_button.add_callback('clicked', self.change_toolbar) @@ -162,12 +143,6 @@ self.mode = 'Thing' elif self.mode == 'Thing': self.mode = 'Tile' - self.tool_page = 0 - self.clear_toolbar() - self.setup_toolbar() - - def change_page(self, ev, widget, change): - self.tool_page += change self.clear_toolbar() self.setup_toolbar()