Files
@ d9a0f6c88b39
Branch filter:
Location: light9/light8/uihelpers.py - annotation
d9a0f6c88b39
2.1 KiB
text/x-python
Fix bad refs to quit
45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 7adc65771676 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 7adc65771676 7adc65771676 7adc65771676 7adc65771676 7adc65771676 7adc65771676 7adc65771676 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 e9d2e7754fd9 e9d2e7754fd9 e9d2e7754fd9 e9d2e7754fd9 e9d2e7754fd9 e9d2e7754fd9 e9d2e7754fd9 e9d2e7754fd9 e9d2e7754fd9 e9d2e7754fd9 e9d2e7754fd9 e9d2e7754fd9 e9d2e7754fd9 e9d2e7754fd9 e9d2e7754fd9 e9d2e7754fd9 e9d2e7754fd9 e9d2e7754fd9 e9d2e7754fd9 e9d2e7754fd9 e9d2e7754fd9 e9d2e7754fd9 e9d2e7754fd9 e9d2e7754fd9 e9d2e7754fd9 e9d2e7754fd9 e9d2e7754fd9 e9d2e7754fd9 e9d2e7754fd9 e9d2e7754fd9 e9d2e7754fd9 e9d2e7754fd9 e9d2e7754fd9 e9d2e7754fd9 e9d2e7754fd9 e9d2e7754fd9 e9d2e7754fd9 e9d2e7754fd9 e9d2e7754fd9 e9d2e7754fd9 e9d2e7754fd9 e9d2e7754fd9 e9d2e7754fd9 | """all the tiny tk helper functions"""
from Tkinter import *
def make_frame(parent):
f = Frame(parent, bd=0)
f.pack(side='left')
return f
def bindkeys(root,key, func):
root.bind(key, func)
for w in root.winfo_children():
w.bind(key, func)
def toplevelat(x,y,w=None,h=None):
tl=Toplevel()
if w and h:
tl.wm_geometry("%dx%d+%d+%d"%(w,h,x,y))
else:
tl.wm_geometry("+%d+%d"%(x,y))
return tl
def toggle_slider(s):
if s.get() == 0:
s.set(100)
else:
s.set(0)
# for lambda callbacks
def printout(t):
print t
def colorlabel(label):
"""color a label based on its own text"""
txt=label['text'] or "0"
lev=float(txt)/100
low=(80,80,180)
high=(255,55,050)
out = [int(l+lev*(h-l)) for h,l in zip(high,low)]
col="#%02X%02X%02X" % tuple(out)
label.config(bg=col)
class Togglebutton(Button):
"""works like a single radiobutton, but it's a button so the label's on the button face, not to the side"""
def __init__(self,parent,**kw):
if kw['variable']:
self.variable = kw['variable']
self.variable.trace('w',self.varchanged)
del kw['variable']
else:
self.variable=None
self.oldcommand = kw.get('command',None)
kw['command'] = self.invoke
Button.__init__(self,parent,**kw)
self.origbkg = self.cget('bg')
self.state=0
if self.variable:
self.state = self.variable.get()
self.setstate(self.state)
self.bind("<Enter>",lambda ev: self.setstate)
self.bind("<Leave>",lambda ev: self.setstate)
def varchanged(self,*args):
self.setstate(self.variable.get())
def invoke(self):
self.setstate(not self.state)
if self.oldcommand:
self.oldcommand()
def setstate(self,newstate):
self.variable.set(newstate)
if newstate: # set
self.tk.call('tkButtonDown',self)
self.config(bg='green')
else: # unset
self.tk.call('tkButtonUp',self)
self.config(bg=self.origbkg)
return "break"
|