Prise en charge du mode.
[minwii.git] / src / app / widgets / home.py
index 540746f..1aa74d3 100755 (executable)
@@ -1,6 +1,6 @@
 # -*- coding: utf-8 -*-
 """
-widgets minwii.
+Écran de démarrage minwii.
 
 $Id$
 $URL$
@@ -13,8 +13,11 @@ from pgu.gui import Switch
 from pgu.gui import Select
 from pgu.gui import CLICK
 from pgu.gui import QUIT
+from pgu.gui import CHANGE
 import pygame
-from gui.constants import reversedReadabilityDict, modeDict
+from globals import PLAYING_MODES
+from songfilebrowser import FileOpenDialog
+import os.path
 
 class Home(Table) :
     """
@@ -23,6 +26,8 @@ class Home(Table) :
     
     def __init__(self,**params):
         Table.__init__(self,**params)
+        self.songPath = params.get('songPath', '.')
+        self.songFile = None
         self.spaceSize = (100,100)
         self.font = pygame.font.Font(None,70)
         self._fill()
@@ -48,9 +53,9 @@ class Home(Table) :
         # choix du niveau
         self.tr()
         self.td(self.createLabel("Niveau :"))
-        self.modeSelect = Select('easy')
-        for key in modeDict.keys() :
-            self.modeSelect.add(self.createLabel(reversedReadabilityDict[key]),key)
+        self.modeSelect = Select('EASY')
+        for k, caption in PLAYING_MODES :
+            self.modeSelect.add(self.createLabel(caption), k)
         self.td(self.modeSelect,colspan=3)
 
         self.tr()
@@ -75,18 +80,24 @@ class Home(Table) :
         self.tr()
         self.quitButton = Button(self.createLabel("Quitter"))
         self.td(self.quitButton)
-        self.playButton = Button(self.createLabel("Jouer"))
+        self.playButton = Button(self.createLabel("Jouer"), disabled=True)
         self.td(self.playButton,colspan=3)
 
         self.tr()
         self.td(Spacer(500,500))
     
     def _initLocalListeners(self) :
-        self.quitButton.connect(CLICK, self.exit)
+        self.browseButton.connect(CLICK, self.open_file_browser)
+        self.quitButton.connect(CLICK, self._exitApp)
+        self.playButton.connect(CLICK, self._exitHome)
     
-    def exit(self, data=None) :
-        if data is None :
-            self.send(QUIT)
+    def _exitApp(self, data=None) :
+        self.returnValue = False
+        self.send(QUIT)
+    
+    def _exitHome(self, data=None) :
+        self.returnValue = True
+        self.send(QUIT)
     
     def createLabel(self,text,font = None):
         if font == None :
@@ -94,6 +105,16 @@ class Home(Table) :
         w,h = self.font.size(text)
         label = Label(text,width=w,height=h,font = font)
         return(label)
-        
+    
+    def open_file_browser(self):
+        dlg = FileOpenDialog(self.songPath)
+        dlg.connect(CHANGE, self.handle_file_browser_closed, dlg)
+        dlg.open()
+    
+    def handle_file_browser_closed(self, dlg) :
+        if dlg.value and os.path.isfile(dlg.value):
+            self.songFile = dlg.value
+            self.playButton.disabled = False
+    
 
     
\ No newline at end of file