changeset 481:68898de788cc

Add upload button to editor.
author Simon Cross <hodgestar@gmail.com>
date Sat, 17 Sep 2011 22:22:23 +0200
parents 90a59251c93b
children cdf0d8771a21
files mamba/habitats/editor.py
diffstat 1 files changed, 41 insertions(+), 56 deletions(-) [+]
line wrap: on
line diff
--- a/mamba/habitats/editor.py	Sat Sep 17 22:22:21 2011 +0200
+++ b/mamba/habitats/editor.py	Sat Sep 17 22:22:23 2011 +0200
@@ -22,7 +22,8 @@
         RESERVED_NAMES, WINDOW_ICON)
 
 MAX_TOOLS = 6
-MODE_HEIGHT = 500
+MODE_HEIGHT = 370
+LOAD_SAVE_HEIGHT = 500
 
 
 class EditorHabitat(Habitat):
@@ -86,31 +87,6 @@
         self.container.add(edit_level)
         button_height += edit_level.rect.height + button_padding
 
-        # filename = TextButton(
-        #         (button_left, button_height),
-        #         'File: %s' % self.level.level_name, color='white')
-        # 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 = 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.rect.height + button_padding
-
-        # tilesetname = TextButton((button_left, button_height),
-        #         'Tileset: %s' % self.level.tileset.name, color='white')
-        # tilesetname.add_callback('clicked', self.list_tilesets)
-        # self.container.add(tilesetname)
-        # button_height += tilesetname.surface.get_height() + button_padding
-        # trackname = TextButton((button_left, button_height),
-        #         'Music: %s' % self.level.background_track, color='white')
-        # trackname.add_callback('clicked', self.list_tracks)
-        # self.container.add(trackname)
-        # button_height += trackname.surface.get_height() + button_padding
-
         # TODO: Add Image widget for the current tool
         if self.mode != 'Sprites':
             self.current_tool = TextWidget((button_left, button_height),
@@ -169,44 +145,50 @@
                     tool_list, MAX_TOOLS, start_key=K_2)
             self.toolbar[self.mode] = self.tool_widget
         self.container.add(self.tool_widget)
+
         button_height = self.container.rect.top + MODE_HEIGHT
-        if self.mode == 'Tiles':
-            mode_button1 = TextButton((button_left, button_height),
-                'Things')
-            mode_button1.add_callback('clicked', self.change_toolbar, 'Things')
-            mode_button2 = TextButton((button_left + 100, button_height),
-                'Sprites')
-            mode_button2.add_callback('clicked', self.change_toolbar,
-                    'Sprites')
-        elif self.mode == 'Things':
-            mode_button1 = TextButton((button_left, button_height),
-                'Tiles')
-            mode_button1.add_callback('clicked', self.change_toolbar, 'Tiles')
-            mode_button2 = TextButton((button_left + 100, button_height),
-                'Sprites')
-            mode_button2.add_callback('clicked', self.change_toolbar,
-                    'Sprites')
-        elif self.mode == 'Sprites':
-            mode_button1 = TextButton((button_left, button_height),
-                'Tiles')
-            mode_button1.add_callback('clicked', self.change_toolbar, 'Tiles')
-            mode_button2 = TextButton((button_left + 100, button_height),
-                'Things')
-            mode_button2.add_callback('clicked', self.change_toolbar,
-                    'Things')
-        self.container.add(mode_button1)
-        self.container.add(mode_button2)
-        button_height += mode_button1.rect.height + button_padding
-        button_height += 2
+        tile_button = TextButton((button_left, button_height),
+                                 'Tiles')
+        tile_button.add_callback('clicked', self.change_toolbar, 'Tiles')
+        thing_button = TextButton((button_left + tile_button.rect.width +
+                                   button_padding, button_height),
+                                  'Things')
+        thing_button.add_callback('clicked', self.change_toolbar, 'Things')
+        sprite_button = TextButton((button_left,
+                                    button_height + thing_button.rect.height +
+                                    button_padding),
+                                   'Sprites')
+        sprite_button.add_callback('clicked', self.change_toolbar,
+                                   'Sprites')
+        if self.mode == "Tiles":
+            tile_button.disable()
+        elif self.mode == "Things":
+            thing_button.disable()
+        elif self.mode == "Sprites":
+            sprite_button.disable()
+        self.container.add(tile_button)
+        self.container.add(thing_button)
+        self.container.add(sprite_button)
+
+        button_height = LOAD_SAVE_HEIGHT
+
+        upload = TextButton((button_left, button_height), "Upload Level")
+        upload.add_callback('clicked', self.upload)
+        self.container.add(upload)
+
+        button_height = upload.rect.bottom + button_padding
 
         new = TextButton((button_left, button_height), "New")
         new.add_callback('clicked', self.new)
         self.container.add(new)
-        load = TextButton((button_left + 60, button_height), "Load")
+
+        load = TextButton((new.rect.right + button_padding, button_height),
+                          "Load")
         load.add_callback('clicked', self.load)
         self.container.add(load)
 
-        save = TextButton((button_left + 120, button_height), "Save")
+        save = TextButton((load.rect.right + button_padding, button_height),
+                          "Save")
         save.add_callback('clicked', self.save)
         self.container.add(save)
 
@@ -238,6 +220,9 @@
     def new(self, ev, widget):
         return self.load(ev, widget, 'levels', subdir='templates')
 
+    def upload(self, ev, widget):
+        print "Upload!"
+
     def load(self, ev, widget, level_dir=None, is_user_dir=False, subdir=''):
         if level_dir is None:
             level_dir = 'user_levels'