Mercurial > mamba
diff mamba/habitats/editor.py @ 404:38f95fbc3710
Better dialog handling.
author | Jeremy Thurgood <firxen@gmail.com> |
---|---|
date | Sat, 17 Sep 2011 13:30:00 +0200 |
parents | 001c3797a63b |
children | 8558b2219688 |
line wrap: on
line diff
--- a/mamba/habitats/editor.py Sat Sep 17 12:57:04 2011 +0200 +++ b/mamba/habitats/editor.py Sat Sep 17 13:30:00 2011 +0200 @@ -208,9 +208,7 @@ except InvalidMapError, error: message = MessageBox((300, 300), "Map isn't valid\n%s" % error) if message: - self.container.paused = True - self.container.add(message) - message.grab_focus() + self.display_dialog(message) return self.level.save_level('user_levels', is_user_dir=True) self.refresh_display() @@ -235,9 +233,7 @@ load_button.add_callback( 'clicked', self.load_level, level_name, level_dir, is_user_dir) load_list.append(load_button) - load_dialog = ListBox((200, 200), 'Select Level', load_list, 6) - self.container.add(load_dialog) - load_dialog.grab_focus() + self.display_dialog(ListBox((200, 200), 'Select Level', load_list, 6)) return True def load_level(self, ev, widget, level_name, level_dir, is_user_dir): @@ -248,9 +244,7 @@ except (IOError, InvalidMapError, pygame.error), error: message = MessageBox((300, 300), 'Loading Level Failed: %s' % error, color='red') - self.container.paused = True - self.container.add(message) - message.grab_focus() + self.display_dialog(message) return False self.container.remove(self.edit_widget) self.level = new_level @@ -277,10 +271,8 @@ self.container.remove(widget) def do_edit(self, ev, widget, message, init_value, callback): - self.container.paused = True - editbox = EntryBox((200, 200), message, init_value, callback) - self.container.add(editbox) - editbox.grab_focus() + self.display_dialog( + EntryBox((200, 200), message, init_value, callback)) return True def update_name(self, new_name): @@ -300,9 +292,7 @@ load_button = TextButton((0, 0), name) load_button.add_callback('clicked', self.change_tileset, name) load_list.append(load_button) - load_dialog = ListBox((200, 200), 'Select Level', load_list) - self.container.add(load_dialog) - load_dialog.grab_focus() + self.display_dialog(ListBox((200, 200), 'Select Level', load_list)) return True def list_tracks(self, ev, widget): @@ -313,9 +303,7 @@ load_button = TextButton((0, 0), name) load_button.add_callback('clicked', self.change_track, name) load_list.append(load_button) - load_dialog = ListBox((200, 200), 'Select Level', load_list, 6) - self.container.add(load_dialog) - load_dialog.grab_focus() + self.display_dialog(ListBox((200, 200), 'Select Level', load_list, 6)) return True def change_tileset(self, ev, widget, new_name): @@ -329,9 +317,7 @@ message = MessageBox((300, 300), 'Unable to change tileset:: %s' % error, self.refresh_display, color='red') - self.container.paused = True - self.container.add(message) - message.grab_focus() + self.display_dialog(message) return True self.container.paused = False self.clear_toolbar() @@ -365,9 +351,7 @@ elif check_level_exists(new_name, 'user_levels', is_user_dir=True): message = MessageBox((300, 300), 'Name already in use') if message: - self.container.paused = True - self.container.add(message) - message.grab_focus() + self.display_dialog(message) return False self.container.paused = False self.level.level_name = new_name @@ -401,11 +385,9 @@ return True def edit_sprite(self, tile_pos, sprite): - self.container.paused = True sprite_editor = EditSpriteBox((200, 100), tile_pos, sprite, post_callback=self.commit_line) - self.container.add(sprite_editor) - sprite_editor.grab_focus() + self.display_dialog(sprite_editor) def commit_line(self, sprite): try: @@ -418,9 +400,7 @@ info = traceback.format_exception_only(exc_type, info)[0] message = MessageBox((300, 300), 'Validation failed:\n%s' % info) - self.container.paused = True - self.container.add(message) - message.grab_focus() + self.display_dialog(message) return False # Validation successful, so add to level if self.sprite_mode == 'Add':