]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/DEVEL/lablgtkmathview/gtkMathView.ml
...
[helm.git] / helm / DEVEL / lablgtkmathview / gtkMathView.ml
index 3eefbd6defab7af0913bba025176ae007635dbf0..fb2cfc4e0d4011e6504bde0aba2a6c1cd633213a 100644 (file)
@@ -24,27 +24,15 @@ open Gtk
 open Gtk_mathview
 open Tags
 open GtkBase
-open Misc
+open Gpointer
 
-external mDOMNode_of_boxed :
Misc.pointer -> Minidom.mDOMNode =
-  "ml_gtk_math_view_mDOMNode_of_boxed"
+external gdome_element_of_boxed_option :
Gpointer.boxed option -> TElement.t =
+  "ml_gtk_math_view_gdome_element_of_boxed_option"
 
-external mDOMNode_option_of_boxed :
- Misc.pointer -> Minidom.mDOMNode option =
-  "ml_gtk_math_view_mDOMNode_option_of_boxed"
-
-let o_mDOMNode_of_mDOMNode node = new Ominidom.o_mDOMNode node
-
-let o_mDOMNode_option_of_mDOMNode_option =
-  function
-  | Some x -> Some (o_mDOMNode_of_mDOMNode x)
-  | None   -> None
-
-let mDOMNode_option_of_o_mDOMNode_option =
-  function
-  | Some x -> Some (x#get_dom_node)
-  | None   -> None
+external gdome_element_option_of_boxed_option :
+ Gpointer.boxed option -> TElement.t option =
+  "ml_gtk_math_view_gdome_element_option_of_boxed_option"
 
 module MathView = struct
   exception NoSelection
@@ -56,16 +44,15 @@ module MathView = struct
    create (optboxed adjustmenth) (optboxed adjustmentv)
   external load : [>`math_view] obj -> filename:string -> bool =
    "ml_gtk_math_view_load"
+  external load_tree : [>`math_view] obj -> dom:[> `Document] GdomeT.t -> bool =
+   "ml_gtk_math_view_load_tree"
   external unload : [>`math_view] obj -> unit =
    "ml_gtk_math_view_unload"
-  external raw_get_selection : [>`math_view] obj -> Minidom.mDOMNode option =
+  external get_selection : [>`math_view] obj -> TElement.t option =
    "ml_gtk_math_view_get_selection"
-  let get_selection obj =
-   o_mDOMNode_option_of_mDOMNode_option (raw_get_selection obj)
-  external raw_set_selection : [>`math_view] obj -> Minidom.mDOMNode option -> unit=
+  external set_selection :
+   [>`math_view] obj -> [> `Element] GdomeT.t option -> unit=
    "ml_gtk_math_view_set_selection"
-  let set_selection obj node =
-   raw_set_selection obj (mDOMNode_option_of_o_mDOMNode_option node)
   external get_width : [>`math_view] obj -> int =
    "ml_gtk_math_view_get_width"
   external get_height : [>`math_view] obj -> int =
@@ -82,7 +69,7 @@ module MathView = struct
    "ml_gtk_math_view_get_vadjustment"
   external get_buffer : [>`math_view] obj -> Gdk.pixmap =
    "ml_gtk_math_view_get_buffer"
-  external get_frame : [>`math_view] obj -> [`frame] obj =
+  external get_frame : [>`math_view] obj -> Gtk.frame obj =
    "ml_gtk_math_view_get_frame"
   external set_font_size : [>`math_view] obj -> int -> unit =
    "ml_gtk_math_view_set_font_size"
@@ -96,6 +83,10 @@ module MathView = struct
    "ml_gtk_math_view_set_kerning"
   external get_kerning : [>`math_view] obj -> bool =
    "ml_gtk_math_view_get_kerning"
+  external set_transparency : [>`math_view] obj -> bool -> unit =
+   "ml_gtk_math_view_set_transparency"
+  external get_transparency : [>`math_view] obj -> bool =
+   "ml_gtk_math_view_get_transparency"
   external set_log_verbosity : [>`math_view] obj -> int -> unit =
    "ml_gtk_math_view_set_log_verbosity"
   external get_log_verbosity : [>`math_view] obj -> int =
@@ -109,32 +100,42 @@ module MathView = struct
   external set_font_manager_type : [>`math_view] obj ->
     fm_type:[`font_manager_gtk | `font_manager_t1] -> unit =
    "ml_gtk_math_view_set_font_manager_type"
+  external get_element : [>`math_view] obj -> TElement.t option =
+   "ml_gtk_math_view_get_element"
+  external action_get_selected : [>`math_view] obj -> int =
+   "ml_gtk_math_view_action_get_selected"
+  external action_set_selected : [>`math_view] obj -> int -> unit =
+   "ml_gtk_math_view_action_set_selected"
+  external get_action : [>`math_view] obj -> TElement.t option =
+   "ml_gtk_math_view_get_action"
+  external action_toggle : [>`math_view] obj -> unit =
+   "ml_gtk_math_view_action_toggle"
   
   module Signals = struct
     open GtkSignal
 
     let clicked : ([>`math_view],_) t =
-     let marshal_clicked f argv =
-      match GtkArgv.get_pointer argv ~pos:0 with
-        Some p -> f (o_mDOMNode_of_mDOMNode (mDOMNode_of_boxed (Obj.magic p)))
+     let marshal_clicked f _ =
+      function
+         [GtkArgv.POINTER element] -> f (gdome_element_of_boxed_option element)
        | _ -> invalid_arg "GtkMathView.MathView.Signals.marshal_clicked"
      in
       { name = "clicked"; marshaller = marshal_clicked }
 
-    let jump : ([>`math_view],_) t =
-     let marshal_jump f argv =
-      match GtkArgv.get_pointer argv ~pos:0 with
-       Some p -> f (o_mDOMNode_of_mDOMNode (mDOMNode_of_boxed (Obj.magic p)))
-       | _ -> invalid_arg "GtkMathView.MathView.Signals.marshal_jump"
-     in
-      { name = "jump"; marshaller = marshal_jump }
-
     let selection_changed : ([>`math_view],_) t =
-     let marshal_selection_changed f argv =
-      match GtkArgv.get_pointer argv ~pos:0 with
-        Some p ->f (o_mDOMNode_option_of_mDOMNode_option (mDOMNode_option_of_boxed (Obj.magic p)))
-       | None -> f None
+     let marshal_selection_changed f _ =
+      function
+         [GtkArgv.POINTER element] -> f (gdome_element_option_of_boxed_option element)
+       | _ -> invalid_arg "GtkMathView.MathView.Signals.marshal_selection_changed"
      in
       { name = "selection_changed"; marshaller = marshal_selection_changed }
+
+    let element_changed : ([>`math_view],_) t =
+     let marshal_element_changed f _ =
+      function
+         [GtkArgv.POINTER element] -> f (gdome_element_option_of_boxed_option element)
+       | _ -> invalid_arg "GtkMathView.MathView.Signals.marshal_element_changed"
+     in
+      { name = "element_changed"; marshaller = marshal_element_changed }
   end
 end