bugfix : on ne loggait pas le bon état.
[minwii.git] / src / app / widgets / home.py
index e1e09f1..44d96fe 100755 (executable)
@@ -10,12 +10,14 @@ from pgu.gui import Spacer
 from pgu.gui import Label
 from pgu.gui import Button
 from pgu.gui import Switch
+from pgu.gui import Radio
+from pgu.gui import Group
 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
 
@@ -27,6 +29,7 @@ class Home(Table) :
     def __init__(self,**params):
         Table.__init__(self,**params)
         self.songPath = params.get('songPath', '.')
+        self.nwiimotes = params.get('nwiimotes', 0)
         self.songFile = None
         self.spaceSize = (100,100)
         self.font = pygame.font.Font(None,70)
@@ -53,9 +56,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()
@@ -63,14 +66,14 @@ class Home(Table) :
 
         # choix des wiimotes
         self.tr()
-        self.td(self.createLabel("Joueurs :", self.font))
+        self.td(self.createLabel("Wiimote :", self.font))
         playerTable = Table()
-        self.activeWiimoteSwitches = []
-        for i in range(4):
-            s = Switch(False)
-            playerTable.td(s)
+        
+        self.selectedWiimote = Group(name='selectedWiimote', value=0)
+        for i in range(self.nwiimotes):
+            r = Radio(self.selectedWiimote, i)
+            playerTable.td(r)
             playerTable.td(self.createLabel(" %d " % (i+1)))
-            self.activeWiimoteSwitches.append(s)
         self.td(playerTable,colspan = 3)
         
         self.tr()
@@ -80,17 +83,27 @@ 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))
     
+    @property
+    def selectedWiimoteIndex(self) :
+        return self.selectedWiimote.value
+    
     def _initLocalListeners(self) :
         self.browseButton.connect(CLICK, self.open_file_browser)
-        self.quitButton.connect(CLICK, self._exitHome)
+        self.quitButton.connect(CLICK, self._exitApp)
+        self.playButton.connect(CLICK, self._exitHome)
+    
+    def _exitApp(self, data=None) :
+        self.exitApp = True
+        self.send(QUIT)
     
     def _exitHome(self, data=None) :
+        self.exitApp = False
         self.send(QUIT)
     
     def createLabel(self,text,font = None):
@@ -108,6 +121,7 @@ class Home(Table) :
     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