--- /dev/null
+open Gtk
+open Gtk_mathview
+open Tags
+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
+
+module MathView = struct
+ exception NoSelection
+
+ type font_manager_id = FontManagerGtk | FontManagerT1
+
+ 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 =
+ "ml_gtk_math_view_unload"
+ external raw_get_selection : [>`math_view] obj -> Minidom.mDOMNode option =
+ "ml_gtk_math_view_get_selection"
+ let has_selection obj =
+ match raw_get_selection obj with
+ | None -> false
+ | _ -> true
+ let get_selection obj =
+ match raw_get_selection obj with
+ | Some x -> o_mDOMNode_of_mDOMNode x
+ | None -> raise NoSelection
+ external raw_set_selection : [>`math_view] obj -> Minidom.mDOMNode option -> unit=
+ "ml_gtk_math_view_set_selection"
+ let set_selection obj (node : Ominidom.o_mDOMNode) = raw_set_selection obj (Some (node#get_dom_node))
+ let reset_selection obj = raw_set_selection obj None
+ external get_width : [>`math_view] obj -> int =
+ "ml_gtk_math_view_get_width"
+ external get_height : [>`math_view] obj -> int =
+ "ml_gtk_math_view_get_height"
+ external get_top : [>`math_view] obj -> (int * int) =
+ "ml_gtk_math_view_get_top"
+ external set_top : [>`math_view] obj -> int -> int -> unit =
+ "ml_gtk_math_view_set_top"
+ external set_adjustments : [>`math_view] obj -> Gtk.adjustment obj -> Gtk.adjustment obj -> unit =
+ "ml_gtk_math_view_set_adjustments"
+ external get_hadjustment : [>`math_view] obj -> Gtk.adjustment obj =
+ "ml_gtk_math_view_get_hadjustment"
+ external get_vadjustment : [>`math_view] obj -> Gtk.adjustment obj =
+ "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 =
+ "ml_gtk_math_view_get_frame"
+ external set_font_size : [>`math_view] obj -> int -> unit =
+ "ml_gtk_math_view_set_font_size"
+ external get_font_size : [>`math_view] 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 =
+ "ml_gtk_math_view_set_log_verbosity"
+ external get_log_verbosity : [>`math_view] 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_id =
+ "ml_gtk_math_view_get_font_manager_type"
+ external set_font_manager_type : [>`math_view] obj -> fm_type:font_manager_id -> 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