]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/DEVEL/lablgtkmathview/gtkMathView.ml
- the mathql interpreter is not helm-dependent any more
[helm.git] / helm / DEVEL / lablgtkmathview / gtkMathView.ml
index eed812d9e893f4c2b56fa1ba44162b7f99e2b72c..2420c94c110f2c3ca6f2edee7d32e9a01decf82c 100644 (file)
@@ -1,4 +1,5 @@
-(* Copyright (C) 2000, Luca Padovani <luca.padovani@cs.unibo.it>.
+(* Copyright (C) 2000-2003, Luca Padovani <luca.padovani@cs.unibo.it>,
+ *                          Claudio Sacerdoti Coen <sacerdot@cs.unibo.it>.
  *
  * This file is part of lablgtkmathview, the Ocaml binding
  * for the GtkMathView widget.
@@ -26,25 +27,13 @@ open Tags
 open GtkBase
 open Gpointer
 
-external mDOMNode_of_boxed_option :
- Gpointer.boxed option -> Minidom.mDOMNode =
-  "ml_gtk_math_view_mDOMNode_of_boxed_option"
+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_option :
- Gpointer.boxed option -> Minidom.mDOMNode option =
-  "ml_gtk_math_view_mDOMNode_option_of_boxed_option"
-
-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
@@ -54,22 +43,28 @@ module MathView = struct
    math_view obj = "ml_gtk_math_view_new"
   let create ~adjustmenth ~adjustmentv () =
    create (optboxed adjustmenth) (optboxed adjustmentv)
-  external load : [>`math_view] obj -> filename:string -> bool =
-   "ml_gtk_math_view_load"
-  external raw_load_tree : [>`math_view] obj -> Minidom.mDOMDoc -> bool =
-   "ml_gtk_math_view_load_tree"
-  let load_tree obj ~(dom:Ominidom.o_mDOMDoc) =
-   raw_load_tree obj dom#get_dom_doc
+  external freeze : [>`math_view] obj -> unit =
+   "ml_gtk_math_view_freeze"
+  external thaw : [>`math_view] obj -> unit =
+   "ml_gtk_math_view_thaw"
+  external load_uri : [>`math_view] obj -> filename:string -> bool =
+   "ml_gtk_math_view_load_uri"
+  external load_doc : [>`math_view] obj -> dom:[> `Document] GdomeT.t -> bool =
+   "ml_gtk_math_view_load_doc"
   external unload : [>`math_view] obj -> unit =
    "ml_gtk_math_view_unload"
-  external raw_get_selection : [>`math_view] obj -> Minidom.mDOMNode 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=
-   "ml_gtk_math_view_set_selection"
-  let set_selection obj node =
-   raw_set_selection obj (mDOMNode_option_of_o_mDOMNode_option node)
+  external select :
+   [>`math_view] obj -> [> `Element] GdomeT.t -> unit =
+   "ml_gtk_math_view_select"
+  external unselect :
+   [>`math_view] obj -> [> `Element] GdomeT.t -> unit =
+   "ml_gtk_math_view_unselect"
+  external is_selected :
+   [>`math_view] obj -> [> `Element] GdomeT.t -> bool =
+   "ml_gtk_math_view_is_selected"
+  external get_element_at :
+   [> `math_view] obj -> int -> int -> TElement.t option =
+   "ml_gtk_math_view_get_element_at"
   external get_width : [>`math_view] obj -> int =
    "ml_gtk_math_view_get_width"
   external get_height : [>`math_view] obj -> int =
@@ -88,6 +83,8 @@ module MathView = struct
    "ml_gtk_math_view_get_buffer"
   external get_frame : [>`math_view] obj -> Gtk.frame obj =
    "ml_gtk_math_view_get_frame"
+  external get_drawing_area : [>`math_view] obj -> Gtk.drawing_area obj =
+   "ml_gtk_math_view_get_drawing_area"
   external set_font_size : [>`math_view] obj -> int -> unit =
    "ml_gtk_math_view_set_font_size"
   external get_font_size : [>`math_view] obj -> int =
@@ -96,10 +93,6 @@ module MathView = struct
    "ml_gtk_math_view_set_anti_aliasing"
   external get_anti_aliasing : [>`math_view] obj -> bool =
    "ml_gtk_math_view_get_anti_aliasing"
-  external set_kerning : [>`math_view] obj -> bool -> unit =
-   "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 =
@@ -117,46 +110,66 @@ 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 raw_get_element : [>`math_view] obj -> Minidom.mDOMNode option =
-   "ml_gtk_math_view_get_element"
-  let get_element obj =
-   o_mDOMNode_option_of_mDOMNode_option (raw_get_element obj)
-  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 raw_get_action : [>`math_view] obj -> Minidom.mDOMNode option =
-   "ml_gtk_math_view_get_action"
-  let get_action obj =
-   o_mDOMNode_option_of_mDOMNode_option (raw_get_action obj)
-  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 _ =
+    let click : ([>`math_view],_) t =
+     let marshal_click f _ =
+      function
+         [GtkArgv.POINTER element; GtkArgv.INT state] ->
+          f (gdome_element_option_of_boxed_option element) state
+       | _ -> invalid_arg "GtkMathView.MathView.Signals.marshal_click"
+     in
+      { name = "click"; classe = `math_view; marshaller = marshal_click }
+
+    let element_over : ([>`math_view],_) t =
+     let marshal_element_over f _ =
+      function
+         [GtkArgv.POINTER element; GtkArgv.INT state] ->
+          f (gdome_element_option_of_boxed_option element) state
+       | _ -> invalid_arg "GtkMathView.MathView.Signals.marshal_element_over"
+     in
+      { name = "element_over"; classe = `math_view;
+        marshaller = marshal_element_over }
+
+    let select_begin : ([>`math_view],_) t =
+     let marshal_select_begin f _ =
+      function
+         [GtkArgv.POINTER element; GtkArgv.INT state] ->
+          f (gdome_element_option_of_boxed_option element) state
+       | _ -> invalid_arg "GtkMathView.MathView.Signals.marshal_select_begin"
+     in
+      { name = "select_begin"; classe = `math_view;
+        marshaller = marshal_select_begin }
+
+    let select_over : ([>`math_view],_) t =
+     let marshal_select_over f _ =
       function
-         [GtkArgv.POINTER node] -> f (o_mDOMNode_of_mDOMNode (mDOMNode_of_boxed_option node))
-       | _ -> invalid_arg "GtkMathView.MathView.Signals.marshal_clicked"
+         [GtkArgv.POINTER element; GtkArgv.INT state] ->
+          f (gdome_element_option_of_boxed_option element) state
+       | _ -> invalid_arg "GtkMathView.MathView.Signals.marshal_select_over"
      in
-      { name = "clicked"; marshaller = marshal_clicked }
+      { name = "select_over"; classe = `math_view;
+        marshaller = marshal_select_over }
 
-    let selection_changed : ([>`math_view],_) t =
-     let marshal_selection_changed f _ =
+    let select_end : ([>`math_view],_) t =
+     let marshal_select_end f _ =
       function
-         [GtkArgv.POINTER node] -> f (o_mDOMNode_option_of_mDOMNode_option (mDOMNode_option_of_boxed_option node))
-       | _ -> invalid_arg "GtkMathView.MathView.Signals.marshal_selection_changed"
+         [GtkArgv.POINTER element; GtkArgv.INT state] ->
+          f (gdome_element_option_of_boxed_option element) state
+       | _ -> invalid_arg "GtkMathView.MathView.Signals.marshal_select_end"
      in
-      { name = "selection_changed"; marshaller = marshal_selection_changed }
+      { name = "select_end"; classe = `math_view;
+        marshaller = marshal_select_end }
 
-    let element_changed : ([>`math_view],_) t =
-     let marshal_element_changed f _ =
+    let select_abort : ([>`math_view],_) t =
+     let marshal_select_abort f _ =
       function
-         [GtkArgv.POINTER node] -> f (o_mDOMNode_option_of_mDOMNode_option (mDOMNode_option_of_boxed_option node))
-       | _ -> invalid_arg "GtkMathView.MathView.Signals.marshal_element_changed"
+         [] -> f ()
+       | _ -> invalid_arg "GtkMathView.MathView.Signals.marshal_select_abort"
      in
-      { name = "element_changed"; marshaller = marshal_element_changed }
+      { name = "select_abort"; classe = `math_view;
+        marshaller = marshal_select_abort }
   end
 end