Update of /cvsroot/pythoncard/PythonCard/samples/noresource
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13296
Added Files:
autobutton.py
Log Message:
simple usage example of addmethod
--- NEW FILE: autobutton.py ---
#!/usr/bin/python
"""
__version__ = "$Revision: 1.1 $"
__date__ = "$Date: 2007/06/27 01:35:02 $"
"""
from PythonCard import model
rsrc = {'application':{'type':'Application',
'name':'Minimal',
'backgrounds': [
{'type':'Background',
'name':'bgMin',
'title':'Minimal PythonCard Application',
'size':(200, 100),
'components': [
] # end components
} # end background
] # end backgrounds
} }
class Minimal(model.Background):
def on_initialize(self, event):
self.components['field1'] = {'type':'TextField',
'name':'field1',
'position':(5,5),
'size':(150, -1),
'text':'Hello PythonCard'}
self.mouseclick_factory("Button1")
self.mouseclick_factory("Button2")
def mouseclick_factory(self, name):
def function(self, event):
# changed to event.target.name to verify we're getting
# the correct target when button is clicked
print "You clicked '%s'." % event.target.name
# func_name seems to be the magic attribute rather than
# just setting func.name
function.func_name = "on_%s_mouseClick" % name
self.addMethod(function)
self.components[name] = {'type':'Button',
'name':name,
'label':name,
'position':(5,5+int(name[-1:])*30),
'text':name}
return function
if __name__ == '__main__':
app = model.Application(Minimal, None, rsrc)
app.MainLoop()
|