X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2FDEVEL%2Flablgtk%2Flablgtk_20000829-0.1.0%2FgtkSignal.mli;fp=helm%2FDEVEL%2Flablgtk%2Flablgtk_20000829-0.1.0%2FgtkSignal.mli;h=0ef2ab2ea8dc0612d0477be02eaf22e1a2850fa0;hb=2ee84a2a641938988703e329aef9fc3c5eb5aacf;hp=0000000000000000000000000000000000000000;hpb=34d83812af9b7064cc8f735c2a78169881140010;p=helm.git diff --git a/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkSignal.mli b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkSignal.mli new file mode 100644 index 000000000..0ef2ab2ea --- /dev/null +++ b/helm/DEVEL/lablgtk/lablgtk_20000829-0.1.0/gtkSignal.mli @@ -0,0 +1,45 @@ +(* $Id$ *) + +open Gtk + +type id +type ('a,'b) t = + { name: string; + marshaller: ('b -> GtkArgv.t -> GtkArgv.data list -> unit) } + +val stop_emit : unit -> unit + (* Call [stop_emit ()] in a callback to prohibit further handling + of the current signal invocation, by calling [emit_stop_by_name]. + Be careful about where you use it, since the concept of current + signal may be tricky. *) + +val connect : + sgn:('a, 'b) t -> callback:'b -> ?after:bool -> 'a obj -> id + (* You may use [stop_emit] inside the callback *) + +external disconnect : 'a obj -> id -> unit + = "ml_gtk_signal_disconnect" +external emit_stop_by_name : 'a obj -> name:string -> unit + = "ml_gtk_signal_emit_stop_by_name" + (* Unsafe: use [stop_emit] instead. *) +external handler_block : 'a obj -> id -> unit + = "ml_gtk_signal_handler_block" +external handler_unblock : 'a obj -> id -> unit + = "ml_gtk_signal_handler_unblock" + +(* Some marshaller functions, to build signals *) +val marshal_unit : (unit -> unit) -> GtkArgv.t -> GtkArgv.data list -> unit +val marshal_int : (int -> unit) -> GtkArgv.t -> GtkArgv.data list -> unit + +(* Emitter functions *) +val emit : + 'a obj -> sgn:('a, 'b) t -> emitter:('a obj -> name:string -> 'b) -> 'b +val emit_unit : 'a obj -> sgn:('a, unit -> unit) t -> unit +val emit_int : 'a obj -> sgn:('a, int -> unit) t -> int -> unit + +(* Internal functions. *) +val enter_callback : (unit -> unit) ref +val exit_callback : (unit -> unit) ref +type saved_state +val push_callback : unit -> saved_state +val pop_callback : saved_state -> bool