import tkinter as tk from tkinter import N,S,E,W from .util import MsgMixin from .menu import MainMenu from .boardview import BoardView from .imgview import ImgView from .statusbar import StatusBar class MainWindow(tk.Frame,MsgMixin): def __init__(self,parent,master=None): self.parent=parent tk.Frame.__init__(self, master) self.grid(column=0,row=0,sticky=(N,S,E,W)) self._createWidgets() def setCurrentFrame(self,frame): self.imgView.setImg(frame) def _createWidgets(self): # menu self.parent.root.option_add('*tearOff',False) self._menu=MainMenu(self.parent,self.parent.root) # a captured frame with overlay graphics self._imgWrapper=tk.Frame(self,width=480,height=360) self.imgView=ImgView(self._imgWrapper,self) self._imgWrapper.grid(column=0,row=0,sticky=(N,S,E,W)) # board with detected stones self._boardWrapper=tk.Frame(self,width=360,height=360) self.boardView=BoardView(self._boardWrapper) self._boardWrapper.grid(column=1,row=0,sticky=(N,S,E,W)) self.columnconfigure(0,weight=1) self.columnconfigure(1,weight=1) self.rowconfigure(0,weight=1) self._statusBar=StatusBar(self) self._statusBar.grid(column=0,row=1,columnspan=2,sticky=(S,E,W)) self.rowconfigure(1,weight=0) # render everything self.imgView.redraw() ## Redraws the current image and its overlay. def redrawImgView(self): self.imgView.redraw() def setUp(self): self._statusBar.setUp() self.imgView.setUp() def setRecording(self): self._statusBar.setRecording() self.imgView.setRecording()