ya2 · news · projects · code · about

editor: scene list
[pmachines.git] / pmachines / editor / scene.py
index ae599ea494634588fcc0bbb592011d4d46db4833..e3f1e6e31897ac056ffdb99e41f3ac7aaaa84b28 100644 (file)
@@ -6,6 +6,7 @@ from direct.gui.OnscreenImage import OnscreenImage
 from direct.gui.DirectGui import DirectButton, DirectFrame, DirectEntry, YesNoDialog
 from direct.gui.DirectGuiGlobals import FLAT, NORMAL
 from direct.gui.OnscreenText import OnscreenText
+from pmachines.editor.scene_list import SceneList
 
 
 class SceneEditor:
@@ -87,20 +88,27 @@ class SceneEditor:
                     (.4, .1, .1, .4)]}[col]
             return [self.__load_img_btn(path, col) for col in colors]
         fcols = (.4, .4, .4, .14), (.3, .3, .3, .05)
-        btn = DirectButton(
+        DirectButton(
             image=load_images_btn('exitRight', 'gray'), scale=.05,
             pos=(.06, 1, .06),
             parent=self._frm, command=self.__on_close, state=NORMAL, relief=FLAT,
             frameColor=fcols[0],
             rolloverSound=loader.load_sfx('assets/audio/sfx/rollover.ogg'),
             clickSound=loader.load_sfx('assets/audio/sfx/click.ogg'))
-        btn = DirectButton(
+        DirectButton(
             image=load_images_btn('save', 'gray'), scale=.05,
             pos=(.06, 1, .18),
             parent=self._frm, command=self.__on_save, state=NORMAL, relief=FLAT,
             frameColor=fcols[0],
             rolloverSound=loader.load_sfx('assets/audio/sfx/rollover.ogg'),
             clickSound=loader.load_sfx('assets/audio/sfx/click.ogg'))
+        DirectButton(
+            image=load_images_btn('menuList', 'gray'), scale=.05,
+            pos=(.06, 1, .30),
+            parent=self._frm, command=self.__on_scene_list, state=NORMAL, relief=FLAT,
+            frameColor=fcols[0],
+            rolloverSound=loader.load_sfx('assets/audio/sfx/rollover.ogg'),
+            clickSound=loader.load_sfx('assets/audio/sfx/click.ogg'))
 
     def __on_close(self):
         self.__json['name'] = self.__name_entry.get()
@@ -111,6 +119,18 @@ class SceneEditor:
             self.__dialog = YesNoDialog(dialogName='Unsaved changes',
                                         text=_('You have unsaved changes. Really quit?'),
                                         command=self.__actually_close)
+            self.__dialog['frameColor'] = (.4, .4, .4, .14)
+            self.__dialog['relief'] = FLAT
+            self.__dialog.component('text0')['fg'] = (.9, .9, .9, 1)
+            self.__dialog.component('text0')['font'] = self._font
+            for b in self.__dialog.buttonList:
+                b['frameColor'] = (.4, .4, .4, .14)
+                b.component('text0')['fg'] = (.9, .9, .9, 1)
+                b.component('text0')['font'] = self._font
+                b.component('text1')['fg'] = (.9, .1, .1, 1)
+                b.component('text1')['font'] = self._font
+                b.component('text2')['fg'] = (.9, .9, .1, 1)
+                b.component('text2')['font'] = self._font
 
     def __actually_close(self, arg):
         if arg:
@@ -124,6 +144,9 @@ class SceneEditor:
         with open('assets/scenes/%s.json' % self.__json_name, 'w') as f:
             f.write(dumps(self.__json, indent=2, sort_keys=True))
 
+    def __on_scene_list(self):
+        SceneList()
+
     def __load_img_btn(self, path, col):
         img = OnscreenImage('assets/images/buttons/%s.dds' % path)
         img.set_transparency(True)