1 /* MultiFileProgress.c generated by valac, the Vala compiler
2 * generated from MultiFileProgress.vala, do not modify */
4 /* Copyright 2009 Yorba Foundation
6 * This software is licensed under the GNU Lesser General Public License
7 * (version 2.1 or later). See the COPYING file in this distribution.
11 #include <glib-object.h>
19 #define TYPE_MULTI_FILE_PROGRESS_INTERFACE (multi_file_progress_interface_get_type ())
20 #define MULTI_FILE_PROGRESS_INTERFACE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MULTI_FILE_PROGRESS_INTERFACE, MultiFileProgressInterface))
21 #define IS_MULTI_FILE_PROGRESS_INTERFACE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MULTI_FILE_PROGRESS_INTERFACE))
22 #define MULTI_FILE_PROGRESS_INTERFACE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), TYPE_MULTI_FILE_PROGRESS_INTERFACE, MultiFileProgressInterfaceIface))
24 typedef struct _MultiFileProgressInterface MultiFileProgressInterface;
25 typedef struct _MultiFileProgressInterfaceIface MultiFileProgressInterfaceIface;
27 #define TYPE_MULTI_FILE_PROGRESS (multi_file_progress_get_type ())
28 #define MULTI_FILE_PROGRESS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_MULTI_FILE_PROGRESS, MultiFileProgress))
29 #define MULTI_FILE_PROGRESS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_MULTI_FILE_PROGRESS, MultiFileProgressClass))
30 #define IS_MULTI_FILE_PROGRESS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_MULTI_FILE_PROGRESS))
31 #define IS_MULTI_FILE_PROGRESS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_MULTI_FILE_PROGRESS))
32 #define MULTI_FILE_PROGRESS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_MULTI_FILE_PROGRESS, MultiFileProgressClass))
34 typedef struct _MultiFileProgress MultiFileProgress;
35 typedef struct _MultiFileProgressClass MultiFileProgressClass;
36 typedef struct _MultiFileProgressPrivate MultiFileProgressPrivate;
37 #define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
38 #define _g_free0(var) (var = (g_free (var), NULL))
40 #define LOGGING_TYPE_FACILITY (logging_facility_get_type ())
42 #define LOGGING_TYPE_LEVEL (logging_level_get_type ())
44 struct _MultiFileProgressInterfaceIface {
45 GTypeInterface parent_iface;
46 void (*cancel) (MultiFileProgressInterface* self);
47 void (*complete) (MultiFileProgressInterface* self);
50 struct _MultiFileProgress {
51 GtkWindow parent_instance;
52 MultiFileProgressPrivate * priv;
55 struct _MultiFileProgressClass {
56 GtkWindowClass parent_class;
59 struct _MultiFileProgressPrivate {
60 GtkProgressBar* progress_bar;
62 GtkLabel* number_label;
63 GtkButton* cancel_button;
66 MultiFileProgressInterface* provider_interface;
71 LOGGING_FACILITY_SIGNAL_HANDLERS,
72 LOGGING_FACILITY_DEVELOPER_WARNINGS,
73 LOGGING_FACILITY_GRAPH,
74 LOGGING_FACILITY_LOADING,
75 LOGGING_FACILITY_IMPORT,
76 LOGGING_FACILITY_SINGLEDECODEBIN
80 LOGGING_LEVEL_CRITICAL,
89 static gpointer multi_file_progress_parent_class = NULL;
91 GType multi_file_progress_interface_get_type (void);
92 void multi_file_progress_interface_cancel (MultiFileProgressInterface* self);
93 void multi_file_progress_interface_complete (MultiFileProgressInterface* self);
94 GType multi_file_progress_get_type (void);
95 #define MULTI_FILE_PROGRESS_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_MULTI_FILE_PROGRESS, MultiFileProgressPrivate))
97 MULTI_FILE_PROGRESS_DUMMY_PROPERTY
99 static void multi_file_progress_on_cancel_clicked (MultiFileProgress* self);
100 static void _multi_file_progress_on_cancel_clicked_gtk_button_clicked (GtkButton* _sender, gpointer self);
101 static void multi_file_progress_on_fraction_updated (MultiFileProgress* self, double d);
102 static void _multi_file_progress_on_fraction_updated_multi_file_progress_interface_fraction_updated (MultiFileProgressInterface* _sender, double d, gpointer self);
103 static void multi_file_progress_on_file_updated (MultiFileProgress* self, const char* filename, gint index);
104 static void _multi_file_progress_on_file_updated_multi_file_progress_interface_file_updated (MultiFileProgressInterface* _sender, const char* filename, gint index, gpointer self);
105 static void multi_file_progress_on_done (MultiFileProgress* self);
106 static void _multi_file_progress_on_done_multi_file_progress_interface_done (MultiFileProgressInterface* _sender, gpointer self);
107 MultiFileProgress* multi_file_progress_new (GtkWindow* parent, gint num_files, const char* dialog_title, MultiFileProgressInterface* provider);
108 MultiFileProgress* multi_file_progress_construct (GType object_type, GtkWindow* parent, gint num_files, const char* dialog_title, MultiFileProgressInterface* provider);
109 GType logging_facility_get_type (void);
110 GType logging_level_get_type (void);
111 void logging_emit (GObject* object, LoggingFacility facility, LoggingLevel level, const char* message);
112 static void multi_file_progress_on_destroy (MultiFileProgress* self);
113 static void _multi_file_progress_on_destroy_gtk_object_destroy (GtkObject* _sender, gpointer self);
114 static void multi_file_progress_finalize (GObject* obj);
117 static void g_cclosure_user_marshal_VOID__STRING_INT (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data);
119 #line 14 "MultiFileProgress.vala"
120 void multi_file_progress_interface_cancel (MultiFileProgressInterface* self) {
121 #line 14 "MultiFileProgress.vala"
122 MULTI_FILE_PROGRESS_INTERFACE_GET_INTERFACE (self)->cancel (self);
123 #line 124 "MultiFileProgress.c"
127 #line 15 "MultiFileProgress.vala"
128 void multi_file_progress_interface_complete (MultiFileProgressInterface* self) {
129 #line 15 "MultiFileProgress.vala"
130 MULTI_FILE_PROGRESS_INTERFACE_GET_INTERFACE (self)->complete (self);
131 #line 132 "MultiFileProgress.c"
135 static void multi_file_progress_interface_base_init (MultiFileProgressInterfaceIface * iface) {
136 static gboolean initialized = FALSE;
139 g_signal_new ("fraction_updated", TYPE_MULTI_FILE_PROGRESS_INTERFACE, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__DOUBLE, G_TYPE_NONE, 1, G_TYPE_DOUBLE);
140 g_signal_new ("file_updated", TYPE_MULTI_FILE_PROGRESS_INTERFACE, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__STRING_INT, G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_INT);
141 g_signal_new ("done", TYPE_MULTI_FILE_PROGRESS_INTERFACE, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
146 GType multi_file_progress_interface_get_type (void) {
147 static volatile gsize multi_file_progress_interface_type_id__volatile = 0;
148 if (g_once_init_enter (&multi_file_progress_interface_type_id__volatile)) {
149 static const GTypeInfo g_define_type_info = { sizeof (MultiFileProgressInterfaceIface), (GBaseInitFunc) multi_file_progress_interface_base_init, (GBaseFinalizeFunc) NULL, (GClassInitFunc) NULL, (GClassFinalizeFunc) NULL, NULL, 0, 0, (GInstanceInitFunc) NULL, NULL };
150 GType multi_file_progress_interface_type_id;
151 multi_file_progress_interface_type_id = g_type_register_static (G_TYPE_INTERFACE, "MultiFileProgressInterface", &g_define_type_info, 0);
152 g_type_interface_add_prerequisite (multi_file_progress_interface_type_id, G_TYPE_OBJECT);
153 g_once_init_leave (&multi_file_progress_interface_type_id__volatile, multi_file_progress_interface_type_id);
155 return multi_file_progress_interface_type_id__volatile;
159 #line 71 "MultiFileProgress.vala"
160 static void _multi_file_progress_on_cancel_clicked_gtk_button_clicked (GtkButton* _sender, gpointer self) {
161 #line 162 "MultiFileProgress.c"
162 multi_file_progress_on_cancel_clicked (self);
166 static gpointer _g_object_ref0 (gpointer self) {
167 return self ? g_object_ref (self) : NULL;
171 #line 84 "MultiFileProgress.vala"
172 static void _multi_file_progress_on_fraction_updated_multi_file_progress_interface_fraction_updated (MultiFileProgressInterface* _sender, double d, gpointer self) {
173 #line 174 "MultiFileProgress.c"
174 multi_file_progress_on_fraction_updated (self, d);
178 #line 107 "MultiFileProgress.vala"
179 static void _multi_file_progress_on_file_updated_multi_file_progress_interface_file_updated (MultiFileProgressInterface* _sender, const char* filename, gint index, gpointer self) {
180 #line 181 "MultiFileProgress.c"
181 multi_file_progress_on_file_updated (self, filename, index);
185 #line 66 "MultiFileProgress.vala"
186 static void _multi_file_progress_on_done_multi_file_progress_interface_done (MultiFileProgressInterface* _sender, gpointer self) {
187 #line 188 "MultiFileProgress.c"
188 multi_file_progress_on_done (self);
192 #line 30 "MultiFileProgress.vala"
193 MultiFileProgress* multi_file_progress_construct (GType object_type, GtkWindow* parent, gint num_files, const char* dialog_title, MultiFileProgressInterface* provider) {
194 #line 195 "MultiFileProgress.c"
195 MultiFileProgress * self;
198 GtkProgressBar* _tmp2_;
200 GtkHButtonBox* button_area;
203 MultiFileProgressInterface* _tmp5_;
204 #line 30 "MultiFileProgress.vala"
205 g_return_val_if_fail (GTK_IS_WINDOW (parent), NULL);
206 #line 30 "MultiFileProgress.vala"
207 g_return_val_if_fail (dialog_title != NULL, NULL);
208 #line 30 "MultiFileProgress.vala"
209 g_return_val_if_fail (IS_MULTI_FILE_PROGRESS_INTERFACE (provider), NULL);
210 #line 211 "MultiFileProgress.c"
211 self = g_object_newv (object_type, 0, NULL);
212 #line 32 "MultiFileProgress.vala"
213 self->priv->num_files = num_files;
214 #line 33 "MultiFileProgress.vala"
215 self->priv->needs_show = TRUE;
216 #line 34 "MultiFileProgress.vala"
217 self->priv->file_label = (_tmp0_ = g_object_ref_sink ((GtkLabel*) gtk_label_new ("")), _g_object_unref0 (self->priv->file_label), _tmp0_);
218 #line 35 "MultiFileProgress.vala"
219 self->priv->number_label = (_tmp1_ = g_object_ref_sink ((GtkLabel*) gtk_label_new ("")), _g_object_unref0 (self->priv->number_label), _tmp1_);
220 #line 36 "MultiFileProgress.vala"
221 self->priv->progress_bar = (_tmp2_ = g_object_ref_sink ((GtkProgressBar*) gtk_progress_bar_new ()), _g_object_unref0 (self->priv->progress_bar), _tmp2_);
222 #line 38 "MultiFileProgress.vala"
223 vbox = g_object_ref_sink ((GtkVBox*) gtk_vbox_new (TRUE, 0));
224 #line 40 "MultiFileProgress.vala"
225 gtk_box_pack_start (GTK_BOX (vbox), GTK_WIDGET (self->priv->number_label), FALSE, FALSE, (guint) 0);
226 #line 41 "MultiFileProgress.vala"
227 gtk_box_pack_start (GTK_BOX (vbox), GTK_WIDGET (self->priv->file_label), FALSE, FALSE, (guint) 0);
228 #line 42 "MultiFileProgress.vala"
229 gtk_box_pack_start (GTK_BOX (vbox), GTK_WIDGET (self->priv->progress_bar), FALSE, FALSE, (guint) 0);
230 #line 44 "MultiFileProgress.vala"
231 button_area = g_object_ref_sink ((GtkHButtonBox*) gtk_hbutton_box_new ());
232 #line 45 "MultiFileProgress.vala"
233 g_object_set (G_OBJECT (button_area), "layout-style", GTK_BUTTONBOX_CENTER, NULL);
234 #line 47 "MultiFileProgress.vala"
235 self->priv->cancel_button = (_tmp3_ = g_object_ref_sink ((GtkButton*) gtk_button_new_from_stock (GTK_STOCK_CANCEL)), _g_object_unref0 (self->priv->cancel_button), _tmp3_);
236 #line 48 "MultiFileProgress.vala"
237 g_signal_connect_object (self->priv->cancel_button, "clicked", (GCallback) _multi_file_progress_on_cancel_clicked_gtk_button_clicked, self, 0);
238 #line 50 "MultiFileProgress.vala"
239 gtk_container_add (GTK_CONTAINER (button_area), GTK_WIDGET (self->priv->cancel_button));
240 #line 52 "MultiFileProgress.vala"
241 gtk_box_pack_start (GTK_BOX (vbox), GTK_WIDGET (button_area), FALSE, FALSE, (guint) 0);
242 #line 53 "MultiFileProgress.vala"
243 gtk_container_add (GTK_CONTAINER (self), GTK_WIDGET (vbox));
244 #line 55 "MultiFileProgress.vala"
245 gtk_window_set_transient_for (GTK_WINDOW (self), parent);
246 #line 56 "MultiFileProgress.vala"
247 gtk_window_set_title (GTK_WINDOW (self), dialog_title);
248 #line 57 "MultiFileProgress.vala"
249 self->priv->dialog_title = (_tmp4_ = g_strdup (dialog_title), _g_free0 (self->priv->dialog_title), _tmp4_);
250 #line 59 "MultiFileProgress.vala"
251 self->priv->provider_interface = (_tmp5_ = _g_object_ref0 (provider), _g_object_unref0 (self->priv->provider_interface), _tmp5_);
252 #line 61 "MultiFileProgress.vala"
253 g_signal_connect_object (self->priv->provider_interface, "fraction-updated", (GCallback) _multi_file_progress_on_fraction_updated_multi_file_progress_interface_fraction_updated, self, 0);
254 #line 62 "MultiFileProgress.vala"
255 g_signal_connect_object (self->priv->provider_interface, "file-updated", (GCallback) _multi_file_progress_on_file_updated_multi_file_progress_interface_file_updated, self, 0);
256 #line 63 "MultiFileProgress.vala"
257 g_signal_connect_object (self->priv->provider_interface, "done", (GCallback) _multi_file_progress_on_done_multi_file_progress_interface_done, self, 0);
258 #line 259 "MultiFileProgress.c"
259 _g_object_unref0 (vbox);
260 _g_object_unref0 (button_area);
265 #line 30 "MultiFileProgress.vala"
266 MultiFileProgress* multi_file_progress_new (GtkWindow* parent, gint num_files, const char* dialog_title, MultiFileProgressInterface* provider) {
267 #line 30 "MultiFileProgress.vala"
268 return multi_file_progress_construct (TYPE_MULTI_FILE_PROGRESS, parent, num_files, dialog_title, provider);
269 #line 270 "MultiFileProgress.c"
273 #line 66 "MultiFileProgress.vala"
274 static void multi_file_progress_on_done (MultiFileProgress* self) {
275 #line 66 "MultiFileProgress.vala"
276 g_return_if_fail (IS_MULTI_FILE_PROGRESS (self));
277 #line 67 "MultiFileProgress.vala"
278 logging_emit (G_OBJECT (self), LOGGING_FACILITY_SIGNAL_HANDLERS, LOGGING_LEVEL_INFO, "on_done");
279 #line 68 "MultiFileProgress.vala"
280 gtk_object_destroy (GTK_OBJECT (self));
281 #line 282 "MultiFileProgress.c"
285 #line 71 "MultiFileProgress.vala"
286 static void multi_file_progress_on_cancel_clicked (MultiFileProgress* self) {
287 #line 71 "MultiFileProgress.vala"
288 g_return_if_fail (IS_MULTI_FILE_PROGRESS (self));
289 #line 72 "MultiFileProgress.vala"
290 logging_emit (G_OBJECT (self), LOGGING_FACILITY_SIGNAL_HANDLERS, LOGGING_LEVEL_INFO, "on_cancel_clicked");
291 #line 73 "MultiFileProgress.vala"
292 gtk_object_destroy (GTK_OBJECT (self));
293 #line 294 "MultiFileProgress.c"
297 #line 76 "MultiFileProgress.vala"
298 static void multi_file_progress_on_destroy (MultiFileProgress* self) {
299 #line 76 "MultiFileProgress.vala"
300 g_return_if_fail (IS_MULTI_FILE_PROGRESS (self));
301 #line 77 "MultiFileProgress.vala"
302 logging_emit (G_OBJECT (self), LOGGING_FACILITY_SIGNAL_HANDLERS, LOGGING_LEVEL_INFO, "on_destroy");
303 #line 78 "MultiFileProgress.vala"
304 if (gtk_progress_bar_get_fraction (self->priv->progress_bar) < 1.0) {
305 #line 79 "MultiFileProgress.vala"
306 multi_file_progress_interface_cancel (self->priv->provider_interface);
307 #line 308 "MultiFileProgress.c"
309 #line 81 "MultiFileProgress.vala"
310 multi_file_progress_interface_complete (self->priv->provider_interface);
311 #line 312 "MultiFileProgress.c"
316 #line 76 "MultiFileProgress.vala"
317 static void _multi_file_progress_on_destroy_gtk_object_destroy (GtkObject* _sender, gpointer self) {
318 #line 319 "MultiFileProgress.c"
319 multi_file_progress_on_destroy (self);
323 #line 84 "MultiFileProgress.vala"
324 static void multi_file_progress_on_fraction_updated (MultiFileProgress* self, double d) {
325 #line 84 "MultiFileProgress.vala"
326 g_return_if_fail (IS_MULTI_FILE_PROGRESS (self));
327 #line 85 "MultiFileProgress.vala"
328 logging_emit (G_OBJECT (self), LOGGING_FACILITY_SIGNAL_HANDLERS, LOGGING_LEVEL_INFO, "on_fraction_updated");
329 #line 86 "MultiFileProgress.vala"
330 if (self->priv->needs_show) {
331 #line 87 "MultiFileProgress.vala"
332 self->priv->needs_show = FALSE;
333 #line 88 "MultiFileProgress.vala"
334 gtk_container_set_border_width (GTK_CONTAINER (self), (guint) 8);
335 #line 89 "MultiFileProgress.vala"
336 gtk_window_set_resizable (GTK_WINDOW (self), FALSE);
337 #line 90 "MultiFileProgress.vala"
338 gtk_window_set_modal (GTK_WINDOW (self), TRUE);
339 #line 92 "MultiFileProgress.vala"
340 g_signal_connect_object (GTK_OBJECT (self), "destroy", (GCallback) _multi_file_progress_on_destroy_gtk_object_destroy, self, 0);
341 #line 94 "MultiFileProgress.vala"
342 gtk_widget_show_all (GTK_WIDGET (self));
343 #line 344 "MultiFileProgress.c"
345 #line 97 "MultiFileProgress.vala"
346 gtk_progress_bar_set_fraction (self->priv->progress_bar, d);
347 #line 99 "MultiFileProgress.vala"
348 if (gtk_progress_bar_get_fraction (self->priv->progress_bar) == 1.0) {
349 #line 100 "MultiFileProgress.vala"
350 gtk_object_destroy (GTK_OBJECT (self));
351 #line 352 "MultiFileProgress.c"
353 #line 102 "MultiFileProgress.vala"
354 gtk_widget_show_all (GTK_WIDGET (self));
355 #line 103 "MultiFileProgress.vala"
356 gtk_widget_queue_draw (GTK_WIDGET (self));
357 #line 358 "MultiFileProgress.c"
362 #line 107 "MultiFileProgress.vala"
363 static void multi_file_progress_on_file_updated (MultiFileProgress* self, const char* filename, gint index) {
364 #line 365 "MultiFileProgress.c"
367 #line 107 "MultiFileProgress.vala"
368 g_return_if_fail (IS_MULTI_FILE_PROGRESS (self));
369 #line 107 "MultiFileProgress.vala"
370 g_return_if_fail (filename != NULL);
371 #line 108 "MultiFileProgress.vala"
372 logging_emit (G_OBJECT (self), LOGGING_FACILITY_SIGNAL_HANDLERS, LOGGING_LEVEL_INFO, "on_file_updated");
373 #line 109 "MultiFileProgress.vala"
374 gtk_label_set_text (self->priv->number_label, _tmp0_ = g_strdup_printf ("%sing %d of %d", self->priv->dialog_title, index + 1, self->priv->num_files));
375 #line 376 "MultiFileProgress.c"
377 #line 110 "MultiFileProgress.vala"
378 gtk_label_set_text (self->priv->file_label, _tmp1_ = g_strdup_printf ("%s", filename));
379 #line 380 "MultiFileProgress.c"
384 static void multi_file_progress_class_init (MultiFileProgressClass * klass) {
385 multi_file_progress_parent_class = g_type_class_peek_parent (klass);
386 g_type_class_add_private (klass, sizeof (MultiFileProgressPrivate));
387 G_OBJECT_CLASS (klass)->finalize = multi_file_progress_finalize;
391 static void multi_file_progress_instance_init (MultiFileProgress * self) {
392 self->priv = MULTI_FILE_PROGRESS_GET_PRIVATE (self);
396 static void multi_file_progress_finalize (GObject* obj) {
397 MultiFileProgress * self;
398 self = MULTI_FILE_PROGRESS (obj);
399 _g_object_unref0 (self->priv->progress_bar);
400 _g_object_unref0 (self->priv->file_label);
401 _g_object_unref0 (self->priv->number_label);
402 _g_object_unref0 (self->priv->cancel_button);
403 _g_object_unref0 (self->priv->provider_interface);
404 _g_free0 (self->priv->dialog_title);
405 G_OBJECT_CLASS (multi_file_progress_parent_class)->finalize (obj);
409 GType multi_file_progress_get_type (void) {
410 static volatile gsize multi_file_progress_type_id__volatile = 0;
411 if (g_once_init_enter (&multi_file_progress_type_id__volatile)) {
412 static const GTypeInfo g_define_type_info = { sizeof (MultiFileProgressClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) multi_file_progress_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (MultiFileProgress), 0, (GInstanceInitFunc) multi_file_progress_instance_init, NULL };
413 GType multi_file_progress_type_id;
414 multi_file_progress_type_id = g_type_register_static (GTK_TYPE_WINDOW, "MultiFileProgress", &g_define_type_info, 0);
415 g_once_init_leave (&multi_file_progress_type_id__volatile, multi_file_progress_type_id);
417 return multi_file_progress_type_id__volatile;
422 static void g_cclosure_user_marshal_VOID__STRING_INT (GClosure * closure, GValue * return_value, guint n_param_values, const GValue * param_values, gpointer invocation_hint, gpointer marshal_data) {
423 typedef void (*GMarshalFunc_VOID__STRING_INT) (gpointer data1, const char* arg_1, gint arg_2, gpointer data2);
424 register GMarshalFunc_VOID__STRING_INT callback;
425 register GCClosure * cc;
426 register gpointer data1, data2;
427 cc = (GCClosure *) closure;
428 g_return_if_fail (n_param_values == 3);
429 if (G_CCLOSURE_SWAP_DATA (closure)) {
430 data1 = closure->data;
431 data2 = param_values->data[0].v_pointer;
433 data1 = param_values->data[0].v_pointer;
434 data2 = closure->data;
436 callback = (GMarshalFunc_VOID__STRING_INT) (marshal_data ? marshal_data : cc->callback);
437 callback (data1, g_value_get_string (param_values + 1), g_value_get_int (param_values + 2), data2);