diff --git a/src/gui/__init__.py b/src/gui/__init__.py --- a/src/gui/__init__.py +++ b/src/gui/__init__.py @@ -1,4 +1,5 @@ -import threading +import logging +import threading import tkinter as tk import config @@ -6,6 +7,8 @@ from .mainwindow import MainWindow from .boardview import BoardView from .settings import Settings +log=logging.getLogger(__name__) + class GUI: SETUP=PREVIEW=0 @@ -22,6 +25,7 @@ class GUI: self._state=GUI.SETUP self.mainWindow = MainWindow(self, master=self.root) + self.settings=None self.root.columnconfigure(0,weight=1) self.root.rowconfigure(0,weight=1) @@ -54,9 +58,16 @@ class GUI: self.mainWindow.setRecording() self.root.bind("",lambda e: None) self.root.bind("",lambda e: None) + if self.settings: + self.settings.destroy() + self.settings=None def _handleEvent(self,e): - actions={"setCurrentFrame":self._frameHandler, "setGameState":self._stateHandler} + actions={ + "setCurrentFrame": self._frameHandler, + "setGameState": self._stateHandler, + "setParams": self._paramsHandler + } (actionName,args,kwargs)=e return actions[actionName](*args,**kwargs) @@ -70,6 +81,13 @@ class GUI: labels={(row,col):(i+1) for (i,(c,row,col)) in enumerate(moves)} self.mainWindow.boardView.redrawState(gameState,labels) + def _paramsHandler(self,**params): + if not self.settings: + log.warning("received 'setParams' message while settings is '%s'",str(self.settings)) + return + self.settings.setParams(**params) + + gui=GUI() """