Files
@ 782476e472ab
Branch filter:
Location: OneEye/src/gui/__init__.py - annotation
782476e472ab
1.3 KiB
text/x-python
configurable image directory, refactored constants
0d57edb8be11 0d57edb8be11 0d57edb8be11 0d57edb8be11 0d57edb8be11 0d57edb8be11 0d57edb8be11 0d57edb8be11 0d57edb8be11 0d57edb8be11 0d57edb8be11 0d57edb8be11 0d57edb8be11 0d57edb8be11 0d57edb8be11 0d57edb8be11 0d57edb8be11 0d57edb8be11 0d57edb8be11 0d57edb8be11 0d57edb8be11 0d57edb8be11 0d57edb8be11 0d57edb8be11 0d57edb8be11 0d57edb8be11 0d57edb8be11 0d57edb8be11 0d57edb8be11 0d57edb8be11 0d57edb8be11 0d57edb8be11 0d57edb8be11 0d57edb8be11 0d57edb8be11 0d57edb8be11 0d57edb8be11 0d57edb8be11 0d57edb8be11 0d57edb8be11 0d57edb8be11 0d57edb8be11 0d57edb8be11 0d57edb8be11 0d57edb8be11 0d57edb8be11 0d57edb8be11 0d57edb8be11 | import threading
import tkinter as tk
import config
from .mainwindow import MainWindow
from .boardview import BoardView
class GUI:
def __init__(self):
self.root = tk.Tk()
self.root.title("OneEye {0}.{1}.{2}".format(*config.misc.version))
self._coreMessages=None
self.mainWindow = MainWindow(self, master=self.root)
self.root.columnconfigure(0,weight=1)
self.root.rowconfigure(0,weight=1)
self.root.bind("<<redrawImgView>>", lambda e: self.mainWindow.redrawImgView())
self.root.bind("<Left>",lambda e: self.sendMsg("prevFrame"))
self.root.bind("<Right>",lambda e: self.sendMsg("nextFrame"))
def __call__(self,ownMessages,coreMessages):
self._coreMessages=coreMessages
self.listenerThread=threading.Thread(target=lambda: ownMessages.listen(self._handleEvent))
self.listenerThread.start()
self.mainWindow.mainloop()
def sendMsg(self,actionName,args=tuple(),kwargs=None):
self._coreMessages.send(actionName,args,kwargs)
def _handleEvent(self,e):
actions={"setCurrentFrame":self._frameHandler, "setGameState":self._stateHandler}
(actionName,args,kwargs)=e
return actions[actionName](*args,**kwargs)
def _frameHandler(self,newFrame):
self.mainWindow.setCurrentFrame(newFrame)
self.root.event_generate("<<redrawImgView>>")
def _stateHandler(self,gameState):
self.mainWindow.boardView.redrawState(gameState)
gui=GUI()
|