X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2FgTopLevel%2FtexTermEditor.ml;h=5ea965f2fd76c01ffd0c3e23f3210afe8aa38acb;hb=4167cea65ca58897d1a3dbb81ff95de5074700cc;hp=b5dea98164bb026c584c2979defa58fb9d46cf9f;hpb=ebc346f535472bc0f5075dac48040ea5ecc40232;p=helm.git diff --git a/helm/gTopLevel/texTermEditor.ml b/helm/gTopLevel/texTermEditor.ml index b5dea9816..5ea965f2f 100644 --- a/helm/gTopLevel/texTermEditor.ml +++ b/helm/gTopLevel/texTermEditor.ml @@ -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,12 +218,17 @@ module Make(C:DisambiguateTypes.Callbacks) = ) context in debug_print ("TexTermEditor: Raw Tex: " ^ (Mathml_editor.get_tex tex_editor)) ; - let environment',metasenv,expr = - Disambiguate'.disambiguate_term mqi_handle - context metasenv (Mathml_editor.get_tex tex_editor) !environment + let environment',metasenv,expr,ugraph = + match + Disambiguate'.disambiguate_term ~dbd + ~context ~metasenv (Mathml_editor.get_tex tex_editor) + ~initial_ugraph:CicUniv.empty_ugraph ~aliases:!environment + with + [environment',metasenv,expr,u] -> environment',metasenv,expr,u + | _ -> assert false in environment := environment' ; - metasenv,expr + metasenv,expr,ugraph method environment = environment end