]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/matita/matita.ml
version 0.7.1
[helm.git] / helm / matita / matita.ml
index 3f08dd1c8f85f2410bda535ee3767e75eaa62c18..ade151a6900d28e0c395d6a44cb329d5442fc853 100644 (file)
@@ -32,12 +32,11 @@ open MatitaMisc
 (** {2 Initialization} *)
 
 let _ =
-  Helm_registry.load_from "matita.conf.xml";  (* read conf *)
+  Helm_registry.load_from BuildTimeConf.matita_conf;
   Http_getter.init ();
   MetadataTypes.ownerize_tables (Helm_registry.get "matita.owner");
-  MatitaDb.clean_owner_environment ();
   MatitaDb.create_owner_environment ();
-  GtkMain.Rc.add_default_file BuildTimeConf.gtkrc;  (* loads gtk rc files *)
+  GtkMain.Rc.add_default_file BuildTimeConf.gtkrc_file; (* loads gtk rc *)
   ignore (GMain.Main.init ());
 
   (* environment trust *)
@@ -52,6 +51,20 @@ let gui = MatitaGui.instance ()
 let _ =
   ignore (gui#main#newCicBrowserMenuItem#connect#activate (fun _ ->
     ignore (MatitaMathView.cicBrowser ())));
+  (* font sizes *)
+  ignore (gui#main#increaseFontSizeMenuItem#connect#activate (fun _ ->
+    gui#increaseFontSize ();
+    MatitaMathView.increase_font_size ();
+    MatitaMathView.update_font_sizes ()));
+  ignore (gui#main#decreaseFontSizeMenuItem#connect#activate (fun _ ->
+    gui#decreaseFontSize ();
+    MatitaMathView.decrease_font_size ();
+    MatitaMathView.update_font_sizes ()));
+  ignore (gui#main#normalFontSizeMenuItem#connect#activate (fun _ ->
+    gui#resetFontSize ();
+    MatitaMathView.reset_font_size ();
+    MatitaMathView.update_font_sizes ()));
+  MatitaMathView.reset_font_size ();
   (* disambiguator callback *)
   MatitaDisambiguator.set_choose_uris_callback
     (MatitaGui.interactive_uri_choice ());
@@ -60,9 +73,23 @@ let _ =
 
 let script =
   MatitaScript.script 
-    ~buffer:gui#main#scriptTextView#buffer
+    ~buffer:gui#sourceView#buffer
     ~init:(Lazy.force MatitaEngine.initial_status) 
     ~mathviewer:(MatitaMathView.mathViewer ())
+    ~urichooser:(fun uris ->
+      try
+        MatitaGui.interactive_uri_choice ~selection_mode:`SINGLE
+        ~title:"Matita: URI chooser" 
+        ~msg:"Select the URI" ~hide_uri_entry:true
+        ~hide_try:true ~ok_label:"_Apply" ~ok_action:`SELECT
+        ~copy_cb:(fun s -> gui#sourceView#buffer#insert ("\n"^s^"\n"))
+        () ~id:"boh?" uris
+      with MatitaTypes.Cancel -> [])
+    ~set_star:gui#setStar
+    ~ask_confirmation:
+      (fun ~title ~message -> 
+          MatitaGtkMisc.ask_confirmation ~title ~message 
+          ~parent:gui#main#toplevel ())
     ()
 
   (* math viewers *)
@@ -70,7 +97,7 @@ let _ =
   let sequent_viewer = MatitaMathView.sequentViewer_instance () in
   let sequents_viewer = MatitaMathView.sequentsViewer_instance () in
   sequent_viewer#set_href_callback
-    (Some (fun uri -> (MatitaMathView.cicBrowser ())#loadUri uri));
+    (Some (fun uri -> (MatitaMathView.cicBrowser ())#load (`Uri (UriManager.uri_of_string uri))));
   let browser_observer _ = MatitaMathView.refresh_all_browsers () in
   let sequents_observer status =
     sequents_viewer#reset;
@@ -120,12 +147,6 @@ let _ =
         (MatitaMathView.sequentViewer_instance ())#get_selected_terms);
     addDebugItem "dump getter settings" (fun _ ->
       prerr_endline (Http_getter_env.env_to_string ()));
-    addDebugItem "getter: update"
-      (fun _ ->
-         ignore (Thread.create (fun () ->
-           MatitaLog.message "Rebuilding getter maps in background ...";
-           Http_getter.update ();
-           MatitaLog.message "Getter maps successfully rebuilt.") ()));
     addDebugItem "getter: getalluris" (fun _ ->
       List.iter prerr_endline (Http_getter.getalluris ()));
     addDebugItem "dump script status" script#dump;
@@ -133,30 +154,43 @@ let _ =
       (fun _ ->
          if script#onGoingProof () then
            MatitaLog.debug (CicMetaSubst.ppmetasenv script#proofMetasenv []));
+    addDebugItem "dump coercions Db" (fun _ ->
+      List.iter (
+        fun (s,t,u) -> 
+          MatitaLog.debug (
+            UriManager.name_of_uri u ^ ":" ^ 
+            UriManager.name_of_uri s ^ " -> " ^ UriManager.name_of_uri t))
+      (CoercDb.to_list ())
+    );
     addDebugItem "rotate light bulbs"
       (fun _ ->
          let nb = gui#main#hintNotebook in
          nb#goto_page ((nb#current_page + 1) mod 3));
+         (*
+    addDebugItem "print (on stdout) \"statement\" grammar entry"
+      (fun _ ->
+        Grammar.print_entry Format.std_formatter
+          (Grammar.Entry.obj CicTextualParser2.statement);
+        Format.pp_print_flush Format.std_formatter ());*)
   end
 
   (** </DEBUGGING> *)
 
 let _ =
-  at_exit
-    (fun () ->
-       Http_getter_logger.log "Sync map tree to disk...";
-       Http_getter.sync_dump_file ();
-       print_endline "\nThanks for using Matita!\n");
+  at_exit (fun () -> print_endline "\nThanks for using Matita!\n");
   Sys.catch_break true;
   (try
-     script#loadFrom Sys.argv.(1);
+     gui#loadScript Sys.argv.(1);
    with Invalid_argument _ -> ());
   if Filename.basename Sys.argv.(0) = "cicbrowser" then begin (* cicbrowser *)
     Helm_registry.set "matita.mode" "cicbrowser";
     let browser = MatitaMathView.cicBrowser () in
-    try
-      browser#loadUri Sys.argv.(1)
-    with Invalid_argument _ -> ()
+    let entry =
+      try
+        `Uri (UriManager.uri_of_string Sys.argv.(1))
+      with Invalid_argument _ -> `Dir "cic:/"
+    in
+    browser#load entry
   end else begin  (* matita *)
     Helm_registry.set "matita.mode" "matita";
     gui#main#mainWin#show ();