|
Packit |
bd2e5d |
##ifdef CAMLTK
|
|
Packit |
bd2e5d |
|
|
Packit |
bd2e5d |
open Protocol;;
|
|
Packit |
bd2e5d |
(* Implementation of the tk_optionMenu *)
|
|
Packit |
bd2e5d |
|
|
Packit |
bd2e5d |
let create ?name parent variable values =
|
|
Packit |
bd2e5d |
let w = Widget.new_atom "menubutton" ~parent ?name in
|
|
Packit |
bd2e5d |
let mw = Widget.new_atom "menu" ~parent:w ~name:"menu" in
|
|
Packit |
bd2e5d |
let res =
|
|
Packit |
bd2e5d |
tkEval [|TkToken "tk_optionMenu";
|
|
Packit |
bd2e5d |
TkToken (Widget.name w);
|
|
Packit |
bd2e5d |
cCAMLtoTKtextVariable variable;
|
|
Packit |
bd2e5d |
TkTokenList (List.map (function x -> TkToken x) values)|] in
|
|
Packit |
bd2e5d |
if res <> Widget.name mw then
|
|
Packit |
bd2e5d |
raise (TkError "internal error in Optionmenu.create")
|
|
Packit |
bd2e5d |
else
|
|
Packit |
bd2e5d |
w,mw
|
|
Packit |
bd2e5d |
;;
|
|
Packit |
bd2e5d |
|
|
Packit |
bd2e5d |
let create_named parent name variable values =
|
|
Packit |
bd2e5d |
let w = Widget.new_atom "menubutton" ~parent ~name in
|
|
Packit |
bd2e5d |
let mw = Widget.new_atom "menu" ~parent:w ~name: "menu" in
|
|
Packit |
bd2e5d |
let res =
|
|
Packit |
bd2e5d |
tkEval [|TkToken "tk_optionMenu";
|
|
Packit |
bd2e5d |
TkToken (Widget.name w);
|
|
Packit |
bd2e5d |
cCAMLtoTKtextVariable variable;
|
|
Packit |
bd2e5d |
TkTokenList (List.map (function x -> TkToken x) values)|] in
|
|
Packit |
bd2e5d |
if res <> Widget.name mw then
|
|
Packit |
bd2e5d |
raise (TkError "internal error in Optionmenu.create")
|
|
Packit |
bd2e5d |
else
|
|
Packit |
bd2e5d |
w,mw
|
|
Packit |
bd2e5d |
;;
|
|
Packit |
bd2e5d |
|
|
Packit |
bd2e5d |
##else
|
|
Packit |
bd2e5d |
|
|
Packit |
bd2e5d |
open Protocol;;
|
|
Packit |
bd2e5d |
(* Implementation of the tk_optionMenu *)
|
|
Packit |
bd2e5d |
|
|
Packit |
bd2e5d |
let create ~parent ~variable ?name values =
|
|
Packit |
bd2e5d |
let w = Widget.new_atom "menubutton" ~parent ?name in
|
|
Packit |
bd2e5d |
let mw = Widget.new_atom "menu" ~parent:w ~name:"menu" in
|
|
Packit |
bd2e5d |
(* assumes .menu naming *)
|
|
Packit |
bd2e5d |
let res =
|
|
Packit |
bd2e5d |
tkEval [|TkToken "tk_optionMenu";
|
|
Packit |
bd2e5d |
TkToken (Widget.name w);
|
|
Packit |
bd2e5d |
cCAMLtoTKtextVariable variable;
|
|
Packit |
bd2e5d |
TkTokenList (List.map ~f:(fun x -> TkToken x) values)|] in
|
|
Packit |
bd2e5d |
if res <> Widget.name mw then
|
|
Packit |
bd2e5d |
raise (TkError "internal error in Optionmenu.create")
|
|
Packit |
bd2e5d |
else
|
|
Packit |
bd2e5d |
w, mw
|
|
Packit |
bd2e5d |
;;
|
|
Packit |
bd2e5d |
|
|
Packit |
bd2e5d |
##endif
|