Clignotement du curseur basé sur un thread indépendant de pygame.
[minwii.git] / src / app / widgets / home.py
index 6d9d7d5..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 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 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
 
 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', '.')
     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)
         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 :"))
         # 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()
         self.td(self.modeSelect,colspan=3)
 
         self.tr()
@@ -63,14 +66,14 @@ class Home(Table) :
 
         # choix des wiimotes
         self.tr()
 
         # choix des wiimotes
         self.tr()
-        self.td(self.createLabel("Joueurs :", self.font))
+        self.td(self.createLabel("Wiimote :", self.font))
         playerTable = Table()
         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)))
             playerTable.td(self.createLabel(" %d " % (i+1)))
-            self.activeWiimoteSwitches.append(s)
         self.td(playerTable,colspan = 3)
         
         self.tr()
         self.td(playerTable,colspan = 3)
         
         self.tr()
@@ -80,23 +83,27 @@ class Home(Table) :
         self.tr()
         self.quitButton = Button(self.createLabel("Quitter"))
         self.td(self.quitButton)
         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))
     
         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._exitApp)
         self.playButton.connect(CLICK, self._exitHome)
     
     def _exitApp(self, data=None) :
     def _initLocalListeners(self) :
         self.browseButton.connect(CLICK, self.open_file_browser)
         self.quitButton.connect(CLICK, self._exitApp)
         self.playButton.connect(CLICK, self._exitHome)
     
     def _exitApp(self, data=None) :
-        self.returnValue = False
+        self.exitApp = True
         self.send(QUIT)
     
     def _exitHome(self, data=None) :
         self.send(QUIT)
     
     def _exitHome(self, data=None) :
-        self.returnValue = True
+        self.exitApp = False
         self.send(QUIT)
     
     def createLabel(self,text,font = None):
         self.send(QUIT)
     
     def createLabel(self,text,font = None):
@@ -114,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
     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
     
 
     
\ No newline at end of file