| 102 * The cancellation callback should be the last callback sent. |
102 * The cancellation callback should be the last callback sent. |
| 103 */ |
103 */ |
| 104 static GntWidget * |
104 static GntWidget * |
| 105 setup_button_box(GntWidget *win, gpointer userdata, gpointer cb, gpointer data, ...) |
105 setup_button_box(GntWidget *win, gpointer userdata, gpointer cb, gpointer data, ...) |
| 106 { |
106 { |
| 107 GntWidget *box, *button; |
107 GntWidget *box; |
| |
108 GntWidget *button = NULL; |
| 108 va_list list; |
109 va_list list; |
| 109 const char *text; |
110 const char *text; |
| 110 gpointer callback; |
111 gpointer callback; |
| 111 |
112 |
| 112 box = gnt_hbox_new(FALSE); |
113 box = gnt_hbox_new(FALSE); |
| 122 g_object_set_data(G_OBJECT(button), "activate-userdata", userdata); |
123 g_object_set_data(G_OBJECT(button), "activate-userdata", userdata); |
| 123 g_signal_connect(G_OBJECT(button), "activate", G_CALLBACK(action_performed), win); |
124 g_signal_connect(G_OBJECT(button), "activate", G_CALLBACK(action_performed), win); |
| 124 g_signal_connect(G_OBJECT(button), "activate", G_CALLBACK(cb), data); |
125 g_signal_connect(G_OBJECT(button), "activate", G_CALLBACK(cb), data); |
| 125 } |
126 } |
| 126 |
127 |
| 127 g_object_set_data(G_OBJECT(button), "cancellation-function", GINT_TO_POINTER(TRUE)); |
128 if (button) |
| |
129 g_object_set_data(G_OBJECT(button), "cancellation-function", GINT_TO_POINTER(TRUE)); |
| 128 |
130 |
| 129 va_end(list); |
131 va_end(list); |
| 130 return box; |
132 return box; |
| 131 } |
133 } |
| 132 |
134 |