Tk

`sig
val openTk :
?display:string -> ?clas:string -> unit -> Widget.toplevel Widget.widget
val mainLoop : unit -> unit
val closeTk : unit -> unit
val destroy : 'a Widget.widget -> unit
val update : unit -> unit
val appname_get : unit -> string
val appname_set : string -> unit
type units =
[ `Cm of float
| `In of float
| `Mm of float
| `Pix of int
| `Pt of float ]
val pixels : Tk.units -> int
type anchor = [ `Center | `E | `N | `Ne | `Nw | `S | `Se | `Sw | `W ]
type fillMode = [ `Both | `None | `X | `Y ]
type side = [ `Bottom | `Left | `Right | `Top ]
val pack :
?after:'a Widget.widget ->
?anchor:Tk.anchor ->
?before:'b Widget.widget ->
?expand:bool ->
?fill:Tk.fillMode ->
?inside:'c Widget.widget ->
?ipadx:int ->
?ipady:int ->
?padx:int -> ?pady:int -> ?side:Tk.side -> 'd Widget.widget list -> unit
val grid :
?column:int ->
?columnspan:int ->
?inside:'a Widget.widget ->
?ipadx:int ->
?ipady:int ->
?padx:int ->
?pady:int ->
?row:int ->
?rowspan:int -> ?sticky:string -> 'b Widget.widget list -> unit
type borderMode = [ `Ignore | `Inside | `Outside ]
val place :
?anchor:Tk.anchor ->
?bordermode:Tk.borderMode ->
?height:int ->
?inside:'a Widget.widget ->
?relheight:float ->
?relwidth:float ->
?relx:float ->
?rely:float -> ?width:int -> ?x:int -> ?y:int -> 'b Widget.widget -> unit
val raise_window : ?above:'a Widget.widget -> 'b Widget.widget -> unit
val lower_window : ?below:'a Widget.widget -> 'b Widget.widget -> unit
type modifier =
[ `Alt
| `Button1
| `Button2
| `Button3
| `Button4
| `Button5
| `Control
| `Double
| `Lock
| `Meta
| `Mod1
| `Mod2
| `Mod3
| `Mod4
| `Mod5
| `Shift
| `Triple ]
type event =
[ `ButtonPress
| `ButtonPressDetail of int
| `ButtonRelease
| `ButtonReleaseDetail of int
| `Circulate
| `ColorMap
| `Configure
| `Destroy
| `Enter
| `Expose
| `FocusIn
| `FocusOut
| `Gravity
| `KeyPress
| `KeyPressDetail of string
| `KeyRelease
| `KeyReleaseDetail of string
| `Leave
| `Map
| `Modified of Tk.modifier list * Tk.event
| `Motion
| `Property
| `Reparent
| `Unmap
| `Visibility ]
type eventInfo = {
mutable ev_Above : int;
mutable ev_ButtonNumber : int;
mutable ev_Count : int;
mutable ev_Detail : string;
mutable ev_Focus : bool;
mutable ev_Height : int;
mutable ev_KeyCode : int;
mutable ev_Mode : string;
mutable ev_OverrideRedirect : bool;
mutable ev_Place : string;
mutable ev_State : string;
mutable ev_Time : int;
mutable ev_Width : int;
mutable ev_MouseX : int;
mutable ev_MouseY : int;
mutable ev_Char : string;
mutable ev_BorderWidth : int;
mutable ev_SendEvent : bool;
mutable ev_KeySymString : string;
mutable ev_KeySymInt : int;
mutable ev_RootWindow : int;
mutable ev_SubWindow : int;
mutable ev_Type : int;
mutable ev_Widget : Widget.any Widget.widget;
mutable ev_RootX : int;
mutable ev_RootY : int;
}
type eventField =
[ `Above
| `BorderWidth
| `ButtonNumber
| `Char
| `Count
| `Detail
| `Focus
| `Height
| `KeyCode
| `KeySymInt
| `KeySymString
| `Mode
| `MouseX
| `MouseY
| `OverrideRedirect
| `Place
| `RootWindow
| `RootX
| `RootY
| `SendEvent
| `State
| `SubWindow
| `Time
| `Type
| `Widget
| `Width ]
val bind :
events:Tk.event list ->
?extend:bool ->
?breakable:bool ->
?fields:Tk.eventField list ->
?action:(Tk.eventInfo -> unit) -> 'a Widget.widget -> unit
val bind_class :
events:Tk.event list ->
?extend:bool ->
?breakable:bool ->
?fields:Tk.eventField list ->
?action:(Tk.eventInfo -> unit) -> ?on:'a Widget.widget -> string -> unit
val bind_tag :
events:Tk.event list ->
?extend:bool ->
?breakable:bool ->
?fields:Tk.eventField list ->
?action:(Tk.eventInfo -> unit) -> ?on:'a Widget.widget -> string -> unit
val break : unit -> unit
end`