open MatitaTypes
+let connect_button (button: GButton.button) callback =
+ ignore (button#connect#clicked callback)
+
let toggle_visibility ~(win: GWindow.window) ~(check: GMenu.check_menu_item) =
ignore (check#connect#toggled (fun _ ->
if check#active then win#show () else win#misc#hide ()));
method newEmptyDialog: unit -> MatitaGeneratedGui.emptyDialog
end
-exception Cancel
-
let interactive_user_uri_choice
~(gui:#gui) ~(selection_mode:[`SINGLE|`MULTIPLE]) ?(title = "")
?(msg = "") ?(nonvars_button=false) uris
GMain.Main.quit ()
in
ignore (dialog#uriChoiceDialog#event#connect#delete (fun _ -> true));
- ignore (dialog#uriChoiceConstantsButton#connect#clicked (fun _ ->
- return (Some (Lazy.force nonvars_uris))));
- ignore (dialog#uriChoiceAutoButton#connect#clicked (fun _ ->
+ connect_button dialog#uriChoiceConstantsButton (fun _ ->
+ return (Some (Lazy.force nonvars_uris)));
+ connect_button dialog#uriChoiceAutoButton (fun _ ->
Helm_registry.set_bool "matita.auto_disambiguation" true;
- return (Some (Lazy.force nonvars_uris))));
- ignore (dialog#uriChoiceSelectedButton#connect#clicked (fun _ ->
+ return (Some (Lazy.force nonvars_uris)));
+ connect_button dialog#uriChoiceSelectedButton (fun _ ->
match model#easy_selection () with
| [] -> ()
- | uris -> return (Some uris)));
- ignore (dialog#uriChoiceAbortButton#connect#clicked (fun _ -> return None));
+ | uris -> return (Some uris));
+ connect_button dialog#uriChoiceAbortButton (fun _ -> return None);
dialog#uriChoiceDialog#show ();
GtkThread.main ();
(match !choices with
dialog#interpChoiceDialog#destroy ();
GMain.Main.quit ()
in
+ let fail _ = interp_no := None; return () in
ignore (dialog#interpChoiceDialog#event#connect#delete (fun _ -> true));
- ignore (dialog#interpChoiceOkButton#connect#clicked (fun _ ->
- match !interp_no with None -> () | Some _ -> return ()));
- ignore (dialog#interpChoiceCancelButton#connect#clicked return);
+ connect_button dialog#interpChoiceOkButton (fun _ ->
+ match !interp_no with None -> () | Some _ -> return ());
+ connect_button dialog#interpChoiceCancelButton fail;
ignore (dialog#interpChoiceTreeView#connect#row_activated (fun path _ ->
interp_no := Some (model#get_interp_no path);
return ()));
GMain.Main.quit ()
in
ignore (dialog#confirmationDialog#event#connect#delete (fun _ -> true));
- ignore (dialog#confirmationDialogOkButton#connect#clicked (return true));
- ignore (dialog#confirmationDialogCancelButton#connect#clicked (return false));
+ connect_button dialog#confirmationDialogOkButton (return true);
+ connect_button dialog#confirmationDialogCancelButton (return false);
dialog#confirmationDialog#show ();
GtkThread.main ();
(match !result with None -> assert false | Some r -> r)
in
let view = GText.view ~wrap_mode:`CHAR ~packing:win#add () in
view#misc#grab_focus ();
- ignore (dialog#emptyDialogOkButton#connect#clicked (fun _ ->
- return (Some (view#buffer#get_text ()))))
+ connect_button dialog#emptyDialogOkButton (fun _ ->
+ return (Some (view#buffer#get_text ())))
end else begin (* monoline input required: use a TextEntry widget *)
let entry = GEdit.entry ~packing:dialog#emptyDialogVBox#add () in
entry#misc#grab_focus ();
- ignore (dialog#emptyDialogOkButton#connect#clicked (fun _ ->
- return (Some entry#text)))
+ connect_button dialog#emptyDialogOkButton (fun _ ->
+ return (Some entry#text))
end;
- ignore (dialog#emptyDialogCancelButton#connect#clicked (fun _ ->return None));
+ connect_button dialog#emptyDialogCancelButton (fun _ ->return None);
dialog#emptyDialog#show ();
GtkThread.main ();
(match !result with None -> raise Cancel | Some r -> r)