1 (* Copyright (C) 2000, Luca Padovani <luca.padovani@cs.unibo.it>.
3 * This file is part of lablgtkmathview, the Ocaml binding
4 * for the GtkMathView widget.
6 * lablgtkmathview is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version 2
9 * of the License, or (at your option) any later version.
11 * lablgtkmathview is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
16 * You should have received a copy of the GNU General Public License
17 * along with lablgtkmathview; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
20 * For details, send a mail to the author.
29 external mDOMNode_of_boxed_option :
30 Gpointer.boxed option -> Minidom.mDOMNode =
31 "ml_gtk_math_view_mDOMNode_of_boxed_option"
33 external mDOMNode_option_of_boxed_option :
34 Gpointer.boxed option -> Minidom.mDOMNode option =
35 "ml_gtk_math_view_mDOMNode_option_of_boxed_option"
37 let o_mDOMNode_of_mDOMNode node = new Ominidom.o_mDOMNode node
39 let o_mDOMNode_option_of_mDOMNode_option =
41 | Some x -> Some (o_mDOMNode_of_mDOMNode x)
44 let mDOMNode_option_of_o_mDOMNode_option =
46 | Some x -> Some (x#get_dom_node)
49 module MathView = struct
52 let cast w : math_view obj = Object.try_cast w "GtkMathView"
53 external create : Gtk.adjustment optobj -> Gtk.adjustment optobj ->
54 math_view obj = "ml_gtk_math_view_new"
55 let create ~adjustmenth ~adjustmentv () =
56 create (optboxed adjustmenth) (optboxed adjustmentv)
57 external load : [>`math_view] obj -> filename:string -> bool =
58 "ml_gtk_math_view_load"
59 external raw_load_tree : [>`math_view] obj -> Minidom.mDOMDoc -> bool =
60 "ml_gtk_math_view_load_tree"
61 let load_tree obj ~(dom:Ominidom.o_mDOMDoc) =
62 raw_load_tree obj dom#get_dom_doc
63 external unload : [>`math_view] obj -> unit =
64 "ml_gtk_math_view_unload"
65 external raw_get_selection : [>`math_view] obj -> Minidom.mDOMNode option =
66 "ml_gtk_math_view_get_selection"
67 let get_selection obj =
68 o_mDOMNode_option_of_mDOMNode_option (raw_get_selection obj)
69 external raw_set_selection : [>`math_view] obj -> Minidom.mDOMNode option -> unit=
70 "ml_gtk_math_view_set_selection"
71 let set_selection obj node =
72 raw_set_selection obj (mDOMNode_option_of_o_mDOMNode_option node)
73 external get_width : [>`math_view] obj -> int =
74 "ml_gtk_math_view_get_width"
75 external get_height : [>`math_view] obj -> int =
76 "ml_gtk_math_view_get_height"
77 external get_top : [>`math_view] obj -> (int * int) =
78 "ml_gtk_math_view_get_top"
79 external set_top : [>`math_view] obj -> int -> int -> unit =
80 "ml_gtk_math_view_set_top"
81 external set_adjustments : [>`math_view] obj -> Gtk.adjustment obj -> Gtk.adjustment obj -> unit =
82 "ml_gtk_math_view_set_adjustments"
83 external get_hadjustment : [>`math_view] obj -> Gtk.adjustment obj =
84 "ml_gtk_math_view_get_hadjustment"
85 external get_vadjustment : [>`math_view] obj -> Gtk.adjustment obj =
86 "ml_gtk_math_view_get_vadjustment"
87 external get_buffer : [>`math_view] obj -> Gdk.pixmap =
88 "ml_gtk_math_view_get_buffer"
89 external get_frame : [>`math_view] obj -> Gtk.frame obj =
90 "ml_gtk_math_view_get_frame"
91 external set_font_size : [>`math_view] obj -> int -> unit =
92 "ml_gtk_math_view_set_font_size"
93 external get_font_size : [>`math_view] obj -> int =
94 "ml_gtk_math_view_get_font_size"
95 external set_anti_aliasing : [>`math_view] obj -> bool -> unit =
96 "ml_gtk_math_view_set_anti_aliasing"
97 external get_anti_aliasing : [>`math_view] obj -> bool =
98 "ml_gtk_math_view_get_anti_aliasing"
99 external set_kerning : [>`math_view] obj -> bool -> unit =
100 "ml_gtk_math_view_set_kerning"
101 external get_kerning : [>`math_view] obj -> bool =
102 "ml_gtk_math_view_get_kerning"
103 external set_transparency : [>`math_view] obj -> bool -> unit =
104 "ml_gtk_math_view_set_transparency"
105 external get_transparency : [>`math_view] obj -> bool =
106 "ml_gtk_math_view_get_transparency"
107 external set_log_verbosity : [>`math_view] obj -> int -> unit =
108 "ml_gtk_math_view_set_log_verbosity"
109 external get_log_verbosity : [>`math_view] obj -> int =
110 "ml_gtk_math_view_get_log_verbosity"
111 external export_to_postscript :
112 [>`math_view] obj -> width:int -> height:int -> x_margin:int -> y_margin:int -> disable_colors:bool -> filename:string -> bool =
113 "ml_gtk_math_view_export_to_postscript_bytecode" "ml_gtk_math_view_export_to_postscript_native"
114 external get_font_manager_type : [>`math_view] obj ->
115 [`font_manager_gtk | `font_manager_t1] =
116 "ml_gtk_math_view_get_font_manager_type"
117 external set_font_manager_type : [>`math_view] obj ->
118 fm_type:[`font_manager_gtk | `font_manager_t1] -> unit =
119 "ml_gtk_math_view_set_font_manager_type"
120 external raw_get_element : [>`math_view] obj -> Minidom.mDOMNode option =
121 "ml_gtk_math_view_get_element"
122 let get_element obj =
123 o_mDOMNode_option_of_mDOMNode_option (raw_get_element obj)
124 external action_get_selected : [>`math_view] obj -> int =
125 "ml_gtk_math_view_action_get_selected"
126 external action_set_selected : [>`math_view] obj -> int -> unit =
127 "ml_gtk_math_view_action_set_selected"
128 external raw_get_action : [>`math_view] obj -> Minidom.mDOMNode option =
129 "ml_gtk_math_view_get_action"
131 o_mDOMNode_option_of_mDOMNode_option (raw_get_action obj)
132 external action_toggle : [>`math_view] obj -> unit =
133 "ml_gtk_math_view_action_toggle"
135 module Signals = struct
138 let clicked : ([>`math_view],_) t =
139 let marshal_clicked f _ =
141 [GtkArgv.POINTER node] -> f (o_mDOMNode_of_mDOMNode (mDOMNode_of_boxed_option node))
142 | _ -> invalid_arg "GtkMathView.MathView.Signals.marshal_clicked"
144 { name = "clicked"; marshaller = marshal_clicked }
146 let selection_changed : ([>`math_view],_) t =
147 let marshal_selection_changed f _ =
149 [GtkArgv.POINTER node] -> f (o_mDOMNode_option_of_mDOMNode_option (mDOMNode_option_of_boxed_option node))
150 | _ -> invalid_arg "GtkMathView.MathView.Signals.marshal_selection_changed"
152 { name = "selection_changed"; marshaller = marshal_selection_changed }
154 let element_changed : ([>`math_view],_) t =
155 let marshal_element_changed f _ =
157 [GtkArgv.POINTER node] -> f (o_mDOMNode_option_of_mDOMNode_option (mDOMNode_option_of_boxed_option node))
158 | _ -> invalid_arg "GtkMathView.MathView.Signals.marshal_element_changed"
160 { name = "element_changed"; marshaller = marshal_element_changed }