Blame builtin/text_tag_bind.ml
|
Packit |
bd2e5d |
##ifdef CAMLTK
|
|
Packit |
bd2e5d |
|
|
Packit |
bd2e5d |
let tag_bind widget tag eventsequence action =
|
|
Packit |
bd2e5d |
check_class widget widget_text_table;
|
|
Packit |
bd2e5d |
tkCommand [|
|
|
Packit |
bd2e5d |
cCAMLtoTKwidget widget_text_table widget;
|
|
Packit |
bd2e5d |
TkToken "tag";
|
|
Packit |
bd2e5d |
TkToken "bind";
|
|
Packit |
bd2e5d |
cCAMLtoTKtextTag tag;
|
|
Packit |
bd2e5d |
cCAMLtoTKeventSequence eventsequence;
|
|
Packit |
bd2e5d |
begin match action with
|
|
Packit |
bd2e5d |
| BindRemove -> TkToken ""
|
|
Packit |
bd2e5d |
| BindSet (what, f) ->
|
|
Packit |
bd2e5d |
let cbId = register_callback widget (wrapeventInfo f what) in
|
|
Packit |
bd2e5d |
TkToken ("camlcb " ^ cbId ^ (writeeventField what))
|
|
Packit |
bd2e5d |
| BindSetBreakable (what, f) ->
|
|
Packit |
bd2e5d |
let cbId = register_callback widget (wrapeventInfo f what) in
|
|
Packit |
bd2e5d |
TkToken ("camlcb " ^ cbId ^ (writeeventField what) ^
|
|
Packit |
bd2e5d |
" ; if { $BreakBindingsSequence == 1 } then { break ;} ; \
|
|
Packit |
bd2e5d |
set BreakBindingsSequence 0")
|
|
Packit |
bd2e5d |
| BindExtend (what, f) ->
|
|
Packit |
bd2e5d |
let cbId = register_callback widget (wrapeventInfo f what) in
|
|
Packit |
bd2e5d |
TkToken ("+camlcb " ^ cbId ^ (writeeventField what))
|
|
Packit |
bd2e5d |
end
|
|
Packit |
bd2e5d |
|]
|
|
Packit |
bd2e5d |
;;
|
|
Packit |
bd2e5d |
|
|
Packit |
bd2e5d |
##else
|
|
Packit |
bd2e5d |
|
|
Packit |
bd2e5d |
let tag_bind ~tag ~events ?(extend = false) ?(breakable = false)
|
|
Packit |
bd2e5d |
?(fields = []) ?action widget =
|
|
Packit |
bd2e5d |
tkCommand [|
|
|
Packit |
bd2e5d |
cCAMLtoTKwidget widget;
|
|
Packit |
bd2e5d |
TkToken "tag";
|
|
Packit |
bd2e5d |
TkToken "bind";
|
|
Packit |
bd2e5d |
cCAMLtoTKtextTag tag;
|
|
Packit |
bd2e5d |
cCAMLtoTKeventSequence events;
|
|
Packit |
bd2e5d |
begin match action with
|
|
Packit |
bd2e5d |
| None -> TkToken ""
|
|
Packit |
bd2e5d |
| Some f ->
|
|
Packit |
bd2e5d |
let cbId =
|
|
Packit |
bd2e5d |
register_callback widget ~callback: (wrapeventInfo f fields) in
|
|
Packit |
bd2e5d |
let cb = if extend then "+camlcb " else "camlcb " in
|
|
Packit |
bd2e5d |
let cb = cb ^ cbId ^ writeeventField fields in
|
|
Packit |
bd2e5d |
let cb =
|
|
Packit |
bd2e5d |
if breakable then
|
|
Packit |
bd2e5d |
cb ^ " ; if { $BreakBindingsSequence == 1 } then { break ;}"
|
|
Packit |
bd2e5d |
^ " ; set BreakBindingsSequence 0"
|
|
Packit |
bd2e5d |
else cb in
|
|
Packit |
bd2e5d |
TkToken cb
|
|
Packit |
bd2e5d |
end
|
|
Packit |
bd2e5d |
|]
|
|
Packit |
bd2e5d |
;;
|
|
Packit |
bd2e5d |
|
|
Packit |
bd2e5d |
##endif
|