Mercurial > mamba
changeset 236:09247e08aeda
Refactor edit calling code. Tweak toolbar layout
author | Neil Muller <drnlmuller@gmail.com> |
---|---|
date | Wed, 14 Sep 2011 23:32:08 +0200 |
parents | 5b021e8498b3 |
children | 9498b259c248 |
files | mamba/habitats/editor.py |
diffstat | 1 files changed, 23 insertions(+), 12 deletions(-) [+] |
line wrap: on
line diff
--- a/mamba/habitats/editor.py Wed Sep 14 23:31:36 2011 +0200 +++ b/mamba/habitats/editor.py Wed Sep 14 23:32:08 2011 +0200 @@ -49,26 +49,28 @@ def setup_toolbar(self): """Draw the editor toolbar""" - button_height = 20 + button_height = 5 button_left = 820 - button_padding = 5 + button_padding = 2 filename = TextButton( (button_left, button_height), 'File: %s' % self.level.level_name, color='white') - filename.add_callback('clicked', self.edit_filename) + filename.add_callback('clicked', self.do_edit, + 'Specify filename', self.level.level_name, self.check_file) self.container.add(filename) button_height += filename.rect.height + button_padding - - levelname = TextWidget( - (button_left, button_height), + levelname = TextButton((button_left, button_height), 'Level: %s' % self.level.name, color='white') + levelname.add_callback('clicked', self.do_edit, + 'Edit Level Title', self.level.name, self.update_name) self.container.add(levelname) - button_height += levelname.surface.get_height() + button_padding + button_height += levelname.rect.height + button_padding - tilesetname = TextWidget( - (button_left, button_height), + tilesetname = TextButton((button_left, button_height), 'Tileset: %s' % self.level.tileset.name, color='white') + tilesetname.add_callback('clicked', self.do_edit, 'Edit Tileset', + self.level.tileset.name, self.check_tileset) self.container.add(tilesetname) button_height += tilesetname.surface.get_height() + button_padding # TODO: Add Image widget for the current tool @@ -146,12 +148,20 @@ if widget is not self.edit_widget: self.container.remove(widget) - def edit_filename(self, ev, widget): - editbox = EntryBox((200, 200), 'Enter level filename', - self.level.level_name, self.check_file) + def do_edit(self, ev, widget, message, init_value, callback): + editbox = EntryBox((200, 200), message, init_value, callback) self.container.add(editbox) editbox.grab_focus() + def update_name(self, new_name): + self.level.name = new_name + self.clear_toolbar() + self.setup_toolbar() + return True + + def check_tileset(self, new_name): + return False + def check_file(self, new_name): if new_name == self.level.level_name: return True # No-op change @@ -161,3 +171,4 @@ self.level.level_name = new_name self.clear_toolbar() self.setup_toolbar() + return True