X-Git-Url: https://scm.cri.mines-paristech.fr/git/minwii.git/blobdiff_plain/46f3ffd7fdde386f41020171b5733e55a8e64a85..d218c503ab4f808cb477d5e7e2707aef64593afe:/src/minwii/widgets/home.py diff --git a/src/minwii/widgets/home.py b/src/minwii/widgets/home.py index afd84ec..429342b 100755 --- a/src/minwii/widgets/home.py +++ b/src/minwii/widgets/home.py @@ -17,56 +17,72 @@ from pgu.gui import CLICK from pgu.gui import QUIT from pgu.gui import CHANGE import pygame -from globals import PLAYING_MODES +from minwii.globals import PLAYING_MODES from songfilebrowser import FileOpenDialog import os.path -class Home(Table) : +STYLE_LEFT_COL = {#'border_right' : 2, + #'border_left' : 2, + 'align' : 1, + 'padding_top' : 30, + 'padding_right' : 10} + +STYLE_RIGHT_COL = {#'border_right' : 2, + #'border_left' : 2, + 'align' : -1, + 'padding_top' : 30, + 'padding_left' : 20} + + +class Home(object, Table) : """ Écran de démarrage de minwii """ def __init__(self,**params): + style = {'valign' : 0, + 'width' : pygame.display.get_surface().get_width(), + 'height' : pygame.display.get_surface().get_height()} + params['style'] = style Table.__init__(self,**params) self.songPath = params.get('songPath', '.') self.nwiimotes = params.get('nwiimotes', 0) - self.songFile = None + self.songFile = params.get('songFile', '') self.spaceSize = (100,100) self.font = pygame.font.Font(None,70) self._fill() + self.selectedPlayMode = params.get('playMode', 'NORMAL') + self.selectedWiimoteIndex = params.get('wiimoteIndex', 0) self._initLocalListeners() def _fill(self): - self.tr() - self.td(Spacer(*self.spaceSize)) - - # bouton pour browser de fichiers self.tr() - self.td(self.createLabel("Chanson :")) + st = STYLE_LEFT_COL.copy() + st['valign'] = -1 + self.td(self.createLabel("Chanson :"), rowspan=2, style = st) self.browseButton = Button(self.createLabel("Choisir...")) - self.td(self.browseButton,colspan=2) - self.songSwitch = Switch(False) - self.td(self.songSwitch) + self.td(self.browseButton,colspan=2, style = STYLE_RIGHT_COL) self.tr() - self.td(Spacer(*self.spaceSize)) + caption = '' if not self.songFile else FileOpenDialog.getSongTitle(self.songFile) + self.songTitle = self.createLabel(caption) + st = STYLE_RIGHT_COL.copy() + del st['padding_top'] + self.td(self.songTitle, style = st) # choix du niveau self.tr() - self.td(self.createLabel("Niveau :")) + self.td(self.createLabel("Niveau :"), style=STYLE_LEFT_COL) self.modeSelect = Select('NORMAL') for k, caption in PLAYING_MODES : self.modeSelect.add(self.createLabel(caption), k) - self.td(self.modeSelect,colspan=3) - - self.tr() - self.td(Spacer(*self.spaceSize)) + self.td(self.modeSelect,colspan=3, style=STYLE_RIGHT_COL) # choix des wiimotes self.tr() - self.td(self.createLabel("Wiimote :", self.font)) + self.td(self.createLabel("Wiimote :", self.font), style=STYLE_LEFT_COL) playerTable = Table() self.selectedWiimote = Group(name='selectedWiimote', value=0) @@ -74,24 +90,30 @@ class Home(Table) : r = Radio(self.selectedWiimote, i) playerTable.td(r) playerTable.td(self.createLabel(" %d " % (i+1))) - self.td(playerTable,colspan = 3) - - self.tr() - self.td(Spacer(*self.spaceSize)) + self.td(playerTable, style=STYLE_RIGHT_COL) # boutons jouer / quitter self.tr() self.quitButton = Button(self.createLabel("Quitter")) - self.td(self.quitButton) - self.playButton = Button(self.createLabel("Jouer"), disabled=True) - self.td(self.playButton,colspan=3) - - self.tr() - self.td(Spacer(500,500)) + self.td(self.quitButton, style={'padding_top' : 50}) + self.playButton = Button(self.createLabel("Jouer"), disabled=not self.songFile) + self.td(self.playButton, style={'padding_top' : 50}) + + @property + def selectedPlayMode(self) : + return self.modeSelect.value + + @selectedPlayMode.setter + def selectedPlayMode(self, value) : + self.modeSelect.value = value @property def selectedWiimoteIndex(self) : return self.selectedWiimote.value + + @selectedWiimoteIndex.setter + def selectedWiimoteIndex(self, value) : + self.selectedWiimote.value = value def _initLocalListeners(self) : self.browseButton.connect(CLICK, self.open_file_browser) @@ -120,6 +142,10 @@ class Home(Table) : def handle_file_browser_closed(self, dlg) : if dlg.value and os.path.isfile(dlg.value): + self.remove(self.songTitle) + title = FileOpenDialog.getSongTitle(dlg.value) + self.songTitle = self.createLabel(title) + self.td(self.songTitle, col=1, row=1, style=STYLE_RIGHT_COL) self.songFile = dlg.value self.playButton.disabled = False