let add_item (main_ui:Design.main_window_extension_points)
~use_values (factory:GMenu.menu GMenu.factory) name arg_opt callback =
match arg_opt with
| None -> (* add the menu item, but it isn't sensitive *)
let item = factory#add_item name ~callback: (fun () -> ())
in item#misc#set_sensitive false
| Some arg -> (* add the menu item with its callback *)
let cb arg =
if use_values then
if check_value main_ui then callback arg else ()
else callback arg
in
ignore (factory#add_item name ~callback: (fun () -> cb arg))