Version française
Home     About     Download     Resources     Contact us    

This site is updated infrequently. For up-to-date information, please visit the new OCaml website at

Browse thread
labltk bind ~events list questions/bugs?
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 2001-01-02 (11:07)
From: Jacques Garrigue <garrigue@k...>
Subject: Re: labltk bind ~events list questions/bugs?
From: Chris Hecker <>

> Hi, a few labltk questions:
> 1. Does the ~events list passed to Tk.bind mean the callback should
> get all of those events?  I can't think of what else it's for, but
> it doesn't seem to work correctly.  I only get one of the types, or
> sometimes none.  This is on Win98 with tcl/tk 8.3.

When in doubt, you should read the Tk man page.
In this case, it tells you that you can bind a _sequence_ of events.
So this is not an "or", the callback is only called if all these
events happen, and in that precise order.

> 2. As another question, if I have ~events:[`Modified
> ([`Shift],`KeyPress)], sometimes I just get the keys that were pressed
> when the shift key was down, sometimes I get a zillion Shift_L events,
> and sometimes I get nothing.

Stranger. This should be only the first case. At least, this is how it
works on X11.

> 3. I'd like to be able to distribute an executable compiled with
> labltk and lablgl without having people have to have tcl/tk installed.
> Has anybody successfully statically linked tk into an ocaml app?
> Perl/Tk is set up such that it doesn't depend on the tcl/tk
> distribution, so I assume this is possible.  Would it be a ton of
> work? 

Somebody on this list explained a while ago (around april 2000?) how
one could theoretically put in the linked binary the tcl source code
needed by the interpreter to boot. Since Labltk requires the tcl
interpreter to run (contrary to PerlTk, I believe), this would
probably be the way to go. But I have no precise idea on how to do it,
and how much code you must link in.

If you really need to distribute statically linked versions of your
code, you might wish to look at lablgtk. Unison moved to it partly
because of that, and also because it allows you to create a better
finished product than labltk.

Best wishes,

Jacques Garrigue      Kyoto University     garrigue at
		<A HREF=>JG</A>