From 2b636a03f937fcb6739f48f10b60323d80a84bca Mon Sep 17 00:00:00 2001 From: pboutill Date: Fri, 7 Jan 2011 14:26:38 +0000 Subject: MacOS integration if `pkg-config --exists ige-mac-integration`, coqide.opt will be able to open files by double-clik in finder on Darwin. git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@13779 85f007b7-540e-0410-9357-904b9bb8a0f7 --- ide/coqide_main.ml4 | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 ide/coqide_main.ml4 (limited to 'ide/coqide_main.ml4') diff --git a/ide/coqide_main.ml4 b/ide/coqide_main.ml4 new file mode 100644 index 000000000..6e36df6d1 --- /dev/null +++ b/ide/coqide_main.ml4 @@ -0,0 +1,47 @@ +IFDEF MacInt THEN +external gtk_mac_init : (string -> unit) -> unit + = "caml_gtk_mac_init" + +external gtk_mac_ready : unit -> unit + = "caml_gtk_mac_ready" +END + +let initmac () = IFDEF MacInt THEN gtk_mac_init Coqide.do_load ELSE () END + +let macready () = IFDEF MacInt THEN gtk_mac_ready () ELSE () END + +let () = + let argl = Array.to_list Sys.argv in + let files = Coqide.process_argv argl in + let args = List.filter (fun x -> not (List.mem x files)) (List.tl argl) in + Coqide.sup_args := String.concat " " (List.map Filename.quote args); + Coq.check_connection !Coqide.sup_args; + Coqide.ignore_break (); + GtkMain.Rc.add_default_file (Ideutils.lib_ide_file ".coqide-gtk2rc"); + (try + GtkMain.Rc.add_default_file (Filename.concat System.home ".coqide-gtk2rc"); + with Not_found -> ()); + ignore (GtkMain.Main.init ()); + initmac () ; +(* GtkData.AccelGroup.set_default_mod_mask + (Some [`CONTROL;`SHIFT;`MOD1;`MOD3;`MOD4]);*) + ignore ( + Glib.Message.set_log_handler ~domain:"Gtk" ~levels:[`ERROR;`FLAG_FATAL; + `WARNING;`CRITICAL] + (fun ~level msg -> + if level land Glib.Message.log_level `WARNING <> 0 + then Pp.warning msg + else failwith ("Coqide internal error: " ^ msg))); + Coqide.main files; + if !Coq_config.with_geoproof then ignore (Thread.create Coqide.check_for_geoproof_input ()); + macready () ; + while true do + try + GtkThread.main () + with + | Sys.Break -> prerr_endline "Interrupted." ; flush stderr + | e -> + Pervasives.prerr_endline ("CoqIde unexpected error:" ^ (Printexc.to_string e)); + flush stderr; + Coqide.crash_save 127 + done -- cgit v1.2.3