comparison console/libgnt/gntmarshal.c @ 13935:cd2da4b079cf

[gaim-migrate @ 16466] New widget GntComboBox. I have addde a test file as an example as well. Rename gntutils.* to gntmarshal.* I am going to have some util-functions in gntutils.* later. committer: Tailor Script <tailor@pidgin.im>
author Sadrul Habib Chowdhury <imadil@gmail.com>
date Sat, 08 Jul 2006 23:58:20 +0000
parents
children 0387a167f342
comparison
equal deleted inserted replaced
13934:ef0d515b9f97 13935:cd2da4b079cf
1 #include "gntmarshal.h"
2
3 void gnt_closure_marshal_BOOLEAN__STRING(GClosure *closure,
4 GValue *ret_value,
5 guint n_param_values,
6 const GValue *param_values,
7 gpointer invocation_hint,
8 gpointer marshal_data)
9 {
10 typedef gboolean (*func) (gpointer data1, const char *arg1, gpointer data2);
11 register func callback;
12 register GCClosure *cc = (GCClosure*)closure;
13 register gpointer data1, data2;
14 gboolean ret;
15
16 g_return_if_fail(ret_value != NULL);
17 g_return_if_fail(n_param_values == 2);
18
19 if (G_CCLOSURE_SWAP_DATA(closure))
20 {
21 data1 = closure->data;
22 data2 = g_value_peek_pointer(param_values + 0);
23 }
24 else
25 {
26 data1 = g_value_peek_pointer(param_values + 0);
27 data2 = closure->data;
28 }
29
30 callback = (func) (marshal_data ? marshal_data : cc->callback);
31 ret = callback(data1, g_value_get_string(param_values + 1) , data2);
32 g_value_set_boolean(ret_value, ret);
33 }
34
35 void gnt_closure_marshal_VOID__INT_INT_INT_INT(GClosure *closure,
36 GValue *ret_value,
37 guint n_param_values,
38 const GValue *param_values,
39 gpointer invocation_hint,
40 gpointer marshal_data)
41 {
42 typedef void (*func) (gpointer data1, int, int, int, int, gpointer data2);
43 register func callback;
44 register GCClosure *cc = (GCClosure*)closure;
45 register gpointer data1, data2;
46
47 g_return_if_fail(n_param_values == 5);
48
49 if (G_CCLOSURE_SWAP_DATA(closure))
50 {
51 data1 = closure->data;
52 data2 = g_value_peek_pointer(param_values + 0);
53 }
54 else
55 {
56 data1 = g_value_peek_pointer(param_values + 0);
57 data2 = closure->data;
58 }
59
60 callback = (func) (marshal_data ? marshal_data : cc->callback);
61 callback(data1,
62 g_value_get_int(param_values + 1) ,
63 g_value_get_int(param_values + 2) ,
64 g_value_get_int(param_values + 3) ,
65 g_value_get_int(param_values + 4) ,
66 data2);
67 }
68
69 void gnt_closure_marshal_VOID__INT_INT(GClosure *closure,
70 GValue *ret_value,
71 guint n_param_values,
72 const GValue *param_values,
73 gpointer invocation_hint,
74 gpointer marshal_data)
75 {
76 typedef void (*func) (gpointer data1, int, int, gpointer data2);
77 register func callback;
78 register GCClosure *cc = (GCClosure*)closure;
79 register gpointer data1, data2;
80
81 g_return_if_fail(n_param_values == 3);
82
83 if (G_CCLOSURE_SWAP_DATA(closure))
84 {
85 data1 = closure->data;
86 data2 = g_value_peek_pointer(param_values + 0);
87 }
88 else
89 {
90 data1 = g_value_peek_pointer(param_values + 0);
91 data2 = closure->data;
92 }
93
94 callback = (func) (marshal_data ? marshal_data : cc->callback);
95 callback(data1,
96 g_value_get_int(param_values + 1) ,
97 g_value_get_int(param_values + 2) ,
98 data2);
99 }
100
101 void gnt_closure_marshal_VOID__POINTER_POINTER(GClosure *closure,
102 GValue *ret_value,
103 guint n_param_values,
104 const GValue *param_values,
105 gpointer invocation_hint,
106 gpointer marshal_data)
107 {
108 typedef void (*func) (gpointer data1, gpointer, gpointer, gpointer data2);
109 register func callback;
110 register GCClosure *cc = (GCClosure*)closure;
111 register gpointer data1, data2;
112
113 g_return_if_fail(n_param_values == 3);
114
115 if (G_CCLOSURE_SWAP_DATA(closure))
116 {
117 data1 = closure->data;
118 data2 = g_value_peek_pointer(param_values + 0);
119 }
120 else
121 {
122 data1 = g_value_peek_pointer(param_values + 0);
123 data2 = closure->data;
124 }
125
126 callback = (func) (marshal_data ? marshal_data : cc->callback);
127 callback(data1,
128 g_value_get_pointer(param_values + 1) ,
129 g_value_get_pointer(param_values + 2) ,
130 data2);
131 }
132
133 void gnt_closure_marshal_BOOLEAN__INT_INT(GClosure *closure,
134 GValue *ret_value,
135 guint n_param_values,
136 const GValue *param_values,
137 gpointer invocation_hint,
138 gpointer marshal_data)
139 {
140 typedef gboolean (*func) (gpointer data1, int, int, gpointer data2);
141 register func callback;
142 register GCClosure *cc = (GCClosure*)closure;
143 register gpointer data1, data2;
144 gboolean ret;
145
146 g_return_if_fail(ret_value != NULL);
147 g_return_if_fail(n_param_values == 3);
148
149 if (G_CCLOSURE_SWAP_DATA(closure))
150 {
151 data1 = closure->data;
152 data2 = g_value_peek_pointer(param_values + 0);
153 }
154 else
155 {
156 data1 = g_value_peek_pointer(param_values + 0);
157 data2 = closure->data;
158 }
159
160 callback = (func) (marshal_data ? marshal_data : cc->callback);
161 ret = callback(data1,
162 g_value_get_int(param_values + 1) ,
163 g_value_get_int(param_values + 2) ,
164 data2);
165 g_value_set_boolean(ret_value, ret);
166 }
167
168