]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/gTopLevel/texTermEditor.ml
ocaml 3.09 transition
[helm.git] / helm / gTopLevel / texTermEditor.ml
index e06950508c72ec5570e6667b33fb1fe9def8df97..5ea965f2fd76c01ffd0c3e23f3210afe8aa38acb 100644 (file)
@@ -45,7 +45,8 @@ class type term_editor =
    method get_as_string : string
    method get_metasenv_and_term :
      context:Cic.context ->
-     metasenv:Cic.metasenv -> Cic.metasenv * Cic.term
+     metasenv:Cic.metasenv -> 
+     Cic.metasenv * Cic.term * CicUniv.universe_graph
    method reset : unit
    (* The input of set_term is unquoted *)
    method set_term : string -> unit
@@ -59,16 +60,18 @@ module Make(C:DisambiguateTypes.Callbacks) =
    module Disambiguate' = DisambiguatingParser.Make(C);;
 
    class term_editor_impl
-    mqi_handle
+    ~dbd
     ?packing ?width ?height
     ?isnotempty_callback ?share_environment_with () : term_editor
    =
     let mmlwidget =
      GMathViewAux.single_selection_math_view
       ?packing ?width ?height () in
+(*
     let drawing_area = mmlwidget#get_drawing_area in
     let _ = drawing_area#misc#set_can_focus true in
     let _ = drawing_area#misc#grab_focus () in
+*)
     let logger =
      fun l s -> prerr_endline ("TERM_EDITOR (" ^ string_of_int l ^ "): " ^ s) in
     let tex_editor =
@@ -82,11 +85,14 @@ module Make(C:DisambiguateTypes.Callbacks) =
       ~tml_uri:"/usr/share/editex/tml-litex.xsl"
       ~log:logger
     in
+(*
     let _ =
      (new GObj.event_ops mmlwidget#coerce#as_widget)#connect#button_press
       ~callback:(fun _ -> drawing_area#misc#grab_focus () ; true) in
+*)
     let _ =
-     (new GObj.event_ops drawing_area#coerce#as_widget)#connect#focus_in
+(*      (new GObj.event_ops drawing_area#coerce#as_widget)#connect#focus_in *)
+     (new GObj.event_ops mmlwidget#coerce#as_widget)#connect#focus_in
        ~callback:
          (fun _ ->
            mmlwidget#freeze ;
@@ -94,7 +100,8 @@ module Make(C:DisambiguateTypes.Callbacks) =
            mmlwidget#thaw ;
            true) in
     let _ =
-     (new GObj.event_ops drawing_area#coerce#as_widget)#connect#focus_out
+(*      (new GObj.event_ops drawing_area#coerce#as_widget)#connect#focus_out *)
+     (new GObj.event_ops mmlwidget#coerce#as_widget)#connect#focus_out
        ~callback:
          (fun _ ->
            mmlwidget#freeze ;
@@ -103,9 +110,10 @@ module Make(C:DisambiguateTypes.Callbacks) =
            true) in
     let _ = Mathml_editor.push tex_editor '$' in
     let dom_tree = Mathml_editor.get_mml tex_editor in
-    let _ = mmlwidget#load_doc dom_tree in
+    let _ = mmlwidget#load_root dom_tree#get_documentElement in
     let _ = 
-     drawing_area#event#connect#key_press
+(*      drawing_area#event#connect#key_press *)
+     (new GObj.event_ops mmlwidget#coerce#as_widget)#connect#key_press
       (function e ->
         let key = GdkEvent.Key.keyval e in
          mmlwidget#freeze ;
@@ -128,9 +136,9 @@ module Make(C:DisambiguateTypes.Callbacks) =
            (List.mem `CONTROL (GdkEvent.Key.state e))
          else if key = GdkKeysyms._v then
            ignore (mmlwidget#misc#convert_selection "STRING" Gdk.Atom.primary);
-         let adj = mmlwidget#get_hadjustment in
+         let hadj, _ = mmlwidget#get_adjustments in
           mmlwidget#thaw ;
-          adj#set_value adj#upper ;
+          hadj#set_value hadj#upper ;
           false) in
     let environment =
      match share_environment_with with
@@ -210,16 +218,17 @@ module Make(C:DisambiguateTypes.Callbacks) =
          ) context
        in
         debug_print ("TexTermEditor: Raw Tex: " ^ (Mathml_editor.get_tex tex_editor)) ;
-        let environment',metasenv,expr =
+        let environment',metasenv,expr,ugraph =
          match
-          Disambiguate'.disambiguate_term mqi_handle 
-           context metasenv (Mathml_editor.get_tex tex_editor) !environment
+          Disambiguate'.disambiguate_term ~dbd
+           ~context ~metasenv (Mathml_editor.get_tex tex_editor) 
+           ~initial_ugraph:CicUniv.empty_ugraph ~aliases:!environment
          with
-            [environment',metasenv,expr] -> environment',metasenv,expr
+            [environment',metasenv,expr,u] -> environment',metasenv,expr,u
           | _ -> assert false
         in
          environment := environment' ;
-         metasenv,expr
+         metasenv,expr,ugraph
 
       method environment = environment
    end