]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/DEVEL/lablgtkmathview/gtkMathView.ml
###############################################################
[helm.git] / helm / DEVEL / lablgtkmathview / gtkMathView.ml
index 67a634a16ce9143724f324acca28d57d1f2bd718..50de7a72ff21285d0c849763fcd9062912ab57f1 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.
  * For details, send a mail to the author.
  *)
 
-open Gtk
 open Gtk_mathview
+open Gaux
+open Gobject
+open Gtk
 open Tags
+open GtkMathViewProps
 open GtkBase
-open Gpointer
-
-external mDOMNode_of_boxed_option :
- Gpointer.boxed option -> Minidom.mDOMNode =
-  "ml_gtk_math_view_mDOMNode_of_bodex_option"
-
-external mDOMNode_option_of_boxed_option :
- Gpointer.boxed option -> Minidom.mDOMNode option =
-  "ml_gtk_math_view_mDOMNode_option_of_bodex_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 _gtkmathview_init : unit -> unit = "ml_gtk_mathview_init"
+let () = _gtkmathview_init ()
 
 module MathView = struct
-  exception NoSelection
-
-  let cast w : math_view obj = Object.try_cast w "GtkMathView"
-  external create : Gtk.adjustment optobj -> Gtk.adjustment optobj -> 
-   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 unload : [>`math_view] obj -> unit =
+  include MathView
+  external freeze : [>`mathview] obj -> unit =
+   "ml_gtk_math_view_freeze"
+  external thaw : [>`mathview] obj -> unit =
+   "ml_gtk_math_view_thaw"
+  external load_uri : [>`mathview] obj -> filename:string -> bool =
+   "ml_gtk_math_view_load_uri"
+  external load_doc : [>`mathview] obj -> dom:[> `Document] GdomeT.t -> bool =
+   "ml_gtk_math_view_load_doc"
+  external unload : [>`mathview] 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 get_width : [>`math_view] obj -> int =
+  external select :
+   [>`mathview] obj -> [> `Element] GdomeT.t -> unit =
+   "ml_gtk_math_view_select"
+  external unselect :
+   [>`mathview] obj -> [> `Element] GdomeT.t -> unit =
+   "ml_gtk_math_view_unselect"
+  external is_selected :
+   [>`mathview] obj -> [> `Element] GdomeT.t -> bool =
+   "ml_gtk_math_view_is_selected"
+  external get_element_at :
+   [> `mathview] obj -> int -> int -> TElement.t option =
+   "ml_gtk_math_view_get_element_at"
+   (* beginning of prop-like methods *)
+  external get_width : [>`mathview] obj -> int =
    "ml_gtk_math_view_get_width"
-  external get_height : [>`math_view] obj -> int =
+  external get_height : [>`mathview] obj -> int =
    "ml_gtk_math_view_get_height"
-  external get_top : [>`math_view] obj -> (int * int) =
+  external get_top : [>`mathview] obj -> (int * int) =
    "ml_gtk_math_view_get_top"
-  external set_top : [>`math_view] obj -> int -> int -> unit =
+  external set_top : [>`mathview] obj -> int -> int -> unit =
    "ml_gtk_math_view_set_top"
-  external set_adjustments : [>`math_view] obj -> Gtk.adjustment obj -> Gtk.adjustment obj -> unit =
+  external set_adjustments : [>`mathview] obj -> Gtk.adjustment obj -> Gtk.adjustment obj -> unit =
    "ml_gtk_math_view_set_adjustments"
-  external get_hadjustment : [>`math_view] obj -> Gtk.adjustment obj =
+  external get_hadjustment : [>`mathview] obj -> Gtk.adjustment obj =
    "ml_gtk_math_view_get_hadjustment"
-  external get_vadjustment : [>`math_view] obj -> Gtk.adjustment obj =
+  external get_vadjustment : [>`mathview] obj -> Gtk.adjustment obj =
    "ml_gtk_math_view_get_vadjustment"
-  external get_buffer : [>`math_view] obj -> Gdk.pixmap =
+  external get_buffer : [>`mathview] obj -> Gdk.pixmap =
    "ml_gtk_math_view_get_buffer"
-  external get_frame : [>`math_view] obj -> [`frame] obj =
-   "ml_gtk_math_view_get_frame"
-  external set_font_size : [>`math_view] obj -> int -> unit =
+  external get_drawing_area : [>`mathview] obj -> Gtk.drawing_area obj =
+   "ml_gtk_math_view_get_drawing_area"
+  external set_font_size : [>`mathview] obj -> int -> unit =
    "ml_gtk_math_view_set_font_size"
-  external get_font_size : [>`math_view] obj -> int =
+  external get_font_size : [>`mathview] obj -> int =
    "ml_gtk_math_view_get_font_size"
-  external set_anti_aliasing : [>`math_view] obj -> bool -> unit =
-   "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_log_verbosity : [>`math_view] obj -> int -> unit =
+  external set_log_verbosity : [>`mathview] obj -> int -> unit =
    "ml_gtk_math_view_set_log_verbosity"
-  external get_log_verbosity : [>`math_view] obj -> int =
+  external get_log_verbosity : [>`mathview] obj -> int =
    "ml_gtk_math_view_get_log_verbosity"
-  external export_to_postscript :
-   [>`math_view] obj -> width:int -> height:int -> x_margin:int -> y_margin:int -> disable_colors:bool -> filename:string -> bool =
-   "ml_gtk_math_view_export_to_postscript_bytecode" "ml_gtk_math_view_export_to_postscript_native"
-  external get_font_manager_type : [>`math_view] obj ->
-   [`font_manager_gtk | `font_manager_t1] =
-   "ml_gtk_math_view_get_font_manager_type"
-  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"
-  
-  module Signals = struct
-    open GtkSignal
-
-    let clicked : ([>`math_view],_) t =
-     let marshal_clicked f _ =
-      function
-         [GtkArgv.POINTER node] -> f (o_mDOMNode_of_mDOMNode (mDOMNode_of_boxed_option node))
-       | _ -> invalid_arg "GtkMathView.MathView.Signals.marshal_clicked"
-     in
-      { name = "clicked"; marshaller = marshal_clicked }
-
-    let jump : ([>`math_view],_) t =
-     let marshal_jump f _ =
-      function
-         [GtkArgv.POINTER node] -> f (o_mDOMNode_of_mDOMNode (mDOMNode_of_boxed_option node))
-       | _ -> invalid_arg "GtkMathView.MathView.Signals.marshal_jump"
-     in
-      { name = "jump"; marshaller = marshal_jump }
-
-    let selection_changed : ([>`math_view],_) t =
-     let marshal_selection_changed 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"
-     in
-      { name = "selection_changed"; marshaller = marshal_selection_changed }
-  end
 end