Mercurial > mamba
changeset 229:b0ef7eecc67a
Make filename editable
author | Neil Muller <drnlmuller@gmail.com> |
---|---|
date | Wed, 14 Sep 2011 23:07:56 +0200 |
parents | d83fd4ebddd3 |
children | e4f983b68ef5 |
files | mamba/habitats/editor.py |
diffstat | 1 files changed, 22 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/mamba/habitats/editor.py Wed Sep 14 23:07:01 2011 +0200 +++ b/mamba/habitats/editor.py Wed Sep 14 23:07:56 2011 +0200 @@ -7,7 +7,10 @@ from mamba.widgets.level import EditLevelWidget from mamba.widgets.text import TextWidget, TextButton from mamba.widgets.imagebutton import ImageButtonWidget +#from mamba.widgets.messagebox import MessageBox +from mamba.widgets.entrybox import EntryBox 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 @@ -50,11 +53,12 @@ button_left = 820 button_padding = 5 - filename = TextWidget( + filename = TextButton( (button_left, button_height), 'File: %s' % self.level.level_name, color='white') + filename.add_callback('clicked', self.edit_filename) self.container.add(filename) - button_height += filename.surface.get_height() + button_padding + button_height += filename.rect.height + button_padding levelname = TextWidget( (button_left, button_height), @@ -141,3 +145,19 @@ for widget in self.container.children[:]: 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) + self.container.add(editbox) + editbox.grab_focus() + + def check_file(self, new_name): + if new_name == self.level.level_name: + return True # No-op change + if check_level_exists(new_name): + # TODO: Popup warning + return False + self.level.level_name = new_name + self.clear_toolbar() + self.setup_toolbar()