Rechercher une page de manuel
GUtil.3o
Langue: en
Version: 290432 (debian - 07/07/09)
Section: 3 (Bibliothèques de fonctions)
Sommaire
NAME
GUtil - Utility classes for programming with GTK objectsModule
Module GUtilDocumentation
Module GUtil
: sig end
Utility classes for programming with GTK objects
val print_widget : Format.formatter -> #GObj.widget -> unit
A nice function to use with #install_printer
=== The memo class provides an easy way to remember the real class of a widget. Insert all widgets of class in one single t memo, and you can then recover their original ML object with #find. ===
class < get_oid : int; .. > memo : unit -> object end
=== The ML signal mechanism It allows one to add GTK-like signals to arbitrary objects. ===
val next_callback_id : unit -> GtkSignal.id
class 'a signal : unit -> object end
=== As with GTK signals, you can use GtkSignal.stop_emit inside a callback to prevent other callbacks from being called. ===
class virtual ml_signals : (GtkSignal.id -> bool) list -> object end
class virtual add_ml_signals : 'a Gtk.obj -> (GtkSignal.id -> bool) list -> object end
=== To add ML signals to a LablGTK object: class mywidget_signals obj ~mysignal1 ~mysignal2 = object inherit somewidget_signals obj inherit add_ml_signals obj [mysignal1#disconnect; mysignal2#disconnect] method mysignal1 = mysignal1#connect ~after method mysignal2 = mysignal2#connect ~after end class mywidget obj = object (self) inherit somewidget obj val mysignal1 = new signal obj val mysignal2 = new signal obj method connect = new mywidget_signals obj ~mysignal1 ~mysignal2 method call1 = mysignal1#call method call2 = mysignal2#call end You can also add ML signals to an arbitrary object; just inherit from ml_signals in place of widget_signals+add_ml_signals. class mysignals ~mysignal1 ~mysignal2 = object inherit ml_signals [mysignal1#disconnect; mysignal2#disconnect] method mysignal1 = mysignal1#connect ~after method mysignal2 = mysignal2#connect ~after end ===
=== Propagating state modifications The variable class provides an easy way to propagate state modifications. A new variable is created by new variable init. The #set method just calls the set signal, which by default only calls real_set. real_set sets the variable and calls changed when needed. Deep equality is used to compare values, but check is only done if there are callbacks for changed. ===
class 'a variable_signals : set:'a signal -> changed:'a signal -> object end
class 'a variable : 'a -> object end
Contenus ©2006-2024 Benjamin Poulain
Design ©2006-2024 Maxime Vantorre