|
Packit |
bd2e5d |
(***********************************************************************)
|
|
Packit |
bd2e5d |
(* *)
|
|
Packit |
bd2e5d |
(* MLTk, Tcl/Tk interface of OCaml *)
|
|
Packit |
bd2e5d |
(* *)
|
|
Packit |
bd2e5d |
(* Francois Rouaix, Francois Pessaux, Jun Furuse and Pierre Weis *)
|
|
Packit |
bd2e5d |
(* projet Cristal, INRIA Rocquencourt *)
|
|
Packit |
bd2e5d |
(* Jacques Garrigue, Kyoto University RIMS *)
|
|
Packit |
bd2e5d |
(* *)
|
|
Packit |
bd2e5d |
(* Copyright 2002 Institut National de Recherche en Informatique et *)
|
|
Packit |
bd2e5d |
(* en Automatique and Kyoto University. All rights reserved. *)
|
|
Packit |
bd2e5d |
(* This file is distributed under the terms of the GNU Library *)
|
|
Packit |
bd2e5d |
(* General Public License, with the special exception on linking *)
|
|
Packit |
bd2e5d |
(* described in file LICENSE found in the OCaml source tree. *)
|
|
Packit |
bd2e5d |
(* *)
|
|
Packit |
bd2e5d |
(***********************************************************************)
|
|
Packit |
bd2e5d |
|
|
Packit |
bd2e5d |
(* $Id$ *)
|
|
Packit |
bd2e5d |
|
|
Packit |
bd2e5d |
open Widget
|
|
Packit |
bd2e5d |
|
|
Packit |
bd2e5d |
(* Lower level interface *)
|
|
Packit |
bd2e5d |
exception TkError of string
|
|
Packit |
bd2e5d |
(* Raised by the communication functions *)
|
|
Packit |
bd2e5d |
|
|
Packit |
bd2e5d |
val debug : bool ref
|
|
Packit |
bd2e5d |
(* When set to true, displays approximation of intermediate Tcl code *)
|
|
Packit |
bd2e5d |
|
|
Packit |
bd2e5d |
type tkArgs =
|
|
Packit |
bd2e5d |
TkToken of string
|
|
Packit |
bd2e5d |
| TkTokenList of tkArgs list (* to be expanded *)
|
|
Packit |
bd2e5d |
| TkQuote of tkArgs (* mapped to Tcl list *)
|
|
Packit |
bd2e5d |
|
|
Packit |
bd2e5d |
|
|
Packit |
bd2e5d |
(* Misc *)
|
|
Packit |
bd2e5d |
external splitlist : string -> string list
|
|
Packit |
bd2e5d |
= "camltk_splitlist"
|
|
Packit |
bd2e5d |
|
|
Packit |
bd2e5d |
val add_destroy_hook : (any widget -> unit) -> unit
|
|
Packit |
bd2e5d |
|
|
Packit |
bd2e5d |
|
|
Packit |
bd2e5d |
(* Opening, closing, and mainloop *)
|
|
Packit |
bd2e5d |
val default_display : unit -> string
|
|
Packit |
bd2e5d |
|
|
Packit |
bd2e5d |
val opentk : unit -> toplevel widget
|
|
Packit |
bd2e5d |
(* The basic initialization function. *)
|
|
Packit |
bd2e5d |
|
|
Packit |
bd2e5d |
val keywords : (string * Arg.spec * string) list
|
|
Packit |
bd2e5d |
(* Command line parsing specification for Arg.parse, which contains
|
|
Packit |
bd2e5d |
the standard Tcl/Tk command line options such as "-display" and "-name".
|
|
Packit |
bd2e5d |
Add [keywords] to a [Arg.parse] call, then call [opentk].
|
|
Packit |
bd2e5d |
Then [opentk] can make use of these command line options
|
|
Packit |
bd2e5d |
to initiate applications. *)
|
|
Packit |
bd2e5d |
|
|
Packit |
bd2e5d |
val opentk_with_args : string list -> toplevel widget
|
|
Packit |
bd2e5d |
(* [opentk_with_args] is a lower level interface to initiate Tcl/Tk
|
|
Packit |
bd2e5d |
applications. [opentk_with_args argv] initializes Tcl/Tk with
|
|
Packit |
bd2e5d |
the command line options given by [argv] *)
|
|
Packit |
bd2e5d |
|
|
Packit |
bd2e5d |
val openTk : ?display:string -> ?clas:string -> unit -> toplevel widget
|
|
Packit |
bd2e5d |
(* [openTk ~display:display ~clas:clas ()] is equivalent to
|
|
Packit |
bd2e5d |
[opentk_with_args ["-display"; display; "-name"; clas]] *)
|
|
Packit |
bd2e5d |
|
|
Packit |
bd2e5d |
(* Legacy opentk functions *)
|
|
Packit |
bd2e5d |
val openTkClass: string -> toplevel widget
|
|
Packit |
bd2e5d |
(* [openTkClass class] is equivalent to [opentk ["-name"; class]] *)
|
|
Packit |
bd2e5d |
val openTkDisplayClass: string -> string -> toplevel widget
|
|
Packit |
bd2e5d |
(* [openTkDisplayClass disp class] is equivalent to
|
|
Packit |
bd2e5d |
[opentk ["-display"; disp; "-name"; class]] *)
|
|
Packit |
bd2e5d |
|
|
Packit |
bd2e5d |
val closeTk : unit -> unit
|
|
Packit |
bd2e5d |
val finalizeTk : unit -> unit
|
|
Packit |
bd2e5d |
(* Finalize tcl/tk before exiting. This function will be automatically
|
|
Packit |
bd2e5d |
called when you call [Pervasives.exit ()] *)
|
|
Packit |
bd2e5d |
|
|
Packit |
bd2e5d |
val mainLoop : unit -> unit
|
|
Packit |
bd2e5d |
(* Start the event loop *)
|
|
Packit |
bd2e5d |
|
|
Packit |
bd2e5d |
type event_flag =
|
|
Packit |
bd2e5d |
DONT_WAIT | X_EVENTS | FILE_EVENTS | TIMER_EVENTS | IDLE_EVENTS | ALL_EVENTS
|
|
Packit |
bd2e5d |
val do_one_event : event_flag list -> bool
|
|
Packit |
bd2e5d |
(* Process a single event *)
|
|
Packit |
bd2e5d |
val do_pending : unit -> unit
|
|
Packit |
bd2e5d |
(* Process all pending events, without waiting.
|
|
Packit |
bd2e5d |
This lets you use Tk from the toplevel, for instance. *)
|
|
Packit |
bd2e5d |
|
|
Packit |
bd2e5d |
|
|
Packit |
bd2e5d |
(* Direct evaluation of tcl code *)
|
|
Packit |
bd2e5d |
val tkEval : tkArgs array -> string
|
|
Packit |
bd2e5d |
|
|
Packit |
bd2e5d |
val tkCommand : tkArgs array -> unit
|
|
Packit |
bd2e5d |
|
|
Packit |
bd2e5d |
(* Returning a value from a Tcl callback *)
|
|
Packit |
bd2e5d |
val tkreturn: string -> unit
|
|
Packit |
bd2e5d |
|
|
Packit |
bd2e5d |
|
|
Packit |
bd2e5d |
(* Callbacks: this is private *)
|
|
Packit |
bd2e5d |
|
|
Packit |
bd2e5d |
type cbid
|
|
Packit |
bd2e5d |
|
|
Packit |
bd2e5d |
type callback_buffer = string list
|
|
Packit |
bd2e5d |
(* Buffer for reading callback arguments *)
|
|
Packit |
bd2e5d |
|
|
Packit |
bd2e5d |
val callback_naming_table : (cbid, callback_buffer -> unit) Hashtbl.t
|
|
Packit |
bd2e5d |
val callback_memo_table : (any widget, cbid) Hashtbl.t
|
|
Packit |
bd2e5d |
(* Exported for debug purposes only. Don't use them unless you
|
|
Packit |
bd2e5d |
know what you are doing *)
|
|
Packit |
bd2e5d |
val new_function_id : unit -> cbid
|
|
Packit |
bd2e5d |
val string_of_cbid : cbid -> string
|
|
Packit |
bd2e5d |
val register_callback : 'a widget -> callback:(callback_buffer -> unit) -> string
|
|
Packit |
bd2e5d |
(* Callback support *)
|
|
Packit |
bd2e5d |
val clear_callback : cbid -> unit
|
|
Packit |
bd2e5d |
(* Remove a given callback from the table *)
|
|
Packit |
bd2e5d |
val remove_callbacks : 'a widget -> unit
|
|
Packit |
bd2e5d |
(* Clean up callbacks associated to widget. Must be used only when
|
|
Packit |
bd2e5d |
the Destroy event is bind by the user and masks the default
|
|
Packit |
bd2e5d |
Destroy event binding *)
|
|
Packit |
bd2e5d |
|
|
Packit |
bd2e5d |
val cTKtoCAMLwidget : string -> any widget
|
|
Packit |
bd2e5d |
val cCAMLtoTKwidget : 'a widget -> tkArgs
|
|
Packit |
bd2e5d |
|
|
Packit |
bd2e5d |
val register : string -> callback:(callback_buffer -> unit) -> unit
|
|
Packit |
bd2e5d |
|
|
Packit |
bd2e5d |
(*-*)
|
|
Packit |
bd2e5d |
val prerr_cbid : cbid -> unit
|