diff --git a/src/gui/settings.py b/src/gui/settings.py --- a/src/gui/settings.py +++ b/src/gui/settings.py @@ -1,5 +1,5 @@ import tkinter as tk -from tkinter import N,S,E,W +from tkinter import N,S,E,W,LEFT from .util import MsgMixin @@ -17,12 +17,13 @@ class Settings(tk.Toplevel,MsgMixin): self.content.grid(column=0,row=0,sticky=(N,S,E,W)) self.content.columnconfigure(0,weight=1) self._create() + self.parent.settings=self + self.parent.root.event_generate("<>") + self.parent.sendMsg("fetchParams") def _create(self): self.scaleTresB=tk.Scale(self.content, orient=tk.HORIZONTAL, length=200, from_=0.0, to=100.0, command=self.refreshTresholds) self.scaleTresW=tk.Scale(self.content, 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) blackLabel=tk.Label(self.content,text="Black stone treshold (intensity)") whiteLabel=tk.Label(self.content,text="White stone treshold (intensity)") @@ -31,5 +32,27 @@ class Settings(tk.Toplevel,MsgMixin): whiteLabel.grid(column=0,row=2) self.scaleTresW.grid(column=0,row=3,sticky=(E,W)) + self.buttonFrame=tk.Frame(self.content) + self.buttonFrame.grid(column=0,row=4,sticky=(W,)) + self.confirmButton=tk.Button(self.buttonFrame,text="OK",command=self.sendParams) + self.cancelButton=tk.Button(self.buttonFrame,text="Cancel",command=lambda: self.destroy()) + self.confirmButton.pack(side=LEFT) + self.cancelButton.pack(side=LEFT) + def refreshTresholds(self,_): - self.parent.sendMsg("setTresholds",tuple(),{"tresB":self.scaleTresB.get(), "tresW":self.scaleTresW.get()}) + self.parent.sendMsg("setTresholds",tuple(),self._compileParams()) + + def setParams(self,tresB=0,tresW=0): + self.scaleTresB.set(tresB) + self.scaleTresW.set(tresW) + + def sendParams(self): + self.parent.sendMsg("setParams",tuple(),self._compileParams()) + self.destroy() + + def _compileParams(self): + params={ + "tresB": self.scaleTresB.get(), + "tresW": self.scaleTresW.get() + } + return params