]> matita.cs.unibo.it Git - helm.git/blobdiff - matita/matita/cicMathView.ml
HUGE COMMIT:
[helm.git] / matita / matita / cicMathView.ml
index 2fe7db06b6f0c7d134a8a0985390ab94d61efee2..bd73d92137aa6662488c22fabdd2e24aceedd134 100644 (file)
@@ -30,11 +30,11 @@ open MatitaGtkMisc
 open MatitaGuiTypes
 open GtkSourceView2
 
-let matita_script_current = ref (fun _ -> (assert false : < advance: ?statement:string -> unit -> unit; grafite_status: GrafiteTypes.status; setGoal: int option -> unit >));;
+let matita_script_current = ref (fun _ -> (assert false : < advance: ?statement:string -> unit -> unit; status: GrafiteTypes.status >));;
 let register_matita_script_current f = matita_script_current := f;;
 let get_matita_script_current () = !matita_script_current ();;
 
-type document_element = string
+type document_element = (int * int * string) list * string (* hyperlinks,text *)
 
 class type cicMathView =
 object
@@ -67,10 +67,10 @@ let xref_ds = Gdome.domString "xref"
 
   (** Gdome.element of a MathML document whose rendering should be blank. Used
   * by cicBrowser to render "about:blank" document *)
-let empty_mathml = lazy ""
+let empty_mathml = lazy ([],"")
 
   (** shown for goals closed by side effects *)
-let closed_goal_mathml = lazy "chiuso per side effect..."
+let closed_goal_mathml = lazy ([],"chiuso per side effect...")
 
 (*
 let rec has_maction (elt :Gdome.element) = 
@@ -184,10 +184,17 @@ object (self)
          (Cic.id, Cic.hypothesis) Hashtbl.t *
          (Cic.id, Cic.id option) Hashtbl.t * ('a, 'b) Hashtbl.t * 'c option)*) option -> unit)
   (* dal widget di Luca *)
-  method load_root ~root =
+  method load_root ~root:(hyperlinks,text) =
     self#buffer#delete ~start:(self#buffer#get_iter `START)
     ~stop:(self#buffer#get_iter `END);
-    self#buffer#insert root
+    self#buffer#insert text;
+    let hyperlink_tag = self#buffer#create_tag [`FOREGROUND "green"] in
+     List.iter
+      ( fun (start,stop,(href : string)) ->
+         self#buffer#apply_tag hyperlink_tag
+          ~start:(self#buffer#get_iter (`OFFSET start))
+          ~stop:(self#buffer#get_iter (`OFFSET stop))
+      ) hyperlinks
   method action_toggle = (fun _ -> assert false : document_element -> bool)
   method remove_selections = (() : unit)
   method set_selection = (fun _ -> () : document_element option -> unit)
@@ -202,7 +209,7 @@ object (self)
        self#misc#modify_font_by_name
         (sprintf "%s %d" BuildTimeConf.script_font size))
 
-(* MATITA1.0
+(* MATITA 1.0
   inherit GMathViewAux.multi_selection_math_view obj
 
   val mutable href_callback: (string -> unit) option = None
@@ -591,7 +598,7 @@ object (self)
     let sequent = List.assoc metano metasenv in
     let txt =
      ApplyTransformation.ntxt_of_cic_sequent
-      ~map_unicode_to_tex:false 80 status metasenv subst (metano,sequent)
+      ~map_unicode_to_tex:false 80 status ~metasenv ~subst (metano,sequent)
     in
     (* MATITA 1.0 if BuildTimeConf.debug then begin
       let name =
@@ -616,7 +623,7 @@ object (self)
         self#thaw
     |  _ ->
 *)
-        (* MATITA1.0 if BuildTimeConf.debug then begin
+        (* MATITA 1.0 if BuildTimeConf.debug then begin
           let name =
            "/tmp/cic_browser_" ^ string_of_int (Unix.getuid ()) ^ ".xml" in
           HLog.debug ("cic_browser: dumping MathML to ./" ^ name);