X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2FDEVEL%2Flablgtkmathview%2FgMathView.ml;h=40596204660ff993320180525ff3eb629ec3adae;hb=b1fb6b8e1767d775bc452303629e95941d142bea;hp=b937831f7b353c19f875efe6791d8f7b08c73350;hpb=cdd9c120b37a5f2b3bdc760807b1d3fdc46223c7;p=helm.git diff --git a/helm/DEVEL/lablgtkmathview/gMathView.ml b/helm/DEVEL/lablgtkmathview/gMathView.ml index b937831f7..405962046 100644 --- a/helm/DEVEL/lablgtkmathview/gMathView.ml +++ b/helm/DEVEL/lablgtkmathview/gMathView.ml @@ -29,14 +29,44 @@ open GObj exception ErrorLoadingFile of string;; exception ErrorWritingFile of string;; +exception ErrorLoadingDOM;; exception NoSelection;; class math_view_signals obj = object inherit GContainer.container_signals obj - method clicked = GtkSignal.connect ~sgn:MathView.Signals.clicked obj ~after - method jump = GtkSignal.connect ~sgn:MathView.Signals.jump obj ~after + method clicked = + let module S = GtkSignal in + let new_clicked = + let new_marshaller f x y = + MathView.Signals.clicked.S.marshaller + (fun e -> f (new Gdome.element e)) x y + in + { S.name = "clicked"; S.classe = `math_view; + S.marshaller = new_marshaller } + in + GtkSignal.connect ~sgn:new_clicked obj ~after method selection_changed = - GtkSignal.connect ~sgn:MathView.Signals.selection_changed obj ~after + let module S = GtkSignal in + let new_selection_changed = + let new_marshaller f x y = + MathView.Signals.selection_changed.S.marshaller + (function None -> f None | Some e -> f (Some (new Gdome.element e))) x y + in + { S.name = "selection_changed"; S.classe = `math_view; + S.marshaller = new_marshaller } + in + GtkSignal.connect ~sgn:new_selection_changed obj ~after + method element_changed = + let module S = GtkSignal in + let new_element_changed = + let new_marshaller f x y = + MathView.Signals.element_changed.S.marshaller + (function None -> f None | Some e -> f (Some (new Gdome.element e))) x y + in + { S.name = "element_changed"; S.classe = `math_view; + S.marshaller = new_marshaller } + in + GtkSignal.connect ~sgn:new_element_changed obj ~after end class math_view obj = object @@ -44,9 +74,21 @@ class math_view obj = object method connect = new math_view_signals obj method load ~filename = if not (MathView.load obj ~filename) then raise (ErrorLoadingFile filename) + method load_tree ~dom = + if not (MathView.load_tree obj ~dom:((dom : Gdome.document)#as_Document)) then + raise ErrorLoadingDOM method unload = MathView.unload obj - method get_selection = MathView.get_selection obj - method set_selection (node : Ominidom.o_mDOMNode option) = MathView.set_selection obj node + method get_selection = + match MathView.get_selection obj with + None -> None + | Some element -> Some (new Gdome.element element) + method set_selection element = + let element = + match element with + None -> None + | Some element -> Some ((element : Gdome.element)#as_Element) + in + MathView.set_selection obj element method get_width = MathView.get_width obj method get_height = MathView.get_height obj method get_top = MathView.get_top obj @@ -65,6 +107,8 @@ class math_view obj = object method get_anti_aliasing = MathView.get_anti_aliasing obj method set_kerning = MathView.set_kerning obj method get_kerning = MathView.get_kerning obj + method set_transparency = MathView.set_transparency obj + method get_transparency = MathView.get_transparency obj method set_log_verbosity = MathView.set_log_verbosity obj method get_log_verbosity = MathView.get_log_verbosity obj method export_to_postscript @@ -76,6 +120,17 @@ class math_view obj = object if not result then raise (ErrorWritingFile filename) method get_font_manager_type = MathView.get_font_manager_type obj method set_font_manager_type ~fm_type = MathView.set_font_manager_type obj ~fm_type + method get_element = + match MathView.get_element obj with + None -> None + | Some element -> Some (new Gdome.element element) + method action_get_selected = MathView.action_get_selected obj + method action_set_selected = MathView.action_set_selected obj + method get_action = + match MathView.get_action obj with + None -> None + | Some ac -> Some (new Gdome.element ac) + method action_toggle = MathView.action_toggle obj end let math_view ?adjustmenth ?adjustmentv ?font_size ?font_manager ?border_width