diff options
author | buisson | 2005-04-29 09:35:43 +0000 |
---|---|---|
committer | buisson | 2005-04-29 09:35:43 +0000 |
commit | 22c1e6dbe7cf74936e5ca29eadeff81312ccc506 (patch) | |
tree | 3304815b956eb5c76674fa2763d3da8a2e73394f /ctkivy.c | |
parent | 23abb4b87c7e40ed259dd02f653516f60e55ade4 (diff) | |
download | ivy-ocaml-22c1e6dbe7cf74936e5ca29eadeff81312ccc506.zip ivy-ocaml-22c1e6dbe7cf74936e5ca29eadeff81312ccc506.tar.gz ivy-ocaml-22c1e6dbe7cf74936e5ca29eadeff81312ccc506.tar.bz2 ivy-ocaml-22c1e6dbe7cf74936e5ca29eadeff81312ccc506.tar.xz |
Initial revision
Diffstat (limited to 'ctkivy.c')
-rw-r--r-- | ctkivy.c | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/ctkivy.c b/ctkivy.c new file mode 100644 index 0000000..ae31560 --- /dev/null +++ b/ctkivy.c @@ -0,0 +1,36 @@ +#include <stdlib.h> +#include <string.h> +#include <stdio.h> +#include <getopt.h> +#include <timer.h> +#include <caml/mlvalues.h> +#include <caml/fail.h> +#include <caml/callback.h> +#include <caml/memory.h> +#include <caml/alloc.h> +#include "ivytcl.h" + +extern void cb_delete_channel(void *delete_read); +extern void cb_read_channel(Channel ch, HANDLE fd, void *closure); + +value ivy_TclmainLoop(value unit) +{ + Tk_MainLoop(); + return Val_unit; +} + + +value ivy_TclchannelSetUp(value fd, value closure_name) +{ + Channel c; + value * closure = caml_named_value(String_val(closure_name)); + + c = IvyTclChannelSetUp((HANDLE)Int_val(fd), (void*)closure, cb_delete_channel, cb_read_channel); + return Val_int(c); +} + +value ivy_TclchannelClose(value ch) +{ + IvyTclChannelClose((Channel)Int_val(ch)); + return Val_unit; +} |