diff --git a/src/gui/mainwindow.py b/src/gui/mainwindow.py --- a/src/gui/mainwindow.py +++ b/src/gui/mainwindow.py @@ -1,12 +1,13 @@ import tkinter as tk from tkinter import N,S,E,W -from . import menu +from .util import MsgMixin +from .menu import MainMenu from .boardview import BoardView from .imgview import ImgView -class MainWindow(tk.Frame): +class MainWindow(tk.Frame,MsgMixin): def __init__(self,parent,master=None): self.parent=parent @@ -14,17 +15,13 @@ class MainWindow(tk.Frame): self.grid(column=0,row=0,sticky=(N,S,E,W)) self._createWidgets() - self.bind("",lambda e: self.sendMsg("prevFrame")) - self.bind("",lambda e: self.sendMsg("nextFrame")) - def setCurrentFrame(self,frame): self.imgView.setImg(frame) def _createWidgets(self): # menu self.parent.root.option_add('*tearOff',False) - menubar=menu.createTopBar(self.parent.root) - menu.createMainMenu(menubar) + self._menu=MainMenu(self.parent,self.parent.root) # a captured frame with overlay graphics self._imgWrapper=tk.Frame(self,width=480,height=360) @@ -37,14 +34,6 @@ class MainWindow(tk.Frame): self.boardView=BoardView(self._boardWrapper) self._boardWrapper.grid(column=1,row=0,sticky=(N,S,E,W)) - # more controls below the board - self.scaleTresB=tk.Scale(self, orient=tk.HORIZONTAL, length=200, from_=0.0, to=100.0, command=self.refreshTresholds) - self.scaleTresW=tk.Scale(self, orient=tk.HORIZONTAL, length=200, from_=0.0, to=100.0, command=self.refreshTresholds) - self.scaleTresB.set(30.0) # !! proper defaults - self.scaleTresW.set(60.0) - self.scaleTresB.grid(column=0,row=1,columnspan=2) - self.scaleTresW.grid(column=0,row=2,columnspan=2) - self.columnconfigure(0,weight=1) self.columnconfigure(1,weight=1) self.rowconfigure(0,weight=1) @@ -55,9 +44,3 @@ class MainWindow(tk.Frame): ## Redraws the current image and its overlay. def redrawImgView(self): self.imgView.redraw() - - def refreshTresholds(self,_): - self.parent.sendMsg("setTresholds",tuple(),{"tresB":self.scaleTresB.get(), "tresW":self.scaleTresW.get()}) - - def sendMsg(self,actionName,args=tuple(),kwargs=None): - self.parent.sendMsg(actionName,args,kwargs)