X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2FgTopLevel%2FtermViewer.ml;h=91b2dd1a795fe470f8c72b282892ac04a7616df0;hb=3beabd7848d0567539a0883c06b5b5408bbbaaa7;hp=5291c3587bee7dc440cd42bfbfb0a43310fa8aa6;hpb=6f65a2e518d723ea722b23bfd9fa0162ff8be457;p=helm.git diff --git a/helm/gTopLevel/termViewer.ml b/helm/gTopLevel/termViewer.ml index 5291c3587..91b2dd1a7 100644 --- a/helm/gTopLevel/termViewer.ml +++ b/helm/gTopLevel/termViewer.ml @@ -23,17 +23,14 @@ * http://cs.unibo.it/helm/. *) -(******************************************************************************) -(* *) -(* PROJECT HELM *) -(* *) -(* Claudio Sacerdoti Coen *) -(* 29/01/2003 *) -(* *) -(* *) -(******************************************************************************) - -let use_stylesheets = ref false;;(* false performs the transformations in OCaml*) +(***************************************************************************) +(* *) +(* PROJECT HELM *) +(* *) +(* 29/01/2003 Claudio Sacerdoti Coen *) +(* *) +(* *) +(***************************************************************************) (* List utility functions *) exception Skip;; @@ -65,6 +62,7 @@ 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)) ; let selections = self#get_selections in list_map_fail (function node -> @@ -73,6 +71,7 @@ class sequent_viewer obj = ~namespaceURI:Misc.helmns ~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 @@ -107,15 +106,26 @@ class sequent_viewer obj = ) selections method load_sequent metasenv sequent = +(**** SIAM QUI ****) let sequent_mml,(ids_to_terms,ids_to_father_ids,ids_to_hypotheses) = - ApplyStylesheets.mml_of_cic_sequent metasenv sequent + ChosenTransformer.mml_of_cic_sequent metasenv sequent in self#load_doc ~dom:sequent_mml ; - current_infos <- +(* +Misc.domImpl#saveDocumentToFile ~name:"/tmp/pippo" ~doc:sequent_mml () ; +*) + current_infos <- 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:( + OgtkMathViewProps.pack_return + (fun p -> OgtkMathViewProps.set_params (new sequent_viewer (GtkMathViewProps.MathView.create p)) ~font_size ~log_verbosity)) [] +;; + +(* let sequent_viewer ?adjustmenth ?adjustmentv ?font_size ?font_manager ?border_width ?width ?height ?packing ?show () = let w = @@ -138,7 +148,7 @@ let sequent_viewer ?adjustmenth ?adjustmentv ?font_size ?font_manager end; mathview ;; - +*) (** A widget to render proofs **) @@ -147,9 +157,10 @@ class proof_viewer obj = inherit GMathViewAux.single_selection_math_view obj - initializer self#set_font_size 10 +(* initializer self#set_font_size 10 *) val mutable current_infos = None + val mutable current_mml = None method make_sequent_of_selected_term = match self#get_selection with @@ -159,6 +170,7 @@ class proof_viewer obj = ~namespaceURI:Misc.helmns ~localName:(Gdome.domString "xref"))#to_string in + prerr_endline ("YAEEEEEEEEEEEEEEEEEEE " ^ xpath) ; if xpath = "" then assert false (* "ERROR: No xref found!!!" *) else begin @@ -190,65 +202,48 @@ class proof_viewer obj = | 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 - if !use_stylesheets then - let mml = - ApplyStylesheets.mml_of_cic_object - ~explode_all:true uri acic ids_to_inner_sorts ids_to_inner_types - in - self#load_doc ~dom:mml ; - current_infos <- - Some - (ids_to_terms,ids_to_father_ids,ids_to_conjectures,ids_to_hypotheses) ; - else - (match acic with - Cic.ACurrentProof (id,idbody,n,conjectures,bo,ty,params) -> - let time1 = Sys.time () in - let content = - Cic2content.acic2content - (ref 0) ~name:(Some "prova") ~ids_to_inner_sorts ~ids_to_inner_types bo in - let content2pres = - (Content2pres.proof2pres - (function p -> - (Cexpr2pres.cexpr2pres_charcount - (Content_expressions.acic2cexpr ids_to_inner_sorts p)))) in - let pres = content2pres content in - let time2 = Sys.time () in - (* prerr_endline ("Fine trasformazione:" ^ (string_of_float (time2 -. time1))); *) - let xmlpres = Mpresentation.print_mpres pres in - let time25 = Sys.time () in - (* - prerr_endline ("FINE printing to stream:" ^ (string_of_float (time25 -. time2))); - Xml.pp xmlpres (Some "tmp"); - let time3 = Sys.time () in - prerr_endline ("FINE valutazione e printing dello stream:" ^ (string_of_float (time3 -. time25))); - *) - (try - prerr_endline "(******** INIZIO DOM **********)"; - let mml = Xml2Gdome.document_of_xml Misc.domImpl xmlpres in - let time3 = Sys.time () in - (* ignore (Misc.domImpl#saveDocumentToFile mml "tmp1" ()); *) - prerr_endline "(******** FINE DOM **********)"; - self#load_doc ~dom:mml; - prerr_endline ("Fine loading:" ^ (string_of_float (time3 -. time2))) - (* - self#load_uri "tmp"; - let time4 = Sys.time () in - prerr_endline - ("Fine loading:" ^ (string_of_float (time4 -. time3))) - *) - with (GdomeInit.DOMException (_,s)) as e -> - prerr_endline s; raise e) - | _ -> assert false); + 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 + 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 ; *) + (match current_mml with + None -> + let time1 = Sys.time () in + self#load_doc ~dom:mml ; + let time2 = Sys.time () in + prerr_endline ("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") ; + self#thaw ; + let time3 = Sys.time () in + prerr_endline ("The refresh of the widget took " ^ string_of_float (time3 -. time2) ^ "seconds")); (acic, ids_to_inner_types, ids_to_inner_sorts) - end + end +;; + + +let proof_viewer ?hadjustment ?vadjustment ?font_size ?log_verbosity = + GtkBase.Container.make_params ~cont:( + OgtkMathViewProps.pack_return + (fun p -> OgtkMathViewProps.set_params (new proof_viewer (GtkMathViewProps.MathView.create p)) ~font_size ~log_verbosity)) [] ;; +(* let proof_viewer ?adjustmenth ?adjustmentv ?font_size ?font_manager ?border_width ?width ?height ?packing ?show () = let w = @@ -271,6 +266,7 @@ let proof_viewer ?adjustmenth ?adjustmentv ?font_size ?font_manager end; mathview ;; +*) let _ = Cexpr2pres_hashtbl.init Cexpr2pres.cexpr2pres Cexpr2pres.cexpr2pres_charcount