X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2FgTopLevel%2FtermViewer.ml;h=0f2019ad507b3a3c2d6c9a850ca537001ce3eefd;hb=97c2d258a5c524eb5c4b85208899d80751a2c82f;hp=91b2dd1a795fe470f8c72b282892ac04a7616df0;hpb=abc1538e60ab29caaacd3a9825cea25413cffac3;p=helm.git diff --git a/helm/gTopLevel/termViewer.ml b/helm/gTopLevel/termViewer.ml index 91b2dd1a7..0f2019ad5 100644 --- a/helm/gTopLevel/termViewer.ml +++ b/helm/gTopLevel/termViewer.ml @@ -32,6 +32,31 @@ (* *) (***************************************************************************) +let debug = false +let debug_print s = if debug then prerr_endline s + +type mml_of_cic_sequent = + Cic.metasenv -> + int * Cic.context * Cic.term -> + Gdome.document * + (Cic.annconjecture * + ((Cic.id, Cic.term) Hashtbl.t * + (Cic.id, Cic.id option) Hashtbl.t * + (string, Cic.hypothesis) Hashtbl.t * + (Cic.id, string) Hashtbl.t)) + + +type mml_of_cic_object = + Cic.obj -> + Gdome.document * + (Cic.annobj * + ((Cic.id, Cic.term) Hashtbl.t * + (Cic.id, Cic.id option) Hashtbl.t * + (Cic.id, Cic.conjecture) Hashtbl.t * + (Cic.id, Cic.hypothesis) Hashtbl.t * + (Cic.id, string) Hashtbl.t * + (Cic.id, Cic2acic.anntypes) Hashtbl.t)) + (* List utility functions *) exception Skip;; @@ -52,7 +77,7 @@ let list_map_fail f = (** A widget to render sequents **) -class sequent_viewer obj = +class sequent_viewer ~(mml_of_cic_sequent:mml_of_cic_sequent) obj = object(self) inherit GMathViewAux.multi_selection_math_view obj @@ -62,16 +87,15 @@ class sequent_viewer obj = (* returns the list of selected terms *) (* selections which are not terms are ignored *) method get_selected_terms = - prerr_endline (string_of_int (List.length self#get_selections)) ; + debug_print (string_of_int (List.length self#get_selections)) ; let selections = self#get_selections in list_map_fail (function node -> let xpath = ((node : Gdome.element)#getAttributeNS - ~namespaceURI:Misc.helmns + ~namespaceURI:Misc.helm_ns ~localName:(Gdome.domString "xref"))#to_string in - prerr_endline ("YAHHHHHHHHHH " ^ xpath) ; if xpath = "" then assert false (* "ERROR: No xref found!!!" *) else match current_infos with @@ -91,7 +115,7 @@ class sequent_viewer obj = (function node -> let xpath = ((node : Gdome.element)#getAttributeNS - ~namespaceURI:Misc.helmns + ~namespaceURI:Misc.helm_ns ~localName:(Gdome.domString "xref"))#to_string in if xpath = "" then assert false (* "ERROR: No xref found!!!" *) @@ -107,22 +131,26 @@ class sequent_viewer obj = method load_sequent metasenv sequent = (**** SIAM QUI ****) - let sequent_mml,(ids_to_terms,ids_to_father_ids,ids_to_hypotheses) = - ChosenTransformer.mml_of_cic_sequent metasenv sequent + let sequent_mml,(_,(ids_to_terms,ids_to_father_ids,ids_to_hypotheses,ids_to_inner_sorts)) = + mml_of_cic_sequent metasenv sequent in - self#load_doc ~dom:sequent_mml ; -(* -Misc.domImpl#saveDocumentToFile ~name:"/tmp/pippo" ~doc:sequent_mml () ; -*) + self#load_root ~root:sequent_mml#get_documentElement ; +ignore (Misc.domImpl#saveDocumentToFile ~name:"/tmp/pippo" ~doc:sequent_mml ()); current_infos <- - Some (ids_to_terms,ids_to_father_ids,ids_to_hypotheses) + Some (ids_to_terms,ids_to_father_ids,ids_to_hypotheses) end ;; -let sequent_viewer ?hadjustment ?vadjustment ?font_size ?log_verbosity = - GtkBase.Container.make_params ~cont:( +let sequent_viewer ~(mml_of_cic_sequent: mml_of_cic_sequent) + ?hadjustment ?vadjustment ?font_size ?log_verbosity += + GtkBase.Widget.size_params ~cont:( OgtkMathViewProps.pack_return - (fun p -> OgtkMathViewProps.set_params (new sequent_viewer (GtkMathViewProps.MathView.create p)) ~font_size ~log_verbosity)) [] + (fun p -> + OgtkMathViewProps.set_params + (new sequent_viewer ~mml_of_cic_sequent + (GtkMathViewProps.MathView_GMetaDOM.create p)) + ~font_size ~log_verbosity)) [] ;; (* @@ -152,7 +180,7 @@ let sequent_viewer ?adjustmenth ?adjustmentv ?font_size ?font_manager (** A widget to render proofs **) -class proof_viewer obj = +class proof_viewer ~(mml_of_cic_object:mml_of_cic_object) obj = object(self) inherit GMathViewAux.single_selection_math_view obj @@ -167,10 +195,9 @@ class proof_viewer obj = Some node -> let xpath = ((node : Gdome.element)#getAttributeNS - ~namespaceURI:Misc.helmns + ~namespaceURI:Misc.helm_ns ~localName:(Gdome.domString "xref"))#to_string in - prerr_endline ("YAEEEEEEEEEEEEEEEEEEE " ^ xpath) ; if xpath = "" then assert false (* "ERROR: No xref found!!!" *) else begin @@ -187,7 +214,7 @@ class proof_viewer obj = Some node -> let xpath = ((node : Gdome.element)#getAttributeNS - ~namespaceURI:Misc.helmns + ~namespaceURI:Misc.helm_ns ~localName:(Gdome.domString "xref"))#to_string in if xpath = "" then assert false (* "ERROR: No xref found!!!" *) @@ -201,46 +228,53 @@ class proof_viewer obj = end | None -> assert false (* "ERROR: No selection!!!" *) - method load_proof uri currentproof = - let - (acic,ids_to_terms,ids_to_father_ids,ids_to_inner_sorts, - ids_to_inner_types,ids_to_conjectures,ids_to_hypotheses) - = Cic2acic.acic_object_of_cic_object currentproof - in - let mml = - ChosenTransformer.mml_of_cic_object - ~explode_all:true uri acic ids_to_inner_sorts ids_to_inner_types + method load_proof currentproof = + let mml, + (acic, + (ids_to_terms,ids_to_father_ids,ids_to_conjectures, + ids_to_hypotheses,ids_to_inner_sorts,ids_to_inner_types)) = + mml_of_cic_object currentproof in current_infos <- Some (ids_to_terms,ids_to_father_ids,ids_to_conjectures,ids_to_hypotheses); (* self#load_doc ~dom:mml ; current_mml <- Some mml ; *) + ignore(Misc.domImpl#saveDocumentToFile ~name:"/tmp/prova" ~doc:mml ()); (match current_mml with None -> let time1 = Sys.time () in - self#load_doc ~dom:mml ; + self#load_root ~root:mml#get_documentElement ; let time2 = Sys.time () in - prerr_endline ("Loading and displaying the proof took " ^ string_of_float (time2 -. time1) ^ "seconds") ; + debug_print ("Loading and displaying the proof took " ^ + string_of_float (time2 -. time1) ^ "seconds") ; current_mml <- Some mml | Some current_mml' -> self#freeze ; let time1 = Sys.time () in XmlDiff.update_dom ~from:current_mml' mml ; let time2 = Sys.time () in - prerr_endline ("XMLDIFF took " ^ string_of_float (time2 -. time1) ^ "seconds") ; + debug_print ("XMLDIFF took " ^ + string_of_float (time2 -. time1) ^ "seconds") ; self#thaw ; let time3 = Sys.time () in - prerr_endline ("The refresh of the widget took " ^ string_of_float (time3 -. time2) ^ "seconds")); + debug_print ("The refresh of the widget took " ^ + string_of_float (time3 -. time2) ^ "seconds")); (acic, ids_to_inner_types, ids_to_inner_sorts) end ;; -let proof_viewer ?hadjustment ?vadjustment ?font_size ?log_verbosity = - GtkBase.Container.make_params ~cont:( +let proof_viewer ~(mml_of_cic_object: mml_of_cic_object) + ?hadjustment ?vadjustment ?font_size ?log_verbosity += + GtkBase.Widget.size_params ~cont:( OgtkMathViewProps.pack_return - (fun p -> OgtkMathViewProps.set_params (new proof_viewer (GtkMathViewProps.MathView.create p)) ~font_size ~log_verbosity)) [] + (fun p -> + OgtkMathViewProps.set_params + (new proof_viewer ~mml_of_cic_object + (GtkMathViewProps.MathView_GMetaDOM.create p)) + ~font_size ~log_verbosity)) [] ;; (* @@ -268,6 +302,3 @@ let proof_viewer ?adjustmenth ?adjustmentv ?font_size ?font_manager ;; *) -let _ = - Cexpr2pres_hashtbl.init Cexpr2pres.cexpr2pres Cexpr2pres.cexpr2pres_charcount -;;