]> matita.cs.unibo.it Git - helm.git/blob - helm/DEVEL/lablgtk/lablgtk_20001129-0.1.0/ml_gtkpack.c
Initial revision
[helm.git] / helm / DEVEL / lablgtk / lablgtk_20001129-0.1.0 / ml_gtkpack.c
1 /* $Id$ */
2
3 #include <string.h>
4 #include <gtk/gtk.h>
5 #include <caml/mlvalues.h>
6 #include <caml/alloc.h>
7 #include <caml/memory.h>
8 #include <caml/callback.h>
9 #include <caml/fail.h>
10
11 #include "wrappers.h"
12 #include "ml_glib.h"
13 #include "ml_gdk.h"
14 #include "ml_gtk.h"
15 #include "gtk_tags.h"
16
17 static Make_Flags_val (Attach_options_val)
18
19 /* gtkbox.h */
20
21 #define GtkBox_val(val) check_cast(GTK_BOX,val)
22 ML_5 (gtk_box_pack_start, GtkBox_val, GtkWidget_val, Bool_val, Bool_val,
23       Int_val, Unit)
24 ML_5 (gtk_box_pack_end, GtkBox_val, GtkWidget_val, Bool_val, Bool_val,
25       Int_val, Unit)
26 ML_2 (gtk_box_set_homogeneous, GtkBox_val, Bool_val, Unit)
27 ML_2 (gtk_box_set_spacing, GtkBox_val, Int_val, Unit)
28 ML_3 (gtk_box_reorder_child, GtkBox_val, GtkWidget_val, Int_val, Unit)
29 value ml_gtk_box_query_child_packing (value box, value child)
30 {
31     int expand, fill;
32     unsigned int padding;
33     GtkPackType pack_type;
34     value ret;
35     gtk_box_query_child_packing (GtkBox_val(box), GtkWidget_val(child),
36                                  &expand, &fill, &padding, &pack_type);
37     ret = alloc_small(4,0);
38     Field(ret,0) = Val_bool(expand);
39     Field(ret,1) = Val_bool(fill);
40     Field(ret,2) = Val_int(padding);
41     Field(ret,3) = Val_pack_type(pack_type);
42     return ret;
43 }
44 value ml_gtk_box_set_child_packing (value vbox, value vchild, value vexpand,
45                                     value vfill, value vpadding, value vpack)
46 {
47     GtkBox *box = GtkBox_val(vbox);
48     GtkWidget *child = GtkWidget_val(vchild);
49     int expand, fill;
50     unsigned int padding;
51     GtkPackType pack;
52     gtk_box_query_child_packing (box, child, &expand, &fill, &padding, &pack);
53     gtk_box_set_child_packing (box, child,
54                                Option_val(vexpand, Bool_val, expand),
55                                Option_val(vfill, Bool_val, fill),
56                                Option_val(vpadding, Int_val, padding),
57                                Option_val(vpack, Pack_type_val, pack));
58     return Val_unit;
59 }
60 ML_bc6 (ml_gtk_box_set_child_packing)
61
62 ML_2 (gtk_hbox_new, Bool_val, Int_val, Val_GtkWidget_sink)
63 ML_2 (gtk_vbox_new, Bool_val, Int_val, Val_GtkWidget_sink)
64
65 /* gtkbbox.h */
66     
67 #define GtkButtonBox_val(val) check_cast(GTK_BUTTON_BOX,val)
68 Make_Extractor (gtk_button_box_get, GtkButtonBox_val, spacing, Val_int)
69 Make_Extractor (gtk_button_box_get, GtkButtonBox_val, child_min_width, Val_int)
70 Make_Extractor (gtk_button_box_get, GtkButtonBox_val, child_min_height,
71                 Val_int)
72 Make_Extractor (gtk_button_box_get, GtkButtonBox_val, child_ipad_x, Val_int)
73 Make_Extractor (gtk_button_box_get, GtkButtonBox_val, child_ipad_y, Val_int)
74 Make_Extractor (gtk_button_box_get, GtkButtonBox_val, layout_style,
75                 Val_button_box_style)
76 ML_2 (gtk_button_box_set_spacing, GtkButtonBox_val, Int_val, Unit)
77 ML_3 (gtk_button_box_set_child_size, GtkButtonBox_val,
78       Int_val, Int_val, Unit)
79 ML_3 (gtk_button_box_set_child_ipadding, GtkButtonBox_val,
80       Int_val, Int_val, Unit)
81 ML_2 (gtk_button_box_set_layout, GtkButtonBox_val, Button_box_style_val, Unit)
82 ML_2 (gtk_button_box_set_child_size_default, Int_val, Int_val, Unit)
83 ML_2 (gtk_button_box_set_child_ipadding_default, Int_val, Int_val, Unit)
84
85 ML_0 (gtk_hbutton_box_new, Val_GtkWidget_sink)
86 ML_0 (gtk_vbutton_box_new, Val_GtkWidget_sink)
87
88 /* gtkfixed.h */
89
90 #define GtkFixed_val(val) check_cast(GTK_FIXED,val)
91 ML_0 (gtk_fixed_new, Val_GtkWidget_sink)
92 ML_4 (gtk_fixed_put, GtkFixed_val, GtkWidget_val, (gint16)Long_val, (gint16)Long_val, Unit)
93 ML_4 (gtk_fixed_move, GtkFixed_val, GtkWidget_val, (gint16)Long_val, (gint16)Long_val, Unit)
94
95 /* gtklayout.h */
96
97 #define GtkLayout_val(val) check_cast(GTK_LAYOUT,val)
98 ML_2 (gtk_layout_new, GtkAdjustment_val, GtkAdjustment_val, Val_GtkWidget_sink)
99 ML_4 (gtk_layout_put, GtkLayout_val, GtkWidget_val, Int_val, Int_val, Unit)
100 ML_4 (gtk_layout_move, GtkLayout_val, GtkWidget_val, Int_val, Int_val, Unit)
101 ML_3 (gtk_layout_set_size, GtkLayout_val, Int_val, Int_val, Unit)
102 ML_1 (gtk_layout_get_hadjustment, GtkLayout_val, Val_GtkAny)
103 ML_1 (gtk_layout_get_vadjustment, GtkLayout_val, Val_GtkAny)
104 ML_2 (gtk_layout_set_hadjustment, GtkLayout_val, GtkAdjustment_val, Unit)
105 ML_2 (gtk_layout_set_vadjustment, GtkLayout_val, GtkAdjustment_val, Unit)
106 ML_1 (gtk_layout_freeze, GtkLayout_val, Unit)
107 ML_1 (gtk_layout_thaw, GtkLayout_val, Unit)
108 Make_Extractor (gtk_layout_get, GtkLayout_val, width, Val_int)
109 Make_Extractor (gtk_layout_get, GtkLayout_val, height, Val_int)
110
111 /* gtknotebook.h */
112
113 #define GtkNotebook_val(val) check_cast(GTK_NOTEBOOK,val)
114 ML_0 (gtk_notebook_new, Val_GtkWidget_sink)
115
116 ML_5 (gtk_notebook_insert_page_menu, GtkNotebook_val, GtkWidget_val,
117       GtkWidget_val, GtkWidget_val, Int_val, Unit)
118 ML_2 (gtk_notebook_remove_page, GtkNotebook_val, Int_val, Unit)
119
120 ML_2 (gtk_notebook_set_tab_pos, GtkNotebook_val, Position_val, Unit)
121 ML_2 (gtk_notebook_set_homogeneous_tabs, GtkNotebook_val, Bool_val, Unit)
122 ML_2 (gtk_notebook_set_show_tabs, GtkNotebook_val, Bool_val, Unit)
123 ML_2 (gtk_notebook_set_show_border, GtkNotebook_val, Bool_val, Unit)
124 ML_2 (gtk_notebook_set_scrollable, GtkNotebook_val, Bool_val, Unit)
125 ML_2 (gtk_notebook_set_tab_border, GtkNotebook_val, Int_val, Unit)
126 ML_1 (gtk_notebook_popup_enable, GtkNotebook_val, Unit)
127 ML_1 (gtk_notebook_popup_disable, GtkNotebook_val, Unit)
128
129 ML_1 (gtk_notebook_get_current_page, GtkNotebook_val, Val_int)
130 ML_2 (gtk_notebook_set_page, GtkNotebook_val, Int_val, Unit)
131 ML_2 (gtk_notebook_get_nth_page, GtkNotebook_val, Int_val, Val_GtkWidget)
132 ML_2 (gtk_notebook_page_num, GtkNotebook_val, GtkWidget_val, Val_int)
133 ML_1 (gtk_notebook_next_page, GtkNotebook_val, Unit)
134 ML_1 (gtk_notebook_prev_page, GtkNotebook_val, Unit)
135
136 ML_2 (gtk_notebook_get_tab_label, GtkNotebook_val, GtkWidget_val,
137       Val_GtkWidget)
138 ML_3 (gtk_notebook_set_tab_label, GtkNotebook_val, GtkWidget_val,
139       GtkWidget_val, Unit)
140 ML_2 (gtk_notebook_get_menu_label, GtkNotebook_val, GtkWidget_val,
141       Val_GtkWidget)
142 ML_3 (gtk_notebook_set_menu_label, GtkNotebook_val, GtkWidget_val,
143       GtkWidget_val, Unit)
144 ML_3 (gtk_notebook_reorder_child, GtkNotebook_val, GtkWidget_val,
145       Int_val, Unit)
146
147
148 /* gtkpacker.h */
149
150 Make_OptFlags_val(Packer_options_val)
151
152 #define GtkPacker_val(val) check_cast(GTK_PACKER,val)
153 ML_0 (gtk_packer_new, Val_GtkWidget_sink)
154 ML_10 (gtk_packer_add, GtkPacker_val, GtkWidget_val,
155        Option_val(arg3,Side_type_val,GTK_SIDE_TOP) Ignore,
156        Option_val(arg4,Anchor_type_val,GTK_ANCHOR_CENTER) Ignore,
157        OptFlags_Packer_options_val,
158        Option_val(arg6,Int_val,GtkPacker_val(arg1)->default_border_width) Ignore,
159        Option_val(arg7,Int_val,GtkPacker_val(arg1)->default_pad_x) Ignore,
160        Option_val(arg8,Int_val,GtkPacker_val(arg1)->default_pad_y) Ignore,
161        Option_val(arg9,Int_val,GtkPacker_val(arg1)->default_i_pad_x) Ignore,
162        Option_val(arg10,Int_val,GtkPacker_val(arg1)->default_i_pad_y) Ignore,
163        Unit)
164 ML_bc10 (ml_gtk_packer_add)
165 ML_5 (gtk_packer_add_defaults, GtkPacker_val, GtkWidget_val,
166        Option_val(arg3,Side_type_val,GTK_SIDE_TOP) Ignore,
167        Option_val(arg4,Anchor_type_val,GTK_ANCHOR_CENTER) Ignore,
168        OptFlags_Packer_options_val, Unit)
169 ML_10 (gtk_packer_set_child_packing, GtkPacker_val, GtkWidget_val,
170        Option_val(arg3,Side_type_val,GTK_SIDE_TOP) Ignore,
171        Option_val(arg4,Anchor_type_val,GTK_ANCHOR_CENTER) Ignore,
172        OptFlags_Packer_options_val,
173        Option_val(arg6,Int_val,GtkPacker_val(arg1)->default_border_width) Ignore,
174        Option_val(arg7,Int_val,GtkPacker_val(arg1)->default_pad_x) Ignore,
175        Option_val(arg8,Int_val,GtkPacker_val(arg1)->default_pad_y) Ignore,
176        Option_val(arg9,Int_val,GtkPacker_val(arg1)->default_i_pad_x) Ignore,
177        Option_val(arg10,Int_val,GtkPacker_val(arg1)->default_i_pad_y) Ignore,
178        Unit)
179 ML_bc10 (ml_gtk_packer_set_child_packing)
180 ML_3 (gtk_packer_reorder_child, GtkPacker_val, GtkWidget_val,
181       Int_val, Unit)
182 ML_2 (gtk_packer_set_spacing, GtkPacker_val, Int_val, Unit)
183 value ml_gtk_packer_set_defaults (value w, value border_width,
184                                   value pad_x, value pad_y,
185                                   value i_pad_x, value i_pad_y)
186 {
187     GtkPacker *p = GtkPacker_val(w);
188     if (Is_block(border_width))
189         gtk_packer_set_default_border_width (p,Int_val(Field(border_width,0)));
190     if (Is_block(pad_x) || Is_block(pad_y))
191         gtk_packer_set_default_pad
192             (p, Option_val(pad_x,Int_val,p->default_pad_x),
193                 Option_val(pad_y,Int_val,p->default_pad_y));
194     if (Is_block(i_pad_x) || Is_block(i_pad_y))
195         gtk_packer_set_default_ipad
196             (p, Option_val(pad_x,Int_val,p->default_i_pad_x),
197                 Option_val(pad_y,Int_val,p->default_i_pad_y));
198     return Val_unit;
199 }
200 ML_bc6 (ml_gtk_packer_set_defaults)
201
202 /* gtkpaned.h */
203
204 #define GtkPaned_val(val) check_cast(GTK_PANED,val)
205 ML_0 (gtk_hpaned_new, Val_GtkWidget_sink)
206 ML_0 (gtk_vpaned_new, Val_GtkWidget_sink)
207 ML_2 (gtk_paned_add1, GtkPaned_val, GtkWidget_val, Unit)
208 ML_2 (gtk_paned_add2, GtkPaned_val, GtkWidget_val, Unit)
209 ML_2 (gtk_paned_set_handle_size, GtkPaned_val, (gint16)Int_val, Unit)
210 ML_2 (gtk_paned_set_gutter_size, GtkPaned_val, (gint16)Int_val, Unit)
211 Make_Extractor (gtk_paned, GtkPaned_val, child1, Val_GtkWidget)
212 Make_Extractor (gtk_paned, GtkPaned_val, child2, Val_GtkWidget)
213 Make_Extractor (gtk_paned, GtkPaned_val, handle_size, Val_int)
214 Make_Extractor (gtk_paned, GtkPaned_val, gutter_size, Val_int)
215
216 /* gtktable.h */
217
218 #define GtkTable_val(val) check_cast(GTK_TABLE,val)
219 ML_3 (gtk_table_new, Int_val, Int_val, Int_val, Val_GtkWidget_sink)
220 ML_10 (gtk_table_attach, GtkTable_val, GtkWidget_val,
221        Int_val, Int_val, Int_val, Int_val,
222        Flags_Attach_options_val, Flags_Attach_options_val,
223        Int_val, Int_val, Unit)
224 ML_bc10 (ml_gtk_table_attach)
225 ML_3 (gtk_table_set_row_spacing, GtkTable_val, Int_val, Int_val, Unit)
226 ML_3 (gtk_table_set_col_spacing, GtkTable_val, Int_val, Int_val, Unit)
227 ML_2 (gtk_table_set_row_spacings, GtkTable_val, Int_val, Unit)
228 ML_2 (gtk_table_set_col_spacings, GtkTable_val, Int_val, Unit)
229 ML_2 (gtk_table_set_homogeneous, GtkTable_val, Bool_val, Unit)