Mercurial > mamba
annotate mamba/habitats/editor.py @ 229:b0ef7eecc67a
Make filename editable
author | Neil Muller <drnlmuller@gmail.com> |
---|---|
date | Wed, 14 Sep 2011 23:07:56 +0200 |
parents | d9ee0e50a78f |
children | 09247e08aeda |
rev | line source |
---|---|
42
8521c142cd43
Add habitat for editor and reshuffle when options are checked to before initializing the display window.
Simon Cross <hodgestar@gmail.com>
parents:
diff
changeset
|
1 """Habitat for editing levels.""" |
8521c142cd43
Add habitat for editor and reshuffle when options are checked to before initializing the display window.
Simon Cross <hodgestar@gmail.com>
parents:
diff
changeset
|
2 |
52
d09f63429b80
Add screen size fiddling to editor habitat
Neil Muller <drnlmuller@gmail.com>
parents:
42
diff
changeset
|
3 import pygame.display |
64
fbb5cc655b47
More screen size fiddling hackery
Neil Muller <drnlmuller@gmail.com>
parents:
52
diff
changeset
|
4 from pygame.locals import SWSURFACE, KEYDOWN |
52
d09f63429b80
Add screen size fiddling to editor habitat
Neil Muller <drnlmuller@gmail.com>
parents:
42
diff
changeset
|
5 |
64
fbb5cc655b47
More screen size fiddling hackery
Neil Muller <drnlmuller@gmail.com>
parents:
52
diff
changeset
|
6 from mamba.engine import Habitat, NewHabitatEvent |
120 | 7 from mamba.widgets.level import EditLevelWidget |
174 | 8 from mamba.widgets.text import TextWidget, TextButton |
94
aba653f8383e
Start adding editor toolbar
Neil Muller <drnlmuller@gmail.com>
parents:
64
diff
changeset
|
9 from mamba.widgets.imagebutton import ImageButtonWidget |
229 | 10 #from mamba.widgets.messagebox import MessageBox |
11 from mamba.widgets.entrybox import EntryBox | |
180
d9ee0e50a78f
Teach editor about THING_MAP
Neil Muller <drnlmuller@gmail.com>
parents:
175
diff
changeset
|
12 from mamba.level import Level, TILE_MAP, THING_MAP |
229 | 13 from mamba.data import check_level_exists |
64
fbb5cc655b47
More screen size fiddling hackery
Neil Muller <drnlmuller@gmail.com>
parents:
52
diff
changeset
|
14 from mamba.constants import SCREEN, EDIT_SCREEN, NAME, ESCAPE_KEYS |
42
8521c142cd43
Add habitat for editor and reshuffle when options are checked to before initializing the display window.
Simon Cross <hodgestar@gmail.com>
parents:
diff
changeset
|
15 |
8521c142cd43
Add habitat for editor and reshuffle when options are checked to before initializing the display window.
Simon Cross <hodgestar@gmail.com>
parents:
diff
changeset
|
16 |
8521c142cd43
Add habitat for editor and reshuffle when options are checked to before initializing the display window.
Simon Cross <hodgestar@gmail.com>
parents:
diff
changeset
|
17 class EditorHabitat(Habitat): |
8521c142cd43
Add habitat for editor and reshuffle when options are checked to before initializing the display window.
Simon Cross <hodgestar@gmail.com>
parents:
diff
changeset
|
18 def __init__(self, level_name): |
94
aba653f8383e
Start adding editor toolbar
Neil Muller <drnlmuller@gmail.com>
parents:
64
diff
changeset
|
19 super(EditorHabitat, self).__init__(EDIT_SCREEN) |
42
8521c142cd43
Add habitat for editor and reshuffle when options are checked to before initializing the display window.
Simon Cross <hodgestar@gmail.com>
parents:
diff
changeset
|
20 self.level = Level(level_name) |
172
dabf13abb3fd
Add basic drawing to level editor
Neil Muller <drnlmuller@gmail.com>
parents:
170
diff
changeset
|
21 self.edit_widget = EditLevelWidget(self.level) |
dabf13abb3fd
Add basic drawing to level editor
Neil Muller <drnlmuller@gmail.com>
parents:
170
diff
changeset
|
22 self.container.add(self.edit_widget) |
64
fbb5cc655b47
More screen size fiddling hackery
Neil Muller <drnlmuller@gmail.com>
parents:
52
diff
changeset
|
23 self.container.add_callback(KEYDOWN, self.keydown_event) |
180
d9ee0e50a78f
Teach editor about THING_MAP
Neil Muller <drnlmuller@gmail.com>
parents:
175
diff
changeset
|
24 self.mode = 'Tile' |
52
d09f63429b80
Add screen size fiddling to editor habitat
Neil Muller <drnlmuller@gmail.com>
parents:
42
diff
changeset
|
25 |
d09f63429b80
Add screen size fiddling to editor habitat
Neil Muller <drnlmuller@gmail.com>
parents:
42
diff
changeset
|
26 def on_enter(self): |
d09f63429b80
Add screen size fiddling to editor habitat
Neil Muller <drnlmuller@gmail.com>
parents:
42
diff
changeset
|
27 # We need to juggle the display to the correct size |
d09f63429b80
Add screen size fiddling to editor habitat
Neil Muller <drnlmuller@gmail.com>
parents:
42
diff
changeset
|
28 # This is a horrible hack |
d09f63429b80
Add screen size fiddling to editor habitat
Neil Muller <drnlmuller@gmail.com>
parents:
42
diff
changeset
|
29 pygame.display.quit() |
d09f63429b80
Add screen size fiddling to editor habitat
Neil Muller <drnlmuller@gmail.com>
parents:
42
diff
changeset
|
30 pygame.display.init() |
d09f63429b80
Add screen size fiddling to editor habitat
Neil Muller <drnlmuller@gmail.com>
parents:
42
diff
changeset
|
31 pygame.display.set_mode(EDIT_SCREEN, SWSURFACE) |
d09f63429b80
Add screen size fiddling to editor habitat
Neil Muller <drnlmuller@gmail.com>
parents:
42
diff
changeset
|
32 pygame.display.set_caption('%s Level editor' % NAME) |
64
fbb5cc655b47
More screen size fiddling hackery
Neil Muller <drnlmuller@gmail.com>
parents:
52
diff
changeset
|
33 super(EditorHabitat, self).on_enter() |
94
aba653f8383e
Start adding editor toolbar
Neil Muller <drnlmuller@gmail.com>
parents:
64
diff
changeset
|
34 self.setup_toolbar() |
52
d09f63429b80
Add screen size fiddling to editor habitat
Neil Muller <drnlmuller@gmail.com>
parents:
42
diff
changeset
|
35 |
d09f63429b80
Add screen size fiddling to editor habitat
Neil Muller <drnlmuller@gmail.com>
parents:
42
diff
changeset
|
36 def on_exit(self): |
d09f63429b80
Add screen size fiddling to editor habitat
Neil Muller <drnlmuller@gmail.com>
parents:
42
diff
changeset
|
37 # We need to juggle the display to the correct size |
d09f63429b80
Add screen size fiddling to editor habitat
Neil Muller <drnlmuller@gmail.com>
parents:
42
diff
changeset
|
38 # This is a horrible hack |
64
fbb5cc655b47
More screen size fiddling hackery
Neil Muller <drnlmuller@gmail.com>
parents:
52
diff
changeset
|
39 super(EditorHabitat, self).on_exit() |
52
d09f63429b80
Add screen size fiddling to editor habitat
Neil Muller <drnlmuller@gmail.com>
parents:
42
diff
changeset
|
40 pygame.display.quit() |
d09f63429b80
Add screen size fiddling to editor habitat
Neil Muller <drnlmuller@gmail.com>
parents:
42
diff
changeset
|
41 pygame.display.init() |
d09f63429b80
Add screen size fiddling to editor habitat
Neil Muller <drnlmuller@gmail.com>
parents:
42
diff
changeset
|
42 pygame.display.set_mode(SCREEN, SWSURFACE) |
d09f63429b80
Add screen size fiddling to editor habitat
Neil Muller <drnlmuller@gmail.com>
parents:
42
diff
changeset
|
43 pygame.display.set_caption(NAME) |
64
fbb5cc655b47
More screen size fiddling hackery
Neil Muller <drnlmuller@gmail.com>
parents:
52
diff
changeset
|
44 |
fbb5cc655b47
More screen size fiddling hackery
Neil Muller <drnlmuller@gmail.com>
parents:
52
diff
changeset
|
45 def keydown_event(self, ev, widget): |
fbb5cc655b47
More screen size fiddling hackery
Neil Muller <drnlmuller@gmail.com>
parents:
52
diff
changeset
|
46 if ev.key in ESCAPE_KEYS: |
fbb5cc655b47
More screen size fiddling hackery
Neil Muller <drnlmuller@gmail.com>
parents:
52
diff
changeset
|
47 from mamba.habitats.mainmenu import MainMenu |
fbb5cc655b47
More screen size fiddling hackery
Neil Muller <drnlmuller@gmail.com>
parents:
52
diff
changeset
|
48 NewHabitatEvent.post(MainMenu()) |
94
aba653f8383e
Start adding editor toolbar
Neil Muller <drnlmuller@gmail.com>
parents:
64
diff
changeset
|
49 |
aba653f8383e
Start adding editor toolbar
Neil Muller <drnlmuller@gmail.com>
parents:
64
diff
changeset
|
50 def setup_toolbar(self): |
aba653f8383e
Start adding editor toolbar
Neil Muller <drnlmuller@gmail.com>
parents:
64
diff
changeset
|
51 """Draw the editor toolbar""" |
aba653f8383e
Start adding editor toolbar
Neil Muller <drnlmuller@gmail.com>
parents:
64
diff
changeset
|
52 button_height = 20 |
aba653f8383e
Start adding editor toolbar
Neil Muller <drnlmuller@gmail.com>
parents:
64
diff
changeset
|
53 button_left = 820 |
180
d9ee0e50a78f
Teach editor about THING_MAP
Neil Muller <drnlmuller@gmail.com>
parents:
175
diff
changeset
|
54 button_padding = 5 |
d9ee0e50a78f
Teach editor about THING_MAP
Neil Muller <drnlmuller@gmail.com>
parents:
175
diff
changeset
|
55 |
229 | 56 filename = TextButton( |
180
d9ee0e50a78f
Teach editor about THING_MAP
Neil Muller <drnlmuller@gmail.com>
parents:
175
diff
changeset
|
57 (button_left, button_height), |
d9ee0e50a78f
Teach editor about THING_MAP
Neil Muller <drnlmuller@gmail.com>
parents:
175
diff
changeset
|
58 'File: %s' % self.level.level_name, color='white') |
229 | 59 filename.add_callback('clicked', self.edit_filename) |
180
d9ee0e50a78f
Teach editor about THING_MAP
Neil Muller <drnlmuller@gmail.com>
parents:
175
diff
changeset
|
60 self.container.add(filename) |
229 | 61 button_height += filename.rect.height + button_padding |
172
dabf13abb3fd
Add basic drawing to level editor
Neil Muller <drnlmuller@gmail.com>
parents:
170
diff
changeset
|
62 |
94
aba653f8383e
Start adding editor toolbar
Neil Muller <drnlmuller@gmail.com>
parents:
64
diff
changeset
|
63 levelname = TextWidget( |
aba653f8383e
Start adding editor toolbar
Neil Muller <drnlmuller@gmail.com>
parents:
64
diff
changeset
|
64 (button_left, button_height), |
170 | 65 'Level: %s' % self.level.name, color='white') |
94
aba653f8383e
Start adding editor toolbar
Neil Muller <drnlmuller@gmail.com>
parents:
64
diff
changeset
|
66 self.container.add(levelname) |
aba653f8383e
Start adding editor toolbar
Neil Muller <drnlmuller@gmail.com>
parents:
64
diff
changeset
|
67 button_height += levelname.surface.get_height() + button_padding |
aba653f8383e
Start adding editor toolbar
Neil Muller <drnlmuller@gmail.com>
parents:
64
diff
changeset
|
68 |
aba653f8383e
Start adding editor toolbar
Neil Muller <drnlmuller@gmail.com>
parents:
64
diff
changeset
|
69 tilesetname = TextWidget( |
aba653f8383e
Start adding editor toolbar
Neil Muller <drnlmuller@gmail.com>
parents:
64
diff
changeset
|
70 (button_left, button_height), |
aba653f8383e
Start adding editor toolbar
Neil Muller <drnlmuller@gmail.com>
parents:
64
diff
changeset
|
71 'Tileset: %s' % self.level.tileset.name, color='white') |
aba653f8383e
Start adding editor toolbar
Neil Muller <drnlmuller@gmail.com>
parents:
64
diff
changeset
|
72 self.container.add(tilesetname) |
aba653f8383e
Start adding editor toolbar
Neil Muller <drnlmuller@gmail.com>
parents:
64
diff
changeset
|
73 button_height += tilesetname.surface.get_height() + button_padding |
172
dabf13abb3fd
Add basic drawing to level editor
Neil Muller <drnlmuller@gmail.com>
parents:
170
diff
changeset
|
74 # TODO: Add Image widget for the current tool |
dabf13abb3fd
Add basic drawing to level editor
Neil Muller <drnlmuller@gmail.com>
parents:
170
diff
changeset
|
75 self.current_tool = TextWidget((button_left, button_height), |
dabf13abb3fd
Add basic drawing to level editor
Neil Muller <drnlmuller@gmail.com>
parents:
170
diff
changeset
|
76 'Tool: Floor', color='white') |
dabf13abb3fd
Add basic drawing to level editor
Neil Muller <drnlmuller@gmail.com>
parents:
170
diff
changeset
|
77 self.container.add(self.current_tool) |
dabf13abb3fd
Add basic drawing to level editor
Neil Muller <drnlmuller@gmail.com>
parents:
170
diff
changeset
|
78 button_height += self.current_tool.surface.get_height() |
dabf13abb3fd
Add basic drawing to level editor
Neil Muller <drnlmuller@gmail.com>
parents:
170
diff
changeset
|
79 button_height += button_padding |
94
aba653f8383e
Start adding editor toolbar
Neil Muller <drnlmuller@gmail.com>
parents:
64
diff
changeset
|
80 floor_button = ImageButtonWidget( |
aba653f8383e
Start adding editor toolbar
Neil Muller <drnlmuller@gmail.com>
parents:
64
diff
changeset
|
81 (button_left, button_height), self.level.tileset.floor, |
aba653f8383e
Start adding editor toolbar
Neil Muller <drnlmuller@gmail.com>
parents:
64
diff
changeset
|
82 'Floor', color='white') |
aba653f8383e
Start adding editor toolbar
Neil Muller <drnlmuller@gmail.com>
parents:
64
diff
changeset
|
83 self.container.add(floor_button) |
172
dabf13abb3fd
Add basic drawing to level editor
Neil Muller <drnlmuller@gmail.com>
parents:
170
diff
changeset
|
84 floor_button.add_callback('clicked', self.change_tool, |
dabf13abb3fd
Add basic drawing to level editor
Neil Muller <drnlmuller@gmail.com>
parents:
170
diff
changeset
|
85 '.', 'Floor') |
175
b498f76a455f
Set initial tool correctly
Neil Muller <drnlmuller@gmail.com>
parents:
174
diff
changeset
|
86 self.edit_widget.set_tool('.') |
113
c5d6d0ba3b2b
Fill in more toolbar stuff
Neil Muller <drnlmuller@gmail.com>
parents:
103
diff
changeset
|
87 button_height += floor_button.surface.get_height() + button_padding |
180
d9ee0e50a78f
Teach editor about THING_MAP
Neil Muller <drnlmuller@gmail.com>
parents:
175
diff
changeset
|
88 if self.mode == 'Tile': |
d9ee0e50a78f
Teach editor about THING_MAP
Neil Muller <drnlmuller@gmail.com>
parents:
175
diff
changeset
|
89 tile_map = TILE_MAP |
d9ee0e50a78f
Teach editor about THING_MAP
Neil Muller <drnlmuller@gmail.com>
parents:
175
diff
changeset
|
90 change_mode_text = 'Switch to Things' |
d9ee0e50a78f
Teach editor about THING_MAP
Neil Muller <drnlmuller@gmail.com>
parents:
175
diff
changeset
|
91 elif self.mode == 'Thing': |
d9ee0e50a78f
Teach editor about THING_MAP
Neil Muller <drnlmuller@gmail.com>
parents:
175
diff
changeset
|
92 tile_map = THING_MAP |
d9ee0e50a78f
Teach editor about THING_MAP
Neil Muller <drnlmuller@gmail.com>
parents:
175
diff
changeset
|
93 change_mode_text = 'Switch to Tiles' |
d9ee0e50a78f
Teach editor about THING_MAP
Neil Muller <drnlmuller@gmail.com>
parents:
175
diff
changeset
|
94 for tile_char in tile_map: |
113
c5d6d0ba3b2b
Fill in more toolbar stuff
Neil Muller <drnlmuller@gmail.com>
parents:
103
diff
changeset
|
95 try: |
c5d6d0ba3b2b
Fill in more toolbar stuff
Neil Muller <drnlmuller@gmail.com>
parents:
103
diff
changeset
|
96 tile = self.level.tileset[tile_char] |
c5d6d0ba3b2b
Fill in more toolbar stuff
Neil Muller <drnlmuller@gmail.com>
parents:
103
diff
changeset
|
97 except pygame.error: |
c5d6d0ba3b2b
Fill in more toolbar stuff
Neil Muller <drnlmuller@gmail.com>
parents:
103
diff
changeset
|
98 # Ignore stuff we can't load for now |
c5d6d0ba3b2b
Fill in more toolbar stuff
Neil Muller <drnlmuller@gmail.com>
parents:
103
diff
changeset
|
99 continue |
c5d6d0ba3b2b
Fill in more toolbar stuff
Neil Muller <drnlmuller@gmail.com>
parents:
103
diff
changeset
|
100 if tile is None: |
c5d6d0ba3b2b
Fill in more toolbar stuff
Neil Muller <drnlmuller@gmail.com>
parents:
103
diff
changeset
|
101 continue |
170 | 102 if tile.name: |
103 text = tile.name | |
104 else: | |
105 text = 'Tile' | |
113
c5d6d0ba3b2b
Fill in more toolbar stuff
Neil Muller <drnlmuller@gmail.com>
parents:
103
diff
changeset
|
106 tile_button = ImageButtonWidget( |
c5d6d0ba3b2b
Fill in more toolbar stuff
Neil Muller <drnlmuller@gmail.com>
parents:
103
diff
changeset
|
107 (button_left, button_height), tile.image, |
170 | 108 text, color='white') |
172
dabf13abb3fd
Add basic drawing to level editor
Neil Muller <drnlmuller@gmail.com>
parents:
170
diff
changeset
|
109 tile_button.add_callback('clicked', self.change_tool, |
dabf13abb3fd
Add basic drawing to level editor
Neil Muller <drnlmuller@gmail.com>
parents:
170
diff
changeset
|
110 tile_char, text) |
113
c5d6d0ba3b2b
Fill in more toolbar stuff
Neil Muller <drnlmuller@gmail.com>
parents:
103
diff
changeset
|
111 self.container.add(tile_button) |
c5d6d0ba3b2b
Fill in more toolbar stuff
Neil Muller <drnlmuller@gmail.com>
parents:
103
diff
changeset
|
112 button_height += \ |
c5d6d0ba3b2b
Fill in more toolbar stuff
Neil Muller <drnlmuller@gmail.com>
parents:
103
diff
changeset
|
113 tile_button.surface.get_height() + button_padding |
174 | 114 button_height += 10 |
180
d9ee0e50a78f
Teach editor about THING_MAP
Neil Muller <drnlmuller@gmail.com>
parents:
175
diff
changeset
|
115 |
d9ee0e50a78f
Teach editor about THING_MAP
Neil Muller <drnlmuller@gmail.com>
parents:
175
diff
changeset
|
116 mode_button = TextButton((button_left, button_height), |
d9ee0e50a78f
Teach editor about THING_MAP
Neil Muller <drnlmuller@gmail.com>
parents:
175
diff
changeset
|
117 change_mode_text) |
d9ee0e50a78f
Teach editor about THING_MAP
Neil Muller <drnlmuller@gmail.com>
parents:
175
diff
changeset
|
118 mode_button.add_callback('clicked', self.change_toolbar) |
d9ee0e50a78f
Teach editor about THING_MAP
Neil Muller <drnlmuller@gmail.com>
parents:
175
diff
changeset
|
119 self.container.add(mode_button) |
d9ee0e50a78f
Teach editor about THING_MAP
Neil Muller <drnlmuller@gmail.com>
parents:
175
diff
changeset
|
120 button_height += mode_button.surface.get_height() + button_padding |
d9ee0e50a78f
Teach editor about THING_MAP
Neil Muller <drnlmuller@gmail.com>
parents:
175
diff
changeset
|
121 button_height += 10 |
d9ee0e50a78f
Teach editor about THING_MAP
Neil Muller <drnlmuller@gmail.com>
parents:
175
diff
changeset
|
122 |
174 | 123 save_button = TextButton((button_left, button_height), "Save Level") |
124 save_button.add_callback('clicked', self.save) | |
125 self.container.add(save_button) | |
172
dabf13abb3fd
Add basic drawing to level editor
Neil Muller <drnlmuller@gmail.com>
parents:
170
diff
changeset
|
126 |
dabf13abb3fd
Add basic drawing to level editor
Neil Muller <drnlmuller@gmail.com>
parents:
170
diff
changeset
|
127 def change_tool(self, ev, widget, new_tool, text): |
dabf13abb3fd
Add basic drawing to level editor
Neil Muller <drnlmuller@gmail.com>
parents:
170
diff
changeset
|
128 self.edit_widget.set_tool(new_tool) |
dabf13abb3fd
Add basic drawing to level editor
Neil Muller <drnlmuller@gmail.com>
parents:
170
diff
changeset
|
129 self.current_tool.text = 'Tool: %s' % text |
dabf13abb3fd
Add basic drawing to level editor
Neil Muller <drnlmuller@gmail.com>
parents:
170
diff
changeset
|
130 self.current_tool.prepare() |
174 | 131 |
132 def save(self, ev, widget): | |
133 self.level.save_level() | |
180
d9ee0e50a78f
Teach editor about THING_MAP
Neil Muller <drnlmuller@gmail.com>
parents:
175
diff
changeset
|
134 |
d9ee0e50a78f
Teach editor about THING_MAP
Neil Muller <drnlmuller@gmail.com>
parents:
175
diff
changeset
|
135 def change_toolbar(self, ev, widget): |
d9ee0e50a78f
Teach editor about THING_MAP
Neil Muller <drnlmuller@gmail.com>
parents:
175
diff
changeset
|
136 if self.mode == 'Tile': |
d9ee0e50a78f
Teach editor about THING_MAP
Neil Muller <drnlmuller@gmail.com>
parents:
175
diff
changeset
|
137 self.mode = 'Thing' |
d9ee0e50a78f
Teach editor about THING_MAP
Neil Muller <drnlmuller@gmail.com>
parents:
175
diff
changeset
|
138 elif self.mode == 'Thing': |
d9ee0e50a78f
Teach editor about THING_MAP
Neil Muller <drnlmuller@gmail.com>
parents:
175
diff
changeset
|
139 self.mode = 'Tile' |
d9ee0e50a78f
Teach editor about THING_MAP
Neil Muller <drnlmuller@gmail.com>
parents:
175
diff
changeset
|
140 self.clear_toolbar() |
d9ee0e50a78f
Teach editor about THING_MAP
Neil Muller <drnlmuller@gmail.com>
parents:
175
diff
changeset
|
141 self.setup_toolbar() |
d9ee0e50a78f
Teach editor about THING_MAP
Neil Muller <drnlmuller@gmail.com>
parents:
175
diff
changeset
|
142 |
d9ee0e50a78f
Teach editor about THING_MAP
Neil Muller <drnlmuller@gmail.com>
parents:
175
diff
changeset
|
143 def clear_toolbar(self): |
d9ee0e50a78f
Teach editor about THING_MAP
Neil Muller <drnlmuller@gmail.com>
parents:
175
diff
changeset
|
144 """Remove every non-edit widget from the container""" |
d9ee0e50a78f
Teach editor about THING_MAP
Neil Muller <drnlmuller@gmail.com>
parents:
175
diff
changeset
|
145 for widget in self.container.children[:]: |
d9ee0e50a78f
Teach editor about THING_MAP
Neil Muller <drnlmuller@gmail.com>
parents:
175
diff
changeset
|
146 if widget is not self.edit_widget: |
d9ee0e50a78f
Teach editor about THING_MAP
Neil Muller <drnlmuller@gmail.com>
parents:
175
diff
changeset
|
147 self.container.remove(widget) |
229 | 148 |
149 def edit_filename(self, ev, widget): | |
150 editbox = EntryBox((200, 200), 'Enter level filename', | |
151 self.level.level_name, self.check_file) | |
152 self.container.add(editbox) | |
153 editbox.grab_focus() | |
154 | |
155 def check_file(self, new_name): | |
156 if new_name == self.level.level_name: | |
157 return True # No-op change | |
158 if check_level_exists(new_name): | |
159 # TODO: Popup warning | |
160 return False | |
161 self.level.level_name = new_name | |
162 self.clear_toolbar() | |
163 self.setup_toolbar() |