File: | tests/testsocket.c |
Warning: | line 177, column 14 This statement is never executed |
Press '?' to see keyboard shortcuts
Keyboard shortcuts:
1 | /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 2 -*- */ |
2 | /* testsocket.c |
3 | * Copyright (C) 2001 Red Hat, Inc |
4 | * Author: Owen Taylor |
5 | * |
6 | * This library is free software; you can redistribute it and/or |
7 | * modify it under the terms of the GNU Library General Public |
8 | * License as published by the Free Software Foundation; either |
9 | * version 2 of the License, or (at your option) any later version. |
10 | * |
11 | * This library is distributed in the hope that it will be useful, |
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
14 | * Library General Public License for more details. |
15 | * |
16 | * You should have received a copy of the GNU Library General Public |
17 | * License along with this library. If not, see <http://www.gnu.org/licenses/>. |
18 | */ |
19 | |
20 | #include "config.h" |
21 | #include <ctk/ctk.h> |
22 | #include <ctk/ctkx.h> |
23 | |
24 | #include <string.h> |
25 | #include <stdlib.h> |
26 | #include <stdio.h> |
27 | |
28 | int n_children = 0; |
29 | |
30 | GSList *sockets = NULL((void*)0); |
31 | |
32 | CtkWidget *window; |
33 | CtkWidget *box; |
34 | |
35 | typedef struct |
36 | { |
37 | CtkWidget *box; |
38 | CtkWidget *frame; |
39 | CtkWidget *socket; |
40 | } Socket; |
41 | |
42 | extern guint32 create_child_plug (guint32 xid, |
43 | gboolean local); |
44 | |
45 | static void |
46 | quit_cb (gpointer callback_data G_GNUC_UNUSED__attribute__ ((__unused__)), |
47 | guint callback_action G_GNUC_UNUSED__attribute__ ((__unused__)), |
48 | CtkWidget *widget G_GNUC_UNUSED__attribute__ ((__unused__))) |
49 | { |
50 | CtkWidget *message_dialog = ctk_message_dialog_new (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((window)), ((ctk_window_get_type ())))))), 0, |
51 | CTK_MESSAGE_QUESTION, |
52 | CTK_BUTTONS_YES_NO, |
53 | "Really Quit?"); |
54 | ctk_dialog_set_default_response (CTK_DIALOG (message_dialog)((((CtkDialog*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((message_dialog)), ((ctk_dialog_get_type ())))))), CTK_RESPONSE_NO); |
55 | |
56 | if (ctk_dialog_run (CTK_DIALOG (message_dialog)((((CtkDialog*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((message_dialog)), ((ctk_dialog_get_type ()))))))) == CTK_RESPONSE_YES) |
57 | ctk_widget_destroy (window); |
58 | |
59 | ctk_widget_destroy (message_dialog); |
60 | } |
61 | |
62 | static void |
63 | socket_destroyed (CtkWidget *widget G_GNUC_UNUSED__attribute__ ((__unused__)), |
64 | Socket *socket) |
65 | { |
66 | sockets = g_slist_remove (sockets, socket); |
67 | g_free (socket); |
68 | } |
69 | |
70 | static void |
71 | plug_added (CtkWidget *widget G_GNUC_UNUSED__attribute__ ((__unused__)), |
72 | Socket *socket) |
73 | { |
74 | g_print ("Plug added to socket\n"); |
75 | |
76 | ctk_widget_show (socket->socket); |
77 | ctk_widget_hide (socket->frame); |
78 | } |
79 | |
80 | static gboolean |
81 | plug_removed (CtkWidget *widget G_GNUC_UNUSED__attribute__ ((__unused__)), |
82 | Socket *socket) |
83 | { |
84 | g_print ("Plug removed from socket\n"); |
85 | |
86 | ctk_widget_hide (socket->socket); |
87 | ctk_widget_show (socket->frame); |
88 | |
89 | return TRUE(!(0)); |
90 | } |
91 | |
92 | static Socket * |
93 | create_socket (void) |
94 | { |
95 | CtkWidget *label; |
96 | |
97 | Socket *socket = g_new (Socket, 1)((Socket *) g_malloc_n ((1), sizeof (Socket))); |
98 | |
99 | socket->box = ctk_box_new (CTK_ORIENTATION_VERTICAL, 0); |
100 | |
101 | socket->socket = ctk_socket_new (); |
102 | |
103 | ctk_box_pack_start (CTK_BOX (socket->box)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((socket->box)), ((ctk_box_get_type ())))))), socket->socket, TRUE(!(0)), TRUE(!(0)), 0); |
104 | |
105 | socket->frame = ctk_frame_new (NULL((void*)0)); |
106 | ctk_frame_set_shadow_type (CTK_FRAME (socket->frame)((((CtkFrame*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((socket->frame)), ((ctk_frame_get_type ())))))), CTK_SHADOW_IN); |
107 | ctk_box_pack_start (CTK_BOX (socket->box)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((socket->box)), ((ctk_box_get_type ())))))), socket->frame, TRUE(!(0)), TRUE(!(0)), 0); |
108 | ctk_widget_show (socket->frame); |
109 | |
110 | label = ctk_label_new (NULL((void*)0)); |
111 | ctk_label_set_markup (CTK_LABEL (label)((((CtkLabel*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((label)), ((ctk_label_get_type ())))))), "<span color=\"red\">Empty</span>"); |
112 | ctk_container_add (CTK_CONTAINER (socket->frame)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((socket->frame)), ((ctk_container_get_type ())))))), label); |
113 | ctk_widget_show (label); |
114 | |
115 | sockets = g_slist_prepend (sockets, socket); |
116 | |
117 | |
118 | g_signal_connect (socket->socket, "destroy",g_signal_connect_data ((socket->socket), ("destroy"), (((GCallback ) (socket_destroyed))), (socket), ((void*)0), (GConnectFlags) 0) |
119 | G_CALLBACK (socket_destroyed), socket)g_signal_connect_data ((socket->socket), ("destroy"), (((GCallback ) (socket_destroyed))), (socket), ((void*)0), (GConnectFlags) 0); |
120 | g_signal_connect (socket->socket, "plug_added",g_signal_connect_data ((socket->socket), ("plug_added"), ( ((GCallback) (plug_added))), (socket), ((void*)0), (GConnectFlags ) 0) |
121 | G_CALLBACK (plug_added), socket)g_signal_connect_data ((socket->socket), ("plug_added"), ( ((GCallback) (plug_added))), (socket), ((void*)0), (GConnectFlags ) 0); |
122 | g_signal_connect (socket->socket, "plug_removed",g_signal_connect_data ((socket->socket), ("plug_removed"), (((GCallback) (plug_removed))), (socket), ((void*)0), (GConnectFlags ) 0) |
123 | G_CALLBACK (plug_removed), socket)g_signal_connect_data ((socket->socket), ("plug_removed"), (((GCallback) (plug_removed))), (socket), ((void*)0), (GConnectFlags ) 0); |
124 | |
125 | return socket; |
126 | } |
127 | |
128 | void |
129 | remove_child (CtkWidget *window G_GNUC_UNUSED__attribute__ ((__unused__))) |
130 | { |
131 | if (sockets) |
132 | { |
133 | Socket *socket = sockets->data; |
134 | ctk_widget_destroy (socket->box); |
135 | } |
136 | } |
137 | |
138 | static gboolean |
139 | child_read_watch (GIOChannel *channel, |
140 | GIOCondition cond G_GNUC_UNUSED__attribute__ ((__unused__)), |
141 | gpointer data G_GNUC_UNUSED__attribute__ ((__unused__))) |
142 | { |
143 | GIOStatus status; |
144 | GError *error = NULL((void*)0); |
145 | char *line; |
146 | gsize term; |
147 | int xid; |
148 | |
149 | status = g_io_channel_read_line (channel, &line, NULL((void*)0), &term, &error); |
150 | switch (status) |
151 | { |
152 | case G_IO_STATUS_NORMAL: |
153 | line[term] = '\0'; |
154 | xid = strtol (line, NULL((void*)0), 0); |
155 | if (xid == 0) |
156 | { |
157 | fprintf (stderrstderr, "Invalid window id '%s'\n", line); |
158 | } |
159 | else |
160 | { |
161 | Socket *socket = create_socket (); |
162 | ctk_box_pack_start (CTK_BOX (box)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((box)), ((ctk_box_get_type ())))))), socket->box, TRUE(!(0)), TRUE(!(0)), 0); |
163 | ctk_widget_show (socket->box); |
164 | |
165 | ctk_socket_add_id (CTK_SOCKET (socket->socket)((((CtkSocket*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((socket->socket)), ((ctk_socket_get_type ())))))), xid); |
166 | } |
167 | g_free (line); |
168 | return TRUE(!(0)); |
169 | case G_IO_STATUS_AGAIN: |
170 | return TRUE(!(0)); |
171 | case G_IO_STATUS_EOF: |
172 | n_children--; |
173 | return FALSE(0); |
174 | case G_IO_STATUS_ERROR: |
175 | fprintf (stderrstderr, "Error reading fd from child: %s\n", error->message); |
176 | exit (1); |
177 | return FALSE(0); |
This statement is never executed | |
178 | default: |
179 | g_assert_not_reached ()do { g_assertion_message_expr (((gchar*) 0), "testsocket.c", 179 , ((const char*) (__func__)), ((void*)0)); } while (0); |
180 | return FALSE(0); |
181 | } |
182 | |
183 | } |
184 | |
185 | void |
186 | add_child (CtkWidget *window G_GNUC_UNUSED__attribute__ ((__unused__)), |
187 | gboolean active) |
188 | { |
189 | char *argv[3] = { "./testsocket_child", NULL((void*)0), NULL((void*)0) }; |
190 | char buffer[20]; |
191 | int out_fd; |
192 | GIOChannel *channel; |
193 | GError *error = NULL((void*)0); |
194 | |
195 | if (active) |
196 | { |
197 | Socket *socket; |
198 | |
199 | socket = create_socket (); |
200 | ctk_box_pack_start (CTK_BOX (box)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((box)), ((ctk_box_get_type ())))))), socket->box, TRUE(!(0)), TRUE(!(0)), 0); |
201 | ctk_widget_show (socket->box); |
202 | sprintf(buffer, "%#lx", (gulong) ctk_socket_get_id (CTK_SOCKET (socket->socket)((((CtkSocket*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((socket->socket)), ((ctk_socket_get_type ())))))))); |
203 | argv[1] = buffer; |
204 | } |
205 | |
206 | if (!g_spawn_async_with_pipes (NULL((void*)0), argv, NULL((void*)0), 0, NULL((void*)0), NULL((void*)0), NULL((void*)0), NULL((void*)0), &out_fd, NULL((void*)0), &error)) |
207 | { |
208 | fprintf (stderrstderr, "Can't exec testsocket_child: %s\n", error->message); |
209 | exit (1); |
210 | } |
211 | |
212 | n_children++; |
213 | channel = g_io_channel_unix_new (out_fd); |
214 | g_io_channel_set_close_on_unref (channel, TRUE(!(0))); |
215 | g_io_channel_set_flags (channel, G_IO_FLAG_NONBLOCK, &error); |
216 | if (error) |
217 | { |
218 | fprintf (stderrstderr, "Error making channel non-blocking: %s\n", error->message); |
219 | exit (1); |
220 | } |
221 | |
222 | g_io_add_watch (channel, G_IO_IN | G_IO_HUP, child_read_watch, NULL((void*)0)); |
223 | g_io_channel_unref (channel); |
224 | } |
225 | |
226 | void |
227 | add_active_child (CtkWidget *window) |
228 | { |
229 | add_child (window, TRUE(!(0))); |
230 | } |
231 | |
232 | void |
233 | add_passive_child (CtkWidget *window) |
234 | { |
235 | add_child (window, FALSE(0)); |
236 | } |
237 | |
238 | void |
239 | add_local_active_child (CtkWidget *window G_GNUC_UNUSED__attribute__ ((__unused__))) |
240 | { |
241 | Socket *socket; |
242 | |
243 | socket = create_socket (); |
244 | ctk_box_pack_start (CTK_BOX (box)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((box)), ((ctk_box_get_type ())))))), socket->box, TRUE(!(0)), TRUE(!(0)), 0); |
245 | ctk_widget_show (socket->box); |
246 | |
247 | create_child_plug (ctk_socket_get_id (CTK_SOCKET (socket->socket)((((CtkSocket*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((socket->socket)), ((ctk_socket_get_type ()))))))), TRUE(!(0))); |
248 | } |
249 | |
250 | void |
251 | add_local_passive_child (CtkWidget *window G_GNUC_UNUSED__attribute__ ((__unused__))) |
252 | { |
253 | Socket *socket; |
254 | Window xid; |
255 | |
256 | socket = create_socket (); |
257 | ctk_box_pack_start (CTK_BOX (box)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((box)), ((ctk_box_get_type ())))))), socket->box, TRUE(!(0)), TRUE(!(0)), 0); |
258 | ctk_widget_show (socket->box); |
259 | |
260 | xid = create_child_plug (0, TRUE(!(0))); |
261 | ctk_socket_add_id (CTK_SOCKET (socket->socket)((((CtkSocket*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((socket->socket)), ((ctk_socket_get_type ())))))), xid); |
262 | } |
263 | |
264 | static const char * |
265 | grab_string (int status) |
266 | { |
267 | switch (status) { |
268 | case CDK_GRAB_SUCCESS: return "GrabSuccess"; |
269 | case CDK_GRAB_ALREADY_GRABBED: return "AlreadyGrabbed"; |
270 | case CDK_GRAB_INVALID_TIME: return "GrabInvalidTime"; |
271 | case CDK_GRAB_NOT_VIEWABLE: return "GrabNotViewable"; |
272 | case CDK_GRAB_FROZEN: return "GrabFrozen"; |
273 | default: |
274 | { |
275 | static char foo [255]; |
276 | sprintf (foo, "unknown status: %d", status); |
277 | return foo; |
278 | } |
279 | } |
280 | } |
281 | |
282 | static void |
283 | grab_window_toggled (CtkToggleButton *button, |
284 | CtkWidget *widget) |
285 | { |
286 | CdkDevice *device = ctk_get_current_event_device (); |
287 | CdkSeat *seat = cdk_device_get_seat (device); |
288 | |
289 | if (ctk_toggle_button_get_active (button)) |
290 | { |
291 | int status; |
292 | |
293 | status = cdk_seat_grab (seat, ctk_widget_get_window (widget), |
294 | CDK_SEAT_CAPABILITY_KEYBOARD, |
295 | FALSE(0), NULL((void*)0), NULL((void*)0), NULL((void*)0), NULL((void*)0)); |
296 | |
297 | if (status != CDK_GRAB_SUCCESS) |
298 | g_warning ("Could not grab keyboard! (%s)", grab_string (status)); |
299 | |
300 | } |
301 | else |
302 | { |
303 | cdk_seat_ungrab (seat); |
304 | } |
305 | } |
306 | |
307 | int |
308 | main (int argc, char *argv[]) |
309 | { |
310 | CtkWidget *button; |
311 | CtkWidget *hbox; |
312 | CtkWidget *vbox; |
313 | CtkWidget *menubar; |
314 | CtkWidget *menuitem; |
315 | CtkWidget *menu; |
316 | CtkWidget *entry; |
317 | CtkWidget *checkbutton; |
318 | CtkAccelGroup *accel_group; |
319 | |
320 | ctk_init (&argc, &argv); |
321 | |
322 | window = ctk_window_new (CTK_WINDOW_TOPLEVEL); |
323 | g_signal_connect (window, "destroy",g_signal_connect_data ((window), ("destroy"), (((GCallback) ( ctk_main_quit))), (((void*)0)), ((void*)0), (GConnectFlags) 0 ) |
324 | G_CALLBACK (ctk_main_quit), NULL)g_signal_connect_data ((window), ("destroy"), (((GCallback) ( ctk_main_quit))), (((void*)0)), ((void*)0), (GConnectFlags) 0 ); |
325 | |
326 | ctk_window_set_title (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((window)), ((ctk_window_get_type ())))))), "Socket Test"); |
327 | ctk_container_set_border_width (CTK_CONTAINER (window)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((window)), ((ctk_container_get_type ())))))), 0); |
328 | |
329 | vbox = ctk_box_new (CTK_ORIENTATION_VERTICAL, 0); |
330 | ctk_container_add (CTK_CONTAINER (window)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((window)), ((ctk_container_get_type ())))))), vbox); |
331 | |
332 | menubar = ctk_menu_bar_new (); |
333 | menuitem = ctk_menu_item_new_with_mnemonic ("_File"); |
334 | ctk_menu_shell_append (CTK_MENU_SHELL (menubar)((((CtkMenuShell*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((menubar)), ((ctk_menu_shell_get_type ())))))), menuitem); |
335 | |
336 | menu = ctk_menu_new (); |
337 | ctk_menu_item_set_submenu (CTK_MENU_ITEM (menuitem)((((CtkMenuItem*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((menuitem)), ((ctk_menu_item_get_type ())))))), menu); |
338 | menuitem = ctk_menu_item_new_with_mnemonic ("_Quit"); |
339 | g_signal_connect (menuitem, "activate", G_CALLBACK (quit_cb), window)g_signal_connect_data ((menuitem), ("activate"), (((GCallback ) (quit_cb))), (window), ((void*)0), (GConnectFlags) 0); |
340 | ctk_menu_shell_append (CTK_MENU_SHELL (menu)((((CtkMenuShell*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((menu)), ((ctk_menu_shell_get_type ())))))), menuitem); |
341 | |
342 | accel_group = ctk_accel_group_new (); |
343 | ctk_window_add_accel_group (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((window)), ((ctk_window_get_type ())))))), accel_group); |
344 | ctk_box_pack_start (CTK_BOX (vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((vbox)), ((ctk_box_get_type ())))))), menubar, FALSE(0), FALSE(0), 0); |
345 | |
346 | button = ctk_button_new_with_label ("Add Active Child"); |
347 | ctk_box_pack_start (CTK_BOX(vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((vbox)), ((ctk_box_get_type ())))))), button, FALSE(0), FALSE(0), 0); |
348 | |
349 | g_signal_connect_swapped (button, "clicked",g_signal_connect_data ((button), ("clicked"), (((GCallback) ( add_active_child))), (vbox), ((void*)0), G_CONNECT_SWAPPED) |
350 | G_CALLBACK (add_active_child), vbox)g_signal_connect_data ((button), ("clicked"), (((GCallback) ( add_active_child))), (vbox), ((void*)0), G_CONNECT_SWAPPED); |
351 | |
352 | button = ctk_button_new_with_label ("Add Passive Child"); |
353 | ctk_box_pack_start (CTK_BOX(vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((vbox)), ((ctk_box_get_type ())))))), button, FALSE(0), FALSE(0), 0); |
354 | |
355 | g_signal_connect_swapped (button, "clicked",g_signal_connect_data ((button), ("clicked"), (((GCallback) ( add_passive_child))), (vbox), ((void*)0), G_CONNECT_SWAPPED) |
356 | G_CALLBACK (add_passive_child), vbox)g_signal_connect_data ((button), ("clicked"), (((GCallback) ( add_passive_child))), (vbox), ((void*)0), G_CONNECT_SWAPPED); |
357 | |
358 | button = ctk_button_new_with_label ("Add Local Active Child"); |
359 | ctk_box_pack_start (CTK_BOX(vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((vbox)), ((ctk_box_get_type ())))))), button, FALSE(0), FALSE(0), 0); |
360 | |
361 | g_signal_connect_swapped (button, "clicked",g_signal_connect_data ((button), ("clicked"), (((GCallback) ( add_local_active_child))), (vbox), ((void*)0), G_CONNECT_SWAPPED ) |
362 | G_CALLBACK (add_local_active_child), vbox)g_signal_connect_data ((button), ("clicked"), (((GCallback) ( add_local_active_child))), (vbox), ((void*)0), G_CONNECT_SWAPPED ); |
363 | |
364 | button = ctk_button_new_with_label ("Add Local Passive Child"); |
365 | ctk_box_pack_start (CTK_BOX(vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((vbox)), ((ctk_box_get_type ())))))), button, FALSE(0), FALSE(0), 0); |
366 | |
367 | g_signal_connect_swapped (button, "clicked",g_signal_connect_data ((button), ("clicked"), (((GCallback) ( add_local_passive_child))), (vbox), ((void*)0), G_CONNECT_SWAPPED ) |
368 | G_CALLBACK (add_local_passive_child), vbox)g_signal_connect_data ((button), ("clicked"), (((GCallback) ( add_local_passive_child))), (vbox), ((void*)0), G_CONNECT_SWAPPED ); |
369 | |
370 | button = ctk_button_new_with_label ("Remove Last Child"); |
371 | ctk_box_pack_start (CTK_BOX(vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((vbox)), ((ctk_box_get_type ())))))), button, FALSE(0), FALSE(0), 0); |
372 | |
373 | g_signal_connect_swapped (button, "clicked",g_signal_connect_data ((button), ("clicked"), (((GCallback) ( remove_child))), (vbox), ((void*)0), G_CONNECT_SWAPPED) |
374 | G_CALLBACK (remove_child), vbox)g_signal_connect_data ((button), ("clicked"), (((GCallback) ( remove_child))), (vbox), ((void*)0), G_CONNECT_SWAPPED); |
375 | |
376 | checkbutton = ctk_check_button_new_with_label ("Grab keyboard"); |
377 | ctk_box_pack_start (CTK_BOX (vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((vbox)), ((ctk_box_get_type ())))))), checkbutton, FALSE(0), FALSE(0), 0); |
378 | |
379 | g_signal_connect (checkbutton, "toggled",g_signal_connect_data ((checkbutton), ("toggled"), (((GCallback ) (grab_window_toggled))), (window), ((void*)0), (GConnectFlags ) 0) |
380 | G_CALLBACK (grab_window_toggled),g_signal_connect_data ((checkbutton), ("toggled"), (((GCallback ) (grab_window_toggled))), (window), ((void*)0), (GConnectFlags ) 0) |
381 | window)g_signal_connect_data ((checkbutton), ("toggled"), (((GCallback ) (grab_window_toggled))), (window), ((void*)0), (GConnectFlags ) 0); |
382 | |
383 | hbox = ctk_box_new (CTK_ORIENTATION_HORIZONTAL, 0); |
384 | ctk_box_pack_start (CTK_BOX(vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((vbox)), ((ctk_box_get_type ())))))), hbox, FALSE(0), FALSE(0), 0); |
385 | |
386 | entry = ctk_entry_new (); |
387 | ctk_box_pack_start (CTK_BOX(hbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((hbox)), ((ctk_box_get_type ())))))), entry, FALSE(0), FALSE(0), 0); |
388 | |
389 | hbox = ctk_box_new (CTK_ORIENTATION_HORIZONTAL, 0); |
390 | ctk_box_pack_start (CTK_BOX (vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance *) ((vbox)), ((ctk_box_get_type ())))))), hbox, FALSE(0), FALSE(0), 0); |
391 | |
392 | box = hbox; |
393 | |
394 | ctk_widget_show_all (window); |
395 | |
396 | ctk_main (); |
397 | |
398 | if (n_children) |
399 | { |
400 | g_print ("Waiting for children to exit\n"); |
401 | |
402 | while (n_children) |
403 | g_main_context_iteration (NULL((void*)0), TRUE(!(0))); |
404 | } |
405 | |
406 | return 0; |
407 | } |