Mercurial > code > home > repos > light9
comparison light8/uihelpers.py @ 101:a995fd1a8f03
result of 7.12 performance
author | dmcc |
---|---|
date | Sun, 14 Jul 2002 02:44:27 +0000 |
parents | 57319ec2bfad |
children | e04f7b552bcd |
comparison
equal
deleted
inserted
replaced
100:f13cf18224f2 | 101:a995fd1a8f03 |
---|---|
11 'leveldisplay' : '144x340+870+400', | 11 'leveldisplay' : '144x340+870+400', |
12 'cuefader' : '314x212+546+741', | 12 'cuefader' : '314x212+546+741', |
13 'effect' : '24x24+0963+338', | 13 'effect' : '24x24+0963+338', |
14 'stage' : '823x683+37+030', | 14 'stage' : '823x683+37+030', |
15 'scenes' : '504x198+462+12', | 15 'scenes' : '504x198+462+12', |
16 | |
17 } | 16 } |
18 | 17 |
19 def make_frame(parent): | 18 def make_frame(parent): |
20 f = Frame(parent, bd=0) | 19 f = Frame(parent, bd=0) |
21 f.pack(side='left') | 20 f.pack(side='left') |
155 | 154 |
156 | 155 |
157 class FancyDoubleVar(DoubleVar): | 156 class FancyDoubleVar(DoubleVar): |
158 def __init__(self,master=None): | 157 def __init__(self,master=None): |
159 DoubleVar.__init__(self,master) | 158 DoubleVar.__init__(self,master) |
160 self.callbacklist = {} | 159 self.callbacklist = {} # cbname : mode |
160 self.namedtraces = {} # name : cbname | |
161 def trace_variable(self,mode,callback): | 161 def trace_variable(self,mode,callback): |
162 """Define a trace callback for the variable. | 162 """Define a trace callback for the variable. |
163 | 163 |
164 MODE is one of "r", "w", "u" for read, write, undefine. | 164 MODE is one of "r", "w", "u" for read, write, undefine. |
165 CALLBACK must be a function which is called when | 165 CALLBACK must be a function which is called when |
169 """ | 169 """ |
170 cbname = self._master._register(callback) | 170 cbname = self._master._register(callback) |
171 self._tk.call("trace", "variable", self._name, mode, cbname) | 171 self._tk.call("trace", "variable", self._name, mode, cbname) |
172 | 172 |
173 # we build a list of the trace callbacks (the py functrions and the tcl functionnames) | 173 # we build a list of the trace callbacks (the py functrions and the tcl functionnames) |
174 self.callbacklist[cbname]= mode | 174 self.callbacklist[cbname] = mode |
175 # print "added trace:",callback,cbname | 175 # print "added trace:",callback,cbname |
176 | 176 |
177 return cbname | 177 return cbname |
178 trace=trace_variable | 178 trace=trace_variable |
179 def disable_traces(self): | 179 def disable_traces(self): |
185 def recreate_traces(self): | 185 def recreate_traces(self): |
186 for cb,mode in self.callbacklist.items(): | 186 for cb,mode in self.callbacklist.items(): |
187 # self.trace_variable(v[0],v[1]) | 187 # self.trace_variable(v[0],v[1]) |
188 self._tk.call("trace", "variable", self._name, mode,cb) | 188 self._tk.call("trace", "variable", self._name, mode,cb) |
189 | 189 |
190 def trace_named(self, name, callback): | |
191 if name in self.namedtraces: | |
192 print "FancyDoubleVar: already had a trace named %s - replacing it" % name | |
193 self.delete_named(name) | |
194 | |
195 cbname = self.trace_variable('w',callback) # this will register in self.callbacklist too | |
196 | |
197 self.namedtraces[name] = cbname | |
198 return cbname | |
199 | |
200 def delete_named(self, name): | |
201 if name in self.namedtraces: | |
202 | |
203 cbname = self.namedtraces[name] | |
204 | |
205 self.trace_vdelete('w',cbname) | |
206 #self._tk.call("trace","vdelete",self._name,'w',cbname) | |
207 print "FancyDoubleVar: successfully deleted trace named %s" % name | |
208 else: | |
209 print "FancyDoubleVar: attempted to delete named %s which wasn't set to any function" % name | |
210 | |
211 | |
212 | |
190 | 213 |
191 if __name__=='__main__': | 214 if __name__=='__main__': |
192 root=Tk() | 215 root=Tk() |
193 root.tk_focusFollowsMouse() | 216 root.tk_focusFollowsMouse() |
194 iv=IntVar() | 217 iv=IntVar() |
196 print "cb!" | 219 print "cb!" |
197 t = Togglebutton(root,text="testbutton",command=cb,variable=iv) | 220 t = Togglebutton(root,text="testbutton",command=cb,variable=iv) |
198 t.pack() | 221 t.pack() |
199 Entry(root,textvariable=iv).pack() | 222 Entry(root,textvariable=iv).pack() |
200 root.mainloop() | 223 root.mainloop() |
224 | |
225 | |
226 | |
227 | |
228 | |
229 | |
230 | |
231 | |
232 |