5 #include <caml/mlvalues.h>
6 #include <caml/alloc.h>
7 #include <caml/memory.h>
8 #include <caml/callback.h>
17 static Make_Flags_val (Attach_options_val)
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,
24 ML_5 (gtk_box_pack_end, GtkBox_val, GtkWidget_val, Bool_val, Bool_val,
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)
33 GtkPackType pack_type;
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);
44 value ml_gtk_box_set_child_packing (value vbox, value vchild, value vexpand,
45 value vfill, value vpadding, value vpack)
47 GtkBox *box = GtkBox_val(vbox);
48 GtkWidget *child = GtkWidget_val(vchild);
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));
60 ML_bc6 (ml_gtk_box_set_child_packing)
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)
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,
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,
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)
85 ML_0 (gtk_hbutton_box_new, Val_GtkWidget_sink)
86 ML_0 (gtk_vbutton_box_new, Val_GtkWidget_sink)
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)
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)
113 #define GtkNotebook_val(val) check_cast(GTK_NOTEBOOK,val)
114 ML_0 (gtk_notebook_new, Val_GtkWidget_sink)
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)
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)
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)
136 ML_2 (gtk_notebook_get_tab_label, GtkNotebook_val, GtkWidget_val,
138 ML_3 (gtk_notebook_set_tab_label, GtkNotebook_val, GtkWidget_val,
140 ML_2 (gtk_notebook_get_menu_label, GtkNotebook_val, GtkWidget_val,
142 ML_3 (gtk_notebook_set_menu_label, GtkNotebook_val, GtkWidget_val,
144 ML_3 (gtk_notebook_reorder_child, GtkNotebook_val, GtkWidget_val,
150 Make_OptFlags_val(Packer_options_val)
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,
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,
179 ML_bc10 (ml_gtk_packer_set_child_packing)
180 ML_3 (gtk_packer_reorder_child, GtkPacker_val, GtkWidget_val,
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)
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));
200 ML_bc6 (ml_gtk_packer_set_defaults)
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)
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)