let popup_mode_choice v args =
  let com s =
    Cam_commands.eval_command
      (Printf.sprintf "%s_set_mode %s"
       factory_name (Filename.quote s))
  in
  let entries =
    (`I ("None"fun () -> com "''")) ::
      (List.map
       (fun s -> `I (s, (fun () -> com s)))
         (available_mode_names ()))
  in
  GToolbox.popup_menu
    ~button: 1
    ~time: (Int32.zero)
    ~entries