Files @ dc1ed8ff56ef
Branch filter:

Location: OneEye/src/gui/mainwindow.py - annotation

Laman
cleaned up and documented shutdown
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 setFrame(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()