Thomas F. Burdick wrote:
On 2/6/06, Kenny Tilton ktilton@nyc.rr.com wrote:
Thomas F. Burdick wrote:
The internal interface to callbacks is: create-name, add-callback, remove-callback, and callback. Contrary to what the lambda-list of what the last three would make you believe, callbacks are named by strings, not symbols. You should get the name for a new callback from create-name. I'll be fixing that in subversion if Peter doesn't beat me to it.
Oh. Pity. Symbols are Good Things. I see no problem with symbols and wish. Why complicate things with unnecessary rules (Thou shalt use strings.)
I wasn't trying to enumerate a rule, just saying what the internal interface inside Ltk is. The reason for that is that foo::bar is Tcl syntax for its namespacing system, so if you want to send an arbitrary identifier from Lisp to Tcl and back, a string is the easiest to do right.
OK, makes sense. (Where did they get /that/ wacky namespace syntax?!)
Actually, I think LTk needs to evolve a little in regard to communication with wish. I understand the desire to make things easy for casual users, but I do not think that should extend to defining "an internal interface", with strictures on communication with wish.
Hmm, I really meant more "conventions used within Ltk" rather than "internal interface". FWIW, the communication with wish could use an overhaul to make it a little more robust. That said, there shouldn't be anything you can't do with format-wish, read-data, senddata on the Tk side, and the new hook Peter put into the event-handling mechanism.
What hook would that be? The one prompted by my whining, viz, to dispatch any unrecognized first symbol to a generic handler users can specialize?
At least, that's sufficient for everything Ltk does itself :-)
<g> Well that certainly ducks my point: any successful library will get pushed in ways the author cannot anticipate. Of course, one can always hope for failure. :) That said, it may well be that the pinhole interface (:callback or :data only) data is perfect, and that power users can in fact achieve anything just by writing a suitable proc, so I am going to shut up for a while.
kt