]> matita.cs.unibo.it Git - helm.git/commitdiff
- fixed "error loading dom error" avoiding sequent_viewer be delivered
authorStefano Zacchiroli <zack@upsilon.cc>
Wed, 9 Feb 2005 15:07:22 +0000 (15:07 +0000)
committerStefano Zacchiroli <zack@upsilon.cc>
Wed, 9 Feb 2005 15:07:22 +0000 (15:07 +0000)
  the destroy signal when resetting the notebook
- added singleton instances of sequent_viewer and sequents_viewer

helm/matita/matitaMathView.ml
helm/matita/matitaMathView.mli

index cde097e9af15342c5d67dc5b2023f6d6bbf3f2fd..7aa54f2c74ed03a3407bc4b4d18e5165f67c6da3 100644 (file)
@@ -139,29 +139,30 @@ class sequent_viewer obj =
         selections
   
   method load_sequent metasenv metano =
-(*
-    let (annconjecture, ids_to_terms, ids_to_father_ids, ids_to_inner_sorts,
-        ids_to_hypotheses) =
-      Cic2acic.asequent_of_sequent metasenv conjecture
-    in
-*)
     let sequent = CicUtil.lookup_meta metano metasenv in
     let (mathml,(_,(ids_to_terms, ids_to_father_ids, ids_to_hypotheses,_))) =
       ApplyTransformation.mml_of_cic_sequent metasenv sequent
     in
     current_infos <- Some (ids_to_terms, ids_to_father_ids, ids_to_hypotheses);
+(*
     debug_print "load_sequent: dumping MathML to ./prova";
     ignore (Misc.domImpl#saveDocumentToFile ~name:"./prova" ~doc:mathml ());
+*)
     self#load_root ~root:mathml#get_documentElement
  end
 
 
 class sequents_viewer ~(notebook:GPack.notebook)
-  ~(sequent_viewer:sequent_viewer) ~set_goal ()
+  ~(sequent_viewer:sequent_viewer) ()
 =
   let tab_label metano =
     (GMisc.label ~text:(sprintf "?%d" metano) ~show:true ())#coerce
   in
+  let set_goal goal =
+    let currentProof = MatitaProof.instance () in
+    assert (currentProof#onGoing ());
+    currentProof#proof#set_goal goal
+  in
   object (self)
     val mutable pages = 0
     val mutable switch_page_callback = None
@@ -169,8 +170,17 @@ class sequents_viewer ~(notebook:GPack.notebook)
     val mutable goal2page = []  (* the other way round *)
     val mutable goal2win = []   (* associative list: goal no -> scrolled win *)
     val mutable _metasenv = []
+    val mutable scrolledWin: GBin.scrolled_window option = None
+      (* scrolled window to which the sequent_viewer is currently attached *)
 
     method reset =
+      (match scrolledWin with
+      | Some w ->
+          (* removing page from the notebook will destroy all contained widget,
+          * we do not want the sequent_viewer to be destroyed as well *)
+          w#remove sequent_viewer#coerce;
+          scrolledWin <- None
+      | None -> ());
       for i = 1 to pages do notebook#remove_page 0 done;
       pages <- 0;
       page2goal <- [];
@@ -193,6 +203,7 @@ class sequents_viewer ~(notebook:GPack.notebook)
             ~shadow_type:`IN ~show:true ()
         in
         let reparent () =
+          scrolledWin <- Some w;
           match sequent_viewer#misc#parent with
           | None -> w#add sequent_viewer#coerce
           | Some _ -> sequent_viewer#misc#reparent w#coerce
@@ -232,7 +243,7 @@ class sequents_viewer ~(notebook:GPack.notebook)
         with Not_found -> assert false
       in
       notebook#goto_page page;
-      self#render_page page goal;
+      self#render_page page goal
 
   end
 
@@ -453,9 +464,9 @@ class cicBrowser ~(history:string MatitaMisc.history) () =
   end
 
 let sequents_viewer ~(notebook:GPack.notebook)
-  ~(sequent_viewer:sequent_viewer) ~set_goal ()
+  ~(sequent_viewer:sequent_viewer) ()
 =
-  new sequents_viewer ~notebook ~sequent_viewer ~set_goal ()
+  new sequents_viewer ~notebook ~sequent_viewer ()
 
 let cicBrowser () =
   let size = BuildTimeConf.browser_history_size in
@@ -488,5 +499,13 @@ class mathViewer =
   end
 
 let mathViewer () = new mathViewer
-let instance = MatitaMisc.singleton mathViewer
+
+let default_sequent_viewer () = sequent_viewer ~show:true ()
+let sequent_viewer_instance = MatitaMisc.singleton default_sequent_viewer
+
+let default_sequents_viewer () =
+  let gui = MatitaGui.instance () in
+  let sequent_viewer = sequent_viewer_instance () in
+  sequents_viewer ~notebook:gui#main#sequentsNotebook ~sequent_viewer ()
+let sequents_viewer_instance = MatitaMisc.singleton default_sequents_viewer
 
index 2c27704d2395838b684a157362238dd43ded1ab8..0a1e425e3da9f9ba4efb6fcbd7fc47d634cccbd6 100644 (file)
@@ -79,7 +79,6 @@ val sequent_viewer:       sequent_viewer constructor
 val sequents_viewer:
   notebook:GPack.notebook ->
   sequent_viewer:sequent_viewer ->
-  set_goal:(int -> unit) ->
   unit ->
     sequents_viewer
 
@@ -89,3 +88,8 @@ val refresh_all_browsers: unit -> unit
 
 val mathViewer: unit -> MatitaTypes.mathViewer
 
+(** {2 singleton instances} *)
+
+val sequent_viewer_instance: unit -> sequent_viewer
+val sequents_viewer_instance: unit -> sequents_viewer
+