]> matita.cs.unibo.it Git - helm.git/blob - helm/DEVEL/lablgtkmathview/gtkMathView.ml
- the mathql interpreter is not helm-dependent any more
[helm.git] / helm / DEVEL / lablgtkmathview / gtkMathView.ml
1 (* Copyright (C) 2000-2003, Luca Padovani <luca.padovani@cs.unibo.it>,
2  *                          Claudio Sacerdoti Coen <sacerdot@cs.unibo.it>.
3  *
4  * This file is part of lablgtkmathview, the Ocaml binding
5  * for the GtkMathView widget.
6  * 
7  * lablgtkmathview is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU General Public License
9  * as published by the Free Software Foundation; either version 2
10  * of the License, or (at your option) any later version.
11  *
12  * lablgtkmathview is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with lablgtkmathview; if not, write to the Free Software
19  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
20  * 
21  * For details, send a mail to the author.
22  *)
23
24 open Gtk
25 open Gtk_mathview
26 open Tags
27 open GtkBase
28 open Gpointer
29
30 external gdome_element_of_boxed_option :
31  Gpointer.boxed option -> TElement.t =
32   "ml_gtk_math_view_gdome_element_of_boxed_option"
33
34 external gdome_element_option_of_boxed_option :
35  Gpointer.boxed option -> TElement.t option =
36   "ml_gtk_math_view_gdome_element_option_of_boxed_option"
37
38 module MathView = struct
39   exception NoSelection
40
41   let cast w : math_view obj = Object.try_cast w "GtkMathView"
42   external create : Gtk.adjustment optobj -> Gtk.adjustment optobj -> 
43    math_view obj = "ml_gtk_math_view_new"
44   let create ~adjustmenth ~adjustmentv () =
45    create (optboxed adjustmenth) (optboxed adjustmentv)
46   external freeze : [>`math_view] obj -> unit =
47    "ml_gtk_math_view_freeze"
48   external thaw : [>`math_view] obj -> unit =
49    "ml_gtk_math_view_thaw"
50   external load_uri : [>`math_view] obj -> filename:string -> bool =
51    "ml_gtk_math_view_load_uri"
52   external load_doc : [>`math_view] obj -> dom:[> `Document] GdomeT.t -> bool =
53    "ml_gtk_math_view_load_doc"
54   external unload : [>`math_view] obj -> unit =
55    "ml_gtk_math_view_unload"
56   external select :
57    [>`math_view] obj -> [> `Element] GdomeT.t -> unit =
58    "ml_gtk_math_view_select"
59   external unselect :
60    [>`math_view] obj -> [> `Element] GdomeT.t -> unit =
61    "ml_gtk_math_view_unselect"
62   external is_selected :
63    [>`math_view] obj -> [> `Element] GdomeT.t -> bool =
64    "ml_gtk_math_view_is_selected"
65   external get_element_at :
66    [> `math_view] obj -> int -> int -> TElement.t option =
67    "ml_gtk_math_view_get_element_at"
68   external get_width : [>`math_view] obj -> int =
69    "ml_gtk_math_view_get_width"
70   external get_height : [>`math_view] obj -> int =
71    "ml_gtk_math_view_get_height"
72   external get_top : [>`math_view] obj -> (int * int) =
73    "ml_gtk_math_view_get_top"
74   external set_top : [>`math_view] obj -> int -> int -> unit =
75    "ml_gtk_math_view_set_top"
76   external set_adjustments : [>`math_view] obj -> Gtk.adjustment obj -> Gtk.adjustment obj -> unit =
77    "ml_gtk_math_view_set_adjustments"
78   external get_hadjustment : [>`math_view] obj -> Gtk.adjustment obj =
79    "ml_gtk_math_view_get_hadjustment"
80   external get_vadjustment : [>`math_view] obj -> Gtk.adjustment obj =
81    "ml_gtk_math_view_get_vadjustment"
82   external get_buffer : [>`math_view] obj -> Gdk.pixmap =
83    "ml_gtk_math_view_get_buffer"
84   external get_frame : [>`math_view] obj -> Gtk.frame obj =
85    "ml_gtk_math_view_get_frame"
86   external get_drawing_area : [>`math_view] obj -> Gtk.drawing_area obj =
87    "ml_gtk_math_view_get_drawing_area"
88   external set_font_size : [>`math_view] obj -> int -> unit =
89    "ml_gtk_math_view_set_font_size"
90   external get_font_size : [>`math_view] obj -> int =
91    "ml_gtk_math_view_get_font_size"
92   external set_anti_aliasing : [>`math_view] obj -> bool -> unit =
93    "ml_gtk_math_view_set_anti_aliasing"
94   external get_anti_aliasing : [>`math_view] obj -> bool =
95    "ml_gtk_math_view_get_anti_aliasing"
96   external set_transparency : [>`math_view] obj -> bool -> unit =
97    "ml_gtk_math_view_set_transparency"
98   external get_transparency : [>`math_view] obj -> bool =
99    "ml_gtk_math_view_get_transparency"
100   external set_log_verbosity : [>`math_view] obj -> int -> unit =
101    "ml_gtk_math_view_set_log_verbosity"
102   external get_log_verbosity : [>`math_view] obj -> int =
103    "ml_gtk_math_view_get_log_verbosity"
104   external export_to_postscript :
105    [>`math_view] obj -> width:int -> height:int -> x_margin:int -> y_margin:int -> disable_colors:bool -> filename:string -> bool =
106    "ml_gtk_math_view_export_to_postscript_bytecode" "ml_gtk_math_view_export_to_postscript_native"
107   external get_font_manager_type : [>`math_view] obj ->
108    [`font_manager_gtk | `font_manager_t1] =
109    "ml_gtk_math_view_get_font_manager_type"
110   external set_font_manager_type : [>`math_view] obj ->
111     fm_type:[`font_manager_gtk | `font_manager_t1] -> unit =
112    "ml_gtk_math_view_set_font_manager_type"
113   
114   module Signals = struct
115     open GtkSignal
116
117     let click : ([>`math_view],_) t =
118      let marshal_click f _ =
119       function
120          [GtkArgv.POINTER element; GtkArgv.INT state] ->
121            f (gdome_element_option_of_boxed_option element) state
122        | _ -> invalid_arg "GtkMathView.MathView.Signals.marshal_click"
123      in
124       { name = "click"; classe = `math_view; marshaller = marshal_click }
125
126     let element_over : ([>`math_view],_) t =
127      let marshal_element_over f _ =
128       function
129          [GtkArgv.POINTER element; GtkArgv.INT state] ->
130            f (gdome_element_option_of_boxed_option element) state
131        | _ -> invalid_arg "GtkMathView.MathView.Signals.marshal_element_over"
132      in
133       { name = "element_over"; classe = `math_view;
134         marshaller = marshal_element_over }
135
136     let select_begin : ([>`math_view],_) t =
137      let marshal_select_begin f _ =
138       function
139          [GtkArgv.POINTER element; GtkArgv.INT state] ->
140            f (gdome_element_option_of_boxed_option element) state
141        | _ -> invalid_arg "GtkMathView.MathView.Signals.marshal_select_begin"
142      in
143       { name = "select_begin"; classe = `math_view;
144         marshaller = marshal_select_begin }
145
146     let select_over : ([>`math_view],_) t =
147      let marshal_select_over f _ =
148       function
149          [GtkArgv.POINTER element; GtkArgv.INT state] ->
150            f (gdome_element_option_of_boxed_option element) state
151        | _ -> invalid_arg "GtkMathView.MathView.Signals.marshal_select_over"
152      in
153       { name = "select_over"; classe = `math_view;
154         marshaller = marshal_select_over }
155
156     let select_end : ([>`math_view],_) t =
157      let marshal_select_end f _ =
158       function
159          [GtkArgv.POINTER element; GtkArgv.INT state] ->
160            f (gdome_element_option_of_boxed_option element) state
161        | _ -> invalid_arg "GtkMathView.MathView.Signals.marshal_select_end"
162      in
163       { name = "select_end"; classe = `math_view;
164         marshaller = marshal_select_end }
165
166     let select_abort : ([>`math_view],_) t =
167      let marshal_select_abort f _ =
168       function
169          [] -> f ()
170        | _ -> invalid_arg "GtkMathView.MathView.Signals.marshal_select_abort"
171      in
172       { name = "select_abort"; classe = `math_view;
173         marshaller = marshal_select_abort }
174   end
175 end