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()