Blame support/protocol.mli

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