sig
type widget = {
repaint : Gctx.gctx -> unit;
handle : Gctx.gctx -> Gctx.event -> unit;
size : unit -> Gctx.dimension;
}
val space : Gctx.dimension -> Widget.widget
val border : Widget.widget -> Widget.widget
val hpair : Widget.widget -> Widget.widget -> Widget.widget
val vpair : Widget.widget -> Widget.widget -> Widget.widget
val vlist : Widget.widget list -> Widget.widget
val hlist : Widget.widget list -> Widget.widget
type label_controller = {
get_label : unit -> string;
set_label : string -> unit;
}
val label : string -> Widget.widget * Widget.label_controller
type event_listener = Gctx.gctx -> Gctx.event -> unit
val mouseclick_listener : (unit -> unit) -> Widget.event_listener
type notifier_controller = {
add_event_listener : Widget.event_listener -> unit;
}
val notifier : Widget.widget -> Widget.widget * Widget.notifier_controller
val button :
string ->
Widget.widget * Widget.label_controller * Widget.notifier_controller
val canvas :
Gctx.dimension ->
(Gctx.gctx -> unit) -> Widget.widget * Widget.notifier_controller
type 'a value_controller = {
add_change_listener : ('a -> unit) -> unit;
get_value : unit -> 'a;
set_value : 'a -> unit;
}
val checkbox :
bool -> string -> Widget.widget * bool Widget.value_controller
end