annotate mamba/habitats/editor.py @ 180:d9ee0e50a78f

Teach editor about THING_MAP
author Neil Muller <drnlmuller@gmail.com>
date Wed, 14 Sep 2011 14:08:37 +0200
parents b498f76a455f
children b0ef7eecc67a
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
6b1cdbdd34ca Rename LevelWidget
Neil Muller <drnlmuller@gmail.com>
parents: 113
diff changeset
7 from mamba.widgets.level import EditLevelWidget
174
893fb9f8f468 Hook up basic saving
Neil Muller <drnlmuller@gmail.com>
parents: 172
diff changeset
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
180
d9ee0e50a78f Teach editor about THING_MAP
Neil Muller <drnlmuller@gmail.com>
parents: 175
diff changeset
10 from mamba.level import Level, TILE_MAP, THING_MAP
64
fbb5cc655b47 More screen size fiddling hackery
Neil Muller <drnlmuller@gmail.com>
parents: 52
diff changeset
11 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
12
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
13
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
14 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
15 def __init__(self, level_name):
94
aba653f8383e Start adding editor toolbar
Neil Muller <drnlmuller@gmail.com>
parents: 64
diff changeset
16 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
17 self.level = Level(level_name)
172
dabf13abb3fd Add basic drawing to level editor
Neil Muller <drnlmuller@gmail.com>
parents: 170
diff changeset
18 self.edit_widget = EditLevelWidget(self.level)
dabf13abb3fd Add basic drawing to level editor
Neil Muller <drnlmuller@gmail.com>
parents: 170
diff changeset
19 self.container.add(self.edit_widget)
64
fbb5cc655b47 More screen size fiddling hackery
Neil Muller <drnlmuller@gmail.com>
parents: 52
diff changeset
20 self.container.add_callback(KEYDOWN, self.keydown_event)
180
d9ee0e50a78f Teach editor about THING_MAP
Neil Muller <drnlmuller@gmail.com>
parents: 175
diff changeset
21 self.mode = 'Tile'
52
d09f63429b80 Add screen size fiddling to editor habitat
Neil Muller <drnlmuller@gmail.com>
parents: 42
diff changeset
22
d09f63429b80 Add screen size fiddling to editor habitat
Neil Muller <drnlmuller@gmail.com>
parents: 42
diff changeset
23 def on_enter(self):
d09f63429b80 Add screen size fiddling to editor habitat
Neil Muller <drnlmuller@gmail.com>
parents: 42
diff changeset
24 # 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
25 # This is a horrible hack
d09f63429b80 Add screen size fiddling to editor habitat
Neil Muller <drnlmuller@gmail.com>
parents: 42
diff changeset
26 pygame.display.quit()
d09f63429b80 Add screen size fiddling to editor habitat
Neil Muller <drnlmuller@gmail.com>
parents: 42
diff changeset
27 pygame.display.init()
d09f63429b80 Add screen size fiddling to editor habitat
Neil Muller <drnlmuller@gmail.com>
parents: 42
diff changeset
28 pygame.display.set_mode(EDIT_SCREEN, SWSURFACE)
d09f63429b80 Add screen size fiddling to editor habitat
Neil Muller <drnlmuller@gmail.com>
parents: 42
diff changeset
29 pygame.display.set_caption('%s Level editor' % NAME)
64
fbb5cc655b47 More screen size fiddling hackery
Neil Muller <drnlmuller@gmail.com>
parents: 52
diff changeset
30 super(EditorHabitat, self).on_enter()
94
aba653f8383e Start adding editor toolbar
Neil Muller <drnlmuller@gmail.com>
parents: 64
diff changeset
31 self.setup_toolbar()
52
d09f63429b80 Add screen size fiddling to editor habitat
Neil Muller <drnlmuller@gmail.com>
parents: 42
diff changeset
32
d09f63429b80 Add screen size fiddling to editor habitat
Neil Muller <drnlmuller@gmail.com>
parents: 42
diff changeset
33 def on_exit(self):
d09f63429b80 Add screen size fiddling to editor habitat
Neil Muller <drnlmuller@gmail.com>
parents: 42
diff changeset
34 # 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
35 # This is a horrible hack
64
fbb5cc655b47 More screen size fiddling hackery
Neil Muller <drnlmuller@gmail.com>
parents: 52
diff changeset
36 super(EditorHabitat, self).on_exit()
52
d09f63429b80 Add screen size fiddling to editor habitat
Neil Muller <drnlmuller@gmail.com>
parents: 42
diff changeset
37 pygame.display.quit()
d09f63429b80 Add screen size fiddling to editor habitat
Neil Muller <drnlmuller@gmail.com>
parents: 42
diff changeset
38 pygame.display.init()
d09f63429b80 Add screen size fiddling to editor habitat
Neil Muller <drnlmuller@gmail.com>
parents: 42
diff changeset
39 pygame.display.set_mode(SCREEN, SWSURFACE)
d09f63429b80 Add screen size fiddling to editor habitat
Neil Muller <drnlmuller@gmail.com>
parents: 42
diff changeset
40 pygame.display.set_caption(NAME)
64
fbb5cc655b47 More screen size fiddling hackery
Neil Muller <drnlmuller@gmail.com>
parents: 52
diff changeset
41
fbb5cc655b47 More screen size fiddling hackery
Neil Muller <drnlmuller@gmail.com>
parents: 52
diff changeset
42 def keydown_event(self, ev, widget):
fbb5cc655b47 More screen size fiddling hackery
Neil Muller <drnlmuller@gmail.com>
parents: 52
diff changeset
43 if ev.key in ESCAPE_KEYS:
fbb5cc655b47 More screen size fiddling hackery
Neil Muller <drnlmuller@gmail.com>
parents: 52
diff changeset
44 from mamba.habitats.mainmenu import MainMenu
fbb5cc655b47 More screen size fiddling hackery
Neil Muller <drnlmuller@gmail.com>
parents: 52
diff changeset
45 NewHabitatEvent.post(MainMenu())
94
aba653f8383e Start adding editor toolbar
Neil Muller <drnlmuller@gmail.com>
parents: 64
diff changeset
46
aba653f8383e Start adding editor toolbar
Neil Muller <drnlmuller@gmail.com>
parents: 64
diff changeset
47 def setup_toolbar(self):
aba653f8383e Start adding editor toolbar
Neil Muller <drnlmuller@gmail.com>
parents: 64
diff changeset
48 """Draw the editor toolbar"""
aba653f8383e Start adding editor toolbar
Neil Muller <drnlmuller@gmail.com>
parents: 64
diff changeset
49 button_height = 20
aba653f8383e Start adding editor toolbar
Neil Muller <drnlmuller@gmail.com>
parents: 64
diff changeset
50 button_left = 820
180
d9ee0e50a78f Teach editor about THING_MAP
Neil Muller <drnlmuller@gmail.com>
parents: 175
diff changeset
51 button_padding = 5
d9ee0e50a78f Teach editor about THING_MAP
Neil Muller <drnlmuller@gmail.com>
parents: 175
diff changeset
52
d9ee0e50a78f Teach editor about THING_MAP
Neil Muller <drnlmuller@gmail.com>
parents: 175
diff changeset
53 filename = TextWidget(
d9ee0e50a78f Teach editor about THING_MAP
Neil Muller <drnlmuller@gmail.com>
parents: 175
diff changeset
54 (button_left, button_height),
d9ee0e50a78f Teach editor about THING_MAP
Neil Muller <drnlmuller@gmail.com>
parents: 175
diff changeset
55 'File: %s' % self.level.level_name, color='white')
d9ee0e50a78f Teach editor about THING_MAP
Neil Muller <drnlmuller@gmail.com>
parents: 175
diff changeset
56 self.container.add(filename)
d9ee0e50a78f Teach editor about THING_MAP
Neil Muller <drnlmuller@gmail.com>
parents: 175
diff changeset
57 button_height += filename.surface.get_height() + button_padding
172
dabf13abb3fd Add basic drawing to level editor
Neil Muller <drnlmuller@gmail.com>
parents: 170
diff changeset
58
94
aba653f8383e Start adding editor toolbar
Neil Muller <drnlmuller@gmail.com>
parents: 64
diff changeset
59 levelname = TextWidget(
aba653f8383e Start adding editor toolbar
Neil Muller <drnlmuller@gmail.com>
parents: 64
diff changeset
60 (button_left, button_height),
170
77f1dae64019 Use name in editor
Neil Muller <drnlmuller@gmail.com>
parents: 120
diff changeset
61 'Level: %s' % self.level.name, color='white')
94
aba653f8383e Start adding editor toolbar
Neil Muller <drnlmuller@gmail.com>
parents: 64
diff changeset
62 self.container.add(levelname)
aba653f8383e Start adding editor toolbar
Neil Muller <drnlmuller@gmail.com>
parents: 64
diff changeset
63 button_height += levelname.surface.get_height() + button_padding
aba653f8383e Start adding editor toolbar
Neil Muller <drnlmuller@gmail.com>
parents: 64
diff changeset
64
aba653f8383e Start adding editor toolbar
Neil Muller <drnlmuller@gmail.com>
parents: 64
diff changeset
65 tilesetname = TextWidget(
aba653f8383e Start adding editor toolbar
Neil Muller <drnlmuller@gmail.com>
parents: 64
diff changeset
66 (button_left, button_height),
aba653f8383e Start adding editor toolbar
Neil Muller <drnlmuller@gmail.com>
parents: 64
diff changeset
67 'Tileset: %s' % self.level.tileset.name, color='white')
aba653f8383e Start adding editor toolbar
Neil Muller <drnlmuller@gmail.com>
parents: 64
diff changeset
68 self.container.add(tilesetname)
aba653f8383e Start adding editor toolbar
Neil Muller <drnlmuller@gmail.com>
parents: 64
diff changeset
69 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
70 # TODO: Add Image widget for the current tool
dabf13abb3fd Add basic drawing to level editor
Neil Muller <drnlmuller@gmail.com>
parents: 170
diff changeset
71 self.current_tool = TextWidget((button_left, button_height),
dabf13abb3fd Add basic drawing to level editor
Neil Muller <drnlmuller@gmail.com>
parents: 170
diff changeset
72 'Tool: Floor', color='white')
dabf13abb3fd Add basic drawing to level editor
Neil Muller <drnlmuller@gmail.com>
parents: 170
diff changeset
73 self.container.add(self.current_tool)
dabf13abb3fd Add basic drawing to level editor
Neil Muller <drnlmuller@gmail.com>
parents: 170
diff changeset
74 button_height += self.current_tool.surface.get_height()
dabf13abb3fd Add basic drawing to level editor
Neil Muller <drnlmuller@gmail.com>
parents: 170
diff changeset
75 button_height += button_padding
94
aba653f8383e Start adding editor toolbar
Neil Muller <drnlmuller@gmail.com>
parents: 64
diff changeset
76 floor_button = ImageButtonWidget(
aba653f8383e Start adding editor toolbar
Neil Muller <drnlmuller@gmail.com>
parents: 64
diff changeset
77 (button_left, button_height), self.level.tileset.floor,
aba653f8383e Start adding editor toolbar
Neil Muller <drnlmuller@gmail.com>
parents: 64
diff changeset
78 'Floor', color='white')
aba653f8383e Start adding editor toolbar
Neil Muller <drnlmuller@gmail.com>
parents: 64
diff changeset
79 self.container.add(floor_button)
172
dabf13abb3fd Add basic drawing to level editor
Neil Muller <drnlmuller@gmail.com>
parents: 170
diff changeset
80 floor_button.add_callback('clicked', self.change_tool,
dabf13abb3fd Add basic drawing to level editor
Neil Muller <drnlmuller@gmail.com>
parents: 170
diff changeset
81 '.', 'Floor')
175
b498f76a455f Set initial tool correctly
Neil Muller <drnlmuller@gmail.com>
parents: 174
diff changeset
82 self.edit_widget.set_tool('.')
113
c5d6d0ba3b2b Fill in more toolbar stuff
Neil Muller <drnlmuller@gmail.com>
parents: 103
diff changeset
83 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
84 if self.mode == 'Tile':
d9ee0e50a78f Teach editor about THING_MAP
Neil Muller <drnlmuller@gmail.com>
parents: 175
diff changeset
85 tile_map = TILE_MAP
d9ee0e50a78f Teach editor about THING_MAP
Neil Muller <drnlmuller@gmail.com>
parents: 175
diff changeset
86 change_mode_text = 'Switch to Things'
d9ee0e50a78f Teach editor about THING_MAP
Neil Muller <drnlmuller@gmail.com>
parents: 175
diff changeset
87 elif self.mode == 'Thing':
d9ee0e50a78f Teach editor about THING_MAP
Neil Muller <drnlmuller@gmail.com>
parents: 175
diff changeset
88 tile_map = THING_MAP
d9ee0e50a78f Teach editor about THING_MAP
Neil Muller <drnlmuller@gmail.com>
parents: 175
diff changeset
89 change_mode_text = 'Switch to Tiles'
d9ee0e50a78f Teach editor about THING_MAP
Neil Muller <drnlmuller@gmail.com>
parents: 175
diff changeset
90 for tile_char in tile_map:
113
c5d6d0ba3b2b Fill in more toolbar stuff
Neil Muller <drnlmuller@gmail.com>
parents: 103
diff changeset
91 try:
c5d6d0ba3b2b Fill in more toolbar stuff
Neil Muller <drnlmuller@gmail.com>
parents: 103
diff changeset
92 tile = self.level.tileset[tile_char]
c5d6d0ba3b2b Fill in more toolbar stuff
Neil Muller <drnlmuller@gmail.com>
parents: 103
diff changeset
93 except pygame.error:
c5d6d0ba3b2b Fill in more toolbar stuff
Neil Muller <drnlmuller@gmail.com>
parents: 103
diff changeset
94 # Ignore stuff we can't load for now
c5d6d0ba3b2b Fill in more toolbar stuff
Neil Muller <drnlmuller@gmail.com>
parents: 103
diff changeset
95 continue
c5d6d0ba3b2b Fill in more toolbar stuff
Neil Muller <drnlmuller@gmail.com>
parents: 103
diff changeset
96 if tile is None:
c5d6d0ba3b2b Fill in more toolbar stuff
Neil Muller <drnlmuller@gmail.com>
parents: 103
diff changeset
97 continue
170
77f1dae64019 Use name in editor
Neil Muller <drnlmuller@gmail.com>
parents: 120
diff changeset
98 if tile.name:
77f1dae64019 Use name in editor
Neil Muller <drnlmuller@gmail.com>
parents: 120
diff changeset
99 text = tile.name
77f1dae64019 Use name in editor
Neil Muller <drnlmuller@gmail.com>
parents: 120
diff changeset
100 else:
77f1dae64019 Use name in editor
Neil Muller <drnlmuller@gmail.com>
parents: 120
diff changeset
101 text = 'Tile'
113
c5d6d0ba3b2b Fill in more toolbar stuff
Neil Muller <drnlmuller@gmail.com>
parents: 103
diff changeset
102 tile_button = ImageButtonWidget(
c5d6d0ba3b2b Fill in more toolbar stuff
Neil Muller <drnlmuller@gmail.com>
parents: 103
diff changeset
103 (button_left, button_height), tile.image,
170
77f1dae64019 Use name in editor
Neil Muller <drnlmuller@gmail.com>
parents: 120
diff changeset
104 text, color='white')
172
dabf13abb3fd Add basic drawing to level editor
Neil Muller <drnlmuller@gmail.com>
parents: 170
diff changeset
105 tile_button.add_callback('clicked', self.change_tool,
dabf13abb3fd Add basic drawing to level editor
Neil Muller <drnlmuller@gmail.com>
parents: 170
diff changeset
106 tile_char, text)
113
c5d6d0ba3b2b Fill in more toolbar stuff
Neil Muller <drnlmuller@gmail.com>
parents: 103
diff changeset
107 self.container.add(tile_button)
c5d6d0ba3b2b Fill in more toolbar stuff
Neil Muller <drnlmuller@gmail.com>
parents: 103
diff changeset
108 button_height += \
c5d6d0ba3b2b Fill in more toolbar stuff
Neil Muller <drnlmuller@gmail.com>
parents: 103
diff changeset
109 tile_button.surface.get_height() + button_padding
174
893fb9f8f468 Hook up basic saving
Neil Muller <drnlmuller@gmail.com>
parents: 172
diff changeset
110 button_height += 10
180
d9ee0e50a78f Teach editor about THING_MAP
Neil Muller <drnlmuller@gmail.com>
parents: 175
diff changeset
111
d9ee0e50a78f Teach editor about THING_MAP
Neil Muller <drnlmuller@gmail.com>
parents: 175
diff changeset
112 mode_button = TextButton((button_left, button_height),
d9ee0e50a78f Teach editor about THING_MAP
Neil Muller <drnlmuller@gmail.com>
parents: 175
diff changeset
113 change_mode_text)
d9ee0e50a78f Teach editor about THING_MAP
Neil Muller <drnlmuller@gmail.com>
parents: 175
diff changeset
114 mode_button.add_callback('clicked', self.change_toolbar)
d9ee0e50a78f Teach editor about THING_MAP
Neil Muller <drnlmuller@gmail.com>
parents: 175
diff changeset
115 self.container.add(mode_button)
d9ee0e50a78f Teach editor about THING_MAP
Neil Muller <drnlmuller@gmail.com>
parents: 175
diff changeset
116 button_height += mode_button.surface.get_height() + button_padding
d9ee0e50a78f Teach editor about THING_MAP
Neil Muller <drnlmuller@gmail.com>
parents: 175
diff changeset
117 button_height += 10
d9ee0e50a78f Teach editor about THING_MAP
Neil Muller <drnlmuller@gmail.com>
parents: 175
diff changeset
118
174
893fb9f8f468 Hook up basic saving
Neil Muller <drnlmuller@gmail.com>
parents: 172
diff changeset
119 save_button = TextButton((button_left, button_height), "Save Level")
893fb9f8f468 Hook up basic saving
Neil Muller <drnlmuller@gmail.com>
parents: 172
diff changeset
120 save_button.add_callback('clicked', self.save)
893fb9f8f468 Hook up basic saving
Neil Muller <drnlmuller@gmail.com>
parents: 172
diff changeset
121 self.container.add(save_button)
172
dabf13abb3fd Add basic drawing to level editor
Neil Muller <drnlmuller@gmail.com>
parents: 170
diff changeset
122
dabf13abb3fd Add basic drawing to level editor
Neil Muller <drnlmuller@gmail.com>
parents: 170
diff changeset
123 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
124 self.edit_widget.set_tool(new_tool)
dabf13abb3fd Add basic drawing to level editor
Neil Muller <drnlmuller@gmail.com>
parents: 170
diff changeset
125 self.current_tool.text = 'Tool: %s' % text
dabf13abb3fd Add basic drawing to level editor
Neil Muller <drnlmuller@gmail.com>
parents: 170
diff changeset
126 self.current_tool.prepare()
174
893fb9f8f468 Hook up basic saving
Neil Muller <drnlmuller@gmail.com>
parents: 172
diff changeset
127
893fb9f8f468 Hook up basic saving
Neil Muller <drnlmuller@gmail.com>
parents: 172
diff changeset
128 def save(self, ev, widget):
893fb9f8f468 Hook up basic saving
Neil Muller <drnlmuller@gmail.com>
parents: 172
diff changeset
129 self.level.save_level()
180
d9ee0e50a78f Teach editor about THING_MAP
Neil Muller <drnlmuller@gmail.com>
parents: 175
diff changeset
130
d9ee0e50a78f Teach editor about THING_MAP
Neil Muller <drnlmuller@gmail.com>
parents: 175
diff changeset
131 def change_toolbar(self, ev, widget):
d9ee0e50a78f Teach editor about THING_MAP
Neil Muller <drnlmuller@gmail.com>
parents: 175
diff changeset
132 if self.mode == 'Tile':
d9ee0e50a78f Teach editor about THING_MAP
Neil Muller <drnlmuller@gmail.com>
parents: 175
diff changeset
133 self.mode = 'Thing'
d9ee0e50a78f Teach editor about THING_MAP
Neil Muller <drnlmuller@gmail.com>
parents: 175
diff changeset
134 elif self.mode == 'Thing':
d9ee0e50a78f Teach editor about THING_MAP
Neil Muller <drnlmuller@gmail.com>
parents: 175
diff changeset
135 self.mode = 'Tile'
d9ee0e50a78f Teach editor about THING_MAP
Neil Muller <drnlmuller@gmail.com>
parents: 175
diff changeset
136 self.clear_toolbar()
d9ee0e50a78f Teach editor about THING_MAP
Neil Muller <drnlmuller@gmail.com>
parents: 175
diff changeset
137 self.setup_toolbar()
d9ee0e50a78f Teach editor about THING_MAP
Neil Muller <drnlmuller@gmail.com>
parents: 175
diff changeset
138
d9ee0e50a78f Teach editor about THING_MAP
Neil Muller <drnlmuller@gmail.com>
parents: 175
diff changeset
139 def clear_toolbar(self):
d9ee0e50a78f Teach editor about THING_MAP
Neil Muller <drnlmuller@gmail.com>
parents: 175
diff changeset
140 """Remove every non-edit widget from the container"""
d9ee0e50a78f Teach editor about THING_MAP
Neil Muller <drnlmuller@gmail.com>
parents: 175
diff changeset
141 for widget in self.container.children[:]:
d9ee0e50a78f Teach editor about THING_MAP
Neil Muller <drnlmuller@gmail.com>
parents: 175
diff changeset
142 if widget is not self.edit_widget:
d9ee0e50a78f Teach editor about THING_MAP
Neil Muller <drnlmuller@gmail.com>
parents: 175
diff changeset
143 self.container.remove(widget)