Bug Summary

File:tests/testctk.c
Warning:line 1437, column 7
Value stored to 'button' is never read

Annotated Source Code

Press '?' to see keyboard shortcuts

clang -cc1 -cc1 -triple x86_64-pc-linux-gnu -analyze -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name testctk.c -analyzer-checker=core -analyzer-checker=apiModeling -analyzer-checker=unix -analyzer-checker=deadcode -analyzer-checker=security.insecureAPI.UncheckedReturn -analyzer-checker=security.insecureAPI.getpw -analyzer-checker=security.insecureAPI.gets -analyzer-checker=security.insecureAPI.mktemp -analyzer-checker=security.insecureAPI.mkstemp -analyzer-checker=security.insecureAPI.vfork -analyzer-checker=nullability.NullPassedToNonnull -analyzer-checker=nullability.NullReturnedFromNonnull -analyzer-output plist -w -setup-static-analyzer -mrelocation-model pic -pic-level 2 -pic-is-pie -mframe-pointer=all -fmath-errno -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu x86-64 -tune-cpu generic -debugger-tuning=gdb -fcoverage-compilation-dir=/rootdir/tests -resource-dir /usr/lib/llvm-16/lib/clang/16 -D HAVE_CONFIG_H -I . -I .. -I .. -I ../cdk -I ../cdk -D G_ENABLE_DEBUG -D G_ENABLE_CONSISTENCY_CHECKS -D GLIB_MIN_REQUIRED_VERSION=GLIB_VERSION_2_66 -D GLIB_MAX_ALLOWED_VERSION=GLIB_VERSION_2_66 -I /usr/include/pango-1.0 -I /usr/include/glib-2.0 -I /usr/lib/x86_64-linux-gnu/glib-2.0/include -I /usr/include/sysprof-6 -I /usr/include/harfbuzz -I /usr/include/freetype2 -I /usr/include/libpng16 -I /usr/include/libmount -I /usr/include/blkid -I /usr/include/fribidi -I /usr/include/cairo -I /usr/include/pixman-1 -I /usr/include/atk-1.0 -I /usr/include/gdk-pixbuf-2.0 -I /usr/include/x86_64-linux-gnu -I /usr/include/webp -I /usr/include/at-spi2-atk/2.0 -I /usr/include/at-spi-2.0 -I /usr/include/dbus-1.0 -I /usr/lib/x86_64-linux-gnu/dbus-1.0/include -I /usr/include/gio-unix-2.0 -I /usr/include/harfbuzz -I /usr/include/freetype2 -I /usr/include/libpng16 -I /usr/include/glib-2.0 -I /usr/lib/x86_64-linux-gnu/glib-2.0/include -I /usr/include/sysprof-6 -I /usr/include/pango-1.0 -I /usr/include/libmount -I /usr/include/blkid -I /usr/include/fribidi -I /usr/include/cairo -I /usr/include/pixman-1 -I /usr/include/pango-1.0 -I /usr/include/glib-2.0 -I /usr/lib/x86_64-linux-gnu/glib-2.0/include -I /usr/include/sysprof-6 -I /usr/include/harfbuzz -I /usr/include/freetype2 -I /usr/include/libpng16 -I /usr/include/libmount -I /usr/include/blkid -I /usr/include/fribidi -I /usr/include/cairo -I /usr/include/pixman-1 -I /usr/include/gdk-pixbuf-2.0 -I /usr/include/x86_64-linux-gnu -I /usr/include/webp -I /usr/include/gio-unix-2.0 -internal-isystem /usr/lib/llvm-16/lib/clang/16/include -internal-isystem /usr/local/include -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/14/../../../../x86_64-linux-gnu/include -internal-externc-isystem /usr/include/x86_64-linux-gnu -internal-externc-isystem /include -internal-externc-isystem /usr/include -fdebug-compilation-dir=/rootdir/tests -ferror-limit 19 -fgnuc-version=4.2.1 -analyzer-checker deadcode.DeadStores -analyzer-checker alpha.deadcode.UnreachableCode -analyzer-checker alpha.core.CastSize -analyzer-checker alpha.core.CastToStruct -analyzer-checker alpha.core.IdenticalExpr -analyzer-checker alpha.core.SizeofPtr -analyzer-checker alpha.security.ArrayBoundV2 -analyzer-checker alpha.security.MallocOverflow -analyzer-checker alpha.security.ReturnPtrRange -analyzer-checker alpha.unix.SimpleStream -analyzer-checker alpha.unix.cstring.BufferOverlap -analyzer-checker alpha.unix.cstring.NotNullTerminated -analyzer-checker alpha.unix.cstring.OutOfBounds -analyzer-checker alpha.core.FixedAddr -analyzer-output=html -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /rootdir/html-report/2024-09-19-171836-43636-1 -x c testctk.c
1/* CTK - The GIMP Toolkit
2 * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library. If not, see <http://www.gnu.org/licenses/>.
16 */
17
18/*
19 * Modified by the CTK+ Team and others 1997-2000. See the AUTHORS
20 * file for a list of people on the CTK+ Team. See the ChangeLog
21 * files for a list of changes. These files are distributed with
22 * CTK+ at ftp://ftp.ctk.org/pub/ctk/.
23 */
24
25
26#include "config.h"
27
28#undef G_LOG_DOMAIN((gchar*) 0)
29
30#include <stdio.h>
31#include <stdlib.h>
32#include <string.h>
33#include <sys/stat.h>
34#include <math.h>
35#include <time.h>
36#ifdef HAVE_UNISTD_H1
37#include <unistd.h>
38#endif
39
40#include "ctk/ctk.h"
41#include "cdk/cdk.h"
42#include "cdk/cdkkeysyms.h"
43
44#ifdef G_OS_WIN32
45#define sleep(n) _sleep(n)
46#endif
47
48#include "test.xpm"
49
50gboolean
51file_exists (const char *filename)
52{
53 struct stat statbuf;
54
55 return stat (filename, &statbuf) == 0;
56}
57
58CtkWidget *
59shape_create_icon (CdkScreen *screen,
60 char *xpm_file,
61 gint x,
62 gint y,
63 gint px,
64 gint py,
65 gint window_type);
66
67static CtkWidget *
68build_option_menu (gchar *items[],
69 gint num_items,
70 gint history,
71 void (*func) (CtkWidget *widget, gpointer data),
72 gpointer data);
73
74/* macro, structure and variables used by tree window demos */
75#define DEFAULT_NUMBER_OF_ITEM3 3
76#define DEFAULT_RECURSION_LEVEL3 3
77
78struct {
79 GSList* selection_mode_group;
80 CtkWidget* single_button;
81 CtkWidget* browse_button;
82 CtkWidget* multiple_button;
83 CtkWidget* draw_line_button;
84 CtkWidget* view_line_button;
85 CtkWidget* no_root_item_button;
86 CtkWidget* nb_item_spinner;
87 CtkWidget* recursion_spinner;
88} sTreeSampleSelection;
89
90typedef struct sTreeButtons {
91 guint nb_item_add;
92 CtkWidget* add_button;
93 CtkWidget* remove_button;
94 CtkWidget* subtree_button;
95} sTreeButtons;
96/* end of tree section */
97
98static CtkWidget *
99build_option_menu (gchar *items[],
100 gint num_items,
101 gint history,
102 void (*func)(CtkWidget *widget, gpointer data),
103 gpointer data)
104{
105 CtkWidget *omenu;
106 gint i;
107
108 omenu = ctk_combo_box_text_new ();
109 g_signal_connect (omenu, "changed",g_signal_connect_data ((omenu), ("changed"), (((GCallback) (func
))), (data), ((void*)0), (GConnectFlags) 0)
110 G_CALLBACK (func), data)g_signal_connect_data ((omenu), ("changed"), (((GCallback) (func
))), (data), ((void*)0), (GConnectFlags) 0)
;
111
112 for (i = 0; i < num_items; i++)
113 ctk_combo_box_text_append_text (CTK_COMBO_BOX_TEXT (omenu)((((CtkComboBoxText*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((omenu)), ((ctk_combo_box_text_get_type ()))))))
, items[i]);
114
115 ctk_combo_box_set_active (CTK_COMBO_BOX (omenu)((((CtkComboBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((omenu)), ((ctk_combo_box_get_type ()))))))
, history);
116
117 return omenu;
118}
119
120/*
121 * Windows with an alpha channel
122 */
123
124
125static gboolean
126on_alpha_window_draw (CtkWidget *widget,
127 cairo_t *cr)
128{
129 cairo_pattern_t *pattern;
130 int radius, width, height;
131
132 /* Get the child allocation to avoid painting over the borders */
133 CtkWidget *child = ctk_bin_get_child (CTK_BIN (widget)((((CtkBin*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((widget)), ((ctk_bin_get_type ()))))))
);
134 CtkAllocation child_allocation;
135 int border_width = ctk_container_get_border_width (CTK_CONTAINER (child)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((child)), ((ctk_container_get_type ()))))))
);
136
137 ctk_widget_get_allocation (child, &child_allocation);
138 child_allocation.x -= border_width;
139 child_allocation.y -= border_width;
140 child_allocation.width += 2 * border_width;
141 child_allocation.height += 2 * border_width;
142
143 cairo_translate (cr, child_allocation.x, child_allocation.y);
144
145 cairo_rectangle (cr, 0, 0, child_allocation.width, child_allocation.height);
146 cairo_clip (cr);
147
148 width = ctk_widget_get_allocated_width (widget);
149 height = ctk_widget_get_allocated_height (widget);
150 radius = MIN (width, height)(((width) < (height)) ? (width) : (height)) / 2;
151 pattern = cairo_pattern_create_radial (width / 2,
152 height / 2,
153 0.0,
154 width / 2,
155 height / 2,
156 radius * 1.33);
157
158 if (cdk_screen_get_rgba_visual (ctk_widget_get_screen (widget)) &&
159 ctk_widget_is_composited (widget))
160 cairo_set_source_rgba (cr, 1.0, 1.0, 1.0, 0.0); /* transparent */
161 else
162 cairo_set_source_rgb (cr, 1.0, 1.0, 1.0); /* opaque white */
163
164 cairo_set_operator (cr, CAIRO_OPERATOR_SOURCE);
165 cairo_paint (cr);
166
167 cairo_pattern_add_color_stop_rgba (pattern, 0.0,
168 1.0, 0.75, 0.0, 1.0); /* solid orange */
169 cairo_pattern_add_color_stop_rgba (pattern, 1.0,
170 1.0, 0.75, 0.0, 0.0); /* transparent orange */
171
172 cairo_set_source (cr, pattern);
173 cairo_pattern_destroy (pattern);
174
175 cairo_set_operator (cr, CAIRO_OPERATOR_OVER);
176 cairo_paint (cr);
177
178 return FALSE(0);
179}
180
181static CtkWidget *
182build_alpha_widgets (void)
183{
184 CtkWidget *grid;
185 CtkWidget *radio_button;
186 CtkWidget *check_button;
187 CtkWidget *hbox;
188 CtkWidget *label;
189 CtkWidget *entry;
190
191 grid = ctk_grid_new ();
192
193 radio_button = ctk_radio_button_new_with_label (NULL((void*)0), "Red");
194 ctk_widget_set_hexpand (radio_button, TRUE(!(0)));
195 ctk_grid_attach (CTK_GRID (grid)((((CtkGrid*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((grid)), ((ctk_grid_get_type ()))))))
, radio_button, 0, 0, 1, 1);
196
197 radio_button = ctk_radio_button_new_with_label_from_widget (CTK_RADIO_BUTTON (radio_button)((((CtkRadioButton*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((radio_button)), ((ctk_radio_button_get_type ()))))))
, "Green");
198 ctk_widget_set_hexpand (radio_button, TRUE(!(0)));
199 ctk_grid_attach (CTK_GRID (grid)((((CtkGrid*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((grid)), ((ctk_grid_get_type ()))))))
, radio_button, 0, 1, 1, 1);
200
201 radio_button = ctk_radio_button_new_with_label_from_widget (CTK_RADIO_BUTTON (radio_button)((((CtkRadioButton*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((radio_button)), ((ctk_radio_button_get_type ()))))))
, "Blue"),
202 ctk_widget_set_hexpand (radio_button, TRUE(!(0)));
203 ctk_grid_attach (CTK_GRID (grid)((((CtkGrid*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((grid)), ((ctk_grid_get_type ()))))))
, radio_button, 0, 2, 1, 1);
204
205 check_button = ctk_check_button_new_with_label ("Sedentary"),
206 ctk_widget_set_hexpand (check_button, TRUE(!(0)));
207 ctk_grid_attach (CTK_GRID (grid)((((CtkGrid*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((grid)), ((ctk_grid_get_type ()))))))
, check_button, 1, 0, 1, 1);
208
209 check_button = ctk_check_button_new_with_label ("Nocturnal"),
210 ctk_widget_set_hexpand (check_button, TRUE(!(0)));
211 ctk_grid_attach (CTK_GRID (grid)((((CtkGrid*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((grid)), ((ctk_grid_get_type ()))))))
, check_button, 1, 1, 1, 1);
212
213 check_button = ctk_check_button_new_with_label ("Compulsive"),
214 ctk_widget_set_hexpand (check_button, TRUE(!(0)));
215 ctk_grid_attach (CTK_GRID (grid)((((CtkGrid*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((grid)), ((ctk_grid_get_type ()))))))
, check_button, 1, 2, 1, 1);
216
217 hbox = ctk_box_new (CTK_ORIENTATION_HORIZONTAL, 0);
218 label = ctk_label_new (NULL((void*)0));
219 ctk_label_set_markup (CTK_LABEL (label)((((CtkLabel*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((label)), ((ctk_label_get_type ()))))))
, "<i>Entry: </i>");
220 ctk_box_pack_start (CTK_BOX (hbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hbox)), ((ctk_box_get_type ()))))))
, label, FALSE(0), FALSE(0), 0);
221 entry = ctk_entry_new ();
222 ctk_box_pack_start (CTK_BOX (hbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hbox)), ((ctk_box_get_type ()))))))
, entry, TRUE(!(0)), TRUE(!(0)), 0);
223 ctk_widget_set_hexpand (hbox, TRUE(!(0)));
224 ctk_grid_attach (CTK_GRID (grid)((((CtkGrid*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((grid)), ((ctk_grid_get_type ()))))))
, hbox, 0, 3, 2, 1);
225
226 return grid;
227}
228
229static void
230on_alpha_screen_changed (CtkWindow *window,
231 CdkScreen *old_screen,
232 CtkWidget *label)
233{
234 CdkScreen *screen = ctk_widget_get_screen (CTK_WIDGET (window)((((CtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_widget_get_type ()))))))
);
235 CdkVisual *visual = cdk_screen_get_rgba_visual (screen);
236
237 if (!visual)
238 {
239 visual = cdk_screen_get_system_visual (screen);
240 ctk_label_set_markup (CTK_LABEL (label)((((CtkLabel*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((label)), ((ctk_label_get_type ()))))))
, "<b>Screen doesn't support alpha</b>");
241 }
242 else
243 {
244 ctk_label_set_markup (CTK_LABEL (label)((((CtkLabel*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((label)), ((ctk_label_get_type ()))))))
, "<b>Screen supports alpha</b>");
245 }
246
247 ctk_widget_set_visual (CTK_WIDGET (window)((((CtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_widget_get_type ()))))))
, visual);
248}
249
250static void
251on_composited_changed (CtkWidget *window,
252 CtkLabel *label)
253{
254 gboolean is_composited = ctk_widget_is_composited (window);
255
256 if (is_composited)
257 ctk_label_set_text (label, "Composited");
258 else
259 ctk_label_set_text (label, "Not composited");
260}
261
262void
263create_alpha_window (CtkWidget *widget)
264{
265 static CtkWidget *window;
266
267 if (!window)
268 {
269 CtkWidget *content_area;
270 CtkWidget *vbox;
271 CtkWidget *label;
272
273 window = ctk_dialog_new_with_buttons ("Alpha Window",
274 CTK_WINDOW (ctk_widget_get_toplevel (widget))((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((ctk_widget_get_toplevel (widget))), ((ctk_window_get_type
()))))))
, 0,
275 "_Close", 0,
276 NULL((void*)0));
277
278 ctk_widget_set_app_paintable (window, TRUE(!(0)));
279 g_signal_connect (window, "draw",g_signal_connect_data ((window), ("draw"), (((GCallback) (on_alpha_window_draw
))), (((void*)0)), ((void*)0), (GConnectFlags) 0)
280 G_CALLBACK (on_alpha_window_draw), NULL)g_signal_connect_data ((window), ("draw"), (((GCallback) (on_alpha_window_draw
))), (((void*)0)), ((void*)0), (GConnectFlags) 0)
;
281
282 content_area = ctk_dialog_get_content_area (CTK_DIALOG (window)((((CtkDialog*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_dialog_get_type ()))))))
);
283
284 vbox = ctk_box_new (CTK_ORIENTATION_VERTICAL, 8);
285 ctk_container_set_border_width (CTK_CONTAINER (vbox)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_container_get_type ()))))))
, 12);
286 ctk_box_pack_start (CTK_BOX (content_area)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((content_area)), ((ctk_box_get_type ()))))))
, vbox,
287 TRUE(!(0)), TRUE(!(0)), 0);
288
289 label = ctk_label_new (NULL((void*)0));
290 ctk_box_pack_start (CTK_BOX (vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_box_get_type ()))))))
, label, TRUE(!(0)), TRUE(!(0)), 0);
291 on_alpha_screen_changed (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
, NULL((void*)0), label);
292 g_signal_connect (window, "screen-changed",g_signal_connect_data ((window), ("screen-changed"), (((GCallback
) (on_alpha_screen_changed))), (label), ((void*)0), (GConnectFlags
) 0)
293 G_CALLBACK (on_alpha_screen_changed), label)g_signal_connect_data ((window), ("screen-changed"), (((GCallback
) (on_alpha_screen_changed))), (label), ((void*)0), (GConnectFlags
) 0)
;
294
295 label = ctk_label_new (NULL((void*)0));
296 ctk_box_pack_start (CTK_BOX (vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_box_get_type ()))))))
, label, TRUE(!(0)), TRUE(!(0)), 0);
297 on_composited_changed (window, CTK_LABEL (label)((((CtkLabel*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((label)), ((ctk_label_get_type ()))))))
);
298 g_signal_connect (window, "composited_changed", G_CALLBACK (on_composited_changed), label)g_signal_connect_data ((window), ("composited_changed"), (((GCallback
) (on_composited_changed))), (label), ((void*)0), (GConnectFlags
) 0)
;
299
300 ctk_box_pack_start (CTK_BOX (vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_box_get_type ()))))))
, build_alpha_widgets (), TRUE(!(0)), TRUE(!(0)), 0);
301
302 g_signal_connect (window, "destroy",g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
303 G_CALLBACK (ctk_widget_destroyed),g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
304 &window)g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
;
305
306 g_signal_connect (window, "response",g_signal_connect_data ((window), ("response"), (((GCallback) (
ctk_widget_destroy))), (((void*)0)), ((void*)0), (GConnectFlags
) 0)
307 G_CALLBACK (ctk_widget_destroy),g_signal_connect_data ((window), ("response"), (((GCallback) (
ctk_widget_destroy))), (((void*)0)), ((void*)0), (GConnectFlags
) 0)
308 NULL)g_signal_connect_data ((window), ("response"), (((GCallback) (
ctk_widget_destroy))), (((void*)0)), ((void*)0), (GConnectFlags
) 0)
;
309 }
310
311 if (!ctk_widget_get_visible (window))
312 ctk_widget_show_all (window);
313 else
314 ctk_widget_destroy (window);
315}
316
317/*
318 * Composited non-toplevel window
319 */
320
321/* The draw event handler for the event box.
322 *
323 * This function simply draws a transparency onto a widget on the area
324 * for which it receives expose events. This is intended to give the
325 * event box a "transparent" background.
326 *
327 * In order for this to work properly, the widget must have an RGBA
328 * colourmap. The widget should also be set as app-paintable since it
329 * doesn't make sense for CTK to draw a background if we are drawing it
330 * (and because CTK might actually replace our transparency with its
331 * default background colour).
332 */
333static gboolean
334transparent_draw (CtkWidget *widget,
335 cairo_t *cr)
336{
337 cairo_set_operator (cr, CAIRO_OPERATOR_CLEAR);
338 cairo_paint (cr);
339
340 return FALSE(0);
341}
342
343/* The expose event handler for the window.
344 *
345 * This function performs the actual compositing of the event box onto
346 * the already-existing background of the window at 50% normal opacity.
347 *
348 * In this case we do not want app-paintable to be set on the widget
349 * since we want it to draw its own (red) background. Because of this,
350 * however, we must ensure that we use g_signal_register_after so that
351 * this handler is called after the red has been drawn. If it was
352 * called before then CTK would just blindly paint over our work.
353 */
354static gboolean
355window_draw (CtkWidget *widget,
356 cairo_t *cr)
357{
358 CtkAllocation allocation;
359 CtkWidget *child;
360
361 /* put a red background on the window */
362 cairo_set_source_rgb (cr, 1, 0, 0);
363 cairo_paint (cr);
364
365 /* get our child (in this case, the event box) */
366 child = ctk_bin_get_child (CTK_BIN (widget)((((CtkBin*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((widget)), ((ctk_bin_get_type ()))))))
);
367
368 ctk_widget_get_allocation (child, &allocation);
369
370 /* the source data is the (composited) event box */
371 cdk_cairo_set_source_window (cr, ctk_widget_get_window (child),
372 allocation.x,
373 allocation.y);
374
375 /* composite, with a 50% opacity */
376 cairo_paint_with_alpha (cr, 0.5);
377
378 return FALSE(0);
379}
380
381void
382create_composited_window (CtkWidget *widget)
383{
384 static CtkWidget *window;
385
386 if (!window)
387 {
388 CtkWidget *event, *button;
389
390 /* make the widgets */
391 button = ctk_button_new_with_label ("A Button");
392 event = ctk_event_box_new ();
393 window = ctk_window_new (CTK_WINDOW_TOPLEVEL);
394
395 g_signal_connect (window, "destroy",g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
396 G_CALLBACK (ctk_widget_destroyed),g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
397 &window)g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
;
398
399 /* set our event box to have a fully-transparent background
400 * drawn on it. currently there is no way to simply tell ctk
401 * that "transparency" is the background colour for a widget.
402 */
403 ctk_widget_set_app_paintable (CTK_WIDGET (event)((((CtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((event)), ((ctk_widget_get_type ()))))))
, TRUE(!(0)));
404 g_signal_connect (event, "draw",g_signal_connect_data ((event), ("draw"), (((GCallback) (transparent_draw
))), (((void*)0)), ((void*)0), (GConnectFlags) 0)
405 G_CALLBACK (transparent_draw), NULL)g_signal_connect_data ((event), ("draw"), (((GCallback) (transparent_draw
))), (((void*)0)), ((void*)0), (GConnectFlags) 0)
;
406
407 /* put them inside one another */
408 ctk_container_set_border_width (CTK_CONTAINER (window)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_container_get_type ()))))))
, 10);
409 ctk_container_add (CTK_CONTAINER (window)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_container_get_type ()))))))
, event);
410 ctk_container_add (CTK_CONTAINER (event)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((event)), ((ctk_container_get_type ()))))))
, button);
411
412 /* realise and show everything */
413 ctk_widget_realize (button);
414
415 /* set the event box CdkWindow to be composited.
416 * obviously must be performed after event box is realised.
417 */
418 cdk_window_set_composited (ctk_widget_get_window (event),
419 TRUE(!(0)));
420
421 /* set up the compositing handler.
422 * note that we do _after so that the normal (red) background is drawn
423 * by ctk before our compositing occurs.
424 */
425 g_signal_connect_after (window, "draw",g_signal_connect_data ((window), ("draw"), (((GCallback) (window_draw
))), (((void*)0)), ((void*)0), G_CONNECT_AFTER)
426 G_CALLBACK (window_draw), NULL)g_signal_connect_data ((window), ("draw"), (((GCallback) (window_draw
))), (((void*)0)), ((void*)0), G_CONNECT_AFTER)
;
427 }
428
429 if (!ctk_widget_get_visible (window))
430 ctk_widget_show_all (window);
431 else
432 ctk_widget_destroy (window);
433}
434
435/*
436 * Big windows and guffaw scrolling
437 */
438
439static void
440pattern_set_bg (CtkWidget *widget,
441 CdkWindow *child,
442 gint level)
443{
444 static CdkRGBA colors[] = {
445 { 0.27, 0.27, 1.0, 1.0 },
446 { 0.53, 0.53, 1.0, 1.0},
447 { 0.67, 0.67, 1.0, 1.0 }
448 };
449
450 cdk_window_set_user_data (child, widget);
451 cdk_window_set_background_rgba (child, &colors[level]);
452}
453
454static void
455create_pattern (CtkWidget *widget,
456 CdkWindow *parent,
457 gint level,
458 gint width,
459 gint height)
460{
461 gint h = 1;
462 gint i = 0;
463
464 CdkWindow *child;
465
466 while (2 * h <= height)
467 {
468 gint w = 1;
469 gint j = 0;
470
471 while (2 * w <= width)
472 {
473 if ((i + j) % 2 == 0)
474 {
475 gint x = w - 1;
476 gint y = h - 1;
477
478 CdkWindowAttr attributes;
479
480 attributes.window_type = CDK_WINDOW_CHILD;
481 attributes.x = x;
482 attributes.y = y;
483 attributes.width = w;
484 attributes.height = h;
485 attributes.wclass = CDK_INPUT_OUTPUT;
486 attributes.event_mask = CDK_EXPOSURE_MASK;
487 attributes.visual = ctk_widget_get_visual (widget);
488
489 child = cdk_window_new (parent, &attributes,
490 CDK_WA_X | CDK_WA_Y | CDK_WA_VISUAL);
491
492 pattern_set_bg (widget, child, level);
493
494 if (level < 2)
495 create_pattern (widget, child, level + 1, w, h);
496
497 cdk_window_show (child);
498 }
499 j++;
500 w *= 2;
501 }
502 i++;
503 h *= 2;
504 }
505}
506
507#define PATTERN_SIZE(1 << 18) (1 << 18)
508
509static void
510pattern_hadj_changed (CtkAdjustment *adjustment,
511 CtkWidget *darea)
512{
513 gint *old_value = g_object_get_data (G_OBJECT (adjustment)((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((adjustment)), (((GType) ((20) << (2))))))))
, "old-value");
514 gint new_value = ctk_adjustment_get_value (adjustment);
515
516 if (ctk_widget_get_realized (darea))
517 {
518 cdk_window_scroll (ctk_widget_get_window (darea),
519 *old_value - new_value, 0);
520 *old_value = new_value;
521 }
522}
523
524static void
525pattern_vadj_changed (CtkAdjustment *adjustment,
526 CtkWidget *darea)
527{
528 gint *old_value = g_object_get_data (G_OBJECT (adjustment)((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((adjustment)), (((GType) ((20) << (2))))))))
, "old-value");
529 gint new_value = ctk_adjustment_get_value (adjustment);
530
531 if (ctk_widget_get_realized (darea))
532 {
533 cdk_window_scroll (ctk_widget_get_window (darea),
534 0, *old_value - new_value);
535 *old_value = new_value;
536 }
537}
538
539static void
540pattern_realize (CtkWidget *widget,
541 gpointer data)
542{
543 CdkWindow *window;
544
545 window = ctk_widget_get_window (widget);
546 pattern_set_bg (widget, window, 0);
547 create_pattern (widget, window, 1, PATTERN_SIZE(1 << 18), PATTERN_SIZE(1 << 18));
548}
549
550static void
551create_big_windows (CtkWidget *widget)
552{
553 static CtkWidget *window = NULL((void*)0);
554
555 if (!window)
556 {
557 CtkWidget *content_area;
558 CtkWidget *darea, *grid, *scrollbar;
559 CtkWidget *eventbox;
560 CtkAdjustment *hadjustment;
561 CtkAdjustment *vadjustment;
562 static gint current_x;
563 static gint current_y;
564
565 current_x = 0;
566 current_y = 0;
567
568 window = ctk_dialog_new_with_buttons ("Big Windows",
569 NULL((void*)0), 0,
570 "_Close",
571 CTK_RESPONSE_NONE,
572 NULL((void*)0));
573
574 ctk_window_set_screen (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
,
575 ctk_widget_get_screen (widget));
576
577 ctk_window_set_default_size (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
, 200, 300);
578
579 g_signal_connect (window, "destroy",g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
580 G_CALLBACK (ctk_widget_destroyed),g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
581 &window)g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
;
582
583 g_signal_connect (window, "response",g_signal_connect_data ((window), ("response"), (((GCallback) (
ctk_widget_destroy))), (((void*)0)), ((void*)0), (GConnectFlags
) 0)
584 G_CALLBACK (ctk_widget_destroy),g_signal_connect_data ((window), ("response"), (((GCallback) (
ctk_widget_destroy))), (((void*)0)), ((void*)0), (GConnectFlags
) 0)
585 NULL)g_signal_connect_data ((window), ("response"), (((GCallback) (
ctk_widget_destroy))), (((void*)0)), ((void*)0), (GConnectFlags
) 0)
;
586
587 content_area = ctk_dialog_get_content_area (CTK_DIALOG (window)((((CtkDialog*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_dialog_get_type ()))))))
);
588
589 grid = ctk_grid_new ();
590 ctk_box_pack_start (CTK_BOX (content_area)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((content_area)), ((ctk_box_get_type ()))))))
, grid, TRUE(!(0)), TRUE(!(0)), 0);
591
592 darea = ctk_drawing_area_new ();
593
594 hadjustment = ctk_adjustment_new (0, 0, PATTERN_SIZE(1 << 18), 10, 100, 100);
595 g_signal_connect (hadjustment, "value_changed",g_signal_connect_data ((hadjustment), ("value_changed"), (((GCallback
) (pattern_hadj_changed))), (darea), ((void*)0), (GConnectFlags
) 0)
596 G_CALLBACK (pattern_hadj_changed), darea)g_signal_connect_data ((hadjustment), ("value_changed"), (((GCallback
) (pattern_hadj_changed))), (darea), ((void*)0), (GConnectFlags
) 0)
;
597 g_object_set_data (G_OBJECT (hadjustment)((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hadjustment)), (((GType) ((20) << (2))))))))
, "old-value", &current_x);
598
599 vadjustment = ctk_adjustment_new (0, 0, PATTERN_SIZE(1 << 18), 10, 100, 100);
600 g_signal_connect (vadjustment, "value_changed",g_signal_connect_data ((vadjustment), ("value_changed"), (((GCallback
) (pattern_vadj_changed))), (darea), ((void*)0), (GConnectFlags
) 0)
601 G_CALLBACK (pattern_vadj_changed), darea)g_signal_connect_data ((vadjustment), ("value_changed"), (((GCallback
) (pattern_vadj_changed))), (darea), ((void*)0), (GConnectFlags
) 0)
;
602 g_object_set_data (G_OBJECT (vadjustment)((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vadjustment)), (((GType) ((20) << (2))))))))
, "old-value", &current_y);
603
604 g_signal_connect (darea, "realize",g_signal_connect_data ((darea), ("realize"), (((GCallback) (pattern_realize
))), (((void*)0)), ((void*)0), (GConnectFlags) 0)
605 G_CALLBACK (pattern_realize),g_signal_connect_data ((darea), ("realize"), (((GCallback) (pattern_realize
))), (((void*)0)), ((void*)0), (GConnectFlags) 0)
606 NULL)g_signal_connect_data ((darea), ("realize"), (((GCallback) (pattern_realize
))), (((void*)0)), ((void*)0), (GConnectFlags) 0)
;
607
608 eventbox = ctk_event_box_new ();
609 ctk_widget_set_hexpand (eventbox, TRUE(!(0)));
610 ctk_widget_set_vexpand (eventbox, TRUE(!(0)));
611 ctk_grid_attach (CTK_GRID (grid)((((CtkGrid*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((grid)), ((ctk_grid_get_type ()))))))
, eventbox, 0, 0, 1, 1);
612
613 ctk_container_add (CTK_CONTAINER (eventbox)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((eventbox)), ((ctk_container_get_type ()))))))
, darea);
614
615 scrollbar = ctk_scrollbar_new (CTK_ORIENTATION_HORIZONTAL, hadjustment);
616 ctk_widget_set_hexpand (scrollbar, TRUE(!(0)));
617 ctk_grid_attach (CTK_GRID (grid)((((CtkGrid*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((grid)), ((ctk_grid_get_type ()))))))
, scrollbar, 0, 1, 1, 1);
618
619 scrollbar = ctk_scrollbar_new (CTK_ORIENTATION_VERTICAL, vadjustment);
620 ctk_widget_set_vexpand (scrollbar, TRUE(!(0)));
621 ctk_grid_attach (CTK_GRID (grid)((((CtkGrid*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((grid)), ((ctk_grid_get_type ()))))))
, scrollbar, 1, 0, 1, 1);
622 }
623
624 if (!ctk_widget_get_visible (window))
625 ctk_widget_show_all (window);
626 else
627 ctk_widget_hide (window);
628}
629
630/*
631 * CtkButton
632 */
633
634static void
635button_window (CtkWidget *widget,
636 CtkWidget *button)
637{
638 if (!ctk_widget_get_visible (button))
639 ctk_widget_show (button);
640 else
641 ctk_widget_hide (button);
642}
643
644static void
645create_buttons (CtkWidget *widget)
646{
647 static CtkWidget *window = NULL((void*)0);
648
649 if (!window)
650 {
651 CtkWidget *box1;
652 CtkWidget *box2;
653 CtkWidget *grid;
654 CtkWidget *separator;
655 CtkWidget *button[10];
656 int button_x[9] = { 0, 1, 2, 0, 2, 1, 1, 2, 0 };
657 int button_y[9] = { 0, 1, 2, 2, 0, 2, 0, 1, 1 };
658 guint i;
659
660 window = ctk_window_new (CTK_WINDOW_TOPLEVEL);
661 ctk_window_set_screen (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
,
662 ctk_widget_get_screen (widget));
663
664 g_signal_connect (window, "destroy",g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
665 G_CALLBACK (ctk_widget_destroyed),g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
666 &window)g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
;
667
668 ctk_window_set_title (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
, "CtkButton");
669 ctk_container_set_border_width (CTK_CONTAINER (window)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_container_get_type ()))))))
, 0);
670
671 box1 = ctk_box_new (CTK_ORIENTATION_VERTICAL, 0);
672 ctk_container_add (CTK_CONTAINER (window)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_container_get_type ()))))))
, box1);
673
674 grid = ctk_grid_new ();
675 ctk_grid_set_row_spacing (CTK_GRID (grid)((((CtkGrid*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((grid)), ((ctk_grid_get_type ()))))))
, 5);
676 ctk_grid_set_column_spacing (CTK_GRID (grid)((((CtkGrid*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((grid)), ((ctk_grid_get_type ()))))))
, 5);
677 ctk_container_set_border_width (CTK_CONTAINER (grid)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((grid)), ((ctk_container_get_type ()))))))
, 10);
678 ctk_box_pack_start (CTK_BOX (box1)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box1)), ((ctk_box_get_type ()))))))
, grid, TRUE(!(0)), TRUE(!(0)), 0);
679
680 button[0] = ctk_button_new_with_label ("button1");
681 button[1] = ctk_button_new_with_mnemonic ("_button2");
682 button[2] = ctk_button_new_with_mnemonic ("_button3");
683 button[3] = ctk_button_new_from_stock (CTK_STOCK_OK((CtkStock)"ctk-ok"));
684 button[4] = ctk_button_new_with_label ("button5");
685 button[5] = ctk_button_new_with_label ("button6");
686 button[6] = ctk_button_new_with_label ("button7");
687 button[7] = ctk_button_new_from_stock (CTK_STOCK_CLOSE((CtkStock)"ctk-close"));
688 button[8] = ctk_button_new_with_label ("button9");
689
690 for (i = 0; i < 9; i++)
691 {
692 g_signal_connect (button[i], "clicked",g_signal_connect_data ((button[i]), ("clicked"), (((GCallback
) (button_window))), (button[(i + 1) % 9]), ((void*)0), (GConnectFlags
) 0)
693 G_CALLBACK (button_window),g_signal_connect_data ((button[i]), ("clicked"), (((GCallback
) (button_window))), (button[(i + 1) % 9]), ((void*)0), (GConnectFlags
) 0)
694 button[(i + 1) % 9])g_signal_connect_data ((button[i]), ("clicked"), (((GCallback
) (button_window))), (button[(i + 1) % 9]), ((void*)0), (GConnectFlags
) 0)
;
695 ctk_widget_set_hexpand (button[i], TRUE(!(0)));
696 ctk_widget_set_vexpand (button[i], TRUE(!(0)));
697
698 ctk_grid_attach (CTK_GRID (grid)((((CtkGrid*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((grid)), ((ctk_grid_get_type ()))))))
, button[i],
699 button_x[i], button_y[i] + 1, 1, 1);
700 }
701
702 separator = ctk_separator_new (CTK_ORIENTATION_HORIZONTAL);
703 ctk_box_pack_start (CTK_BOX (box1)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box1)), ((ctk_box_get_type ()))))))
, separator, FALSE(0), TRUE(!(0)), 0);
704
705 box2 = ctk_box_new (CTK_ORIENTATION_VERTICAL, 10);
706 ctk_container_set_border_width (CTK_CONTAINER (box2)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_container_get_type ()))))))
, 10);
707 ctk_box_pack_start (CTK_BOX (box1)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box1)), ((ctk_box_get_type ()))))))
, box2, FALSE(0), TRUE(!(0)), 0);
708
709 button[9] = ctk_button_new_with_label ("close");
710 g_signal_connect_swapped (button[9], "clicked",g_signal_connect_data ((button[9]), ("clicked"), (((GCallback
) (ctk_widget_destroy))), (window), ((void*)0), G_CONNECT_SWAPPED
)
711 G_CALLBACK (ctk_widget_destroy),g_signal_connect_data ((button[9]), ("clicked"), (((GCallback
) (ctk_widget_destroy))), (window), ((void*)0), G_CONNECT_SWAPPED
)
712 window)g_signal_connect_data ((button[9]), ("clicked"), (((GCallback
) (ctk_widget_destroy))), (window), ((void*)0), G_CONNECT_SWAPPED
)
;
713 ctk_box_pack_start (CTK_BOX (box2)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_box_get_type ()))))))
, button[9], TRUE(!(0)), TRUE(!(0)), 0);
714 ctk_widget_set_can_default (button[9], TRUE(!(0)));
715 ctk_widget_grab_default (button[9]);
716 }
717
718 if (!ctk_widget_get_visible (window))
719 ctk_widget_show_all (window);
720 else
721 ctk_widget_destroy (window);
722}
723
724/*
725 * CtkToggleButton
726 */
727
728static void
729create_toggle_buttons (CtkWidget *widget)
730{
731 static CtkWidget *window = NULL((void*)0);
732
733 if (!window)
734 {
735 CtkWidget *box1;
736 CtkWidget *box2;
737 CtkWidget *button;
738 CtkWidget *separator;
739
740 window = ctk_window_new (CTK_WINDOW_TOPLEVEL);
741 ctk_window_set_screen (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
,
742 ctk_widget_get_screen (widget));
743
744 g_signal_connect (window, "destroy",g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
745 G_CALLBACK (ctk_widget_destroyed),g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
746 &window)g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
;
747
748 ctk_window_set_title (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
, "CtkToggleButton");
749 ctk_container_set_border_width (CTK_CONTAINER (window)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_container_get_type ()))))))
, 0);
750
751 box1 = ctk_box_new (CTK_ORIENTATION_VERTICAL, 0);
752 ctk_container_add (CTK_CONTAINER (window)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_container_get_type ()))))))
, box1);
753
754 box2 = ctk_box_new (CTK_ORIENTATION_VERTICAL, 10);
755 ctk_container_set_border_width (CTK_CONTAINER (box2)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_container_get_type ()))))))
, 10);
756 ctk_box_pack_start (CTK_BOX (box1)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box1)), ((ctk_box_get_type ()))))))
, box2, TRUE(!(0)), TRUE(!(0)), 0);
757
758 button = ctk_toggle_button_new_with_label ("button1");
759 ctk_box_pack_start (CTK_BOX (box2)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_box_get_type ()))))))
, button, TRUE(!(0)), TRUE(!(0)), 0);
760
761 button = ctk_toggle_button_new_with_label ("button2");
762 ctk_box_pack_start (CTK_BOX (box2)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_box_get_type ()))))))
, button, TRUE(!(0)), TRUE(!(0)), 0);
763
764 button = ctk_toggle_button_new_with_label ("button3");
765 ctk_box_pack_start (CTK_BOX (box2)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_box_get_type ()))))))
, button, TRUE(!(0)), TRUE(!(0)), 0);
766
767 button = ctk_toggle_button_new_with_label ("inconsistent");
768 ctk_toggle_button_set_inconsistent (CTK_TOGGLE_BUTTON (button)((((CtkToggleButton*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((button)), ((ctk_toggle_button_get_type ()))))))
, TRUE(!(0)));
769 ctk_box_pack_start (CTK_BOX (box2)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_box_get_type ()))))))
, button, TRUE(!(0)), TRUE(!(0)), 0);
770
771 separator = ctk_separator_new (CTK_ORIENTATION_HORIZONTAL);
772 ctk_box_pack_start (CTK_BOX (box1)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box1)), ((ctk_box_get_type ()))))))
, separator, FALSE(0), TRUE(!(0)), 0);
773
774 box2 = ctk_box_new (CTK_ORIENTATION_VERTICAL, 10);
775 ctk_container_set_border_width (CTK_CONTAINER (box2)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_container_get_type ()))))))
, 10);
776 ctk_box_pack_start (CTK_BOX (box1)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box1)), ((ctk_box_get_type ()))))))
, box2, FALSE(0), TRUE(!(0)), 0);
777
778 button = ctk_button_new_with_label ("close");
779 g_signal_connect_swapped (button, "clicked",g_signal_connect_data ((button), ("clicked"), (((GCallback) (
ctk_widget_destroy))), (window), ((void*)0), G_CONNECT_SWAPPED
)
780 G_CALLBACK (ctk_widget_destroy),g_signal_connect_data ((button), ("clicked"), (((GCallback) (
ctk_widget_destroy))), (window), ((void*)0), G_CONNECT_SWAPPED
)
781 window)g_signal_connect_data ((button), ("clicked"), (((GCallback) (
ctk_widget_destroy))), (window), ((void*)0), G_CONNECT_SWAPPED
)
;
782 ctk_box_pack_start (CTK_BOX (box2)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_box_get_type ()))))))
, button, TRUE(!(0)), TRUE(!(0)), 0);
783 ctk_widget_set_can_default (button, TRUE(!(0)));
784 ctk_widget_grab_default (button);
785 }
786
787 if (!ctk_widget_get_visible (window))
788 ctk_widget_show_all (window);
789 else
790 ctk_widget_destroy (window);
791}
792
793static CtkWidget *
794create_widget_grid (GType widget_type)
795{
796 CtkWidget *grid;
797 CtkWidget *group_widget = NULL((void*)0);
798 gint i, j;
799
800 grid = ctk_grid_new ();
801
802 for (i = 0; i < 5; i++)
803 {
804 for (j = 0; j < 5; j++)
805 {
806 CtkWidget *widget;
807 char *tmp;
808
809 if (i == 0 && j == 0)
810 {
811 widget = NULL((void*)0);
812 }
813 else if (i == 0)
814 {
815 tmp = g_strdup_printf ("%d", j);
816 widget = ctk_label_new (tmp);
817 g_free (tmp);
818 }
819 else if (j == 0)
820 {
821 tmp = g_strdup_printf ("%c", 'A' + i - 1);
822 widget = ctk_label_new (tmp);
823 g_free (tmp);
824 }
825 else
826 {
827 widget = g_object_new (widget_type, NULL((void*)0));
828
829 if (g_type_is_a (widget_type, CTK_TYPE_RADIO_BUTTON)((widget_type) == ((ctk_radio_button_get_type ())) || (g_type_is_a
) ((widget_type), ((ctk_radio_button_get_type ()))))
)
830 {
831 if (!group_widget)
832 group_widget = widget;
833 else
834 g_object_set (widget, "group", group_widget, NULL((void*)0));
835 }
836 }
837
838 if (widget)
839 ctk_grid_attach (CTK_GRID (grid)((((CtkGrid*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((grid)), ((ctk_grid_get_type ()))))))
, widget, i, j, 1, 1);
840 }
841 }
842
843 return grid;
844}
845
846/*
847 * CtkCheckButton
848 */
849
850static void
851create_check_buttons (CtkWidget *widget)
852{
853 static CtkWidget *window = NULL((void*)0);
854
855 if (!window)
856 {
857 CtkWidget *box1;
858 CtkWidget *box2;
859 CtkWidget *button;
860 CtkWidget *separator;
861 CtkWidget *table;
862
863 window = ctk_dialog_new_with_buttons ("Check Buttons",
864 NULL((void*)0), 0,
865 "_Close",
866 CTK_RESPONSE_NONE,
867 NULL((void*)0));
868
869 ctk_window_set_screen (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
,
870 ctk_widget_get_screen (widget));
871
872 g_signal_connect (window, "destroy",g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
873 G_CALLBACK (ctk_widget_destroyed),g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
874 &window)g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
;
875 g_signal_connect (window, "response",g_signal_connect_data ((window), ("response"), (((GCallback) (
ctk_widget_destroy))), (((void*)0)), ((void*)0), (GConnectFlags
) 0)
876 G_CALLBACK (ctk_widget_destroy),g_signal_connect_data ((window), ("response"), (((GCallback) (
ctk_widget_destroy))), (((void*)0)), ((void*)0), (GConnectFlags
) 0)
877 NULL)g_signal_connect_data ((window), ("response"), (((GCallback) (
ctk_widget_destroy))), (((void*)0)), ((void*)0), (GConnectFlags
) 0)
;
878
879 box1 = ctk_dialog_get_content_area (CTK_DIALOG (window)((((CtkDialog*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_dialog_get_type ()))))))
);
880
881 box2 = ctk_box_new (CTK_ORIENTATION_VERTICAL, 10);
882 ctk_container_set_border_width (CTK_CONTAINER (box2)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_container_get_type ()))))))
, 10);
883 ctk_box_pack_start (CTK_BOX (box1)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box1)), ((ctk_box_get_type ()))))))
, box2, TRUE(!(0)), TRUE(!(0)), 0);
884
885 button = ctk_check_button_new_with_mnemonic ("_button1");
886 ctk_box_pack_start (CTK_BOX (box2)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_box_get_type ()))))))
, button, TRUE(!(0)), TRUE(!(0)), 0);
887
888 button = ctk_check_button_new_with_label ("button2");
889 ctk_box_pack_start (CTK_BOX (box2)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_box_get_type ()))))))
, button, TRUE(!(0)), TRUE(!(0)), 0);
890
891 button = ctk_check_button_new_with_label ("button3");
892 ctk_box_pack_start (CTK_BOX (box2)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_box_get_type ()))))))
, button, TRUE(!(0)), TRUE(!(0)), 0);
893
894 button = ctk_check_button_new_with_label ("inconsistent");
895 ctk_toggle_button_set_inconsistent (CTK_TOGGLE_BUTTON (button)((((CtkToggleButton*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((button)), ((ctk_toggle_button_get_type ()))))))
, TRUE(!(0)));
896 ctk_box_pack_start (CTK_BOX (box2)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_box_get_type ()))))))
, button, TRUE(!(0)), TRUE(!(0)), 0);
897
898 separator = ctk_separator_new (CTK_ORIENTATION_HORIZONTAL);
899 ctk_box_pack_start (CTK_BOX (box1)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box1)), ((ctk_box_get_type ()))))))
, separator, FALSE(0), TRUE(!(0)), 0);
900
901 table = create_widget_grid (CTK_TYPE_CHECK_BUTTON(ctk_check_button_get_type ()));
902 ctk_container_set_border_width (CTK_CONTAINER (table)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((table)), ((ctk_container_get_type ()))))))
, 10);
903 ctk_box_pack_start (CTK_BOX (box1)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box1)), ((ctk_box_get_type ()))))))
, table, TRUE(!(0)), TRUE(!(0)), 0);
904 }
905
906 if (!ctk_widget_get_visible (window))
907 ctk_widget_show_all (window);
908 else
909 ctk_widget_destroy (window);
910}
911
912/*
913 * CtkRadioButton
914 */
915
916static void
917create_radio_buttons (CtkWidget *widget)
918{
919 static CtkWidget *window = NULL((void*)0);
920
921 if (!window)
922 {
923 CtkWidget *box1;
924 CtkWidget *box2;
925 CtkWidget *button;
926 CtkWidget *separator;
927 CtkWidget *table;
928
929 window = ctk_dialog_new_with_buttons ("Radio Buttons",
930 NULL((void*)0), 0,
931 "_Close",
932 CTK_RESPONSE_NONE,
933 NULL((void*)0));
934
935 ctk_window_set_screen (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
,
936 ctk_widget_get_screen (widget));
937
938 g_signal_connect (window, "destroy",g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
939 G_CALLBACK (ctk_widget_destroyed),g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
940 &window)g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
;
941 g_signal_connect (window, "response",g_signal_connect_data ((window), ("response"), (((GCallback) (
ctk_widget_destroy))), (((void*)0)), ((void*)0), (GConnectFlags
) 0)
942 G_CALLBACK (ctk_widget_destroy),g_signal_connect_data ((window), ("response"), (((GCallback) (
ctk_widget_destroy))), (((void*)0)), ((void*)0), (GConnectFlags
) 0)
943 NULL)g_signal_connect_data ((window), ("response"), (((GCallback) (
ctk_widget_destroy))), (((void*)0)), ((void*)0), (GConnectFlags
) 0)
;
944
945 box1 = ctk_dialog_get_content_area (CTK_DIALOG (window)((((CtkDialog*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_dialog_get_type ()))))))
);
946
947 box2 = ctk_box_new (CTK_ORIENTATION_VERTICAL, 10);
948 ctk_container_set_border_width (CTK_CONTAINER (box2)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_container_get_type ()))))))
, 10);
949 ctk_box_pack_start (CTK_BOX (box1)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box1)), ((ctk_box_get_type ()))))))
, box2, TRUE(!(0)), TRUE(!(0)), 0);
950
951 button = ctk_radio_button_new_with_label (NULL((void*)0), "button1");
952 ctk_box_pack_start (CTK_BOX (box2)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_box_get_type ()))))))
, button, TRUE(!(0)), TRUE(!(0)), 0);
953
954 button = ctk_radio_button_new_with_label (
955 ctk_radio_button_get_group (CTK_RADIO_BUTTON (button)((((CtkRadioButton*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((button)), ((ctk_radio_button_get_type ()))))))
),
956 "button2");
957 ctk_toggle_button_set_active (CTK_TOGGLE_BUTTON (button)((((CtkToggleButton*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((button)), ((ctk_toggle_button_get_type ()))))))
, TRUE(!(0)));
958 ctk_box_pack_start (CTK_BOX (box2)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_box_get_type ()))))))
, button, TRUE(!(0)), TRUE(!(0)), 0);
959
960 button = ctk_radio_button_new_with_label (
961 ctk_radio_button_get_group (CTK_RADIO_BUTTON (button)((((CtkRadioButton*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((button)), ((ctk_radio_button_get_type ()))))))
),
962 "button3");
963 ctk_box_pack_start (CTK_BOX (box2)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_box_get_type ()))))))
, button, TRUE(!(0)), TRUE(!(0)), 0);
964
965 button = ctk_radio_button_new_with_label (
966 ctk_radio_button_get_group (CTK_RADIO_BUTTON (button)((((CtkRadioButton*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((button)), ((ctk_radio_button_get_type ()))))))
),
967 "inconsistent");
968 ctk_toggle_button_set_inconsistent (CTK_TOGGLE_BUTTON (button)((((CtkToggleButton*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((button)), ((ctk_toggle_button_get_type ()))))))
, TRUE(!(0)));
969 ctk_box_pack_start (CTK_BOX (box2)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_box_get_type ()))))))
, button, TRUE(!(0)), TRUE(!(0)), 0);
970
971 separator = ctk_separator_new (CTK_ORIENTATION_HORIZONTAL);
972 ctk_box_pack_start (CTK_BOX (box1)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box1)), ((ctk_box_get_type ()))))))
, separator, FALSE(0), TRUE(!(0)), 0);
973
974 box2 = ctk_box_new (CTK_ORIENTATION_VERTICAL, 10);
975 ctk_container_set_border_width (CTK_CONTAINER (box2)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_container_get_type ()))))))
, 10);
976 ctk_box_pack_start (CTK_BOX (box1)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box1)), ((ctk_box_get_type ()))))))
, box2, TRUE(!(0)), TRUE(!(0)), 0);
977
978 button = ctk_radio_button_new_with_label (NULL((void*)0), "button4");
979 ctk_toggle_button_set_mode (CTK_TOGGLE_BUTTON (button)((((CtkToggleButton*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((button)), ((ctk_toggle_button_get_type ()))))))
, FALSE(0));
980 ctk_box_pack_start (CTK_BOX (box2)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_box_get_type ()))))))
, button, TRUE(!(0)), TRUE(!(0)), 0);
981
982 button = ctk_radio_button_new_with_label (
983 ctk_radio_button_get_group (CTK_RADIO_BUTTON (button)((((CtkRadioButton*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((button)), ((ctk_radio_button_get_type ()))))))
),
984 "button5");
985 ctk_toggle_button_set_active (CTK_TOGGLE_BUTTON (button)((((CtkToggleButton*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((button)), ((ctk_toggle_button_get_type ()))))))
, TRUE(!(0)));
986 ctk_toggle_button_set_mode (CTK_TOGGLE_BUTTON (button)((((CtkToggleButton*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((button)), ((ctk_toggle_button_get_type ()))))))
, FALSE(0));
987 ctk_box_pack_start (CTK_BOX (box2)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_box_get_type ()))))))
, button, TRUE(!(0)), TRUE(!(0)), 0);
988
989 button = ctk_radio_button_new_with_label (
990 ctk_radio_button_get_group (CTK_RADIO_BUTTON (button)((((CtkRadioButton*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((button)), ((ctk_radio_button_get_type ()))))))
),
991 "button6");
992 ctk_toggle_button_set_mode (CTK_TOGGLE_BUTTON (button)((((CtkToggleButton*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((button)), ((ctk_toggle_button_get_type ()))))))
, FALSE(0));
993 ctk_box_pack_start (CTK_BOX (box2)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_box_get_type ()))))))
, button, TRUE(!(0)), TRUE(!(0)), 0);
994
995 separator = ctk_separator_new (CTK_ORIENTATION_HORIZONTAL);
996 ctk_box_pack_start (CTK_BOX (box1)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box1)), ((ctk_box_get_type ()))))))
, separator, FALSE(0), TRUE(!(0)), 0);
997
998 table = create_widget_grid (CTK_TYPE_RADIO_BUTTON(ctk_radio_button_get_type ()));
999 ctk_container_set_border_width (CTK_CONTAINER (table)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((table)), ((ctk_container_get_type ()))))))
, 10);
1000 ctk_box_pack_start (CTK_BOX (box1)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box1)), ((ctk_box_get_type ()))))))
, table, TRUE(!(0)), TRUE(!(0)), 0);
1001 }
1002
1003 if (!ctk_widget_get_visible (window))
1004 ctk_widget_show_all (window);
1005 else
1006 ctk_widget_destroy (window);
1007}
1008
1009/*
1010 * CtkButtonBox
1011 */
1012
1013static CtkWidget *
1014create_bbox (gint horizontal,
1015 char* title,
1016 gint spacing,
1017 gint child_w,
1018 gint child_h,
1019 gint layout)
1020{
1021 CtkWidget *frame;
1022 CtkWidget *bbox;
1023 CtkWidget *button;
1024
1025 frame = ctk_frame_new (title);
1026
1027 if (horizontal)
1028 bbox = ctk_button_box_new (CTK_ORIENTATION_HORIZONTAL);
1029 else
1030 bbox = ctk_button_box_new (CTK_ORIENTATION_VERTICAL);
1031
1032 ctk_container_set_border_width (CTK_CONTAINER (bbox)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((bbox)), ((ctk_container_get_type ()))))))
, 5);
1033 ctk_container_add (CTK_CONTAINER (frame)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((frame)), ((ctk_container_get_type ()))))))
, bbox);
1034
1035 ctk_button_box_set_layout (CTK_BUTTON_BOX (bbox)((((CtkButtonBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((bbox)), ((ctk_button_box_get_type ()))))))
, layout);
1036 ctk_box_set_spacing (CTK_BOX (bbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((bbox)), ((ctk_box_get_type ()))))))
, spacing);
1037
1038 button = ctk_button_new_with_label ("OK");
1039 ctk_container_add (CTK_CONTAINER (bbox)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((bbox)), ((ctk_container_get_type ()))))))
, button);
1040
1041 button = ctk_button_new_with_label ("Cancel");
1042 ctk_container_add (CTK_CONTAINER (bbox)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((bbox)), ((ctk_container_get_type ()))))))
, button);
1043
1044 button = ctk_button_new_with_label ("Help");
1045 ctk_container_add (CTK_CONTAINER (bbox)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((bbox)), ((ctk_container_get_type ()))))))
, button);
1046
1047 return frame;
1048}
1049
1050static void
1051create_button_box (CtkWidget *widget)
1052{
1053 static CtkWidget* window = NULL((void*)0);
1054
1055 if (!window)
1056 {
1057 CtkWidget *main_vbox;
1058 CtkWidget *vbox;
1059 CtkWidget *hbox;
1060 CtkWidget *frame_horz;
1061 CtkWidget *frame_vert;
1062
1063 window = ctk_window_new (CTK_WINDOW_TOPLEVEL);
1064 ctk_window_set_screen (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
, ctk_widget_get_screen (widget));
1065 ctk_window_set_title (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
, "Button Boxes");
1066
1067 g_signal_connect (window, "destroy",g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
1068 G_CALLBACK (ctk_widget_destroyed),g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
1069 &window)g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
;
1070
1071 ctk_container_set_border_width (CTK_CONTAINER (window)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_container_get_type ()))))))
, 10);
1072
1073 main_vbox = ctk_box_new (CTK_ORIENTATION_VERTICAL, 0);
1074 ctk_container_add (CTK_CONTAINER (window)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_container_get_type ()))))))
, main_vbox);
1075
1076 frame_horz = ctk_frame_new ("Horizontal Button Boxes");
1077 ctk_box_pack_start (CTK_BOX (main_vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((main_vbox)), ((ctk_box_get_type ()))))))
, frame_horz, TRUE(!(0)), TRUE(!(0)), 10);
1078
1079 vbox = ctk_box_new (CTK_ORIENTATION_VERTICAL, 0);
1080 ctk_container_set_border_width (CTK_CONTAINER (vbox)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_container_get_type ()))))))
, 10);
1081 ctk_container_add (CTK_CONTAINER (frame_horz)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((frame_horz)), ((ctk_container_get_type ()))))))
, vbox);
1082
1083 ctk_box_pack_start (CTK_BOX (vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_box_get_type ()))))))
,
1084 create_bbox (TRUE(!(0)), "Spread", 40, 85, 20, CTK_BUTTONBOX_SPREAD),
1085 TRUE(!(0)), TRUE(!(0)), 0);
1086
1087 ctk_box_pack_start (CTK_BOX (vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_box_get_type ()))))))
,
1088 create_bbox (TRUE(!(0)), "Edge", 40, 85, 20, CTK_BUTTONBOX_EDGE),
1089 TRUE(!(0)), TRUE(!(0)), 5);
1090
1091 ctk_box_pack_start (CTK_BOX (vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_box_get_type ()))))))
,
1092 create_bbox (TRUE(!(0)), "Start", 40, 85, 20, CTK_BUTTONBOX_START),
1093 TRUE(!(0)), TRUE(!(0)), 5);
1094
1095 ctk_box_pack_start (CTK_BOX (vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_box_get_type ()))))))
,
1096 create_bbox (TRUE(!(0)), "End", 40, 85, 20, CTK_BUTTONBOX_END),
1097 TRUE(!(0)), TRUE(!(0)), 5);
1098
1099 ctk_box_pack_start (CTK_BOX (vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_box_get_type ()))))))
,
1100 create_bbox (TRUE(!(0)), "Center", 40, 85, 20, CTK_BUTTONBOX_CENTER),
1101 TRUE(!(0)), TRUE(!(0)), 5);
1102
1103 frame_vert = ctk_frame_new ("Vertical Button Boxes");
1104 ctk_box_pack_start (CTK_BOX (main_vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((main_vbox)), ((ctk_box_get_type ()))))))
, frame_vert, TRUE(!(0)), TRUE(!(0)), 10);
1105
1106 hbox = ctk_box_new (CTK_ORIENTATION_HORIZONTAL, 0);
1107 ctk_container_set_border_width (CTK_CONTAINER (hbox)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hbox)), ((ctk_container_get_type ()))))))
, 10);
1108 ctk_container_add (CTK_CONTAINER (frame_vert)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((frame_vert)), ((ctk_container_get_type ()))))))
, hbox);
1109
1110 ctk_box_pack_start (CTK_BOX (hbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hbox)), ((ctk_box_get_type ()))))))
,
1111 create_bbox (FALSE(0), "Spread", 30, 85, 20, CTK_BUTTONBOX_SPREAD),
1112 TRUE(!(0)), TRUE(!(0)), 0);
1113
1114 ctk_box_pack_start (CTK_BOX (hbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hbox)), ((ctk_box_get_type ()))))))
,
1115 create_bbox (FALSE(0), "Edge", 30, 85, 20, CTK_BUTTONBOX_EDGE),
1116 TRUE(!(0)), TRUE(!(0)), 5);
1117
1118 ctk_box_pack_start (CTK_BOX (hbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hbox)), ((ctk_box_get_type ()))))))
,
1119 create_bbox (FALSE(0), "Start", 30, 85, 20, CTK_BUTTONBOX_START),
1120 TRUE(!(0)), TRUE(!(0)), 5);
1121
1122 ctk_box_pack_start (CTK_BOX (hbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hbox)), ((ctk_box_get_type ()))))))
,
1123 create_bbox (FALSE(0), "End", 30, 85, 20, CTK_BUTTONBOX_END),
1124 TRUE(!(0)), TRUE(!(0)), 5);
1125
1126 ctk_box_pack_start (CTK_BOX (hbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hbox)), ((ctk_box_get_type ()))))))
,
1127 create_bbox (FALSE(0), "Center", 30, 85, 20, CTK_BUTTONBOX_CENTER),
1128 TRUE(!(0)), TRUE(!(0)), 5);
1129 }
1130
1131 if (!ctk_widget_get_visible (window))
1132 ctk_widget_show_all (window);
1133 else
1134 ctk_widget_destroy (window);
1135}
1136
1137/*
1138 * CtkToolBar
1139 */
1140
1141static CtkWidget*
1142new_pixbuf (char *filename,
1143 CdkWindow *window)
1144{
1145 CtkWidget *widget;
1146 GdkPixbuf *pixbuf;
1147
1148 if (strcmp (filename, "test.xpm") == 0)
1149 pixbuf = NULL((void*)0);
1150 else
1151 pixbuf = gdk_pixbuf_new_from_file (filename, NULL((void*)0));
1152
1153 if (pixbuf == NULL((void*)0))
1154 pixbuf = gdk_pixbuf_new_from_xpm_data ((const char **) openfile);
1155
1156 widget = ctk_image_new_from_pixbuf (pixbuf);
1157
1158 g_object_unref (pixbuf);
1159
1160 return widget;
1161}
1162
1163
1164static void
1165set_toolbar_small_stock (CtkWidget *widget,
1166 gpointer data)
1167{
1168 ctk_toolbar_set_icon_size (CTK_TOOLBAR (data)((((CtkToolbar*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((data)), ((ctk_toolbar_get_type ()))))))
, CTK_ICON_SIZE_SMALL_TOOLBAR);
1169}
1170
1171static void
1172set_toolbar_large_stock (CtkWidget *widget,
1173 gpointer data)
1174{
1175 ctk_toolbar_set_icon_size (CTK_TOOLBAR (data)((((CtkToolbar*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((data)), ((ctk_toolbar_get_type ()))))))
, CTK_ICON_SIZE_LARGE_TOOLBAR);
1176}
1177
1178static void
1179set_toolbar_horizontal (CtkWidget *widget,
1180 gpointer data)
1181{
1182 ctk_orientable_set_orientation (CTK_ORIENTABLE (data)((((CtkOrientable*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((data)), ((ctk_orientable_get_type ()))))))
, CTK_ORIENTATION_HORIZONTAL);
1183}
1184
1185static void
1186set_toolbar_vertical (CtkWidget *widget,
1187 gpointer data)
1188{
1189 ctk_orientable_set_orientation (CTK_ORIENTABLE (data)((((CtkOrientable*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((data)), ((ctk_orientable_get_type ()))))))
, CTK_ORIENTATION_VERTICAL);
1190}
1191
1192static void
1193set_toolbar_icons (CtkWidget *widget,
1194 gpointer data)
1195{
1196 ctk_toolbar_set_style (CTK_TOOLBAR (data)((((CtkToolbar*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((data)), ((ctk_toolbar_get_type ()))))))
, CTK_TOOLBAR_ICONS);
1197}
1198
1199static void
1200set_toolbar_text (CtkWidget *widget,
1201 gpointer data)
1202{
1203 ctk_toolbar_set_style (CTK_TOOLBAR (data)((((CtkToolbar*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((data)), ((ctk_toolbar_get_type ()))))))
, CTK_TOOLBAR_TEXT);
1204}
1205
1206static void
1207set_toolbar_both (CtkWidget *widget,
1208 gpointer data)
1209{
1210 ctk_toolbar_set_style (CTK_TOOLBAR (data)((((CtkToolbar*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((data)), ((ctk_toolbar_get_type ()))))))
, CTK_TOOLBAR_BOTH);
1211}
1212
1213static void
1214set_toolbar_both_horiz (CtkWidget *widget,
1215 gpointer data)
1216{
1217 ctk_toolbar_set_style (CTK_TOOLBAR (data)((((CtkToolbar*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((data)), ((ctk_toolbar_get_type ()))))))
, CTK_TOOLBAR_BOTH_HORIZ);
1218}
1219
1220static CtkActionEntry create_toolbar_items[] = {
1221 { .stock_id = CTK_STOCK_NEW((CtkStock)"ctk-new"), .tooltip = "Stock icon: New", .callback = G_CALLBACK (set_toolbar_small_stock)((GCallback) (set_toolbar_small_stock)) },
1222 { .stock_id = CTK_STOCK_OPEN((CtkStock)"ctk-open"), .tooltip = "Stock icon: Open", .callback = G_CALLBACK (set_toolbar_large_stock)((GCallback) (set_toolbar_large_stock)) },
1223 { .label = "Horizontal", .tooltip = "Horizontal toolbar layout", .callback = G_CALLBACK (set_toolbar_horizontal)((GCallback) (set_toolbar_horizontal)) },
1224 { .label = "Vertical", .tooltip = "Vertical toolbar layout", .callback = G_CALLBACK (set_toolbar_vertical)((GCallback) (set_toolbar_vertical)) },
1225 { NULL((void*)0) },
1226 { .label = "Icons", .tooltip = "Only show toolbar icons", .callback = G_CALLBACK (set_toolbar_icons)((GCallback) (set_toolbar_icons)) },
1227 { .label = "Text", .tooltip = "Only show toolbar text", .callback = G_CALLBACK (set_toolbar_text)((GCallback) (set_toolbar_text)) },
1228 { .label = "Both", .tooltip = "Show toolbar icons and text", .callback = G_CALLBACK (set_toolbar_both)((GCallback) (set_toolbar_both)) },
1229 { .label = "Both (horizontal)", .tooltip = "Show toolbar icons and text in a horizontal fashion", .callback = G_CALLBACK (set_toolbar_both_horiz)((GCallback) (set_toolbar_both_horiz)) },
1230 { NULL((void*)0) },
1231 { .label = "entry", .tooltip = "This is an unusable CtkEntry ;)" },
1232 { NULL((void*)0) },
1233 { NULL((void*)0) },
1234 { .label = "Frobate", .tooltip = "Frobate tooltip" },
1235 { .label = "Baz", .tooltip = "Baz tooltip" },
1236 { NULL((void*)0) },
1237 { .label = "Blah", .tooltip = "Blash tooltip" },
1238 { .label = "Bar", .tooltip = "Bar tooltip" },
1239};
1240
1241static void
1242create_toolbar (CtkWidget *widget)
1243{
1244 static CtkWidget *window = NULL((void*)0);
1245
1246 if (!window)
1247 {
1248 CtkWidget *toolbar;
1249 guint i;
1250
1251 window = ctk_window_new (CTK_WINDOW_TOPLEVEL);
1252 ctk_window_set_screen (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
,
1253 ctk_widget_get_screen (widget));
1254
1255 ctk_window_set_title (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
, "Toolbar test");
1256
1257 g_signal_connect (window, "destroy",g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
1258 G_CALLBACK (ctk_widget_destroyed),g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
1259 &window)g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
;
1260
1261 ctk_container_set_border_width (CTK_CONTAINER (window)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_container_get_type ()))))))
, 0);
1262 ctk_widget_realize (window);
1263
1264 toolbar = ctk_toolbar_new ();
1265 for (i = 0; i < G_N_ELEMENTS (create_toolbar_items)(sizeof (create_toolbar_items) / sizeof ((create_toolbar_items
)[0]))
; i++)
1266 {
1267 CtkToolItem *toolitem;
1268
1269 if (create_toolbar_items[i].tooltip == NULL((void*)0))
1270 toolitem = ctk_separator_tool_item_new ();
1271 else if (g_strcmp0 (create_toolbar_items[i].name, "entry") == 0)
1272 {
1273 CtkWidget *entry;
1274
1275 toolitem = ctk_tool_item_new ();
1276 entry = ctk_entry_new ();
1277 ctk_container_add (CTK_CONTAINER (toolitem)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((toolitem)), ((ctk_container_get_type ()))))))
, entry);
1278 }
1279 else if (create_toolbar_items[i].stock_id)
1280 {
1281 toolitem = ctk_tool_button_new_from_stock (create_toolbar_items[i].stock_id);
1282 }
1283 else
1284 {
1285 CtkWidget *icon;
1286
1287 icon = new_pixbuf ("test.xpm", ctk_widget_get_window (window));
1288 toolitem = ctk_tool_button_new (icon, create_toolbar_items[i].label);
1289 }
1290 if (create_toolbar_items[i].callback)
1291 g_signal_connect (toolitem, "clicked",g_signal_connect_data ((toolitem), ("clicked"), (create_toolbar_items
[i].callback), (toolbar), ((void*)0), (GConnectFlags) 0)
1292 create_toolbar_items[i].callback, toolbar)g_signal_connect_data ((toolitem), ("clicked"), (create_toolbar_items
[i].callback), (toolbar), ((void*)0), (GConnectFlags) 0)
;
1293 ctk_tool_item_set_tooltip_text (toolitem, create_toolbar_items[i].tooltip);
1294 ctk_toolbar_insert (CTK_TOOLBAR (toolbar)((((CtkToolbar*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((toolbar)), ((ctk_toolbar_get_type ()))))))
, toolitem, -1);
1295 }
1296
1297 ctk_container_add (CTK_CONTAINER (window)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_container_get_type ()))))))
, toolbar);
1298
1299 ctk_widget_set_size_request (toolbar, 200, -1);
1300 }
1301
1302 if (!ctk_widget_get_visible (window))
1303 ctk_widget_show_all (window);
1304 else
1305 ctk_widget_destroy (window);
1306}
1307
1308/*
1309 * CtkStatusBar
1310 */
1311
1312static guint statusbar_counter = 1;
1313
1314static void
1315statusbar_push (CtkWidget *button,
1316 CtkStatusbar *statusbar)
1317{
1318 gchar text[1024];
1319
1320 sprintf (text, "something %d", statusbar_counter++);
1321
1322 ctk_statusbar_push (statusbar, 1, text);
1323}
1324
1325static void
1326statusbar_push_long (CtkWidget *button,
1327 CtkStatusbar *statusbar)
1328{
1329 gchar text[1024];
1330
1331 sprintf (text, "Just because a system has menu choices written with English words, phrases or sentences, that is no guarantee, that it is comprehensible. Individual words may not be familiar to some users (for example, \"repaginate\"), and two menu items may appear to satisfy the users's needs, whereas only one does (for example, \"put away\" or \"eject\").");
1332
1333 ctk_statusbar_push (statusbar, 1, text);
1334}
1335
1336static void
1337statusbar_pop (CtkWidget *button,
1338 CtkStatusbar *statusbar)
1339{
1340 ctk_statusbar_pop (statusbar, 1);
1341}
1342
1343static void
1344statusbar_steal (CtkWidget *button,
1345 CtkStatusbar *statusbar)
1346{
1347 ctk_statusbar_remove (statusbar, 1, 4);
1348}
1349
1350static void
1351statusbar_popped (CtkStatusbar *statusbar,
1352 guint context_id,
1353 const gchar *text)
1354{
1355 if (!text)
1356 statusbar_counter = 1;
1357}
1358
1359static void
1360statusbar_contexts (CtkStatusbar *statusbar)
1361{
1362 gchar *string;
1363
1364 string = "any context";
1365 g_print ("CtkStatusBar: context=\"%s\", context_id=%d\n",
1366 string,
1367 ctk_statusbar_get_context_id (statusbar, string));
1368
1369 string = "idle messages";
1370 g_print ("CtkStatusBar: context=\"%s\", context_id=%d\n",
1371 string,
1372 ctk_statusbar_get_context_id (statusbar, string));
1373
1374 string = "some text";
1375 g_print ("CtkStatusBar: context=\"%s\", context_id=%d\n",
1376 string,
1377 ctk_statusbar_get_context_id (statusbar, string));
1378
1379 string = "hit the mouse";
1380 g_print ("CtkStatusBar: context=\"%s\", context_id=%d\n",
1381 string,
1382 ctk_statusbar_get_context_id (statusbar, string));
1383
1384 string = "hit the mouse2";
1385 g_print ("CtkStatusBar: context=\"%s\", context_id=%d\n",
1386 string,
1387 ctk_statusbar_get_context_id (statusbar, string));
1388}
1389
1390static void
1391create_statusbar (CtkWidget *widget)
1392{
1393 static CtkWidget *window = NULL((void*)0);
1394
1395 if (!window)
1396 {
1397 CtkWidget *box1;
1398 CtkWidget *box2;
1399 CtkWidget *button;
1400 CtkWidget *separator;
1401 CtkWidget *statusbar;
1402
1403 window = ctk_window_new (CTK_WINDOW_TOPLEVEL);
1404 ctk_window_set_screen (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
,
1405 ctk_widget_get_screen (widget));
1406
1407 g_signal_connect (window, "destroy",g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
1408 G_CALLBACK (ctk_widget_destroyed),g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
1409 &window)g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
;
1410
1411 ctk_window_set_title (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
, "statusbar");
1412 ctk_container_set_border_width (CTK_CONTAINER (window)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_container_get_type ()))))))
, 0);
1413
1414 box1 = ctk_box_new (CTK_ORIENTATION_VERTICAL, 0);
1415 ctk_container_add (CTK_CONTAINER (window)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_container_get_type ()))))))
, box1);
1416
1417 box2 = ctk_box_new (CTK_ORIENTATION_VERTICAL, 10);
1418 ctk_container_set_border_width (CTK_CONTAINER (box2)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_container_get_type ()))))))
, 10);
1419 ctk_box_pack_start (CTK_BOX (box1)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box1)), ((ctk_box_get_type ()))))))
, box2, TRUE(!(0)), TRUE(!(0)), 0);
1420
1421 statusbar = ctk_statusbar_new ();
1422 ctk_box_pack_end (CTK_BOX (box1)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box1)), ((ctk_box_get_type ()))))))
, statusbar, TRUE(!(0)), TRUE(!(0)), 0);
1423 g_signal_connect (statusbar,g_signal_connect_data ((statusbar), ("text_popped"), (((GCallback
) (statusbar_popped))), (((void*)0)), ((void*)0), (GConnectFlags
) 0)
1424 "text_popped",g_signal_connect_data ((statusbar), ("text_popped"), (((GCallback
) (statusbar_popped))), (((void*)0)), ((void*)0), (GConnectFlags
) 0)
1425 G_CALLBACK (statusbar_popped),g_signal_connect_data ((statusbar), ("text_popped"), (((GCallback
) (statusbar_popped))), (((void*)0)), ((void*)0), (GConnectFlags
) 0)
1426 NULL)g_signal_connect_data ((statusbar), ("text_popped"), (((GCallback
) (statusbar_popped))), (((void*)0)), ((void*)0), (GConnectFlags
) 0)
;
1427
1428 button = g_object_new (ctk_button_get_type (),
1429 "label", "push something",
1430 "visible", TRUE(!(0)),
1431 "parent", box2,
1432 NULL((void*)0));
1433 g_object_connect (button,
1434 "signal::clicked", statusbar_push, statusbar,
1435 NULL((void*)0));
1436
1437 button = g_object_connect (g_object_new (ctk_button_get_type (),
Value stored to 'button' is never read
1438 "label", "pop",
1439 "visible", TRUE(!(0)),
1440 "parent", box2,
1441 NULL((void*)0)),
1442 "signal_after::clicked", statusbar_pop, statusbar,
1443 NULL((void*)0));
1444
1445 button = g_object_connect (g_object_new (ctk_button_get_type (),
1446 "label", "steal #4",
1447 "visible", TRUE(!(0)),
1448 "parent", box2,
1449 NULL((void*)0)),
1450 "signal_after::clicked", statusbar_steal, statusbar,
1451 NULL((void*)0));
1452
1453 button = g_object_connect (g_object_new (ctk_button_get_type (),
1454 "label", "test contexts",
1455 "visible", TRUE(!(0)),
1456 "parent", box2,
1457 NULL((void*)0)),
1458 "swapped_signal_after::clicked", statusbar_contexts, statusbar,
1459 NULL((void*)0));
1460
1461 button = g_object_connect (g_object_new (ctk_button_get_type (),
1462 "label", "push something long",
1463 "visible", TRUE(!(0)),
1464 "parent", box2,
1465 NULL((void*)0)),
1466 "signal_after::clicked", statusbar_push_long, statusbar,
1467 NULL((void*)0));
1468
1469 separator = ctk_separator_new (CTK_ORIENTATION_HORIZONTAL);
1470 ctk_box_pack_start (CTK_BOX (box1)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box1)), ((ctk_box_get_type ()))))))
, separator, FALSE(0), TRUE(!(0)), 0);
1471
1472 box2 = ctk_box_new (CTK_ORIENTATION_VERTICAL, 10);
1473 ctk_container_set_border_width (CTK_CONTAINER (box2)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_container_get_type ()))))))
, 10);
1474 ctk_box_pack_start (CTK_BOX (box1)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box1)), ((ctk_box_get_type ()))))))
, box2, FALSE(0), TRUE(!(0)), 0);
1475
1476 button = ctk_button_new_with_label ("close");
1477 g_signal_connect_swapped (button, "clicked",g_signal_connect_data ((button), ("clicked"), (((GCallback) (
ctk_widget_destroy))), (window), ((void*)0), G_CONNECT_SWAPPED
)
1478 G_CALLBACK (ctk_widget_destroy),g_signal_connect_data ((button), ("clicked"), (((GCallback) (
ctk_widget_destroy))), (window), ((void*)0), G_CONNECT_SWAPPED
)
1479 window)g_signal_connect_data ((button), ("clicked"), (((GCallback) (
ctk_widget_destroy))), (window), ((void*)0), G_CONNECT_SWAPPED
)
;
1480 ctk_box_pack_start (CTK_BOX (box2)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_box_get_type ()))))))
, button, TRUE(!(0)), TRUE(!(0)), 0);
1481 ctk_widget_set_can_default (button, TRUE(!(0)));
1482 ctk_widget_grab_default (button);
1483 }
1484
1485 if (!ctk_widget_get_visible (window))
1486 ctk_widget_show_all (window);
1487 else
1488 ctk_widget_destroy (window);
1489}
1490
1491/* Alpha demo */
1492
1493static void
1494alpha_changed (CtkRange *range, CtkWidget *widget)
1495{
1496 gdouble alpha;
1497
1498 alpha = ctk_range_get_value (range);
1499
1500 ctk_widget_set_opacity (widget, alpha / 100.0);
1501}
1502
1503
1504void
1505create_alpha_widgets (CtkWidget *widget)
1506{
1507 static CtkWidget *window = NULL((void*)0);
1508
1509 if (!window)
1510 {
1511 CtkWidget *vbox2, *vbox, *main_hbox;
1512 CtkWidget *button, *event_box, *label, *scale;
1513 CtkWidget *alpha1, *alpha2, *alpha3;
1514
1515 window = ctk_window_new (CTK_WINDOW_TOPLEVEL);
1516 ctk_window_set_screen (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
,
1517 ctk_widget_get_screen (widget));
1518 ctk_window_set_default_size (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
,
1519 450, 450);
1520
1521 g_signal_connect (window, "destroy",g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
1522 G_CALLBACK (ctk_widget_destroyed), &window)g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
;
1523
1524 ctk_window_set_title (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
, "Alpha");
1525 ctk_container_set_border_width (CTK_CONTAINER (window)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_container_get_type ()))))))
, 0);
1526
1527 main_hbox = ctk_box_new (CTK_ORIENTATION_HORIZONTAL, 0);
1528 ctk_container_add (CTK_CONTAINER (window)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_container_get_type ()))))))
, main_hbox);
1529
1530 vbox = ctk_box_new (CTK_ORIENTATION_VERTICAL, 0);
1531
1532 ctk_box_pack_start (CTK_BOX (main_hbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((main_hbox)), ((ctk_box_get_type ()))))))
, vbox, FALSE(0), FALSE(0), 0);
1533
1534 /* Plain button (no cdkwindows */
1535
1536 label = ctk_label_new ("non-window widget");
1537 ctk_box_pack_start (CTK_BOX (vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_box_get_type ()))))))
, label, FALSE(0), FALSE(0), 0);
1538
1539 alpha1 = button = ctk_button_new_with_label ("A Button");
1540 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);
1541
1542 /* windowed container with both windowed and normal button */
1543 label = ctk_label_new ("\nwindow widget");
1544 ctk_box_pack_start (CTK_BOX (vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_box_get_type ()))))))
, label, FALSE(0), FALSE(0), 0);
1545
1546 alpha2 = event_box = ctk_event_box_new ();
1547 ctk_box_pack_start (CTK_BOX (vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_box_get_type ()))))))
, event_box, FALSE(0), FALSE(0), 0);
1548
1549 vbox2 = ctk_box_new (CTK_ORIENTATION_VERTICAL, 0);
1550 ctk_container_add (CTK_CONTAINER (event_box)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((event_box)), ((ctk_container_get_type ()))))))
, vbox2);
1551
1552 button = ctk_button_new_with_label ("A Button");
1553 ctk_box_pack_start (CTK_BOX (vbox2)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox2)), ((ctk_box_get_type ()))))))
, button, FALSE(0), FALSE(0), 0);
1554
1555 event_box = ctk_event_box_new ();
1556 button = ctk_button_new_with_label ("A Button (in window)");
1557 ctk_container_add (CTK_CONTAINER (event_box)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((event_box)), ((ctk_container_get_type ()))))))
, button);
1558 ctk_box_pack_start (CTK_BOX (vbox2)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox2)), ((ctk_box_get_type ()))))))
, event_box, FALSE(0), FALSE(0), 0);
1559
1560 /* non-windowed container with both windowed and normal button */
1561 label = ctk_label_new ("\nnon-window widget with widget child");
1562 ctk_box_pack_start (CTK_BOX (vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_box_get_type ()))))))
, label, FALSE(0), FALSE(0), 0);
1563
1564 alpha3 = vbox2 = ctk_box_new (CTK_ORIENTATION_VERTICAL, 0);
1565 ctk_box_pack_start (CTK_BOX (vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_box_get_type ()))))))
, vbox2, FALSE(0), FALSE(0), 0);
1566
1567 button = ctk_button_new_with_label ("A Button");
1568 ctk_box_pack_start (CTK_BOX (vbox2)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox2)), ((ctk_box_get_type ()))))))
, button, FALSE(0), FALSE(0), 0);
1569
1570 event_box = ctk_event_box_new ();
1571 button = ctk_button_new_with_label ("A Button (in window)");
1572 ctk_container_add (CTK_CONTAINER (event_box)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((event_box)), ((ctk_container_get_type ()))))))
, button);
1573 ctk_box_pack_start (CTK_BOX (vbox2)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox2)), ((ctk_box_get_type ()))))))
, event_box, FALSE(0), FALSE(0), 0);
1574
1575 scale = ctk_scale_new_with_range (CTK_ORIENTATION_VERTICAL,
1576 0, 100, 1);
1577 ctk_box_pack_start (CTK_BOX (main_hbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((main_hbox)), ((ctk_box_get_type ()))))))
, scale, FALSE(0), FALSE(0), 0);
1578 g_signal_connect (scale, "value_changed", G_CALLBACK (alpha_changed), alpha1)g_signal_connect_data ((scale), ("value_changed"), (((GCallback
) (alpha_changed))), (alpha1), ((void*)0), (GConnectFlags) 0)
;
1579 ctk_range_set_value (CTK_RANGE (scale)((((CtkRange*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((scale)), ((ctk_range_get_type ()))))))
, 50);
1580
1581 scale = ctk_scale_new_with_range (CTK_ORIENTATION_VERTICAL,
1582 0, 100, 1);
1583 ctk_box_pack_start (CTK_BOX (main_hbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((main_hbox)), ((ctk_box_get_type ()))))))
, scale, FALSE(0), FALSE(0), 0);
1584 g_signal_connect (scale, "value_changed", G_CALLBACK (alpha_changed), alpha2)g_signal_connect_data ((scale), ("value_changed"), (((GCallback
) (alpha_changed))), (alpha2), ((void*)0), (GConnectFlags) 0)
;
1585 ctk_range_set_value (CTK_RANGE (scale)((((CtkRange*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((scale)), ((ctk_range_get_type ()))))))
, 50);
1586
1587 scale = ctk_scale_new_with_range (CTK_ORIENTATION_VERTICAL,
1588 0, 100, 1);
1589 ctk_box_pack_start (CTK_BOX (main_hbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((main_hbox)), ((ctk_box_get_type ()))))))
, scale, FALSE(0), FALSE(0), 0);
1590 g_signal_connect (scale, "value_changed", G_CALLBACK (alpha_changed), alpha3)g_signal_connect_data ((scale), ("value_changed"), (((GCallback
) (alpha_changed))), (alpha3), ((void*)0), (GConnectFlags) 0)
;
1591 ctk_range_set_value (CTK_RANGE (scale)((((CtkRange*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((scale)), ((ctk_range_get_type ()))))))
, 50);
1592
1593 ctk_widget_show_all (main_hbox);
1594 }
1595
1596 if (!ctk_widget_get_visible (window))
1597 ctk_widget_show (window);
1598 else
1599 ctk_widget_destroy (window);
1600}
1601
1602
1603/*
1604 * Label Demo
1605 */
1606static void
1607sensitivity_toggled (CtkWidget *toggle,
1608 CtkWidget *widget)
1609{
1610 ctk_widget_set_sensitive (widget,
1611 ctk_toggle_button_get_active (CTK_TOGGLE_BUTTON (toggle)((((CtkToggleButton*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((toggle)), ((ctk_toggle_button_get_type ()))))))
));
1612}
1613
1614static CtkWidget*
1615create_sensitivity_control (CtkWidget *widget)
1616{
1617 CtkWidget *button;
1618
1619 button = ctk_toggle_button_new_with_label ("Sensitive");
1620
1621 ctk_toggle_button_set_active (CTK_TOGGLE_BUTTON (button)((((CtkToggleButton*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((button)), ((ctk_toggle_button_get_type ()))))))
,
1622 ctk_widget_is_sensitive (widget));
1623
1624 g_signal_connect (button,g_signal_connect_data ((button), ("toggled"), (((GCallback) (
sensitivity_toggled))), (widget), ((void*)0), (GConnectFlags)
0)
1625 "toggled",g_signal_connect_data ((button), ("toggled"), (((GCallback) (
sensitivity_toggled))), (widget), ((void*)0), (GConnectFlags)
0)
1626 G_CALLBACK (sensitivity_toggled),g_signal_connect_data ((button), ("toggled"), (((GCallback) (
sensitivity_toggled))), (widget), ((void*)0), (GConnectFlags)
0)
1627 widget)g_signal_connect_data ((button), ("toggled"), (((GCallback) (
sensitivity_toggled))), (widget), ((void*)0), (GConnectFlags)
0)
;
1628
1629 ctk_widget_show_all (button);
1630
1631 return button;
1632}
1633
1634static void
1635set_selectable_recursive (CtkWidget *widget,
1636 gboolean setting)
1637{
1638 if (CTK_IS_CONTAINER (widget)(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (
(widget)); GType __t = ((ctk_container_get_type ())); gboolean
__r; if (!__inst) __r = (0); else if (__inst->g_class &&
__inst->g_class->g_type == __t) __r = (!(0)); else __r
= g_type_check_instance_is_a (__inst, __t); __r; }))))
)
1639 {
1640 GList *children;
1641 GList *tmp;
1642
1643 children = ctk_container_get_children (CTK_CONTAINER (widget)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((widget)), ((ctk_container_get_type ()))))))
);
1644 tmp = children;
1645 while (tmp)
1646 {
1647 set_selectable_recursive (tmp->data, setting);
1648
1649 tmp = tmp->next;
1650 }
1651 g_list_free (children);
1652 }
1653 else if (CTK_IS_LABEL (widget)(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (
(widget)); GType __t = ((ctk_label_get_type ())); gboolean __r
; if (!__inst) __r = (0); else if (__inst->g_class &&
__inst->g_class->g_type == __t) __r = (!(0)); else __r
= g_type_check_instance_is_a (__inst, __t); __r; }))))
)
1654 {
1655 ctk_label_set_selectable (CTK_LABEL (widget)((((CtkLabel*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((widget)), ((ctk_label_get_type ()))))))
, setting);
1656 }
1657}
1658
1659static void
1660selectable_toggled (CtkWidget *toggle,
1661 CtkWidget *widget)
1662{
1663 set_selectable_recursive (widget,
1664 ctk_toggle_button_get_active (CTK_TOGGLE_BUTTON (toggle)((((CtkToggleButton*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((toggle)), ((ctk_toggle_button_get_type ()))))))
));
1665}
1666
1667static CtkWidget*
1668create_selectable_control (CtkWidget *widget)
1669{
1670 CtkWidget *button;
1671
1672 button = ctk_toggle_button_new_with_label ("Selectable");
1673
1674 ctk_toggle_button_set_active (CTK_TOGGLE_BUTTON (button)((((CtkToggleButton*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((button)), ((ctk_toggle_button_get_type ()))))))
,
1675 FALSE(0));
1676
1677 g_signal_connect (button,g_signal_connect_data ((button), ("toggled"), (((GCallback) (
selectable_toggled))), (widget), ((void*)0), (GConnectFlags) 0
)
1678 "toggled",g_signal_connect_data ((button), ("toggled"), (((GCallback) (
selectable_toggled))), (widget), ((void*)0), (GConnectFlags) 0
)
1679 G_CALLBACK (selectable_toggled),g_signal_connect_data ((button), ("toggled"), (((GCallback) (
selectable_toggled))), (widget), ((void*)0), (GConnectFlags) 0
)
1680 widget)g_signal_connect_data ((button), ("toggled"), (((GCallback) (
selectable_toggled))), (widget), ((void*)0), (GConnectFlags) 0
)
;
1681
1682 ctk_widget_show_all (button);
1683
1684 return button;
1685}
1686
1687static void
1688dialog_response (CtkWidget *dialog, gint response_id, CtkLabel *label)
1689{
1690 const gchar *text;
1691
1692 ctk_widget_destroy (dialog);
1693
1694 text = "Some <a href=\"http://en.wikipedia.org/wiki/Text\" title=\"plain text\">text</a> may be marked up\n"
1695 "as hyperlinks, which can be clicked\n"
1696 "or activated via <a href=\"keynav\">keynav</a>.\n"
1697 "The links remain the same.";
1698 ctk_label_set_markup (label, text);
1699}
1700
1701static gboolean
1702activate_link (CtkWidget *label, const gchar *uri, gpointer data)
1703{
1704 if (g_strcmp0 (uri, "keynav") == 0)
1705 {
1706 CtkWidget *dialog;
1707
1708 dialog = ctk_message_dialog_new_with_markup (CTK_WINDOW (ctk_widget_get_toplevel (label))((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((ctk_widget_get_toplevel (label))), ((ctk_window_get_type
()))))))
,
1709 CTK_DIALOG_DESTROY_WITH_PARENT,
1710 CTK_MESSAGE_INFO,
1711 CTK_BUTTONS_OK,
1712 "The term <i>keynav</i> is a shorthand for "
1713 "keyboard navigation and refers to the process of using a program "
1714 "(exclusively) via keyboard input.");
1715
1716 ctk_window_present (CTK_WINDOW (dialog)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((dialog)), ((ctk_window_get_type ()))))))
);
1717
1718 g_signal_connect (dialog, "response", G_CALLBACK (dialog_response), label)g_signal_connect_data ((dialog), ("response"), (((GCallback) (
dialog_response))), (label), ((void*)0), (GConnectFlags) 0)
;
1719
1720 return TRUE(!(0));
1721 }
1722
1723 return FALSE(0);
1724}
1725
1726void create_labels (CtkWidget *widget)
1727{
1728 static CtkWidget *window = NULL((void*)0);
1729
1730 if (!window)
1731 {
1732 CtkWidget *hbox;
1733 CtkWidget *vbox;
1734 CtkWidget *frame;
1735 CtkWidget *label;
1736 CtkWidget *button;
1737
1738 window = ctk_window_new (CTK_WINDOW_TOPLEVEL);
1739
1740 ctk_window_set_screen (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
,
1741 ctk_widget_get_screen (widget));
1742
1743 g_signal_connect (window, "destroy",g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
1744 G_CALLBACK (ctk_widget_destroyed),g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
1745 &window)g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
;
1746
1747 ctk_window_set_title (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
, "Label");
1748
1749 vbox = ctk_box_new (CTK_ORIENTATION_VERTICAL, 5);
1750
1751 hbox = ctk_box_new (CTK_ORIENTATION_HORIZONTAL, 5);
1752 ctk_container_add (CTK_CONTAINER (window)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_container_get_type ()))))))
, vbox);
1753
1754 ctk_box_pack_end (CTK_BOX (vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_box_get_type ()))))))
, hbox, FALSE(0), FALSE(0), 0);
1755
1756 button = create_sensitivity_control (hbox);
1757
1758 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);
1759
1760 button = create_selectable_control (hbox);
1761
1762 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);
1763
1764 vbox = ctk_box_new (CTK_ORIENTATION_VERTICAL, 5);
1765
1766 ctk_box_pack_start (CTK_BOX (hbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hbox)), ((ctk_box_get_type ()))))))
, vbox, FALSE(0), FALSE(0), 0);
1767 ctk_container_set_border_width (CTK_CONTAINER (window)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_container_get_type ()))))))
, 5);
1768
1769 frame = ctk_frame_new ("Normal Label");
1770 label = ctk_label_new ("This is a Normal label");
1771 ctk_label_set_ellipsize (CTK_LABEL (label)((((CtkLabel*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((label)), ((ctk_label_get_type ()))))))
, PANGO_ELLIPSIZE_START);
1772 ctk_container_add (CTK_CONTAINER (frame)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((frame)), ((ctk_container_get_type ()))))))
, label);
1773 ctk_box_pack_start (CTK_BOX (vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_box_get_type ()))))))
, frame, FALSE(0), FALSE(0), 0);
1774
1775 frame = ctk_frame_new ("Multi-line Label");
1776 label = ctk_label_new ("This is a Multi-line label.\nSecond line\nThird line");
1777 ctk_label_set_ellipsize (CTK_LABEL (label)((((CtkLabel*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((label)), ((ctk_label_get_type ()))))))
, PANGO_ELLIPSIZE_END);
1778 ctk_container_add (CTK_CONTAINER (frame)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((frame)), ((ctk_container_get_type ()))))))
, label);
1779 ctk_box_pack_start (CTK_BOX (vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_box_get_type ()))))))
, frame, FALSE(0), FALSE(0), 0);
1780
1781 frame = ctk_frame_new ("Left Justified Label");
1782 label = ctk_label_new ("This is a Left-Justified\nMulti-line label.\nThird line");
1783 ctk_label_set_ellipsize (CTK_LABEL (label)((((CtkLabel*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((label)), ((ctk_label_get_type ()))))))
, PANGO_ELLIPSIZE_MIDDLE);
1784 ctk_label_set_justify (CTK_LABEL (label)((((CtkLabel*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((label)), ((ctk_label_get_type ()))))))
, CTK_JUSTIFY_LEFT);
1785 ctk_container_add (CTK_CONTAINER (frame)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((frame)), ((ctk_container_get_type ()))))))
, label);
1786 ctk_box_pack_start (CTK_BOX (vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_box_get_type ()))))))
, frame, FALSE(0), FALSE(0), 0);
1787
1788 frame = ctk_frame_new ("Right Justified Label");
1789 ctk_label_set_ellipsize (CTK_LABEL (label)((((CtkLabel*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((label)), ((ctk_label_get_type ()))))))
, PANGO_ELLIPSIZE_START);
1790 label = ctk_label_new ("This is a Right-Justified\nMulti-line label.\nFourth line, (j/k)");
1791 ctk_label_set_justify (CTK_LABEL (label)((((CtkLabel*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((label)), ((ctk_label_get_type ()))))))
, CTK_JUSTIFY_RIGHT);
1792 ctk_container_add (CTK_CONTAINER (frame)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((frame)), ((ctk_container_get_type ()))))))
, label);
1793 ctk_box_pack_start (CTK_BOX (vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_box_get_type ()))))))
, frame, FALSE(0), FALSE(0), 0);
1794
1795 frame = ctk_frame_new ("Internationalized Label");
1796 label = ctk_label_new (NULL((void*)0));
1797 ctk_label_set_markup (CTK_LABEL (label)((((CtkLabel*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((label)), ((ctk_label_get_type ()))))))
,
1798 "French (Fran\303\247ais) Bonjour, Salut\n"
1799 "Korean (\355\225\234\352\270\200) \354\225\210\353\205\225\355\225\230\354\204\270\354\232\224, \354\225\210\353\205\225\355\225\230\354\213\255\353\213\210\352\271\214\n"
1800 "Russian (\320\240\321\203\321\201\321\201\320\272\320\270\320\271) \320\227\320\264\321\200\320\260\320\262\321\201\321\202\320\262\321\203\320\271\321\202\320\265!\n"
1801 "Chinese (Simplified) <span lang=\"zh-cn\">\345\205\203\346\260\224 \345\274\200\345\217\221</span>\n"
1802 "Chinese (Traditional) <span lang=\"zh-tw\">\345\205\203\346\260\243 \351\226\213\347\231\274</span>\n"
1803 "Japanese <span lang=\"ja\">\345\205\203\346\260\227 \351\226\213\347\231\272</span>");
1804 ctk_label_set_justify (CTK_LABEL (label)((((CtkLabel*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((label)), ((ctk_label_get_type ()))))))
, CTK_JUSTIFY_LEFT);
1805 ctk_container_add (CTK_CONTAINER (frame)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((frame)), ((ctk_container_get_type ()))))))
, label);
1806 ctk_box_pack_start (CTK_BOX (vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_box_get_type ()))))))
, frame, FALSE(0), FALSE(0), 0);
1807
1808 frame = ctk_frame_new ("Bidirection Label");
1809 label = ctk_label_new ("\342\200\217Arabic \330\247\331\204\330\263\331\204\330\247\331\205 \330\271\331\204\331\212\331\203\331\205\n"
1810 "\342\200\217Hebrew \327\251\327\234\327\225\327\235");
1811 ctk_container_add (CTK_CONTAINER (frame)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((frame)), ((ctk_container_get_type ()))))))
, label);
1812 ctk_box_pack_start (CTK_BOX (vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_box_get_type ()))))))
, frame, FALSE(0), FALSE(0), 0);
1813
1814 frame = ctk_frame_new ("Links in a label");
1815 label = ctk_label_new ("Some <a href=\"http://en.wikipedia.org/wiki/Text\" title=\"plain text\">text</a> may be marked up\n"
1816 "as hyperlinks, which can be clicked\n"
1817 "or activated via <a href=\"keynav\">keynav</a>");
1818 ctk_label_set_use_markup (CTK_LABEL (label)((((CtkLabel*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((label)), ((ctk_label_get_type ()))))))
, TRUE(!(0)));
1819 ctk_container_add (CTK_CONTAINER (frame)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((frame)), ((ctk_container_get_type ()))))))
, label);
1820 ctk_box_pack_start (CTK_BOX (vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_box_get_type ()))))))
, frame, FALSE(0), FALSE(0), 0);
1821 g_signal_connect (label, "activate-link", G_CALLBACK (activate_link), NULL)g_signal_connect_data ((label), ("activate-link"), (((GCallback
) (activate_link))), (((void*)0)), ((void*)0), (GConnectFlags
) 0)
;
1822
1823 vbox = ctk_box_new (CTK_ORIENTATION_VERTICAL, 5);
1824 ctk_box_pack_start (CTK_BOX (hbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hbox)), ((ctk_box_get_type ()))))))
, vbox, FALSE(0), FALSE(0), 0);
1825 frame = ctk_frame_new ("Line wrapped label");
1826 label = ctk_label_new ("This is an example of a line-wrapped label. It should not be taking "\
1827 "up the entire "/* big space to test spacing */\
1828 "width allocated to it, but automatically wraps the words to fit. "\
1829 "The time has come, for all good men, to come to the aid of their party. "\
1830 "The sixth sheik's six sheep's sick.\n"\
1831 " It supports multiple paragraphs correctly, and correctly adds "\
1832 "many extra spaces. ");
1833
1834 ctk_label_set_line_wrap (CTK_LABEL (label)((((CtkLabel*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((label)), ((ctk_label_get_type ()))))))
, TRUE(!(0)));
1835 ctk_container_add (CTK_CONTAINER (frame)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((frame)), ((ctk_container_get_type ()))))))
, label);
1836 ctk_box_pack_start (CTK_BOX (vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_box_get_type ()))))))
, frame, FALSE(0), FALSE(0), 0);
1837
1838 frame = ctk_frame_new ("Filled, wrapped label");
1839 label = ctk_label_new ("This is an example of a line-wrapped, filled label. It should be taking "\
1840 "up the entire width allocated to it. Here is a seneance to prove "\
1841 "my point. Here is another sentence. "\
1842 "Here comes the sun, do de do de do.\n"\
1843 " This is a new paragraph.\n"\
1844 " This is another newer, longer, better paragraph. It is coming to an end, "\
1845 "unfortunately.");
1846 ctk_label_set_justify (CTK_LABEL (label)((((CtkLabel*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((label)), ((ctk_label_get_type ()))))))
, CTK_JUSTIFY_FILL);
1847 ctk_label_set_line_wrap (CTK_LABEL (label)((((CtkLabel*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((label)), ((ctk_label_get_type ()))))))
, TRUE(!(0)));
1848 ctk_container_add (CTK_CONTAINER (frame)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((frame)), ((ctk_container_get_type ()))))))
, label);
1849 ctk_box_pack_start (CTK_BOX (vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_box_get_type ()))))))
, frame, FALSE(0), FALSE(0), 0);
1850
1851 frame = ctk_frame_new ("Underlined label");
1852 label = ctk_label_new ("This label is underlined!\n"
1853 "This one is underlined (\343\201\223\343\202\223\343\201\253\343\201\241\343\201\257) in quite a funky fashion");
1854 ctk_label_set_justify (CTK_LABEL (label)((((CtkLabel*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((label)), ((ctk_label_get_type ()))))))
, CTK_JUSTIFY_LEFT);
1855 ctk_label_set_pattern (CTK_LABEL (label)((((CtkLabel*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((label)), ((ctk_label_get_type ()))))))
, "_________________________ _ _________ _ _____ _ __ __ ___ ____ _____");
1856 ctk_container_add (CTK_CONTAINER (frame)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((frame)), ((ctk_container_get_type ()))))))
, label);
1857 ctk_box_pack_start (CTK_BOX (vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_box_get_type ()))))))
, frame, FALSE(0), FALSE(0), 0);
1858
1859 frame = ctk_frame_new ("Markup label");
1860 label = ctk_label_new (NULL((void*)0));
1861
1862 /* There's also a ctk_label_set_markup() without accel if you
1863 * don't have an accelerator key
1864 */
1865 ctk_label_set_markup_with_mnemonic (CTK_LABEL (label)((((CtkLabel*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((label)), ((ctk_label_get_type ()))))))
,
1866 "This <span foreground=\"blue\" background=\"orange\">label</span> has "
1867 "<b>markup</b> _such as "
1868 "<big><i>Big Italics</i></big>\n"
1869 "<tt>Monospace font</tt>\n"
1870 "<u>Underline!</u>\n"
1871 "foo\n"
1872 "<span foreground=\"green\" background=\"red\">Ugly colors</span>\n"
1873 "and nothing on this line,\n"
1874 "or this.\n"
1875 "or this either\n"
1876 "or even on this one\n"
1877 "la <big>la <big>la <big>la <big>la</big></big></big></big>\n"
1878 "but this _word is <span foreground=\"purple\"><big>purple</big></span>\n"
1879 "<span underline=\"double\">We like <sup>superscript</sup> and <sub>subscript</sub> too</span>");
1880
1881 g_assert (ctk_label_get_mnemonic_keyval (CTK_LABEL (label)) == CDK_KEY_s)do { if (ctk_label_get_mnemonic_keyval (((((CtkLabel*) (void *
) g_type_check_instance_cast ((GTypeInstance*) ((label)), ((ctk_label_get_type
()))))))) == 0x073) ; else g_assertion_message_expr (((gchar
*) 0), "testctk.c", 1881, ((const char*) (__func__)), "ctk_label_get_mnemonic_keyval (CTK_LABEL (label)) == CDK_KEY_s"
); } while (0)
;
1882
1883 ctk_container_add (CTK_CONTAINER (frame)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((frame)), ((ctk_container_get_type ()))))))
, label);
1884 ctk_box_pack_start (CTK_BOX (vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_box_get_type ()))))))
, frame, FALSE(0), FALSE(0), 0);
1885 }
1886
1887 if (!ctk_widget_get_visible (window))
1888 ctk_widget_show_all (window);
1889 else
1890 ctk_widget_destroy (window);
1891}
1892
1893static void
1894on_angle_scale_changed (CtkRange *range,
1895 CtkLabel *label)
1896{
1897 ctk_label_set_angle (CTK_LABEL (label)((((CtkLabel*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((label)), ((ctk_label_get_type ()))))))
, ctk_range_get_value (range));
1898}
1899
1900static void
1901create_rotated_label (CtkWidget *widget)
1902{
1903 static CtkWidget *window = NULL((void*)0);
1904
1905 if (!window)
1906 {
1907 CtkWidget *content_area;
1908 CtkWidget *vbox;
1909 CtkWidget *hscale;
1910 CtkWidget *label;
1911 CtkWidget *scale_label;
1912 CtkWidget *scale_hbox;
1913
1914 window = ctk_dialog_new_with_buttons ("Rotated Label",
1915 CTK_WINDOW (ctk_widget_get_toplevel (widget))((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((ctk_widget_get_toplevel (widget))), ((ctk_window_get_type
()))))))
, 0,
1916 "_Close", CTK_RESPONSE_CLOSE,
1917 NULL((void*)0));
1918
1919 ctk_window_set_resizable (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
, TRUE(!(0)));
1920
1921 ctk_window_set_screen (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
,
1922 ctk_widget_get_screen (widget));
1923
1924 g_signal_connect (window, "response",g_signal_connect_data ((window), ("response"), (((GCallback) (
ctk_widget_destroy))), (((void*)0)), ((void*)0), (GConnectFlags
) 0)
1925 G_CALLBACK (ctk_widget_destroy), NULL)g_signal_connect_data ((window), ("response"), (((GCallback) (
ctk_widget_destroy))), (((void*)0)), ((void*)0), (GConnectFlags
) 0)
;
1926 g_signal_connect (window, "destroy",g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
1927 G_CALLBACK (ctk_widget_destroyed), &window)g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
;
1928
1929 content_area = ctk_dialog_get_content_area (CTK_DIALOG (window)((((CtkDialog*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_dialog_get_type ()))))))
);
1930
1931 vbox = ctk_box_new (CTK_ORIENTATION_VERTICAL, 5);
1932 ctk_box_pack_start (CTK_BOX (content_area)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((content_area)), ((ctk_box_get_type ()))))))
, vbox, TRUE(!(0)), TRUE(!(0)), 0);
1933 ctk_container_set_border_width (CTK_CONTAINER (vbox)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_container_get_type ()))))))
, 10);
1934
1935 label = ctk_label_new (NULL((void*)0));
1936 ctk_label_set_markup (CTK_LABEL (label)((((CtkLabel*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((label)), ((ctk_label_get_type ()))))))
, "Hello World\n<i>Rotate</i> <span underline='single' foreground='blue'>me</span>");
1937 ctk_box_pack_start (CTK_BOX (vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_box_get_type ()))))))
, label, TRUE(!(0)), TRUE(!(0)), 0);
1938
1939 scale_hbox = ctk_box_new (CTK_ORIENTATION_HORIZONTAL, 0);
1940 ctk_box_pack_start (CTK_BOX (vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_box_get_type ()))))))
, scale_hbox, FALSE(0), FALSE(0), 0);
1941
1942 scale_label = ctk_label_new (NULL((void*)0));
1943 ctk_label_set_markup (CTK_LABEL (scale_label)((((CtkLabel*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((scale_label)), ((ctk_label_get_type ()))))))
, "<i>Angle: </i>");
1944 ctk_box_pack_start (CTK_BOX (scale_hbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((scale_hbox)), ((ctk_box_get_type ()))))))
, scale_label, FALSE(0), FALSE(0), 0);
1945
1946 hscale = ctk_scale_new_with_range (CTK_ORIENTATION_HORIZONTAL,
1947 0, 360, 5);
1948 g_signal_connect (hscale, "value-changed",g_signal_connect_data ((hscale), ("value-changed"), (((GCallback
) (on_angle_scale_changed))), (label), ((void*)0), (GConnectFlags
) 0)
1949 G_CALLBACK (on_angle_scale_changed), label)g_signal_connect_data ((hscale), ("value-changed"), (((GCallback
) (on_angle_scale_changed))), (label), ((void*)0), (GConnectFlags
) 0)
;
1950
1951 ctk_range_set_value (CTK_RANGE (hscale)((((CtkRange*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hscale)), ((ctk_range_get_type ()))))))
, 45);
1952 ctk_widget_set_size_request (hscale, 200, -1);
1953 ctk_box_pack_start (CTK_BOX (scale_hbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((scale_hbox)), ((ctk_box_get_type ()))))))
, hscale, TRUE(!(0)), TRUE(!(0)), 0);
1954 }
1955
1956 if (!ctk_widget_get_visible (window))
1957 ctk_widget_show_all (window);
1958 else
1959 ctk_widget_destroy (window);
1960}
1961
1962#define DEFAULT_TEXT_RADIUS200 200
1963
1964static void
1965on_rotated_text_unrealize (CtkWidget *widget)
1966{
1967 g_object_set_data (G_OBJECT (widget)((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((widget)), (((GType) ((20) << (2))))))))
, "text-gc", NULL((void*)0));
1968}
1969
1970static gboolean
1971on_rotated_text_draw (CtkWidget *widget,
1972 cairo_t *cr,
1973 GdkPixbuf *tile_pixbuf)
1974{
1975 static const gchar *words[] = { "The", "grand", "old", "Duke", "of", "York",
1976 "had", "10,000", "men" };
1977 int n_words;
1978 int i;
1979 int width, height;
1980 double radius;
1981 PangoLayout *layout;
1982 PangoContext *context;
1983 PangoFontDescription *desc;
1984
1985 cairo_set_source_rgb (cr, 1, 1, 1);
1986 cairo_paint (cr);
1987
1988 if (tile_pixbuf)
1989 {
1990 cdk_cairo_set_source_pixbuf (cr, tile_pixbuf, 0, 0);
1991 cairo_pattern_set_extend (cairo_get_source (cr), CAIRO_EXTEND_REPEAT);
1992 }
1993 else
1994 cairo_set_source_rgb (cr, 0, 0, 0);
1995
1996 width = ctk_widget_get_allocated_width (widget);
1997 height = ctk_widget_get_allocated_height (widget);
1998 radius = MIN (width, height)(((width) < (height)) ? (width) : (height)) / 2.;
1999
2000 cairo_translate (cr,
2001 radius + (width - 2 * radius) / 2,
2002 radius + (height - 2 * radius) / 2);
2003 cairo_scale (cr, radius / DEFAULT_TEXT_RADIUS200, radius / DEFAULT_TEXT_RADIUS200);
2004
2005 context = ctk_widget_get_pango_context (widget);
2006 layout = pango_layout_new (context);
2007 desc = pango_font_description_from_string ("Sans Bold 30");
2008 pango_layout_set_font_description (layout, desc);
2009 pango_font_description_free (desc);
2010
2011 n_words = G_N_ELEMENTS (words)(sizeof (words) / sizeof ((words)[0]));
2012 for (i = 0; i < n_words; i++)
2013 {
2014 int width, height;
2015
2016 cairo_save (cr);
2017
2018 cairo_rotate (cr, 2 * G_PI3.1415926535897932384626433832795028841971693993751 * i / n_words);
2019 pango_cairo_update_layout (cr, layout);
2020
2021 pango_layout_set_text (layout, words[i], -1);
2022 pango_layout_get_size (layout, &width, &height);
2023
2024 cairo_move_to (cr, - width / 2 / PANGO_SCALE1024, - DEFAULT_TEXT_RADIUS200);
2025 pango_cairo_show_layout (cr, layout);
2026
2027 cairo_restore (cr);
2028 }
2029
2030 g_object_unref (layout);
2031
2032 return FALSE(0);
2033}
2034
2035static void
2036create_rotated_text (CtkWidget *widget)
2037{
2038 static CtkWidget *window = NULL((void*)0);
2039
2040 if (!window)
2041 {
2042 CtkRequisition requisition;
2043 CtkWidget *content_area;
2044 CtkWidget *drawing_area;
2045 GdkPixbuf *tile_pixbuf;
2046
2047 window = ctk_dialog_new_with_buttons ("Rotated Text",
2048 CTK_WINDOW (ctk_widget_get_toplevel (widget))((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((ctk_widget_get_toplevel (widget))), ((ctk_window_get_type
()))))))
, 0,
2049 "_Close", CTK_RESPONSE_CLOSE,
2050 NULL((void*)0));
2051
2052 ctk_window_set_resizable (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
, TRUE(!(0)));
2053
2054 ctk_window_set_screen (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
,
2055 ctk_widget_get_screen (widget));
2056
2057 g_signal_connect (window, "response",g_signal_connect_data ((window), ("response"), (((GCallback) (
ctk_widget_destroy))), (((void*)0)), ((void*)0), (GConnectFlags
) 0)
2058 G_CALLBACK (ctk_widget_destroy), NULL)g_signal_connect_data ((window), ("response"), (((GCallback) (
ctk_widget_destroy))), (((void*)0)), ((void*)0), (GConnectFlags
) 0)
;
2059 g_signal_connect (window, "destroy",g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
2060 G_CALLBACK (ctk_widget_destroyed), &window)g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
;
2061
2062 content_area = ctk_dialog_get_content_area (CTK_DIALOG (window)((((CtkDialog*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_dialog_get_type ()))))))
);
2063
2064 drawing_area = ctk_drawing_area_new ();
2065 ctk_box_pack_start (CTK_BOX (content_area)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((content_area)), ((ctk_box_get_type ()))))))
, drawing_area, TRUE(!(0)), TRUE(!(0)), 0);
2066
2067 tile_pixbuf = gdk_pixbuf_new_from_file ("marble.xpm", NULL((void*)0));
2068
2069 g_signal_connect (drawing_area, "draw",g_signal_connect_data ((drawing_area), ("draw"), (((GCallback
) (on_rotated_text_draw))), (tile_pixbuf), ((void*)0), (GConnectFlags
) 0)
2070 G_CALLBACK (on_rotated_text_draw), tile_pixbuf)g_signal_connect_data ((drawing_area), ("draw"), (((GCallback
) (on_rotated_text_draw))), (tile_pixbuf), ((void*)0), (GConnectFlags
) 0)
;
2071 g_signal_connect (drawing_area, "unrealize",g_signal_connect_data ((drawing_area), ("unrealize"), (((GCallback
) (on_rotated_text_unrealize))), (((void*)0)), ((void*)0), (GConnectFlags
) 0)
2072 G_CALLBACK (on_rotated_text_unrealize), NULL)g_signal_connect_data ((drawing_area), ("unrealize"), (((GCallback
) (on_rotated_text_unrealize))), (((void*)0)), ((void*)0), (GConnectFlags
) 0)
;
2073
2074 ctk_widget_show_all (ctk_bin_get_child (CTK_BIN (window)((((CtkBin*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_bin_get_type ()))))))
));
2075
2076 ctk_widget_set_size_request (drawing_area, DEFAULT_TEXT_RADIUS200 * 2, DEFAULT_TEXT_RADIUS200 * 2);
2077 ctk_widget_get_preferred_size ( (window),
2078 &requisition, NULL((void*)0));
2079 ctk_widget_set_size_request (drawing_area, -1, -1);
2080 ctk_window_resize (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
, requisition.width, requisition.height);
2081 }
2082
2083 if (!ctk_widget_get_visible (window))
2084 ctk_widget_show (window);
2085 else
2086 ctk_widget_destroy (window);
2087}
2088
2089/*
2090 * Reparent demo
2091 */
2092
2093static void
2094reparent_label (CtkWidget *widget,
2095 CtkWidget *new_parent)
2096{
2097 CtkWidget *label;
2098
2099 label = g_object_get_data (G_OBJECT (widget)((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((widget)), (((GType) ((20) << (2))))))))
, "user_data");
2100
2101 ctk_widget_reparent (label, new_parent);
2102}
2103
2104static void
2105set_parent_signal (CtkWidget *child,
2106 CtkWidget *old_parent,
2107 gpointer func_data)
2108{
2109 CtkWidget *parent;
2110
2111 parent = ctk_widget_get_parent (child);
2112 g_message ("set_parent for \"%s\": new parent: \"%s\", old parent: \"%s\", data: %d\n",
2113 g_type_name (G_OBJECT_TYPE (child)(((((GTypeClass*) (((GTypeInstance*) (child))->g_class))->
g_type)))
),
2114 parent ? g_type_name (G_OBJECT_TYPE (parent)(((((GTypeClass*) (((GTypeInstance*) (parent))->g_class))->
g_type)))
) : "NULL",
2115 old_parent ? g_type_name (G_OBJECT_TYPE (old_parent)(((((GTypeClass*) (((GTypeInstance*) (old_parent))->g_class
))->g_type)))
) : "NULL",
2116 GPOINTER_TO_INT (func_data)((gint) (glong) (func_data)));
2117}
2118
2119static void
2120create_reparent (CtkWidget *widget)
2121{
2122 static CtkWidget *window = NULL((void*)0);
2123
2124 if (!window)
2125 {
2126 CtkWidget *box1;
2127 CtkWidget *box2;
2128 CtkWidget *box3;
2129 CtkWidget *frame;
2130 CtkWidget *button;
2131 CtkWidget *label;
2132 CtkWidget *separator;
2133 CtkWidget *event_box;
2134
2135 window = ctk_window_new (CTK_WINDOW_TOPLEVEL);
2136
2137 ctk_window_set_screen (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
,
2138 ctk_widget_get_screen (widget));
2139
2140 g_signal_connect (window, "destroy",g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
2141 G_CALLBACK (ctk_widget_destroyed),g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
2142 &window)g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
;
2143
2144 ctk_window_set_title (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
, "reparent");
2145 ctk_container_set_border_width (CTK_CONTAINER (window)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_container_get_type ()))))))
, 0);
2146
2147 box1 = ctk_box_new (CTK_ORIENTATION_VERTICAL, 0);
2148 ctk_container_add (CTK_CONTAINER (window)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_container_get_type ()))))))
, box1);
2149
2150 box2 = ctk_box_new (CTK_ORIENTATION_HORIZONTAL, 5);
2151 ctk_container_set_border_width (CTK_CONTAINER (box2)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_container_get_type ()))))))
, 10);
2152 ctk_box_pack_start (CTK_BOX (box1)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box1)), ((ctk_box_get_type ()))))))
, box2, TRUE(!(0)), TRUE(!(0)), 0);
2153
2154 label = ctk_label_new ("Hello World");
2155
2156 frame = ctk_frame_new ("Frame 1");
2157 ctk_box_pack_start (CTK_BOX (box2)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_box_get_type ()))))))
, frame, TRUE(!(0)), TRUE(!(0)), 0);
2158
2159 box3 = ctk_box_new (CTK_ORIENTATION_VERTICAL, 5);
2160 ctk_container_set_border_width (CTK_CONTAINER (box3)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box3)), ((ctk_container_get_type ()))))))
, 5);
2161 ctk_container_add (CTK_CONTAINER (frame)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((frame)), ((ctk_container_get_type ()))))))
, box3);
2162
2163 button = ctk_button_new_with_label ("switch");
2164 g_object_set_data (G_OBJECT (button)((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((button)), (((GType) ((20) << (2))))))))
, "user_data", label);
2165 ctk_box_pack_start (CTK_BOX (box3)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box3)), ((ctk_box_get_type ()))))))
, button, FALSE(0), TRUE(!(0)), 0);
2166
2167 event_box = ctk_event_box_new ();
2168 ctk_box_pack_start (CTK_BOX (box3)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box3)), ((ctk_box_get_type ()))))))
, event_box, FALSE(0), TRUE(!(0)), 0);
2169 ctk_container_add (CTK_CONTAINER (event_box)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((event_box)), ((ctk_container_get_type ()))))))
, label);
2170
2171 g_signal_connect (button, "clicked",g_signal_connect_data ((button), ("clicked"), (((GCallback) (
reparent_label))), (event_box), ((void*)0), (GConnectFlags) 0
)
2172 G_CALLBACK (reparent_label),g_signal_connect_data ((button), ("clicked"), (((GCallback) (
reparent_label))), (event_box), ((void*)0), (GConnectFlags) 0
)
2173 event_box)g_signal_connect_data ((button), ("clicked"), (((GCallback) (
reparent_label))), (event_box), ((void*)0), (GConnectFlags) 0
)
;
2174
2175 g_signal_connect (label, "parent_set",g_signal_connect_data ((label), ("parent_set"), (((GCallback)
(set_parent_signal))), (((gpointer) (glong) (42))), ((void*)
0), (GConnectFlags) 0)
2176 G_CALLBACK (set_parent_signal),g_signal_connect_data ((label), ("parent_set"), (((GCallback)
(set_parent_signal))), (((gpointer) (glong) (42))), ((void*)
0), (GConnectFlags) 0)
2177 GINT_TO_POINTER (42))g_signal_connect_data ((label), ("parent_set"), (((GCallback)
(set_parent_signal))), (((gpointer) (glong) (42))), ((void*)
0), (GConnectFlags) 0)
;
2178
2179 frame = ctk_frame_new ("Frame 2");
2180 ctk_box_pack_start (CTK_BOX (box2)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_box_get_type ()))))))
, frame, TRUE(!(0)), TRUE(!(0)), 0);
2181
2182 box3 = ctk_box_new (CTK_ORIENTATION_VERTICAL, 5);
2183 ctk_container_set_border_width (CTK_CONTAINER (box3)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box3)), ((ctk_container_get_type ()))))))
, 5);
2184 ctk_container_add (CTK_CONTAINER (frame)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((frame)), ((ctk_container_get_type ()))))))
, box3);
2185
2186 button = ctk_button_new_with_label ("switch");
2187 g_object_set_data (G_OBJECT (button)((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((button)), (((GType) ((20) << (2))))))))
, "user_data", label);
2188 ctk_box_pack_start (CTK_BOX (box3)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box3)), ((ctk_box_get_type ()))))))
, button, FALSE(0), TRUE(!(0)), 0);
2189
2190 event_box = ctk_event_box_new ();
2191 ctk_box_pack_start (CTK_BOX (box3)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box3)), ((ctk_box_get_type ()))))))
, event_box, FALSE(0), TRUE(!(0)), 0);
2192
2193 g_signal_connect (button, "clicked",g_signal_connect_data ((button), ("clicked"), (((GCallback) (
reparent_label))), (event_box), ((void*)0), (GConnectFlags) 0
)
2194 G_CALLBACK (reparent_label),g_signal_connect_data ((button), ("clicked"), (((GCallback) (
reparent_label))), (event_box), ((void*)0), (GConnectFlags) 0
)
2195 event_box)g_signal_connect_data ((button), ("clicked"), (((GCallback) (
reparent_label))), (event_box), ((void*)0), (GConnectFlags) 0
)
;
2196
2197 separator = ctk_separator_new (CTK_ORIENTATION_HORIZONTAL);
2198 ctk_box_pack_start (CTK_BOX (box1)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box1)), ((ctk_box_get_type ()))))))
, separator, FALSE(0), TRUE(!(0)), 0);
2199
2200 box2 = ctk_box_new (CTK_ORIENTATION_VERTICAL, 10);
2201 ctk_container_set_border_width (CTK_CONTAINER (box2)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_container_get_type ()))))))
, 10);
2202 ctk_box_pack_start (CTK_BOX (box1)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box1)), ((ctk_box_get_type ()))))))
, box2, FALSE(0), TRUE(!(0)), 0);
2203
2204 button = ctk_button_new_with_label ("close");
2205 g_signal_connect_swapped (button, "clicked",g_signal_connect_data ((button), ("clicked"), (((GCallback) (
ctk_widget_destroy))), (window), ((void*)0), G_CONNECT_SWAPPED
)
2206 G_CALLBACK (ctk_widget_destroy), window)g_signal_connect_data ((button), ("clicked"), (((GCallback) (
ctk_widget_destroy))), (window), ((void*)0), G_CONNECT_SWAPPED
)
;
2207 ctk_box_pack_start (CTK_BOX (box2)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_box_get_type ()))))))
, button, TRUE(!(0)), TRUE(!(0)), 0);
2208 ctk_widget_set_can_default (button, TRUE(!(0)));
2209 ctk_widget_grab_default (button);
2210 }
2211
2212 if (!ctk_widget_get_visible (window))
2213 ctk_widget_show_all (window);
2214 else
2215 ctk_widget_destroy (window);
2216}
2217
2218/*
2219 * Resize Grips
2220 */
2221static gboolean
2222grippy_button_press (CtkWidget *area, CdkEventButton *event, CdkWindowEdge edge)
2223{
2224 if (event->type == CDK_BUTTON_PRESS)
2225 {
2226 if (event->button == CDK_BUTTON_PRIMARY(1))
2227 ctk_window_begin_resize_drag (CTK_WINDOW (ctk_widget_get_toplevel (area))((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((ctk_widget_get_toplevel (area))), ((ctk_window_get_type (
)))))))
, edge,
2228 event->button, event->x_root, event->y_root,
2229 event->time);
2230 else if (event->button == CDK_BUTTON_MIDDLE(2))
2231 ctk_window_begin_move_drag (CTK_WINDOW (ctk_widget_get_toplevel (area))((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((ctk_widget_get_toplevel (area))), ((ctk_window_get_type (
)))))))
,
2232 event->button, event->x_root, event->y_root,
2233 event->time);
2234 }
2235 return TRUE(!(0));
2236}
2237
2238static gboolean
2239grippy_draw (CtkWidget *area, cairo_t *cr, CdkWindowEdge edge)
2240{
2241 CtkStyleContext *context;
2242 CtkJunctionSides sides;
2243
2244 switch (edge)
2245 {
2246 case CDK_WINDOW_EDGE_NORTH_WEST:
2247 sides = CTK_JUNCTION_CORNER_TOPLEFT;
2248 break;
2249 case CDK_WINDOW_EDGE_NORTH:
2250 sides = CTK_JUNCTION_TOP;
2251 break;
2252 case CDK_WINDOW_EDGE_NORTH_EAST:
2253 sides = CTK_JUNCTION_CORNER_TOPRIGHT;
2254 break;
2255 case CDK_WINDOW_EDGE_WEST:
2256 sides = CTK_JUNCTION_LEFT;
2257 break;
2258 case CDK_WINDOW_EDGE_EAST:
2259 sides = CTK_JUNCTION_RIGHT;
2260 break;
2261 case CDK_WINDOW_EDGE_SOUTH_WEST:
2262 sides = CTK_JUNCTION_CORNER_BOTTOMLEFT;
2263 break;
2264 case CDK_WINDOW_EDGE_SOUTH:
2265 sides = CTK_JUNCTION_BOTTOM;
2266 break;
2267 case CDK_WINDOW_EDGE_SOUTH_EAST:
2268 sides = CTK_JUNCTION_CORNER_BOTTOMRIGHT;
2269 break;
2270 default:
2271 g_assert_not_reached()do { g_assertion_message_expr (((gchar*) 0), "testctk.c", 2271
, ((const char*) (__func__)), ((void*)0)); } while (0)
;
2272 }
2273
2274 context = ctk_widget_get_style_context (area);
2275 ctk_style_context_save (context);
2276 ctk_style_context_add_class (context, "grip");
2277 ctk_style_context_set_junction_sides (context, sides);
2278 ctk_render_handle (context, cr,
2279 0, 0,
2280 ctk_widget_get_allocated_width (area),
2281 ctk_widget_get_allocated_height (area));
2282
2283 ctk_style_context_restore (context);
2284
2285 return TRUE(!(0));
2286}
2287
2288static void
2289create_resize_grips (CtkWidget *widget)
2290{
2291 static CtkWidget *window = NULL((void*)0);
2292
2293 if (!window)
2294 {
2295 CtkWidget *area;
2296 CtkWidget *hbox, *vbox;
2297
2298 window = ctk_window_new (CTK_WINDOW_TOPLEVEL);
2299
2300 ctk_window_set_screen (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
,
2301 ctk_widget_get_screen (widget));
2302
2303 ctk_window_set_title (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
, "resize grips");
2304
2305 g_signal_connect (window, "destroy",g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
2306 G_CALLBACK (ctk_widget_destroyed),g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
2307 &window)g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
;
2308
2309 vbox = ctk_box_new (CTK_ORIENTATION_VERTICAL, 0);
2310 ctk_container_add (CTK_CONTAINER (window)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_container_get_type ()))))))
, vbox);
2311
2312 hbox = ctk_box_new (CTK_ORIENTATION_HORIZONTAL, 0);
2313 ctk_box_pack_start (CTK_BOX (vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_box_get_type ()))))))
, hbox, TRUE(!(0)), TRUE(!(0)), 0);
2314
2315 /* North west */
2316 area = ctk_drawing_area_new ();
2317 ctk_widget_add_events (area, CDK_BUTTON_PRESS_MASK);
2318 ctk_box_pack_start (CTK_BOX (hbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hbox)), ((ctk_box_get_type ()))))))
, area, TRUE(!(0)), TRUE(!(0)), 0);
2319 g_signal_connect (area, "draw", G_CALLBACK (grippy_draw),g_signal_connect_data ((area), ("draw"), (((GCallback) (grippy_draw
))), (((gpointer) (glong) (CDK_WINDOW_EDGE_NORTH_WEST))), ((void
*)0), (GConnectFlags) 0)
2320 GINT_TO_POINTER (CDK_WINDOW_EDGE_NORTH_WEST))g_signal_connect_data ((area), ("draw"), (((GCallback) (grippy_draw
))), (((gpointer) (glong) (CDK_WINDOW_EDGE_NORTH_WEST))), ((void
*)0), (GConnectFlags) 0)
;
2321 g_signal_connect (area, "button_press_event", G_CALLBACK (grippy_button_press),g_signal_connect_data ((area), ("button_press_event"), (((GCallback
) (grippy_button_press))), (((gpointer) (glong) (CDK_WINDOW_EDGE_NORTH_WEST
))), ((void*)0), (GConnectFlags) 0)
2322 GINT_TO_POINTER (CDK_WINDOW_EDGE_NORTH_WEST))g_signal_connect_data ((area), ("button_press_event"), (((GCallback
) (grippy_button_press))), (((gpointer) (glong) (CDK_WINDOW_EDGE_NORTH_WEST
))), ((void*)0), (GConnectFlags) 0)
;
2323
2324 /* North */
2325 area = ctk_drawing_area_new ();
2326 ctk_widget_add_events (area, CDK_BUTTON_PRESS_MASK);
2327 ctk_box_pack_start (CTK_BOX (hbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hbox)), ((ctk_box_get_type ()))))))
, area, TRUE(!(0)), TRUE(!(0)), 0);
2328 g_signal_connect (area, "draw", G_CALLBACK (grippy_draw),g_signal_connect_data ((area), ("draw"), (((GCallback) (grippy_draw
))), (((gpointer) (glong) (CDK_WINDOW_EDGE_NORTH))), ((void*)
0), (GConnectFlags) 0)
2329 GINT_TO_POINTER (CDK_WINDOW_EDGE_NORTH))g_signal_connect_data ((area), ("draw"), (((GCallback) (grippy_draw
))), (((gpointer) (glong) (CDK_WINDOW_EDGE_NORTH))), ((void*)
0), (GConnectFlags) 0)
;
2330 g_signal_connect (area, "button_press_event", G_CALLBACK (grippy_button_press),g_signal_connect_data ((area), ("button_press_event"), (((GCallback
) (grippy_button_press))), (((gpointer) (glong) (CDK_WINDOW_EDGE_NORTH
))), ((void*)0), (GConnectFlags) 0)
2331 GINT_TO_POINTER (CDK_WINDOW_EDGE_NORTH))g_signal_connect_data ((area), ("button_press_event"), (((GCallback
) (grippy_button_press))), (((gpointer) (glong) (CDK_WINDOW_EDGE_NORTH
))), ((void*)0), (GConnectFlags) 0)
;
2332
2333 /* North east */
2334 area = ctk_drawing_area_new ();
2335 ctk_widget_add_events (area, CDK_BUTTON_PRESS_MASK);
2336 ctk_box_pack_start (CTK_BOX (hbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hbox)), ((ctk_box_get_type ()))))))
, area, TRUE(!(0)), TRUE(!(0)), 0);
2337 g_signal_connect (area, "draw", G_CALLBACK (grippy_draw),g_signal_connect_data ((area), ("draw"), (((GCallback) (grippy_draw
))), (((gpointer) (glong) (CDK_WINDOW_EDGE_NORTH_EAST))), ((void
*)0), (GConnectFlags) 0)
2338 GINT_TO_POINTER (CDK_WINDOW_EDGE_NORTH_EAST))g_signal_connect_data ((area), ("draw"), (((GCallback) (grippy_draw
))), (((gpointer) (glong) (CDK_WINDOW_EDGE_NORTH_EAST))), ((void
*)0), (GConnectFlags) 0)
;
2339 g_signal_connect (area, "button_press_event", G_CALLBACK (grippy_button_press),g_signal_connect_data ((area), ("button_press_event"), (((GCallback
) (grippy_button_press))), (((gpointer) (glong) (CDK_WINDOW_EDGE_NORTH_EAST
))), ((void*)0), (GConnectFlags) 0)
2340 GINT_TO_POINTER (CDK_WINDOW_EDGE_NORTH_EAST))g_signal_connect_data ((area), ("button_press_event"), (((GCallback
) (grippy_button_press))), (((gpointer) (glong) (CDK_WINDOW_EDGE_NORTH_EAST
))), ((void*)0), (GConnectFlags) 0)
;
2341
2342 hbox = ctk_box_new (CTK_ORIENTATION_HORIZONTAL, 0);
2343 ctk_box_pack_start (CTK_BOX (vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_box_get_type ()))))))
, hbox, TRUE(!(0)), TRUE(!(0)), 0);
2344
2345 /* West */
2346 area = ctk_drawing_area_new ();
2347 ctk_widget_add_events (area, CDK_BUTTON_PRESS_MASK);
2348 ctk_box_pack_start (CTK_BOX (hbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hbox)), ((ctk_box_get_type ()))))))
, area, TRUE(!(0)), TRUE(!(0)), 0);
2349 g_signal_connect (area, "draw", G_CALLBACK (grippy_draw),g_signal_connect_data ((area), ("draw"), (((GCallback) (grippy_draw
))), (((gpointer) (glong) (CDK_WINDOW_EDGE_WEST))), ((void*)0
), (GConnectFlags) 0)
2350 GINT_TO_POINTER (CDK_WINDOW_EDGE_WEST))g_signal_connect_data ((area), ("draw"), (((GCallback) (grippy_draw
))), (((gpointer) (glong) (CDK_WINDOW_EDGE_WEST))), ((void*)0
), (GConnectFlags) 0)
;
2351 g_signal_connect (area, "button_press_event", G_CALLBACK (grippy_button_press),g_signal_connect_data ((area), ("button_press_event"), (((GCallback
) (grippy_button_press))), (((gpointer) (glong) (CDK_WINDOW_EDGE_WEST
))), ((void*)0), (GConnectFlags) 0)
2352 GINT_TO_POINTER (CDK_WINDOW_EDGE_WEST))g_signal_connect_data ((area), ("button_press_event"), (((GCallback
) (grippy_button_press))), (((gpointer) (glong) (CDK_WINDOW_EDGE_WEST
))), ((void*)0), (GConnectFlags) 0)
;
2353
2354 /* Middle */
2355 area = ctk_drawing_area_new ();
2356 ctk_box_pack_start (CTK_BOX (hbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hbox)), ((ctk_box_get_type ()))))))
, area, TRUE(!(0)), TRUE(!(0)), 0);
2357
2358 /* East */
2359 area = ctk_drawing_area_new ();
2360 ctk_widget_add_events (area, CDK_BUTTON_PRESS_MASK);
2361 ctk_box_pack_start (CTK_BOX (hbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hbox)), ((ctk_box_get_type ()))))))
, area, TRUE(!(0)), TRUE(!(0)), 0);
2362 g_signal_connect (area, "draw", G_CALLBACK (grippy_draw),g_signal_connect_data ((area), ("draw"), (((GCallback) (grippy_draw
))), (((gpointer) (glong) (CDK_WINDOW_EDGE_EAST))), ((void*)0
), (GConnectFlags) 0)
2363 GINT_TO_POINTER (CDK_WINDOW_EDGE_EAST))g_signal_connect_data ((area), ("draw"), (((GCallback) (grippy_draw
))), (((gpointer) (glong) (CDK_WINDOW_EDGE_EAST))), ((void*)0
), (GConnectFlags) 0)
;
2364 g_signal_connect (area, "button_press_event", G_CALLBACK (grippy_button_press),g_signal_connect_data ((area), ("button_press_event"), (((GCallback
) (grippy_button_press))), (((gpointer) (glong) (CDK_WINDOW_EDGE_EAST
))), ((void*)0), (GConnectFlags) 0)
2365 GINT_TO_POINTER (CDK_WINDOW_EDGE_EAST))g_signal_connect_data ((area), ("button_press_event"), (((GCallback
) (grippy_button_press))), (((gpointer) (glong) (CDK_WINDOW_EDGE_EAST
))), ((void*)0), (GConnectFlags) 0)
;
2366
2367
2368 hbox = ctk_box_new (CTK_ORIENTATION_HORIZONTAL, 0);
2369 ctk_box_pack_start (CTK_BOX (vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_box_get_type ()))))))
, hbox, TRUE(!(0)), TRUE(!(0)), 0);
2370
2371 /* South west */
2372 area = ctk_drawing_area_new ();
2373 ctk_widget_add_events (area, CDK_BUTTON_PRESS_MASK);
2374 ctk_box_pack_start (CTK_BOX (hbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hbox)), ((ctk_box_get_type ()))))))
, area, TRUE(!(0)), TRUE(!(0)), 0);
2375 g_signal_connect (area, "draw", G_CALLBACK (grippy_draw),g_signal_connect_data ((area), ("draw"), (((GCallback) (grippy_draw
))), (((gpointer) (glong) (CDK_WINDOW_EDGE_SOUTH_WEST))), ((void
*)0), (GConnectFlags) 0)
2376 GINT_TO_POINTER (CDK_WINDOW_EDGE_SOUTH_WEST))g_signal_connect_data ((area), ("draw"), (((GCallback) (grippy_draw
))), (((gpointer) (glong) (CDK_WINDOW_EDGE_SOUTH_WEST))), ((void
*)0), (GConnectFlags) 0)
;
2377 g_signal_connect (area, "button_press_event", G_CALLBACK (grippy_button_press),g_signal_connect_data ((area), ("button_press_event"), (((GCallback
) (grippy_button_press))), (((gpointer) (glong) (CDK_WINDOW_EDGE_SOUTH_WEST
))), ((void*)0), (GConnectFlags) 0)
2378 GINT_TO_POINTER (CDK_WINDOW_EDGE_SOUTH_WEST))g_signal_connect_data ((area), ("button_press_event"), (((GCallback
) (grippy_button_press))), (((gpointer) (glong) (CDK_WINDOW_EDGE_SOUTH_WEST
))), ((void*)0), (GConnectFlags) 0)
;
2379 /* South */
2380 area = ctk_drawing_area_new ();
2381 ctk_widget_add_events (area, CDK_BUTTON_PRESS_MASK);
2382 ctk_box_pack_start (CTK_BOX (hbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hbox)), ((ctk_box_get_type ()))))))
, area, TRUE(!(0)), TRUE(!(0)), 0);
2383 g_signal_connect (area, "draw", G_CALLBACK (grippy_draw),g_signal_connect_data ((area), ("draw"), (((GCallback) (grippy_draw
))), (((gpointer) (glong) (CDK_WINDOW_EDGE_SOUTH))), ((void*)
0), (GConnectFlags) 0)
2384 GINT_TO_POINTER (CDK_WINDOW_EDGE_SOUTH))g_signal_connect_data ((area), ("draw"), (((GCallback) (grippy_draw
))), (((gpointer) (glong) (CDK_WINDOW_EDGE_SOUTH))), ((void*)
0), (GConnectFlags) 0)
;
2385 g_signal_connect (area, "button_press_event", G_CALLBACK (grippy_button_press),g_signal_connect_data ((area), ("button_press_event"), (((GCallback
) (grippy_button_press))), (((gpointer) (glong) (CDK_WINDOW_EDGE_SOUTH
))), ((void*)0), (GConnectFlags) 0)
2386 GINT_TO_POINTER (CDK_WINDOW_EDGE_SOUTH))g_signal_connect_data ((area), ("button_press_event"), (((GCallback
) (grippy_button_press))), (((gpointer) (glong) (CDK_WINDOW_EDGE_SOUTH
))), ((void*)0), (GConnectFlags) 0)
;
2387
2388 /* South east */
2389 area = ctk_drawing_area_new ();
2390 ctk_widget_add_events (area, CDK_BUTTON_PRESS_MASK);
2391 ctk_box_pack_start (CTK_BOX (hbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hbox)), ((ctk_box_get_type ()))))))
, area, TRUE(!(0)), TRUE(!(0)), 0);
2392 g_signal_connect (area, "draw", G_CALLBACK (grippy_draw),g_signal_connect_data ((area), ("draw"), (((GCallback) (grippy_draw
))), (((gpointer) (glong) (CDK_WINDOW_EDGE_SOUTH_EAST))), ((void
*)0), (GConnectFlags) 0)
2393 GINT_TO_POINTER (CDK_WINDOW_EDGE_SOUTH_EAST))g_signal_connect_data ((area), ("draw"), (((GCallback) (grippy_draw
))), (((gpointer) (glong) (CDK_WINDOW_EDGE_SOUTH_EAST))), ((void
*)0), (GConnectFlags) 0)
;
2394 g_signal_connect (area, "button_press_event", G_CALLBACK (grippy_button_press),g_signal_connect_data ((area), ("button_press_event"), (((GCallback
) (grippy_button_press))), (((gpointer) (glong) (CDK_WINDOW_EDGE_SOUTH_EAST
))), ((void*)0), (GConnectFlags) 0)
2395 GINT_TO_POINTER (CDK_WINDOW_EDGE_SOUTH_EAST))g_signal_connect_data ((area), ("button_press_event"), (((GCallback
) (grippy_button_press))), (((gpointer) (glong) (CDK_WINDOW_EDGE_SOUTH_EAST
))), ((void*)0), (GConnectFlags) 0)
;
2396 }
2397
2398 if (!ctk_widget_get_visible (window))
2399 ctk_widget_show_all (window);
2400 else
2401 ctk_widget_destroy (window);
2402}
2403
2404/*
2405 * Saved Position
2406 */
2407gint upositionx = 0;
2408gint upositiony = 0;
2409
2410static gint
2411uposition_configure (CtkWidget *window)
2412{
2413 CtkLabel *lx;
2414 CtkLabel *ly;
2415 gchar buffer[64];
2416
2417 lx = g_object_get_data (G_OBJECT (window)((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), (((GType) ((20) << (2))))))))
, "x");
2418 ly = g_object_get_data (G_OBJECT (window)((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), (((GType) ((20) << (2))))))))
, "y");
2419
2420 cdk_window_get_root_origin (ctk_widget_get_window (window),
2421 &upositionx, &upositiony);
2422 sprintf (buffer, "%d", upositionx);
2423 ctk_label_set_text (lx, buffer);
2424 sprintf (buffer, "%d", upositiony);
2425 ctk_label_set_text (ly, buffer);
2426
2427 return FALSE(0);
2428}
2429
2430static void
2431uposition_stop_configure (CtkToggleButton *toggle,
2432 GObject *window)
2433{
2434 if (ctk_toggle_button_get_active (toggle))
2435 g_signal_handlers_block_by_func (window, G_CALLBACK (uposition_configure), NULL)g_signal_handlers_block_matched ((window), (GSignalMatchType)
(G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)0
), (((GCallback) (uposition_configure))), (((void*)0)))
;
2436 else
2437 g_signal_handlers_unblock_by_func (window, G_CALLBACK (uposition_configure), NULL)g_signal_handlers_unblock_matched ((window), (GSignalMatchType
) (G_SIGNAL_MATCH_FUNC | G_SIGNAL_MATCH_DATA), 0, 0, ((void*)
0), (((GCallback) (uposition_configure))), (((void*)0)))
;
2438}
2439
2440static void
2441create_saved_position (CtkWidget *widget)
2442{
2443 static CtkWidget *window = NULL((void*)0);
2444
2445 if (!window)
2446 {
2447 CtkWidget *hbox;
2448 CtkWidget *main_vbox;
2449 CtkWidget *vbox;
2450 CtkWidget *x_label;
2451 CtkWidget *y_label;
2452 CtkWidget *button;
2453 CtkWidget *label;
2454 CtkWidget *any;
2455
2456 window = g_object_connect (g_object_new (CTK_TYPE_WINDOW(ctk_window_get_type ()),
2457 "type", CTK_WINDOW_TOPLEVEL,
2458 "title", "Saved Position",
2459 NULL((void*)0)),
2460 "signal::configure_event", uposition_configure, NULL((void*)0),
2461 NULL((void*)0));
2462
2463 ctk_window_move (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
, upositionx, upositiony);
2464
2465 ctk_window_set_screen (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
,
2466 ctk_widget_get_screen (widget));
2467
2468
2469 g_signal_connect (window, "destroy",g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
2470 G_CALLBACK (ctk_widget_destroyed),g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
2471 &window)g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
;
2472
2473 main_vbox = ctk_box_new (CTK_ORIENTATION_VERTICAL, 5);
2474 ctk_container_set_border_width (CTK_CONTAINER (main_vbox)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((main_vbox)), ((ctk_container_get_type ()))))))
, 0);
2475 ctk_container_add (CTK_CONTAINER (window)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_container_get_type ()))))))
, main_vbox);
2476
2477 vbox =
2478 g_object_new (CTK_TYPE_BOX(ctk_box_get_type ()),
2479 "orientation", CTK_ORIENTATION_VERTICAL,
2480 "CtkBox::homogeneous", FALSE(0),
2481 "CtkBox::spacing", 5,
2482 "CtkContainer::border_width", 10,
2483 "CtkWidget::parent", main_vbox,
2484 "CtkWidget::visible", TRUE(!(0)),
2485 "child", g_object_connect (g_object_new (CTK_TYPE_TOGGLE_BUTTON(ctk_toggle_button_get_type ()),
2486 "label", "Stop Events",
2487 "active", FALSE(0),
2488 "visible", TRUE(!(0)),
2489 NULL((void*)0)),
2490 "signal::clicked", uposition_stop_configure, window,
2491 NULL((void*)0)),
2492 NULL((void*)0));
2493
2494 hbox = ctk_box_new (CTK_ORIENTATION_HORIZONTAL, 0);
2495 ctk_container_set_border_width (CTK_CONTAINER (hbox)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hbox)), ((ctk_container_get_type ()))))))
, 5);
2496 ctk_box_pack_start (CTK_BOX (vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_box_get_type ()))))))
, hbox, FALSE(0), TRUE(!(0)), 0);
2497
2498 label = ctk_label_new ("X Origin : ");
2499 ctk_widget_set_halign (label, CTK_ALIGN_START);
2500 ctk_widget_set_valign (label, CTK_ALIGN_CENTER);
2501 ctk_box_pack_start (CTK_BOX (hbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hbox)), ((ctk_box_get_type ()))))))
, label, FALSE(0), TRUE(!(0)), 0);
2502
2503 x_label = ctk_label_new ("");
2504 ctk_box_pack_start (CTK_BOX (hbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hbox)), ((ctk_box_get_type ()))))))
, x_label, TRUE(!(0)), TRUE(!(0)), 0);
2505 g_object_set_data (G_OBJECT (window)((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), (((GType) ((20) << (2))))))))
, "x", x_label);
2506
2507 hbox = ctk_box_new (CTK_ORIENTATION_HORIZONTAL, 0);
2508 ctk_container_set_border_width (CTK_CONTAINER (hbox)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hbox)), ((ctk_container_get_type ()))))))
, 5);
2509 ctk_box_pack_start (CTK_BOX (vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_box_get_type ()))))))
, hbox, FALSE(0), TRUE(!(0)), 0);
2510
2511 label = ctk_label_new ("Y Origin : ");
2512 ctk_widget_set_halign (label, CTK_ALIGN_START);
2513 ctk_widget_set_valign (label, CTK_ALIGN_CENTER);
2514 ctk_box_pack_start (CTK_BOX (hbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hbox)), ((ctk_box_get_type ()))))))
, label, FALSE(0), TRUE(!(0)), 0);
2515
2516 y_label = ctk_label_new ("");
2517 ctk_box_pack_start (CTK_BOX (hbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hbox)), ((ctk_box_get_type ()))))))
, y_label, TRUE(!(0)), TRUE(!(0)), 0);
2518 g_object_set_data (G_OBJECT (window)((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), (((GType) ((20) << (2))))))))
, "y", y_label);
2519
2520 any =
2521 g_object_new (ctk_separator_get_type (),
2522 "CtkWidget::visible", TRUE(!(0)),
2523 NULL((void*)0));
2524 ctk_box_pack_start (CTK_BOX (main_vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((main_vbox)), ((ctk_box_get_type ()))))))
, any, FALSE(0), TRUE(!(0)), 0);
2525
2526 hbox = ctk_box_new (CTK_ORIENTATION_HORIZONTAL, 0);
2527 ctk_container_set_border_width (CTK_CONTAINER (hbox)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hbox)), ((ctk_container_get_type ()))))))
, 10);
2528 ctk_box_pack_start (CTK_BOX (main_vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((main_vbox)), ((ctk_box_get_type ()))))))
, hbox, FALSE(0), TRUE(!(0)), 0);
2529
2530 button = ctk_button_new_with_label ("Close");
2531 g_signal_connect_swapped (button, "clicked",g_signal_connect_data ((button), ("clicked"), (((GCallback) (
ctk_widget_destroy))), (window), ((void*)0), G_CONNECT_SWAPPED
)
2532 G_CALLBACK (ctk_widget_destroy),g_signal_connect_data ((button), ("clicked"), (((GCallback) (
ctk_widget_destroy))), (window), ((void*)0), G_CONNECT_SWAPPED
)
2533 window)g_signal_connect_data ((button), ("clicked"), (((GCallback) (
ctk_widget_destroy))), (window), ((void*)0), G_CONNECT_SWAPPED
)
;
2534 ctk_box_pack_start (CTK_BOX (hbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hbox)), ((ctk_box_get_type ()))))))
, button, TRUE(!(0)), TRUE(!(0)), 5);
2535 ctk_widget_set_can_default (button, TRUE(!(0)));
2536 ctk_widget_grab_default (button);
2537
2538 ctk_widget_show_all (window);
2539 }
2540 else
2541 ctk_widget_destroy (window);
2542}
2543
2544/*
2545 * CtkPixmap
2546 */
2547
2548static void
2549create_pixbuf (CtkWidget *widget)
2550{
2551 static CtkWidget *window = NULL((void*)0);
2552
2553 if (!window)
2554 {
2555 CtkWidget *box1;
2556 CtkWidget *box2;
2557 CtkWidget *box3;
2558 CtkWidget *button;
2559 CtkWidget *label;
2560 CtkWidget *separator;
2561 CtkWidget *pixbufwid;
2562 CdkWindow *cdk_window;
2563
2564 window = ctk_window_new (CTK_WINDOW_TOPLEVEL);
2565
2566 ctk_window_set_screen (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
,
2567 ctk_widget_get_screen (widget));
2568
2569 g_signal_connect (window, "destroy",g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
2570 G_CALLBACK (ctk_widget_destroyed),g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
2571 &window)g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
;
2572
2573 ctk_window_set_title (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
, "CtkPixmap");
2574 ctk_container_set_border_width (CTK_CONTAINER (window)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_container_get_type ()))))))
, 0);
2575 ctk_widget_realize(window);
2576
2577 box1 = ctk_box_new (CTK_ORIENTATION_VERTICAL, 0);
2578 ctk_container_add (CTK_CONTAINER (window)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_container_get_type ()))))))
, box1);
2579
2580 box2 = ctk_box_new (CTK_ORIENTATION_VERTICAL, 10);
2581 ctk_container_set_border_width (CTK_CONTAINER (box2)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_container_get_type ()))))))
, 10);
2582 ctk_box_pack_start (CTK_BOX (box1)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box1)), ((ctk_box_get_type ()))))))
, box2, TRUE(!(0)), TRUE(!(0)), 0);
2583
2584 button = ctk_button_new ();
2585 ctk_box_pack_start (CTK_BOX (box2)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_box_get_type ()))))))
, button, FALSE(0), FALSE(0), 0);
2586
2587 cdk_window = ctk_widget_get_window (window);
2588
2589 pixbufwid = new_pixbuf ("test.xpm", cdk_window);
2590
2591 label = ctk_label_new ("Pixbuf\ntest");
2592 box3 = ctk_box_new (CTK_ORIENTATION_HORIZONTAL, 0);
2593 ctk_container_set_border_width (CTK_CONTAINER (box3)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box3)), ((ctk_container_get_type ()))))))
, 2);
2594 ctk_container_add (CTK_CONTAINER (box3)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box3)), ((ctk_container_get_type ()))))))
, pixbufwid);
2595 ctk_container_add (CTK_CONTAINER (box3)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box3)), ((ctk_container_get_type ()))))))
, label);
2596 ctk_container_add (CTK_CONTAINER (button)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((button)), ((ctk_container_get_type ()))))))
, box3);
2597
2598 button = ctk_button_new ();
2599 ctk_box_pack_start (CTK_BOX (box2)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_box_get_type ()))))))
, button, FALSE(0), FALSE(0), 0);
2600
2601 pixbufwid = new_pixbuf ("test.xpm", cdk_window);
2602
2603 label = ctk_label_new ("Pixbuf\ntest");
2604 box3 = ctk_box_new (CTK_ORIENTATION_HORIZONTAL, 0);
2605 ctk_container_set_border_width (CTK_CONTAINER (box3)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box3)), ((ctk_container_get_type ()))))))
, 2);
2606 ctk_container_add (CTK_CONTAINER (box3)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box3)), ((ctk_container_get_type ()))))))
, pixbufwid);
2607 ctk_container_add (CTK_CONTAINER (box3)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box3)), ((ctk_container_get_type ()))))))
, label);
2608 ctk_container_add (CTK_CONTAINER (button)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((button)), ((ctk_container_get_type ()))))))
, box3);
2609
2610 ctk_widget_set_sensitive (button, FALSE(0));
2611
2612 separator = ctk_separator_new (CTK_ORIENTATION_HORIZONTAL);
2613 ctk_box_pack_start (CTK_BOX (box1)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box1)), ((ctk_box_get_type ()))))))
, separator, FALSE(0), TRUE(!(0)), 0);
2614
2615 box2 = ctk_box_new (CTK_ORIENTATION_VERTICAL, 10);
2616 ctk_container_set_border_width (CTK_CONTAINER (box2)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_container_get_type ()))))))
, 10);
2617 ctk_box_pack_start (CTK_BOX (box1)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box1)), ((ctk_box_get_type ()))))))
, box2, FALSE(0), TRUE(!(0)), 0);
2618
2619 button = ctk_button_new_with_label ("close");
2620 g_signal_connect_swapped (button, "clicked",g_signal_connect_data ((button), ("clicked"), (((GCallback) (
ctk_widget_destroy))), (window), ((void*)0), G_CONNECT_SWAPPED
)
2621 G_CALLBACK (ctk_widget_destroy),g_signal_connect_data ((button), ("clicked"), (((GCallback) (
ctk_widget_destroy))), (window), ((void*)0), G_CONNECT_SWAPPED
)
2622 window)g_signal_connect_data ((button), ("clicked"), (((GCallback) (
ctk_widget_destroy))), (window), ((void*)0), G_CONNECT_SWAPPED
)
;
2623 ctk_box_pack_start (CTK_BOX (box2)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_box_get_type ()))))))
, button, TRUE(!(0)), TRUE(!(0)), 0);
2624 ctk_widget_set_can_default (button, TRUE(!(0)));
2625 ctk_widget_grab_default (button);
2626 }
2627
2628 if (!ctk_widget_get_visible (window))
2629 ctk_widget_show_all (window);
2630 else
2631 ctk_widget_destroy (window);
2632}
2633
2634static void
2635create_tooltips (CtkWidget *widget)
2636{
2637 static CtkWidget *window = NULL((void*)0);
2638
2639 if (!window)
2640 {
2641 CtkWidget *box1;
2642 CtkWidget *box2;
2643 CtkWidget *box3;
2644 CtkWidget *button;
2645 CtkWidget *toggle;
2646 CtkWidget *frame;
2647 CtkWidget *separator;
2648
2649 window =
2650 g_object_new (ctk_window_get_type (),
2651 "CtkWindow::type", CTK_WINDOW_TOPLEVEL,
2652 "CtkContainer::border_width", 0,
2653 "CtkWindow::title", "Tooltips",
2654 "CtkWindow::resizable", FALSE(0),
2655 NULL((void*)0));
2656
2657 ctk_window_set_screen (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
,
2658 ctk_widget_get_screen (widget));
2659
2660 box1 = ctk_box_new (CTK_ORIENTATION_VERTICAL, 0);
2661 ctk_container_add (CTK_CONTAINER (window)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_container_get_type ()))))))
, box1);
2662
2663 box2 = ctk_box_new (CTK_ORIENTATION_VERTICAL, 10);
2664 ctk_container_set_border_width (CTK_CONTAINER (box2)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_container_get_type ()))))))
, 10);
2665 ctk_box_pack_start (CTK_BOX (box1)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box1)), ((ctk_box_get_type ()))))))
, box2, TRUE(!(0)), TRUE(!(0)), 0);
2666
2667 button = ctk_toggle_button_new_with_label ("button1");
2668 ctk_box_pack_start (CTK_BOX (box2)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_box_get_type ()))))))
, button, TRUE(!(0)), TRUE(!(0)), 0);
2669
2670 ctk_widget_set_tooltip_text (button, "This is button 1");
2671
2672 button = ctk_toggle_button_new_with_label ("button2");
2673 ctk_box_pack_start (CTK_BOX (box2)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_box_get_type ()))))))
, button, TRUE(!(0)), TRUE(!(0)), 0);
2674
2675 ctk_widget_set_tooltip_text (button,
2676 "This is button 2. This is also a really long tooltip which probably "
2677 "won't fit on a single line and will therefore need to be wrapped. "
2678 "Hopefully the wrapping will work correctly.");
2679
2680 toggle = ctk_toggle_button_new_with_label ("Override TipsQuery Label");
2681 ctk_box_pack_start (CTK_BOX (box2)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_box_get_type ()))))))
, toggle, TRUE(!(0)), TRUE(!(0)), 0);
2682
2683 ctk_widget_set_tooltip_text (toggle, "Toggle TipsQuery view.");
2684
2685 box3 =
2686 g_object_new (CTK_TYPE_BOX(ctk_box_get_type ()),
2687 "orientation", CTK_ORIENTATION_VERTICAL,
2688 "homogeneous", FALSE(0),
2689 "spacing", 5,
2690 "border_width", 5,
2691 "visible", TRUE(!(0)),
2692 NULL((void*)0));
2693
2694 button =
2695 g_object_new (ctk_button_get_type (),
2696 "label", "[?]",
2697 "visible", TRUE(!(0)),
2698 "parent", box3,
2699 NULL((void*)0));
2700 ctk_box_set_child_packing (CTK_BOX (box3)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box3)), ((ctk_box_get_type ()))))))
, button, FALSE(0), FALSE(0), 0, CTK_PACK_START);
2701 ctk_widget_set_tooltip_text (button, "Start the Tooltips Inspector");
2702
2703 frame = g_object_new (ctk_frame_get_type (),
2704 "label", "ToolTips Inspector",
2705 "label_xalign", (double) 0.5,
2706 "border_width", 0,
2707 "visible", TRUE(!(0)),
2708 "parent", box2,
2709 "child", box3,
2710 NULL((void*)0));
2711 ctk_box_set_child_packing (CTK_BOX (box2)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_box_get_type ()))))))
, frame, TRUE(!(0)), TRUE(!(0)), 10, CTK_PACK_START);
2712
2713 separator = ctk_separator_new (CTK_ORIENTATION_HORIZONTAL);
2714 ctk_box_pack_start (CTK_BOX (box1)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box1)), ((ctk_box_get_type ()))))))
, separator, FALSE(0), TRUE(!(0)), 0);
2715
2716 box2 = ctk_box_new (CTK_ORIENTATION_VERTICAL, 10);
2717 ctk_container_set_border_width (CTK_CONTAINER (box2)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_container_get_type ()))))))
, 10);
2718 ctk_box_pack_start (CTK_BOX (box1)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box1)), ((ctk_box_get_type ()))))))
, box2, FALSE(0), TRUE(!(0)), 0);
2719
2720 button = ctk_button_new_with_label ("close");
2721 g_signal_connect_swapped (button, "clicked",g_signal_connect_data ((button), ("clicked"), (((GCallback) (
ctk_widget_destroy))), (window), ((void*)0), G_CONNECT_SWAPPED
)
2722 G_CALLBACK (ctk_widget_destroy),g_signal_connect_data ((button), ("clicked"), (((GCallback) (
ctk_widget_destroy))), (window), ((void*)0), G_CONNECT_SWAPPED
)
2723 window)g_signal_connect_data ((button), ("clicked"), (((GCallback) (
ctk_widget_destroy))), (window), ((void*)0), G_CONNECT_SWAPPED
)
;
2724 ctk_box_pack_start (CTK_BOX (box2)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_box_get_type ()))))))
, button, TRUE(!(0)), TRUE(!(0)), 0);
2725 ctk_widget_set_can_default (button, TRUE(!(0)));
2726 ctk_widget_grab_default (button);
2727
2728 ctk_widget_set_tooltip_text (button, "Push this button to close window");
2729 }
2730
2731 if (!ctk_widget_get_visible (window))
2732 ctk_widget_show_all (window);
2733 else
2734 ctk_widget_destroy (window);
2735}
2736
2737/*
2738 * CtkImage
2739 */
2740
2741static void
2742pack_image (CtkWidget *box,
2743 const gchar *text,
2744 CtkWidget *image)
2745{
2746 ctk_box_pack_start (CTK_BOX (box)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box)), ((ctk_box_get_type ()))))))
,
2747 ctk_label_new (text),
2748 FALSE(0), FALSE(0), 0);
2749
2750 ctk_box_pack_start (CTK_BOX (box)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box)), ((ctk_box_get_type ()))))))
,
2751 image,
2752 TRUE(!(0)), TRUE(!(0)), 0);
2753}
2754
2755static void
2756create_image (CtkWidget *widget)
2757{
2758 static CtkWidget *window = NULL((void*)0);
2759
2760 if (window == NULL((void*)0))
2761 {
2762 CtkWidget *vbox;
2763 GdkPixbuf *pixbuf;
2764
2765 window = ctk_window_new (CTK_WINDOW_TOPLEVEL);
2766
2767 ctk_window_set_screen (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
,
2768 ctk_widget_get_screen (widget));
2769
2770 /* this is bogus for testing drawing when allocation < request,
2771 * don't copy into real code
2772 */
2773 ctk_window_set_resizable (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
, TRUE(!(0)));
2774
2775 g_signal_connect (window, "destroy",g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
2776 G_CALLBACK (ctk_widget_destroyed),g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
2777 &window)g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
;
2778
2779 vbox = ctk_box_new (CTK_ORIENTATION_VERTICAL, 5);
2780
2781 ctk_container_add (CTK_CONTAINER (window)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_container_get_type ()))))))
, vbox);
2782
2783 pack_image (vbox, "Stock Warning Dialog",
2784 ctk_image_new_from_icon_name ("dialog-warning",
2785 CTK_ICON_SIZE_DIALOG));
2786
2787 pixbuf = gdk_pixbuf_new_from_xpm_data ((const char **) openfile);
2788
2789 pack_image (vbox, "Pixbuf",
2790 ctk_image_new_from_pixbuf (pixbuf));
2791
2792 g_object_unref (pixbuf);
2793 }
2794
2795 if (!ctk_widget_get_visible (window))
2796 ctk_widget_show_all (window);
2797 else
2798 ctk_widget_destroy (window);
2799}
2800
2801/*
2802 * ListBox demo
2803 */
2804
2805static int
2806list_sort_cb (CtkListBoxRow *a, CtkListBoxRow *b, gpointer data)
2807{
2808 gint aa = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (a), "value"))((gint) (glong) (g_object_get_data (((((GObject*) (void *) g_type_check_instance_cast
((GTypeInstance*) ((a)), (((GType) ((20) << (2))))))))
, "value")))
;
2809 gint bb = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (b), "value"))((gint) (glong) (g_object_get_data (((((GObject*) (void *) g_type_check_instance_cast
((GTypeInstance*) ((b)), (((GType) ((20) << (2))))))))
, "value")))
;
2810 return aa - bb;
2811}
2812
2813static gboolean
2814list_filter_all_cb (CtkListBoxRow *row, gpointer data)
2815{
2816 return FALSE(0);
2817}
2818
2819static gboolean
2820list_filter_odd_cb (CtkListBoxRow *row, gpointer data)
2821{
2822 gint value = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (row), "value"))((gint) (glong) (g_object_get_data (((((GObject*) (void *) g_type_check_instance_cast
((GTypeInstance*) ((row)), (((GType) ((20) << (2))))))
)), "value")))
;
2823
2824 return value % 2 == 0;
2825}
2826
2827static void
2828list_sort_clicked_cb (CtkButton *button,
2829 gpointer data)
2830{
2831 CtkListBox *list = data;
2832
2833 ctk_list_box_set_sort_func (list, list_sort_cb, NULL((void*)0), NULL((void*)0));
2834}
2835
2836static void
2837list_filter_odd_clicked_cb (CtkButton *button,
2838 gpointer data)
2839{
2840 CtkListBox *list = data;
2841
2842 ctk_list_box_set_filter_func (list, list_filter_odd_cb, NULL((void*)0), NULL((void*)0));
2843}
2844
2845static void
2846list_filter_all_clicked_cb (CtkButton *button,
2847 gpointer data)
2848{
2849 CtkListBox *list = data;
2850
2851 ctk_list_box_set_filter_func (list, list_filter_all_cb, NULL((void*)0), NULL((void*)0));
2852}
2853
2854
2855static void
2856list_unfilter_clicked_cb (CtkButton *button,
2857 gpointer data)
2858{
2859 CtkListBox *list = data;
2860
2861 ctk_list_box_set_filter_func (list, NULL((void*)0), NULL((void*)0), NULL((void*)0));
2862}
2863
2864static void
2865add_placeholder_clicked_cb (CtkButton *button,
2866 gpointer data)
2867{
2868 CtkListBox *list = data;
2869 CtkWidget *label;
2870
2871 label = ctk_label_new ("You filtered everything!!!");
2872 ctk_widget_show (label);
2873 ctk_list_box_set_placeholder (CTK_LIST_BOX (list)((((CtkListBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((list)), ((ctk_list_box_get_type ()))))))
, label);
2874}
2875
2876static void
2877remove_placeholder_clicked_cb (CtkButton *button,
2878 gpointer data)
2879{
2880 CtkListBox *list = data;
2881
2882 ctk_list_box_set_placeholder (CTK_LIST_BOX (list)((((CtkListBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((list)), ((ctk_list_box_get_type ()))))))
, NULL((void*)0));
2883}
2884
2885
2886static void
2887create_listbox (CtkWidget *widget)
2888{
2889 static CtkWidget *window = NULL((void*)0);
2890
2891 if (!window)
2892 {
2893 CtkWidget *hbox, *vbox, *scrolled, *scrolled_box, *list, *label, *button;
2894 CdkScreen *screen = ctk_widget_get_screen (widget);
2895 int i;
2896
2897 window = ctk_window_new (CTK_WINDOW_TOPLEVEL);
2898 ctk_window_set_screen (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
, screen);
2899
2900 g_signal_connect (window, "destroy",g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
2901 G_CALLBACK (ctk_widget_destroyed),g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
2902 &window)g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
;
2903 g_signal_connect (window, "delete-event",g_signal_connect_data ((window), ("delete-event"), (((GCallback
) (ctk_true))), (((void*)0)), ((void*)0), (GConnectFlags) 0)
2904 G_CALLBACK (ctk_true),g_signal_connect_data ((window), ("delete-event"), (((GCallback
) (ctk_true))), (((void*)0)), ((void*)0), (GConnectFlags) 0)
2905 NULL)g_signal_connect_data ((window), ("delete-event"), (((GCallback
) (ctk_true))), (((void*)0)), ((void*)0), (GConnectFlags) 0)
;
2906
2907 ctk_window_set_title (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
, "listbox");
2908
2909 hbox = ctk_box_new(CTK_ORIENTATION_HORIZONTAL, 0);
2910 ctk_container_add (CTK_CONTAINER (window)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_container_get_type ()))))))
, hbox);
2911
2912 scrolled = ctk_scrolled_window_new (NULL((void*)0), NULL((void*)0));
2913 ctk_scrolled_window_set_policy (CTK_SCROLLED_WINDOW (scrolled)((((CtkScrolledWindow*) (void *) g_type_check_instance_cast (
(GTypeInstance*) ((scrolled)), ((ctk_scrolled_window_get_type
()))))))
, CTK_POLICY_NEVER, CTK_POLICY_AUTOMATIC);
2914 ctk_container_add (CTK_CONTAINER (hbox)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hbox)), ((ctk_container_get_type ()))))))
, scrolled);
2915
2916 scrolled_box = ctk_box_new (CTK_ORIENTATION_VERTICAL, 0);
2917 ctk_container_add (CTK_CONTAINER (scrolled)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((scrolled)), ((ctk_container_get_type ()))))))
, scrolled_box);
2918
2919 label = ctk_label_new ("This is \na LABEL\nwith rows");
2920 ctk_container_add (CTK_CONTAINER (scrolled_box)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((scrolled_box)), ((ctk_container_get_type ()))))))
, label);
2921
2922 list = ctk_list_box_new();
2923 ctk_list_box_set_adjustment (CTK_LIST_BOX (list)((((CtkListBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((list)), ((ctk_list_box_get_type ()))))))
, ctk_scrolled_window_get_vadjustment (CTK_SCROLLED_WINDOW (scrolled)((((CtkScrolledWindow*) (void *) g_type_check_instance_cast (
(GTypeInstance*) ((scrolled)), ((ctk_scrolled_window_get_type
()))))))
));
2924 ctk_container_add (CTK_CONTAINER (scrolled_box)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((scrolled_box)), ((ctk_container_get_type ()))))))
, list);
2925
2926 for (i = 0; i < 1000; i++)
2927 {
2928 gint value = g_random_int_range (0, 10000);
2929 label = ctk_label_new (g_strdup_printf ("Value %u", value));
2930 ctk_widget_show (label);
2931 ctk_container_add (CTK_CONTAINER (list)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((list)), ((ctk_container_get_type ()))))))
, label);
2932 g_object_set_data (G_OBJECT (ctk_widget_get_parent (label))((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((ctk_widget_get_parent (label))), (((GType) ((20) <<
(2))))))))
, "value", GINT_TO_POINTER (value)((gpointer) (glong) (value)));
2933 }
2934
2935 vbox = ctk_box_new (CTK_ORIENTATION_VERTICAL, 0);
2936 ctk_container_add (CTK_CONTAINER (hbox)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hbox)), ((ctk_container_get_type ()))))))
, vbox);
2937
2938 button = ctk_button_new_with_label ("sort");
2939 ctk_container_add (CTK_CONTAINER (vbox)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_container_get_type ()))))))
, button);
2940 g_signal_connect (button, "clicked", G_CALLBACK (list_sort_clicked_cb), list)g_signal_connect_data ((button), ("clicked"), (((GCallback) (
list_sort_clicked_cb))), (list), ((void*)0), (GConnectFlags) 0
)
;
2941
2942 button = ctk_button_new_with_label ("filter odd");
2943 ctk_container_add (CTK_CONTAINER (vbox)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_container_get_type ()))))))
, button);
2944 g_signal_connect (button, "clicked", G_CALLBACK (list_filter_odd_clicked_cb), list)g_signal_connect_data ((button), ("clicked"), (((GCallback) (
list_filter_odd_clicked_cb))), (list), ((void*)0), (GConnectFlags
) 0)
;
2945
2946 button = ctk_button_new_with_label ("filter all");
2947 ctk_container_add (CTK_CONTAINER (vbox)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_container_get_type ()))))))
, button);
2948 g_signal_connect (button, "clicked", G_CALLBACK (list_filter_all_clicked_cb), list)g_signal_connect_data ((button), ("clicked"), (((GCallback) (
list_filter_all_clicked_cb))), (list), ((void*)0), (GConnectFlags
) 0)
;
2949
2950 button = ctk_button_new_with_label ("unfilter");
2951 ctk_container_add (CTK_CONTAINER (vbox)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_container_get_type ()))))))
, button);
2952 g_signal_connect (button, "clicked", G_CALLBACK (list_unfilter_clicked_cb), list)g_signal_connect_data ((button), ("clicked"), (((GCallback) (
list_unfilter_clicked_cb))), (list), ((void*)0), (GConnectFlags
) 0)
;
2953
2954 button = ctk_button_new_with_label ("add placeholder");
2955 ctk_container_add (CTK_CONTAINER (vbox)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_container_get_type ()))))))
, button);
2956 g_signal_connect (button, "clicked", G_CALLBACK (add_placeholder_clicked_cb), list)g_signal_connect_data ((button), ("clicked"), (((GCallback) (
add_placeholder_clicked_cb))), (list), ((void*)0), (GConnectFlags
) 0)
;
2957
2958 button = ctk_button_new_with_label ("remove placeholder");
2959 ctk_container_add (CTK_CONTAINER (vbox)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_container_get_type ()))))))
, button);
2960 g_signal_connect (button, "clicked", G_CALLBACK (remove_placeholder_clicked_cb), list)g_signal_connect_data ((button), ("clicked"), (((GCallback) (
remove_placeholder_clicked_cb))), (list), ((void*)0), (GConnectFlags
) 0)
;
2961 }
2962
2963 if (!ctk_widget_get_visible (window))
2964 ctk_widget_show_all (window);
2965 else
2966 ctk_widget_destroy (window);
2967}
2968
2969
2970/*
2971 * Menu demo
2972 */
2973
2974static CtkWidget*
2975create_menu (CdkScreen *screen, gint depth, gint length)
2976{
2977 CtkWidget *menu;
2978 CtkWidget *menuitem;
2979 CtkWidget *image;
2980 GSList *group;
2981 char buf[32];
2982 int i, j;
2983
2984 if (depth < 1)
2985 return NULL((void*)0);
2986
2987 menu = ctk_menu_new ();
2988 ctk_menu_set_screen (CTK_MENU (menu)((((CtkMenu*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((menu)), ((ctk_menu_get_type ()))))))
, screen);
2989
2990 group = NULL((void*)0);
2991
2992 image = ctk_image_new_from_icon_name ("document-open",
2993 CTK_ICON_SIZE_MENU);
2994 ctk_widget_show (image);
2995
2996 menuitem = ctk_image_menu_item_new_with_label ("Image item");
2997 ctk_image_menu_item_set_image (CTK_IMAGE_MENU_ITEM (menuitem)((((CtkImageMenuItem*) (void *) g_type_check_instance_cast ((
GTypeInstance*) ((menuitem)), ((ctk_image_menu_item_get_type (
)))))))
, image);
2998 ctk_image_menu_item_set_always_show_image (CTK_IMAGE_MENU_ITEM (menuitem)((((CtkImageMenuItem*) (void *) g_type_check_instance_cast ((
GTypeInstance*) ((menuitem)), ((ctk_image_menu_item_get_type (
)))))))
, TRUE(!(0)));
2999
3000 ctk_menu_shell_append (CTK_MENU_SHELL (menu)((((CtkMenuShell*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((menu)), ((ctk_menu_shell_get_type ()))))))
, menuitem);
3001 ctk_widget_show (menuitem);
3002
3003 for (i = 0, j = 1; i < length; i++, j++)
3004 {
3005 sprintf (buf, "item %2d - %d", depth, j);
3006
3007 menuitem = ctk_radio_menu_item_new_with_label (group, buf);
3008 group = ctk_radio_menu_item_get_group (CTK_RADIO_MENU_ITEM (menuitem)((((CtkRadioMenuItem*) (void *) g_type_check_instance_cast ((
GTypeInstance*) ((menuitem)), ((ctk_radio_menu_item_get_type (
)))))))
);
3009
3010 ctk_menu_shell_append (CTK_MENU_SHELL (menu)((((CtkMenuShell*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((menu)), ((ctk_menu_shell_get_type ()))))))
, menuitem);
3011 ctk_widget_show (menuitem);
3012 if (i == 3)
3013 ctk_widget_set_sensitive (menuitem, FALSE(0));
3014
3015 if (i == 5)
3016 ctk_check_menu_item_set_inconsistent (CTK_CHECK_MENU_ITEM (menuitem)((((CtkCheckMenuItem*) (void *) g_type_check_instance_cast ((
GTypeInstance*) ((menuitem)), ((ctk_check_menu_item_get_type (
)))))))
,
3017 TRUE(!(0)));
3018
3019 if (i < 5)
3020 ctk_menu_item_set_submenu (CTK_MENU_ITEM (menuitem)((((CtkMenuItem*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((menuitem)), ((ctk_menu_item_get_type ()))))))
,
3021 create_menu (screen, depth - 1, 5));
3022 }
3023
3024 return menu;
3025}
3026
3027static CtkWidget*
3028create_table_menu (CdkScreen *screen, gint cols, gint rows)
3029{
3030 CtkWidget *menu;
3031 CtkWidget *menuitem;
3032 CtkWidget *submenu;
3033 CtkWidget *image;
3034 char buf[32];
3035 int i, j;
3036
3037 menu = ctk_menu_new ();
3038 ctk_menu_set_screen (CTK_MENU (menu)((((CtkMenu*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((menu)), ((ctk_menu_get_type ()))))))
, screen);
3039
3040 j = 0;
3041
3042 menuitem = ctk_menu_item_new_with_label ("items");
3043 ctk_menu_attach (CTK_MENU (menu)((((CtkMenu*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((menu)), ((ctk_menu_get_type ()))))))
, menuitem, 0, cols, j, j + 1);
3044
3045 submenu = ctk_menu_new ();
3046 ctk_menu_set_screen (CTK_MENU (submenu)((((CtkMenu*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((submenu)), ((ctk_menu_get_type ()))))))
, screen);
3047 ctk_menu_item_set_submenu (CTK_MENU_ITEM (menuitem)((((CtkMenuItem*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((menuitem)), ((ctk_menu_item_get_type ()))))))
, submenu);
3048 ctk_widget_show (menuitem);
3049 j++;
3050
3051 /* now fill the items submenu */
3052 image = ctk_image_new_from_icon_name ("help-broswer",
3053 CTK_ICON_SIZE_MENU);
3054 ctk_widget_show (image);
3055
3056 menuitem = ctk_image_menu_item_new_with_label ("Image");
3057 ctk_image_menu_item_set_image (CTK_IMAGE_MENU_ITEM (menuitem)((((CtkImageMenuItem*) (void *) g_type_check_instance_cast ((
GTypeInstance*) ((menuitem)), ((ctk_image_menu_item_get_type (
)))))))
, image);
3058 ctk_image_menu_item_set_always_show_image (CTK_IMAGE_MENU_ITEM (menuitem)((((CtkImageMenuItem*) (void *) g_type_check_instance_cast ((
GTypeInstance*) ((menuitem)), ((ctk_image_menu_item_get_type (
)))))))
, TRUE(!(0)));
3059
3060 ctk_menu_attach (CTK_MENU (submenu)((((CtkMenu*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((submenu)), ((ctk_menu_get_type ()))))))
, menuitem, 0, 1, 0, 1);
3061 ctk_widget_show (menuitem);
3062
3063 menuitem = ctk_menu_item_new_with_label ("x");
3064 ctk_menu_attach (CTK_MENU (submenu)((((CtkMenu*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((submenu)), ((ctk_menu_get_type ()))))))
, menuitem, 1, 2, 0, 1);
3065 ctk_widget_show (menuitem);
3066
3067 menuitem = ctk_menu_item_new_with_label ("x");
3068 ctk_menu_attach (CTK_MENU (submenu)((((CtkMenu*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((submenu)), ((ctk_menu_get_type ()))))))
, menuitem, 0, 1, 1, 2);
3069 ctk_widget_show (menuitem);
3070
3071 image = ctk_image_new_from_icon_name ("help-browser",
3072 CTK_ICON_SIZE_MENU);
3073 ctk_widget_show (image);
3074
3075 menuitem = ctk_image_menu_item_new_with_label ("Image");
3076 ctk_image_menu_item_set_image (CTK_IMAGE_MENU_ITEM (menuitem)((((CtkImageMenuItem*) (void *) g_type_check_instance_cast ((
GTypeInstance*) ((menuitem)), ((ctk_image_menu_item_get_type (
)))))))
, image);
3077 ctk_image_menu_item_set_always_show_image (CTK_IMAGE_MENU_ITEM (menuitem)((((CtkImageMenuItem*) (void *) g_type_check_instance_cast ((
GTypeInstance*) ((menuitem)), ((ctk_image_menu_item_get_type (
)))))))
, TRUE(!(0)));
3078
3079 ctk_menu_attach (CTK_MENU (submenu)((((CtkMenu*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((submenu)), ((ctk_menu_get_type ()))))))
, menuitem, 1, 2, 1, 2);
3080 ctk_widget_show (menuitem);
3081
3082 menuitem = ctk_radio_menu_item_new_with_label (NULL((void*)0), "Radio");
3083 ctk_menu_attach (CTK_MENU (submenu)((((CtkMenu*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((submenu)), ((ctk_menu_get_type ()))))))
, menuitem, 0, 1, 2, 3);
3084 ctk_widget_show (menuitem);
3085
3086 menuitem = ctk_menu_item_new_with_label ("x");
3087 ctk_menu_attach (CTK_MENU (submenu)((((CtkMenu*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((submenu)), ((ctk_menu_get_type ()))))))
, menuitem, 1, 2, 2, 3);
3088 ctk_widget_show (menuitem);
3089
3090 menuitem = ctk_menu_item_new_with_label ("x");
3091 ctk_menu_attach (CTK_MENU (submenu)((((CtkMenu*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((submenu)), ((ctk_menu_get_type ()))))))
, menuitem, 0, 1, 3, 4);
3092 ctk_widget_show (menuitem);
3093
3094 menuitem = ctk_radio_menu_item_new_with_label (NULL((void*)0), "Radio");
3095 ctk_menu_attach (CTK_MENU (submenu)((((CtkMenu*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((submenu)), ((ctk_menu_get_type ()))))))
, menuitem, 1, 2, 3, 4);
3096 ctk_widget_show (menuitem);
3097
3098 menuitem = ctk_check_menu_item_new_with_label ("Check");
3099 ctk_menu_attach (CTK_MENU (submenu)((((CtkMenu*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((submenu)), ((ctk_menu_get_type ()))))))
, menuitem, 0, 1, 4, 5);
3100 ctk_widget_show (menuitem);
3101
3102 menuitem = ctk_menu_item_new_with_label ("x");
3103 ctk_menu_attach (CTK_MENU (submenu)((((CtkMenu*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((submenu)), ((ctk_menu_get_type ()))))))
, menuitem, 1, 2, 4, 5);
3104 ctk_widget_show (menuitem);
3105
3106 menuitem = ctk_menu_item_new_with_label ("x");
3107 ctk_menu_attach (CTK_MENU (submenu)((((CtkMenu*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((submenu)), ((ctk_menu_get_type ()))))))
, menuitem, 0, 1, 5, 6);
3108 ctk_widget_show (menuitem);
3109
3110 menuitem = ctk_check_menu_item_new_with_label ("Check");
3111 ctk_menu_attach (CTK_MENU (submenu)((((CtkMenu*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((submenu)), ((ctk_menu_get_type ()))))))
, menuitem, 1, 2, 5, 6);
3112 ctk_widget_show (menuitem);
3113
3114 menuitem = ctk_menu_item_new_with_label ("1. Inserted normally (8)");
3115 ctk_widget_show (menuitem);
3116 ctk_menu_shell_insert (CTK_MENU_SHELL (submenu)((((CtkMenuShell*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((submenu)), ((ctk_menu_shell_get_type ()))))))
, menuitem, 8);
3117
3118 menuitem = ctk_menu_item_new_with_label ("2. Inserted normally (2)");
3119 ctk_widget_show (menuitem);
3120 ctk_menu_shell_insert (CTK_MENU_SHELL (submenu)((((CtkMenuShell*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((submenu)), ((ctk_menu_shell_get_type ()))))))
, menuitem, 2);
3121
3122 menuitem = ctk_menu_item_new_with_label ("3. Inserted normally (0)");
3123 ctk_widget_show (menuitem);
3124 ctk_menu_shell_insert (CTK_MENU_SHELL (submenu)((((CtkMenuShell*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((submenu)), ((ctk_menu_shell_get_type ()))))))
, menuitem, 0);
3125
3126 menuitem = ctk_menu_item_new_with_label ("4. Inserted normally (-1)");
3127 ctk_widget_show (menuitem);
3128 ctk_menu_shell_insert (CTK_MENU_SHELL (submenu)((((CtkMenuShell*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((submenu)), ((ctk_menu_shell_get_type ()))))))
, menuitem, -1);
3129
3130 /* end of items submenu */
3131
3132 menuitem = ctk_menu_item_new_with_label ("spanning");
3133 ctk_menu_attach (CTK_MENU (menu)((((CtkMenu*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((menu)), ((ctk_menu_get_type ()))))))
, menuitem, 0, cols, j, j + 1);
3134
3135 submenu = ctk_menu_new ();
3136 ctk_menu_set_screen (CTK_MENU (submenu)((((CtkMenu*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((submenu)), ((ctk_menu_get_type ()))))))
, screen);
3137 ctk_menu_item_set_submenu (CTK_MENU_ITEM (menuitem)((((CtkMenuItem*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((menuitem)), ((ctk_menu_item_get_type ()))))))
, submenu);
3138 ctk_widget_show (menuitem);
3139 j++;
3140
3141 /* now fill the spanning submenu */
3142 menuitem = ctk_menu_item_new_with_label ("a");
3143 ctk_menu_attach (CTK_MENU (submenu)((((CtkMenu*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((submenu)), ((ctk_menu_get_type ()))))))
, menuitem, 0, 2, 0, 1);
3144 ctk_widget_show (menuitem);
3145
3146 menuitem = ctk_menu_item_new_with_label ("b");
3147 ctk_menu_attach (CTK_MENU (submenu)((((CtkMenu*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((submenu)), ((ctk_menu_get_type ()))))))
, menuitem, 2, 3, 0, 2);
3148 ctk_widget_show (menuitem);
3149
3150 menuitem = ctk_menu_item_new_with_label ("c");
3151 ctk_menu_attach (CTK_MENU (submenu)((((CtkMenu*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((submenu)), ((ctk_menu_get_type ()))))))
, menuitem, 0, 1, 1, 3);
3152 ctk_widget_show (menuitem);
3153
3154 menuitem = ctk_menu_item_new_with_label ("d");
3155 ctk_menu_attach (CTK_MENU (submenu)((((CtkMenu*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((submenu)), ((ctk_menu_get_type ()))))))
, menuitem, 1, 2, 1, 2);
3156 ctk_widget_show (menuitem);
3157
3158 menuitem = ctk_menu_item_new_with_label ("e");
3159 ctk_menu_attach (CTK_MENU (submenu)((((CtkMenu*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((submenu)), ((ctk_menu_get_type ()))))))
, menuitem, 1, 3, 2, 3);
3160 ctk_widget_show (menuitem);
3161 /* end of spanning submenu */
3162
3163 menuitem = ctk_menu_item_new_with_label ("left");
3164 ctk_menu_attach (CTK_MENU (menu)((((CtkMenu*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((menu)), ((ctk_menu_get_type ()))))))
, menuitem, 0, 1, j, j + 1);
3165 submenu = ctk_menu_new ();
3166 ctk_menu_set_screen (CTK_MENU (submenu)((((CtkMenu*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((submenu)), ((ctk_menu_get_type ()))))))
, screen);
3167 ctk_menu_item_set_submenu (CTK_MENU_ITEM (menuitem)((((CtkMenuItem*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((menuitem)), ((ctk_menu_item_get_type ()))))))
, submenu);
3168 ctk_widget_show (menuitem);
3169
3170 menuitem = ctk_menu_item_new_with_label ("Empty");
3171 ctk_menu_attach (CTK_MENU (submenu)((((CtkMenu*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((submenu)), ((ctk_menu_get_type ()))))))
, menuitem, 0, 1, 0, 1);
3172 submenu = ctk_menu_new ();
3173 ctk_menu_set_screen (CTK_MENU (submenu)((((CtkMenu*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((submenu)), ((ctk_menu_get_type ()))))))
, screen);
3174 ctk_menu_item_set_submenu (CTK_MENU_ITEM (menuitem)((((CtkMenuItem*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((menuitem)), ((ctk_menu_item_get_type ()))))))
, submenu);
3175 ctk_widget_show (menuitem);
3176
3177 menuitem = ctk_menu_item_new_with_label ("right");
3178 ctk_menu_attach (CTK_MENU (menu)((((CtkMenu*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((menu)), ((ctk_menu_get_type ()))))))
, menuitem, 1, 2, j, j + 1);
3179 submenu = ctk_menu_new ();
3180 ctk_menu_set_screen (CTK_MENU (submenu)((((CtkMenu*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((submenu)), ((ctk_menu_get_type ()))))))
, screen);
3181 ctk_menu_item_set_submenu (CTK_MENU_ITEM (menuitem)((((CtkMenuItem*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((menuitem)), ((ctk_menu_item_get_type ()))))))
, submenu);
3182 ctk_widget_show (menuitem);
3183
3184 menuitem = ctk_menu_item_new_with_label ("Empty");
3185 ctk_menu_attach (CTK_MENU (submenu)((((CtkMenu*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((submenu)), ((ctk_menu_get_type ()))))))
, menuitem, 0, 1, 0, 1);
3186 ctk_widget_show (menuitem);
3187
3188 j++;
3189
3190 for (; j < rows; j++)
3191 for (i = 0; i < cols; i++)
3192 {
3193 sprintf (buf, "(%d %d)", i, j);
3194 menuitem = ctk_menu_item_new_with_label (buf);
3195 ctk_menu_attach (CTK_MENU (menu)((((CtkMenu*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((menu)), ((ctk_menu_get_type ()))))))
, menuitem, i, i + 1, j, j + 1);
3196 ctk_widget_show (menuitem);
3197 }
3198
3199 menuitem = ctk_menu_item_new_with_label ("1. Inserted normally (8)");
3200 ctk_menu_shell_insert (CTK_MENU_SHELL (menu)((((CtkMenuShell*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((menu)), ((ctk_menu_shell_get_type ()))))))
, menuitem, 8);
3201 ctk_widget_show (menuitem);
3202 menuitem = ctk_menu_item_new_with_label ("2. Inserted normally (2)");
3203 ctk_menu_shell_insert (CTK_MENU_SHELL (menu)((((CtkMenuShell*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((menu)), ((ctk_menu_shell_get_type ()))))))
, menuitem, 2);
3204 ctk_widget_show (menuitem);
3205 menuitem = ctk_menu_item_new_with_label ("3. Inserted normally (0)");
3206 ctk_menu_shell_insert (CTK_MENU_SHELL (menu)((((CtkMenuShell*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((menu)), ((ctk_menu_shell_get_type ()))))))
, menuitem, 0);
3207 ctk_widget_show (menuitem);
3208 menuitem = ctk_menu_item_new_with_label ("4. Inserted normally (-1)");
3209 ctk_menu_shell_insert (CTK_MENU_SHELL (menu)((((CtkMenuShell*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((menu)), ((ctk_menu_shell_get_type ()))))))
, menuitem, -1);
3210 ctk_widget_show (menuitem);
3211
3212 return menu;
3213}
3214
3215static void
3216create_menus (CtkWidget *widget)
3217{
3218 static CtkWidget *window = NULL((void*)0);
3219
3220 if (!window)
3221 {
3222 CtkWidget *box1;
3223 CtkWidget *box2;
3224 CtkWidget *button;
3225 CtkWidget *optionmenu;
3226 CtkWidget *separator;
3227 CtkWidget *menubar;
3228 CtkWidget *menu;
3229 CtkWidget *menuitem;
3230 CtkAccelGroup *accel_group;
3231 CtkWidget *image;
3232 CdkScreen *screen = ctk_widget_get_screen (widget);
3233
3234 window = ctk_window_new (CTK_WINDOW_TOPLEVEL);
3235
3236 ctk_window_set_screen (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
, screen);
3237
3238 g_signal_connect (window, "destroy",g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
3239 G_CALLBACK (ctk_widget_destroyed),g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
3240 &window)g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
;
3241 g_signal_connect (window, "delete-event",g_signal_connect_data ((window), ("delete-event"), (((GCallback
) (ctk_true))), (((void*)0)), ((void*)0), (GConnectFlags) 0)
3242 G_CALLBACK (ctk_true),g_signal_connect_data ((window), ("delete-event"), (((GCallback
) (ctk_true))), (((void*)0)), ((void*)0), (GConnectFlags) 0)
3243 NULL)g_signal_connect_data ((window), ("delete-event"), (((GCallback
) (ctk_true))), (((void*)0)), ((void*)0), (GConnectFlags) 0)
;
3244
3245 accel_group = ctk_accel_group_new ();
3246 ctk_window_add_accel_group (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
, accel_group);
3247
3248 ctk_window_set_title (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
, "menus");
3249 ctk_container_set_border_width (CTK_CONTAINER (window)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_container_get_type ()))))))
, 0);
3250
3251
3252 box1 = ctk_box_new (CTK_ORIENTATION_VERTICAL, 0);
3253 ctk_container_add (CTK_CONTAINER (window)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_container_get_type ()))))))
, box1);
3254 ctk_widget_show (box1);
3255
3256 menubar = ctk_menu_bar_new ();
3257 ctk_box_pack_start (CTK_BOX (box1)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box1)), ((ctk_box_get_type ()))))))
, menubar, FALSE(0), TRUE(!(0)), 0);
3258 ctk_widget_show (menubar);
3259
3260 menu = create_menu (screen, 2, 50);
3261
3262 menuitem = ctk_menu_item_new_with_label ("test\nline2");
3263 ctk_menu_item_set_submenu (CTK_MENU_ITEM (menuitem)((((CtkMenuItem*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((menuitem)), ((ctk_menu_item_get_type ()))))))
, menu);
3264 ctk_menu_shell_append (CTK_MENU_SHELL (menubar)((((CtkMenuShell*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((menubar)), ((ctk_menu_shell_get_type ()))))))
, menuitem);
3265 ctk_widget_show (menuitem);
3266
3267 menu = create_table_menu (screen, 2, 50);
3268
3269 menuitem = ctk_menu_item_new_with_label ("table");
3270 ctk_menu_item_set_submenu (CTK_MENU_ITEM (menuitem)((((CtkMenuItem*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((menuitem)), ((ctk_menu_item_get_type ()))))))
, menu);
3271 ctk_menu_shell_append (CTK_MENU_SHELL (menubar)((((CtkMenuShell*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((menubar)), ((ctk_menu_shell_get_type ()))))))
, menuitem);
3272 ctk_widget_show (menuitem);
3273
3274 menuitem = ctk_menu_item_new_with_label ("foo");
3275 ctk_menu_item_set_submenu (CTK_MENU_ITEM (menuitem)((((CtkMenuItem*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((menuitem)), ((ctk_menu_item_get_type ()))))))
, create_menu (screen, 3, 5));
3276 ctk_menu_shell_append (CTK_MENU_SHELL (menubar)((((CtkMenuShell*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((menubar)), ((ctk_menu_shell_get_type ()))))))
, menuitem);
3277 ctk_widget_show (menuitem);
3278
3279 image = ctk_image_new_from_icon_name ("help-browser",
3280 CTK_ICON_SIZE_MENU);
3281 ctk_widget_show (image);
3282
3283 menuitem = ctk_image_menu_item_new_with_label ("Help");
3284 ctk_image_menu_item_set_image (CTK_IMAGE_MENU_ITEM (menuitem)((((CtkImageMenuItem*) (void *) g_type_check_instance_cast ((
GTypeInstance*) ((menuitem)), ((ctk_image_menu_item_get_type (
)))))))
, image);
3285 ctk_image_menu_item_set_always_show_image (CTK_IMAGE_MENU_ITEM (menuitem)((((CtkImageMenuItem*) (void *) g_type_check_instance_cast ((
GTypeInstance*) ((menuitem)), ((ctk_image_menu_item_get_type (
)))))))
, TRUE(!(0)));
3286
3287 ctk_menu_item_set_submenu (CTK_MENU_ITEM (menuitem)((((CtkMenuItem*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((menuitem)), ((ctk_menu_item_get_type ()))))))
, create_menu (screen, 4, 5));
3288 ctk_widget_set_hexpand (menuitem, TRUE(!(0)));
3289 ctk_widget_set_halign (menuitem, CTK_ALIGN_END);
3290 ctk_menu_shell_append (CTK_MENU_SHELL (menubar)((((CtkMenuShell*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((menubar)), ((ctk_menu_shell_get_type ()))))))
, menuitem);
3291 ctk_widget_show (menuitem);
3292
3293 menubar = ctk_menu_bar_new ();
3294 ctk_box_pack_start (CTK_BOX (box1)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box1)), ((ctk_box_get_type ()))))))
, menubar, FALSE(0), TRUE(!(0)), 0);
3295 ctk_widget_show (menubar);
3296
3297 menu = create_menu (screen, 2, 10);
3298
3299 menuitem = ctk_menu_item_new_with_label ("Second menu bar");
3300 ctk_menu_item_set_submenu (CTK_MENU_ITEM (menuitem)((((CtkMenuItem*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((menuitem)), ((ctk_menu_item_get_type ()))))))
, menu);
3301 ctk_menu_shell_append (CTK_MENU_SHELL (menubar)((((CtkMenuShell*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((menubar)), ((ctk_menu_shell_get_type ()))))))
, menuitem);
3302 ctk_widget_show (menuitem);
3303
3304 box2 = ctk_box_new (CTK_ORIENTATION_VERTICAL, 10);
3305 ctk_container_set_border_width (CTK_CONTAINER (box2)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_container_get_type ()))))))
, 10);
3306 ctk_box_pack_start (CTK_BOX (box1)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box1)), ((ctk_box_get_type ()))))))
, box2, TRUE(!(0)), TRUE(!(0)), 0);
3307 ctk_widget_show (box2);
3308
3309 menu = create_menu (screen, 1, 5);
3310 ctk_menu_set_accel_group (CTK_MENU (menu)((((CtkMenu*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((menu)), ((ctk_menu_get_type ()))))))
, accel_group);
3311
3312 menuitem = ctk_check_menu_item_new_with_label ("Accelerate Me");
3313 ctk_menu_shell_append (CTK_MENU_SHELL (menu)((((CtkMenuShell*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((menu)), ((ctk_menu_shell_get_type ()))))))
, menuitem);
3314 ctk_widget_show (menuitem);
3315 ctk_widget_add_accelerator (menuitem,
3316 "activate",
3317 accel_group,
3318 CDK_KEY_F10xffbe,
3319 0,
3320 CTK_ACCEL_VISIBLE);
3321 menuitem = ctk_check_menu_item_new_with_label ("Accelerator Locked");
3322 ctk_menu_shell_append (CTK_MENU_SHELL (menu)((((CtkMenuShell*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((menu)), ((ctk_menu_shell_get_type ()))))))
, menuitem);
3323 ctk_widget_show (menuitem);
3324 ctk_widget_add_accelerator (menuitem,
3325 "activate",
3326 accel_group,
3327 CDK_KEY_F20xffbf,
3328 0,
3329 CTK_ACCEL_VISIBLE | CTK_ACCEL_LOCKED);
3330 menuitem = ctk_check_menu_item_new_with_label ("Accelerators Frozen");
3331 ctk_menu_shell_append (CTK_MENU_SHELL (menu)((((CtkMenuShell*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((menu)), ((ctk_menu_shell_get_type ()))))))
, menuitem);
3332 ctk_widget_show (menuitem);
3333 ctk_widget_add_accelerator (menuitem,
3334 "activate",
3335 accel_group,
3336 CDK_KEY_F20xffbf,
3337 0,
3338 CTK_ACCEL_VISIBLE);
3339 ctk_widget_add_accelerator (menuitem,
3340 "activate",
3341 accel_group,
3342 CDK_KEY_F30xffc0,
3343 0,
3344 CTK_ACCEL_VISIBLE);
3345
3346 optionmenu = ctk_combo_box_text_new ();
3347 ctk_combo_box_set_active (CTK_COMBO_BOX (optionmenu)((((CtkComboBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((optionmenu)), ((ctk_combo_box_get_type ()))))))
, 3);
3348 ctk_box_pack_start (CTK_BOX (box2)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_box_get_type ()))))))
, optionmenu, TRUE(!(0)), TRUE(!(0)), 0);
3349 ctk_widget_show (optionmenu);
3350
3351 separator = ctk_separator_new (CTK_ORIENTATION_HORIZONTAL);
3352 ctk_box_pack_start (CTK_BOX (box1)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box1)), ((ctk_box_get_type ()))))))
, separator, FALSE(0), TRUE(!(0)), 0);
3353 ctk_widget_show (separator);
3354
3355 box2 = ctk_box_new (CTK_ORIENTATION_VERTICAL, 10);
3356 ctk_container_set_border_width (CTK_CONTAINER (box2)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_container_get_type ()))))))
, 10);
3357 ctk_box_pack_start (CTK_BOX (box1)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box1)), ((ctk_box_get_type ()))))))
, box2, FALSE(0), TRUE(!(0)), 0);
3358 ctk_widget_show (box2);
3359
3360 button = ctk_button_new_with_label ("close");
3361 g_signal_connect_swapped (button, "clicked",g_signal_connect_data ((button), ("clicked"), (((GCallback) (
ctk_widget_destroy))), (window), ((void*)0), G_CONNECT_SWAPPED
)
3362 G_CALLBACK (ctk_widget_destroy),g_signal_connect_data ((button), ("clicked"), (((GCallback) (
ctk_widget_destroy))), (window), ((void*)0), G_CONNECT_SWAPPED
)
3363 window)g_signal_connect_data ((button), ("clicked"), (((GCallback) (
ctk_widget_destroy))), (window), ((void*)0), G_CONNECT_SWAPPED
)
;
3364 ctk_box_pack_start (CTK_BOX (box2)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_box_get_type ()))))))
, button, TRUE(!(0)), TRUE(!(0)), 0);
3365 ctk_widget_set_can_default (button, TRUE(!(0)));
3366 ctk_widget_grab_default (button);
3367 ctk_widget_show (button);
3368 }
3369
3370 if (!ctk_widget_get_visible (window))
3371 ctk_widget_show (window);
3372 else
3373 ctk_widget_destroy (window);
3374}
3375
3376
3377static CtkWidget *
3378accel_button_new (CtkAccelGroup *accel_group,
3379 const gchar *text,
3380 const gchar *accel)
3381{
3382 guint keyval;
3383 CdkModifierType modifiers;
3384 CtkWidget *button;
3385 CtkWidget *label;
3386
3387 ctk_accelerator_parse (accel, &keyval, &modifiers);
3388 g_assert (keyval)do { if (keyval) ; else g_assertion_message_expr (((gchar*) 0
), "testctk.c", 3388, ((const char*) (__func__)), "keyval"); }
while (0)
;
3389
3390 button = ctk_button_new ();
3391 ctk_widget_add_accelerator (button, "activate", accel_group,
3392 keyval, modifiers, CTK_ACCEL_VISIBLE | CTK_ACCEL_LOCKED);
3393
3394 label = ctk_accel_label_new (text);
3395 ctk_accel_label_set_accel_widget (CTK_ACCEL_LABEL (label)((((CtkAccelLabel*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((label)), ((ctk_accel_label_get_type ()))))))
, button);
3396 ctk_widget_show (label);
3397
3398 ctk_container_add (CTK_CONTAINER (button)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((button)), ((ctk_container_get_type ()))))))
, label);
3399
3400 return button;
3401}
3402
3403static void
3404create_key_lookup (CtkWidget *widget)
3405{
3406 static CtkWidget *window = NULL((void*)0);
3407 gpointer window_ptr;
3408
3409 if (!window)
3410 {
3411 CtkAccelGroup *accel_group = ctk_accel_group_new ();
3412 CtkWidget *button;
3413 CtkWidget *content_area;
3414
3415 window = ctk_dialog_new_with_buttons ("Key Lookup", NULL((void*)0), 0,
3416 "_Close", CTK_RESPONSE_CLOSE,
3417 NULL((void*)0));
3418
3419 ctk_window_set_screen (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
,
3420 ctk_widget_get_screen (widget));
3421
3422 /* We have to expand it so the accel labels will draw their labels
3423 */
3424 ctk_window_set_default_size (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
, 300, -1);
3425
3426 ctk_window_add_accel_group (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
, accel_group);
3427
3428 content_area = ctk_dialog_get_content_area (CTK_DIALOG (window)((((CtkDialog*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_dialog_get_type ()))))))
);
3429
3430 button = ctk_button_new_with_mnemonic ("Button 1 (_a)");
3431 ctk_box_pack_start (CTK_BOX (content_area)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((content_area)), ((ctk_box_get_type ()))))))
, button, FALSE(0), FALSE(0), 0);
3432 button = ctk_button_new_with_mnemonic ("Button 2 (_A)");
3433 ctk_box_pack_start (CTK_BOX (content_area)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((content_area)), ((ctk_box_get_type ()))))))
, button, FALSE(0), FALSE(0), 0);
3434 button = ctk_button_new_with_mnemonic ("Button 3 (_\321\204)");
3435 ctk_box_pack_start (CTK_BOX (content_area)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((content_area)), ((ctk_box_get_type ()))))))
, button, FALSE(0), FALSE(0), 0);
3436 button = ctk_button_new_with_mnemonic ("Button 4 (_\320\244)");
3437 ctk_box_pack_start (CTK_BOX (content_area)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((content_area)), ((ctk_box_get_type ()))))))
, button, FALSE(0), FALSE(0), 0);
3438 button = ctk_button_new_with_mnemonic ("Button 6 (_b)");
3439 ctk_box_pack_start (CTK_BOX (content_area)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((content_area)), ((ctk_box_get_type ()))))))
, button, FALSE(0), FALSE(0), 0);
3440 button = accel_button_new (accel_group, "Button 7", "<Alt><Shift>b");
3441 ctk_box_pack_start (CTK_BOX (content_area)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((content_area)), ((ctk_box_get_type ()))))))
, button, FALSE(0), FALSE(0), 0);
3442 button = accel_button_new (accel_group, "Button 8", "<Alt>d");
3443 ctk_box_pack_start (CTK_BOX (content_area)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((content_area)), ((ctk_box_get_type ()))))))
, button, FALSE(0), FALSE(0), 0);
3444 button = accel_button_new (accel_group, "Button 9", "<Alt>Cyrillic_ve");
3445 ctk_box_pack_start (CTK_BOX (content_area)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((content_area)), ((ctk_box_get_type ()))))))
, button, FALSE(0), FALSE(0), 0);
3446 button = ctk_button_new_with_mnemonic ("Button 10 (_1)");
3447 ctk_box_pack_start (CTK_BOX (content_area)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((content_area)), ((ctk_box_get_type ()))))))
, button, FALSE(0), FALSE(0), 0);
3448 button = ctk_button_new_with_mnemonic ("Button 11 (_!)");
3449 ctk_box_pack_start (CTK_BOX (content_area)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((content_area)), ((ctk_box_get_type ()))))))
, button, FALSE(0), FALSE(0), 0);
3450 button = accel_button_new (accel_group, "Button 12", "<Super>a");
3451 ctk_box_pack_start (CTK_BOX (content_area)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((content_area)), ((ctk_box_get_type ()))))))
, button, FALSE(0), FALSE(0), 0);
3452 button = accel_button_new (accel_group, "Button 13", "<Hyper>a");
3453 ctk_box_pack_start (CTK_BOX (content_area)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((content_area)), ((ctk_box_get_type ()))))))
, button, FALSE(0), FALSE(0), 0);
3454 button = accel_button_new (accel_group, "Button 14", "<Meta>a");
3455 ctk_box_pack_start (CTK_BOX (content_area)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((content_area)), ((ctk_box_get_type ()))))))
, button, FALSE(0), FALSE(0), 0);
3456 button = accel_button_new (accel_group, "Button 15", "<Shift><Mod4>b");
3457 ctk_box_pack_start (CTK_BOX (content_area)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((content_area)), ((ctk_box_get_type ()))))))
, button, FALSE(0), FALSE(0), 0);
3458
3459 window_ptr = &window;
3460 g_object_add_weak_pointer (G_OBJECT (window)((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), (((GType) ((20) << (2))))))))
, window_ptr);
3461 g_signal_connect (window, "response", G_CALLBACK (ctk_widget_destroy), NULL)g_signal_connect_data ((window), ("response"), (((GCallback) (
ctk_widget_destroy))), (((void*)0)), ((void*)0), (GConnectFlags
) 0)
;
3462
3463 ctk_widget_show_all (window);
3464 }
3465 else
3466 ctk_widget_destroy (window);
3467}
3468
3469
3470/*
3471 create_modal_window
3472 */
3473
3474static gboolean
3475cmw_destroy_cb(CtkWidget *widget)
3476{
3477 /* This is needed to get out of ctk_main */
3478 ctk_main_quit ();
3479
3480 return FALSE(0);
3481}
3482
3483static void
3484cmw_color (CtkWidget *widget, CtkWidget *parent)
3485{
3486 CtkWidget *csd;
3487
3488 csd = ctk_color_chooser_dialog_new ("This is a modal color selection dialog", CTK_WINDOW (parent)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((parent)), ((ctk_window_get_type ()))))))
);
3489
3490 /* Set as modal */
3491 ctk_window_set_modal (CTK_WINDOW(csd)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((csd)), ((ctk_window_get_type ()))))))
,TRUE(!(0)));
3492
3493 g_signal_connect (csd, "destroy",g_signal_connect_data ((csd), ("destroy"), (((GCallback) (cmw_destroy_cb
))), (((void*)0)), ((void*)0), (GConnectFlags) 0)
3494 G_CALLBACK (cmw_destroy_cb), NULL)g_signal_connect_data ((csd), ("destroy"), (((GCallback) (cmw_destroy_cb
))), (((void*)0)), ((void*)0), (GConnectFlags) 0)
;
3495 g_signal_connect (csd, "response",g_signal_connect_data ((csd), ("response"), (((GCallback) (ctk_widget_destroy
))), (((void*)0)), ((void*)0), (GConnectFlags) 0)
3496 G_CALLBACK (ctk_widget_destroy), NULL)g_signal_connect_data ((csd), ("response"), (((GCallback) (ctk_widget_destroy
))), (((void*)0)), ((void*)0), (GConnectFlags) 0)
;
3497
3498 /* wait until destroy calls ctk_main_quit */
3499 ctk_widget_show (csd);
3500 ctk_main ();
3501}
3502
3503static void
3504cmw_file (CtkWidget *widget, CtkWidget *parent)
3505{
3506 CtkWidget *fs;
3507
3508 fs = ctk_file_chooser_dialog_new ("This is a modal file selection dialog",
3509 CTK_WINDOW (parent)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((parent)), ((ctk_window_get_type ()))))))
,
3510 CTK_FILE_CHOOSER_ACTION_OPEN,
3511 "_Open", CTK_RESPONSE_ACCEPT,
3512 "_Cancel", CTK_RESPONSE_CANCEL,
3513 NULL((void*)0));
3514 ctk_window_set_screen (CTK_WINDOW (fs)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((fs)), ((ctk_window_get_type ()))))))
, ctk_widget_get_screen (parent));
3515 ctk_window_set_modal (CTK_WINDOW (fs)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((fs)), ((ctk_window_get_type ()))))))
, TRUE(!(0)));
3516
3517 g_signal_connect (fs, "destroy",g_signal_connect_data ((fs), ("destroy"), (((GCallback) (cmw_destroy_cb
))), (((void*)0)), ((void*)0), (GConnectFlags) 0)
3518 G_CALLBACK (cmw_destroy_cb), NULL)g_signal_connect_data ((fs), ("destroy"), (((GCallback) (cmw_destroy_cb
))), (((void*)0)), ((void*)0), (GConnectFlags) 0)
;
3519 g_signal_connect_swapped (fs, "response",g_signal_connect_data ((fs), ("response"), (((GCallback) (ctk_widget_destroy
))), (fs), ((void*)0), G_CONNECT_SWAPPED)
3520 G_CALLBACK (ctk_widget_destroy), fs)g_signal_connect_data ((fs), ("response"), (((GCallback) (ctk_widget_destroy
))), (fs), ((void*)0), G_CONNECT_SWAPPED)
;
3521
3522 /* wait until destroy calls ctk_main_quit */
3523 ctk_widget_show (fs);
3524 ctk_main();
3525}
3526
3527
3528static void
3529create_modal_window (CtkWidget *widget)
3530{
3531 CtkWidget *window = NULL((void*)0);
3532 CtkWidget *box1,*box2;
3533 CtkWidget *frame1;
3534 CtkWidget *btnColor,*btnFile,*btnClose;
3535
3536 /* Create modal window (Here you can use any window descendent )*/
3537 window = ctk_window_new (CTK_WINDOW_TOPLEVEL);
3538 ctk_window_set_screen (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
,
3539 ctk_widget_get_screen (widget));
3540
3541 ctk_window_set_title (CTK_WINDOW(window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
,"This window is modal");
3542
3543 /* Set window as modal */
3544 ctk_window_set_modal (CTK_WINDOW(window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
,TRUE(!(0)));
3545
3546 /* Create widgets */
3547 box1 = ctk_box_new (CTK_ORIENTATION_VERTICAL, 5);
3548 frame1 = ctk_frame_new ("Standard dialogs in modal form");
3549 box2 = ctk_box_new (CTK_ORIENTATION_VERTICAL, 5);
3550 ctk_box_set_homogeneous (CTK_BOX (box2)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_box_get_type ()))))))
, TRUE(!(0)));
3551 btnColor = ctk_button_new_with_label ("Color");
3552 btnFile = ctk_button_new_with_label ("File Selection");
3553 btnClose = ctk_button_new_with_label ("Close");
3554
3555 /* Init widgets */
3556 ctk_container_set_border_width (CTK_CONTAINER (box1)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box1)), ((ctk_container_get_type ()))))))
, 3);
3557 ctk_container_set_border_width (CTK_CONTAINER (box2)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_container_get_type ()))))))
, 3);
3558
3559 /* Pack widgets */
3560 ctk_container_add (CTK_CONTAINER (window)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_container_get_type ()))))))
, box1);
3561 ctk_box_pack_start (CTK_BOX (box1)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box1)), ((ctk_box_get_type ()))))))
, frame1, TRUE(!(0)), TRUE(!(0)), 4);
3562 ctk_container_add (CTK_CONTAINER (frame1)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((frame1)), ((ctk_container_get_type ()))))))
, box2);
3563 ctk_box_pack_start (CTK_BOX (box2)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_box_get_type ()))))))
, btnColor, FALSE(0), FALSE(0), 4);
3564 ctk_box_pack_start (CTK_BOX (box2)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_box_get_type ()))))))
, btnFile, FALSE(0), FALSE(0), 4);
3565 ctk_box_pack_start (CTK_BOX (box1)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box1)), ((ctk_box_get_type ()))))))
, ctk_separator_new (CTK_ORIENTATION_HORIZONTAL), FALSE(0), FALSE(0), 4);
3566 ctk_box_pack_start (CTK_BOX (box1)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box1)), ((ctk_box_get_type ()))))))
, btnClose, FALSE(0), FALSE(0), 4);
3567
3568 /* connect signals */
3569 g_signal_connect_swapped (btnClose, "clicked",g_signal_connect_data ((btnClose), ("clicked"), (((GCallback)
(ctk_widget_destroy))), (window), ((void*)0), G_CONNECT_SWAPPED
)
3570 G_CALLBACK (ctk_widget_destroy), window)g_signal_connect_data ((btnClose), ("clicked"), (((GCallback)
(ctk_widget_destroy))), (window), ((void*)0), G_CONNECT_SWAPPED
)
;
3571
3572 g_signal_connect (window, "destroy",g_signal_connect_data ((window), ("destroy"), (((GCallback) (
cmw_destroy_cb))), (((void*)0)), ((void*)0), (GConnectFlags) 0
)
3573 G_CALLBACK (cmw_destroy_cb), NULL)g_signal_connect_data ((window), ("destroy"), (((GCallback) (
cmw_destroy_cb))), (((void*)0)), ((void*)0), (GConnectFlags) 0
)
;
3574
3575 g_signal_connect (btnColor, "clicked",g_signal_connect_data ((btnColor), ("clicked"), (((GCallback)
(cmw_color))), (window), ((void*)0), (GConnectFlags) 0)
3576 G_CALLBACK (cmw_color), window)g_signal_connect_data ((btnColor), ("clicked"), (((GCallback)
(cmw_color))), (window), ((void*)0), (GConnectFlags) 0)
;
3577 g_signal_connect (btnFile, "clicked",g_signal_connect_data ((btnFile), ("clicked"), (((GCallback) (
cmw_file))), (window), ((void*)0), (GConnectFlags) 0)
3578 G_CALLBACK (cmw_file), window)g_signal_connect_data ((btnFile), ("clicked"), (((GCallback) (
cmw_file))), (window), ((void*)0), (GConnectFlags) 0)
;
3579
3580 /* Show widgets */
3581 ctk_widget_show_all (window);
3582
3583 /* wait until dialog get destroyed */
3584 ctk_main();
3585}
3586
3587/*
3588 * CtkMessageDialog
3589 */
3590
3591static void
3592make_message_dialog (CdkScreen *screen,
3593 CtkWidget **dialog,
3594 CtkMessageType type,
3595 CtkButtonsType buttons,
3596 guint default_response)
3597{
3598 if (*dialog)
3599 {
3600 ctk_widget_destroy (*dialog);
3601
3602 return;
3603 }
3604
3605 *dialog = ctk_message_dialog_new (NULL((void*)0), 0, type, buttons,
3606 "This is a message dialog; it can wrap long lines. This is a long line. La la la. Look this line is wrapped. Blah blah blah blah blah blah. (Note: testctk has a nonstandard ctkrc that changes some of the message dialog icons.)");
3607
3608 ctk_window_set_screen (CTK_WINDOW (*dialog)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((*dialog)), ((ctk_window_get_type ()))))))
, screen);
3609
3610 g_signal_connect_swapped (*dialog,g_signal_connect_data ((*dialog), ("response"), (((GCallback)
(ctk_widget_destroy))), (*dialog), ((void*)0), G_CONNECT_SWAPPED
)
3611 "response",g_signal_connect_data ((*dialog), ("response"), (((GCallback)
(ctk_widget_destroy))), (*dialog), ((void*)0), G_CONNECT_SWAPPED
)
3612 G_CALLBACK (ctk_widget_destroy),g_signal_connect_data ((*dialog), ("response"), (((GCallback)
(ctk_widget_destroy))), (*dialog), ((void*)0), G_CONNECT_SWAPPED
)
3613 *dialog)g_signal_connect_data ((*dialog), ("response"), (((GCallback)
(ctk_widget_destroy))), (*dialog), ((void*)0), G_CONNECT_SWAPPED
)
;
3614
3615 g_signal_connect (*dialog,g_signal_connect_data ((*dialog), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (dialog), ((void*)0), (GConnectFlags
) 0)
3616 "destroy",g_signal_connect_data ((*dialog), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (dialog), ((void*)0), (GConnectFlags
) 0)
3617 G_CALLBACK (ctk_widget_destroyed),g_signal_connect_data ((*dialog), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (dialog), ((void*)0), (GConnectFlags
) 0)
3618 dialog)g_signal_connect_data ((*dialog), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (dialog), ((void*)0), (GConnectFlags
) 0)
;
3619
3620 ctk_dialog_set_default_response (CTK_DIALOG (*dialog)((((CtkDialog*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((*dialog)), ((ctk_dialog_get_type ()))))))
, default_response);
3621
3622 ctk_widget_show (*dialog);
3623}
3624
3625static void
3626create_message_dialog (CtkWidget *widget)
3627{
3628 static CtkWidget *info = NULL((void*)0);
3629 static CtkWidget *warning = NULL((void*)0);
3630 static CtkWidget *error = NULL((void*)0);
3631 static CtkWidget *question = NULL((void*)0);
3632 CdkScreen *screen = ctk_widget_get_screen (widget);
3633
3634 make_message_dialog (screen, &info, CTK_MESSAGE_INFO, CTK_BUTTONS_OK, CTK_RESPONSE_OK);
3635 make_message_dialog (screen, &warning, CTK_MESSAGE_WARNING, CTK_BUTTONS_CLOSE, CTK_RESPONSE_CLOSE);
3636 make_message_dialog (screen, &error, CTK_MESSAGE_ERROR, CTK_BUTTONS_OK_CANCEL, CTK_RESPONSE_OK);
3637 make_message_dialog (screen, &question, CTK_MESSAGE_QUESTION, CTK_BUTTONS_YES_NO, CTK_RESPONSE_NO);
3638}
3639
3640/*
3641 * CtkScrolledWindow
3642 */
3643
3644static CtkWidget *sw_parent = NULL((void*)0);
3645static CtkWidget *sw_float_parent;
3646static gulong sw_destroyed_handler = 0;
3647
3648static gboolean
3649scrolled_windows_delete_cb (CtkWidget *widget, CdkEventAny *event, CtkWidget *scrollwin)
3650{
3651 ctk_widget_reparent (scrollwin, sw_parent);
3652
3653 g_signal_handler_disconnect (sw_parent, sw_destroyed_handler);
3654 sw_float_parent = NULL((void*)0);
3655 sw_parent = NULL((void*)0);
3656 sw_destroyed_handler = 0;
3657
3658 return FALSE(0);
3659}
3660
3661static void
3662scrolled_windows_destroy_cb (CtkWidget *widget, CtkWidget *scrollwin)
3663{
3664 ctk_widget_destroy (sw_float_parent);
3665
3666 sw_float_parent = NULL((void*)0);
3667 sw_parent = NULL((void*)0);
3668 sw_destroyed_handler = 0;
3669}
3670
3671static void
3672scrolled_windows_remove (CtkWidget *dialog, gint response, CtkWidget *scrollwin)
3673{
3674 if (response != CTK_RESPONSE_APPLY)
3675 {
3676 ctk_widget_destroy (dialog);
3677 return;
3678 }
3679
3680 if (sw_parent)
3681 {
3682 ctk_widget_reparent (scrollwin, sw_parent);
3683 ctk_widget_destroy (sw_float_parent);
3684
3685 g_signal_handler_disconnect (sw_parent, sw_destroyed_handler);
3686 sw_float_parent = NULL((void*)0);
3687 sw_parent = NULL((void*)0);
3688 sw_destroyed_handler = 0;
3689 }
3690 else
3691 {
3692 sw_parent = ctk_widget_get_parent (scrollwin);
3693 sw_float_parent = ctk_window_new (CTK_WINDOW_TOPLEVEL);
3694 ctk_window_set_screen (CTK_WINDOW (sw_float_parent)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((sw_float_parent)), ((ctk_window_get_type ()))))))
,
3695 ctk_widget_get_screen (dialog));
3696
3697 ctk_window_set_default_size (CTK_WINDOW (sw_float_parent)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((sw_float_parent)), ((ctk_window_get_type ()))))))
, 200, 200);
3698
3699 ctk_widget_reparent (scrollwin, sw_float_parent);
3700 ctk_widget_show (sw_float_parent);
3701
3702 sw_destroyed_handler =
3703 g_signal_connect (sw_parent, "destroy",g_signal_connect_data ((sw_parent), ("destroy"), (((GCallback
) (scrolled_windows_destroy_cb))), (scrollwin), ((void*)0), (
GConnectFlags) 0)
3704 G_CALLBACK (scrolled_windows_destroy_cb), scrollwin)g_signal_connect_data ((sw_parent), ("destroy"), (((GCallback
) (scrolled_windows_destroy_cb))), (scrollwin), ((void*)0), (
GConnectFlags) 0)
;
3705 g_signal_connect (sw_float_parent, "delete_event",g_signal_connect_data ((sw_float_parent), ("delete_event"), (
((GCallback) (scrolled_windows_delete_cb))), (scrollwin), ((void
*)0), (GConnectFlags) 0)
3706 G_CALLBACK (scrolled_windows_delete_cb), scrollwin)g_signal_connect_data ((sw_float_parent), ("delete_event"), (
((GCallback) (scrolled_windows_delete_cb))), (scrollwin), ((void
*)0), (GConnectFlags) 0)
;
3707 }
3708}
3709
3710static void
3711create_scrolled_windows (CtkWidget *widget)
3712{
3713 static CtkWidget *window;
3714
3715 if (!window)
3716 {
3717 CtkWidget *content_area;
3718 CtkWidget *scrolled_window;
3719 CtkWidget *button;
3720 CtkWidget *grid;
3721 char buffer[32];
3722 int i, j;
3723
3724 window = ctk_dialog_new ();
3725
3726 ctk_window_set_screen (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
,
3727 ctk_widget_get_screen (widget));
3728
3729 g_signal_connect (window, "destroy",g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
3730 G_CALLBACK (ctk_widget_destroyed),g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
3731 &window)g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
;
3732
3733 content_area = ctk_dialog_get_content_area (CTK_DIALOG (window)((((CtkDialog*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_dialog_get_type ()))))))
);
3734
3735 ctk_window_set_title (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
, "dialog");
3736 ctk_container_set_border_width (CTK_CONTAINER (window)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_container_get_type ()))))))
, 0);
3737
3738 scrolled_window = ctk_scrolled_window_new (NULL((void*)0), NULL((void*)0));
3739 ctk_container_set_border_width (CTK_CONTAINER (scrolled_window)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((scrolled_window)), ((ctk_container_get_type ()))))))
, 10);
3740 ctk_scrolled_window_set_policy (CTK_SCROLLED_WINDOW (scrolled_window)((((CtkScrolledWindow*) (void *) g_type_check_instance_cast (
(GTypeInstance*) ((scrolled_window)), ((ctk_scrolled_window_get_type
()))))))
,
3741 CTK_POLICY_AUTOMATIC,
3742 CTK_POLICY_AUTOMATIC);
3743 ctk_box_pack_start (CTK_BOX (content_area)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((content_area)), ((ctk_box_get_type ()))))))
, scrolled_window, TRUE(!(0)), TRUE(!(0)), 0);
3744 ctk_widget_show (scrolled_window);
3745
3746 grid = ctk_grid_new ();
3747 ctk_grid_set_row_spacing (CTK_GRID (grid)((((CtkGrid*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((grid)), ((ctk_grid_get_type ()))))))
, 10);
3748 ctk_grid_set_column_spacing (CTK_GRID (grid)((((CtkGrid*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((grid)), ((ctk_grid_get_type ()))))))
, 10);
3749 ctk_container_add (CTK_CONTAINER (scrolled_window)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((scrolled_window)), ((ctk_container_get_type ()))))))
, grid);
3750 ctk_container_set_focus_hadjustment (CTK_CONTAINER (grid)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((grid)), ((ctk_container_get_type ()))))))
,
3751 ctk_scrolled_window_get_hadjustment (CTK_SCROLLED_WINDOW (scrolled_window)((((CtkScrolledWindow*) (void *) g_type_check_instance_cast (
(GTypeInstance*) ((scrolled_window)), ((ctk_scrolled_window_get_type
()))))))
));
3752 ctk_container_set_focus_vadjustment (CTK_CONTAINER (grid)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((grid)), ((ctk_container_get_type ()))))))
,
3753 ctk_scrolled_window_get_vadjustment (CTK_SCROLLED_WINDOW (scrolled_window)((((CtkScrolledWindow*) (void *) g_type_check_instance_cast (
(GTypeInstance*) ((scrolled_window)), ((ctk_scrolled_window_get_type
()))))))
));
3754 ctk_widget_show (grid);
3755
3756 for (i = 0; i < 20; i++)
3757 for (j = 0; j < 20; j++)
3758 {
3759 sprintf (buffer, "button (%d,%d)\n", i, j);
3760 button = ctk_toggle_button_new_with_label (buffer);
3761 ctk_grid_attach (CTK_GRID (grid)((((CtkGrid*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((grid)), ((ctk_grid_get_type ()))))))
, button, i, j, 1, 1);
3762 ctk_widget_show (button);
3763 }
3764
3765 ctk_dialog_add_button (CTK_DIALOG (window)((((CtkDialog*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_dialog_get_type ()))))))
,
3766 "Close",
3767 CTK_RESPONSE_CLOSE);
3768
3769 ctk_dialog_add_button (CTK_DIALOG (window)((((CtkDialog*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_dialog_get_type ()))))))
,
3770 "Reparent Out",
3771 CTK_RESPONSE_APPLY);
3772
3773 g_signal_connect (window, "response",g_signal_connect_data ((window), ("response"), (((GCallback) (
scrolled_windows_remove))), (scrolled_window), ((void*)0), (GConnectFlags
) 0)
3774 G_CALLBACK (scrolled_windows_remove),g_signal_connect_data ((window), ("response"), (((GCallback) (
scrolled_windows_remove))), (scrolled_window), ((void*)0), (GConnectFlags
) 0)
3775 scrolled_window)g_signal_connect_data ((window), ("response"), (((GCallback) (
scrolled_windows_remove))), (scrolled_window), ((void*)0), (GConnectFlags
) 0)
;
3776
3777 ctk_window_set_default_size (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
, 300, 300);
3778 }
3779
3780 if (!ctk_widget_get_visible (window))
3781 ctk_widget_show (window);
3782 else
3783 ctk_widget_destroy (window);
3784}
3785
3786/*
3787 * CtkEntry
3788 */
3789
3790static void
3791entry_toggle_frame (CtkWidget *checkbutton,
3792 CtkWidget *entry)
3793{
3794 ctk_entry_set_has_frame (CTK_ENTRY(entry)((((CtkEntry*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((entry)), ((ctk_entry_get_type ()))))))
,
3795 ctk_toggle_button_get_active (CTK_TOGGLE_BUTTON (checkbutton)((((CtkToggleButton*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((checkbutton)), ((ctk_toggle_button_get_type ()))))))
));
3796}
3797
3798static void
3799entry_toggle_sensitive (CtkWidget *checkbutton,
3800 CtkWidget *entry)
3801{
3802 ctk_widget_set_sensitive (entry,
3803 ctk_toggle_button_get_active (CTK_TOGGLE_BUTTON(checkbutton)((((CtkToggleButton*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((checkbutton)), ((ctk_toggle_button_get_type ()))))))
));
3804}
3805
3806static gboolean
3807entry_progress_timeout (gpointer data)
3808{
3809 if (GPOINTER_TO_INT (g_object_get_data (G_OBJECT (data), "progress-pulse"))((gint) (glong) (g_object_get_data (((((GObject*) (void *) g_type_check_instance_cast
((GTypeInstance*) ((data)), (((GType) ((20) << (2)))))
))), "progress-pulse")))
)
3810 {
3811 ctk_entry_progress_pulse (CTK_ENTRY (data)((((CtkEntry*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((data)), ((ctk_entry_get_type ()))))))
);
3812 }
3813 else
3814 {
3815 gdouble fraction;
3816
3817 fraction = ctk_entry_get_progress_fraction (CTK_ENTRY (data)((((CtkEntry*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((data)), ((ctk_entry_get_type ()))))))
);
3818
3819 fraction += 0.05;
3820 if (fraction > 1.0001)
3821 fraction = 0.0;
3822
3823 ctk_entry_set_progress_fraction (CTK_ENTRY (data)((((CtkEntry*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((data)), ((ctk_entry_get_type ()))))))
, fraction);
3824 }
3825
3826 return G_SOURCE_CONTINUE(!(0));
3827}
3828
3829static void
3830entry_remove_timeout (gpointer data)
3831{
3832 g_source_remove (GPOINTER_TO_UINT (data)((guint) (gulong) (data)));
3833}
3834
3835static void
3836entry_toggle_progress (CtkWidget *checkbutton,
3837 CtkWidget *entry)
3838{
3839 if (ctk_toggle_button_get_active (CTK_TOGGLE_BUTTON (checkbutton)((((CtkToggleButton*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((checkbutton)), ((ctk_toggle_button_get_type ()))))))
))
3840 {
3841 guint timeout = cdk_threads_add_timeout (100,
3842 entry_progress_timeout,
3843 entry);
3844 g_object_set_data_full (G_OBJECT (entry)((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((entry)), (((GType) ((20) << (2))))))))
, "timeout-id",
3845 GUINT_TO_POINTER (timeout)((gpointer) (gulong) (timeout)),
3846 entry_remove_timeout);
3847 }
3848 else
3849 {
3850 g_object_set_data (G_OBJECT (entry)((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((entry)), (((GType) ((20) << (2))))))))
, "timeout-id",
3851 GUINT_TO_POINTER (0)((gpointer) (gulong) (0)));
3852
3853 ctk_entry_set_progress_fraction (CTK_ENTRY (entry)((((CtkEntry*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((entry)), ((ctk_entry_get_type ()))))))
, 0.0);
3854 }
3855}
3856
3857static void
3858entry_toggle_pulse (CtkWidget *checkbutton,
3859 CtkWidget *entry)
3860{
3861 g_object_set_data (G_OBJECT (entry)((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((entry)), (((GType) ((20) << (2))))))))
, "progress-pulse",
3862 GUINT_TO_POINTER ((guint) ctk_toggle_button_get_active (CTK_TOGGLE_BUTTON (checkbutton)))((gpointer) (gulong) ((guint) ctk_toggle_button_get_active ((
(((CtkToggleButton*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((checkbutton)), ((ctk_toggle_button_get_type ())))))))))
);
3863}
3864
3865static void
3866create_entry (CtkWidget *widget)
3867{
3868 static CtkWidget *window = NULL((void*)0);
3869
3870 if (!window)
3871 {
3872 CtkWidget *box1;
3873 CtkWidget *box2;
3874 CtkWidget *hbox;
3875 CtkWidget *has_frame_check;
3876 CtkWidget *sensitive_check;
3877 CtkWidget *progress_check;
3878 CtkWidget *entry;
3879 CtkComboBoxText *cb;
3880 CtkWidget *cb_entry;
3881 CtkWidget *button;
3882 CtkWidget *separator;
3883
3884 window = ctk_window_new (CTK_WINDOW_TOPLEVEL);
3885 ctk_window_set_screen (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
,
3886 ctk_widget_get_screen (widget));
3887
3888 g_signal_connect (window, "destroy",g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
3889 G_CALLBACK (ctk_widget_destroyed),g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
3890 &window)g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
;
3891
3892 ctk_window_set_title (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
, "entry");
3893 ctk_container_set_border_width (CTK_CONTAINER (window)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_container_get_type ()))))))
, 0);
3894
3895
3896 box1 = ctk_box_new (CTK_ORIENTATION_VERTICAL, 0);
3897 ctk_container_add (CTK_CONTAINER (window)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_container_get_type ()))))))
, box1);
3898
3899
3900 box2 = ctk_box_new (CTK_ORIENTATION_VERTICAL, 10);
3901 ctk_container_set_border_width (CTK_CONTAINER (box2)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_container_get_type ()))))))
, 10);
3902 ctk_box_pack_start (CTK_BOX (box1)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box1)), ((ctk_box_get_type ()))))))
, box2, TRUE(!(0)), TRUE(!(0)), 0);
3903
3904 hbox = ctk_box_new (CTK_ORIENTATION_HORIZONTAL, 5);
3905 ctk_box_pack_start (CTK_BOX (box2)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_box_get_type ()))))))
, hbox, TRUE(!(0)), TRUE(!(0)), 0);
3906
3907 entry = ctk_entry_new ();
3908 ctk_entry_set_text (CTK_ENTRY (entry)((((CtkEntry*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((entry)), ((ctk_entry_get_type ()))))))
, "hello world \330\247\331\204\330\263\331\204\330\247\331\205 \330\271\331\204\331\212\331\203\331\205");
3909 ctk_editable_select_region (CTK_EDITABLE (entry)((((CtkEditable*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((entry)), ((ctk_editable_get_type ()))))))
, 0, 5);
3910 ctk_box_pack_start (CTK_BOX (hbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hbox)), ((ctk_box_get_type ()))))))
, entry, TRUE(!(0)), TRUE(!(0)), 0);
3911
3912 cb = CTK_COMBO_BOX_TEXT (ctk_combo_box_text_new_with_entry ())((((CtkComboBoxText*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((ctk_combo_box_text_new_with_entry ())), ((ctk_combo_box_text_get_type
()))))))
;
3913
3914 ctk_combo_box_text_append_text (cb, "item0");
3915 ctk_combo_box_text_append_text (cb, "item0");
3916 ctk_combo_box_text_append_text (cb, "item1 item1");
3917 ctk_combo_box_text_append_text (cb, "item2 item2 item2");
3918 ctk_combo_box_text_append_text (cb, "item3 item3 item3 item3");
3919 ctk_combo_box_text_append_text (cb, "item4 item4 item4 item4 item4");
3920 ctk_combo_box_text_append_text (cb, "item5 item5 item5 item5 item5 item5");
3921 ctk_combo_box_text_append_text (cb, "item6 item6 item6 item6 item6");
3922 ctk_combo_box_text_append_text (cb, "item7 item7 item7 item7");
3923 ctk_combo_box_text_append_text (cb, "item8 item8 item8");
3924 ctk_combo_box_text_append_text (cb, "item9 item9");
3925
3926 cb_entry = ctk_bin_get_child (CTK_BIN (cb)((((CtkBin*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((cb)), ((ctk_bin_get_type ()))))))
);
3927 ctk_entry_set_text (CTK_ENTRY (cb_entry)((((CtkEntry*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((cb_entry)), ((ctk_entry_get_type ()))))))
, "hello world \n\n\n foo");
3928 ctk_editable_select_region (CTK_EDITABLE (cb_entry)((((CtkEditable*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((cb_entry)), ((ctk_editable_get_type ()))))))
, 0, -1);
3929 ctk_box_pack_start (CTK_BOX (box2)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_box_get_type ()))))))
, CTK_WIDGET (cb)((((CtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((cb)), ((ctk_widget_get_type ()))))))
, TRUE(!(0)), TRUE(!(0)), 0);
3930
3931 sensitive_check = ctk_check_button_new_with_label("Sensitive");
3932 ctk_box_pack_start (CTK_BOX (box2)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_box_get_type ()))))))
, sensitive_check, FALSE(0), TRUE(!(0)), 0);
3933 g_signal_connect (sensitive_check, "toggled",g_signal_connect_data ((sensitive_check), ("toggled"), (((GCallback
) (entry_toggle_sensitive))), (entry), ((void*)0), (GConnectFlags
) 0)
3934 G_CALLBACK (entry_toggle_sensitive), entry)g_signal_connect_data ((sensitive_check), ("toggled"), (((GCallback
) (entry_toggle_sensitive))), (entry), ((void*)0), (GConnectFlags
) 0)
;
3935 ctk_toggle_button_set_active (CTK_TOGGLE_BUTTON (sensitive_check)((((CtkToggleButton*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((sensitive_check)), ((ctk_toggle_button_get_type ()))))))
, TRUE(!(0)));
3936
3937 has_frame_check = ctk_check_button_new_with_label("Has Frame");
3938 ctk_box_pack_start (CTK_BOX (box2)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_box_get_type ()))))))
, has_frame_check, FALSE(0), TRUE(!(0)), 0);
3939 g_signal_connect (has_frame_check, "toggled",g_signal_connect_data ((has_frame_check), ("toggled"), (((GCallback
) (entry_toggle_frame))), (entry), ((void*)0), (GConnectFlags
) 0)
3940 G_CALLBACK (entry_toggle_frame), entry)g_signal_connect_data ((has_frame_check), ("toggled"), (((GCallback
) (entry_toggle_frame))), (entry), ((void*)0), (GConnectFlags
) 0)
;
3941 ctk_toggle_button_set_active (CTK_TOGGLE_BUTTON (has_frame_check)((((CtkToggleButton*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((has_frame_check)), ((ctk_toggle_button_get_type ()))))))
, TRUE(!(0)));
3942
3943 progress_check = ctk_check_button_new_with_label("Show Progress");
3944 ctk_box_pack_start (CTK_BOX (box2)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_box_get_type ()))))))
, progress_check, FALSE(0), TRUE(!(0)), 0);
3945 g_signal_connect (progress_check, "toggled",g_signal_connect_data ((progress_check), ("toggled"), (((GCallback
) (entry_toggle_progress))), (entry), ((void*)0), (GConnectFlags
) 0)
3946 G_CALLBACK (entry_toggle_progress), entry)g_signal_connect_data ((progress_check), ("toggled"), (((GCallback
) (entry_toggle_progress))), (entry), ((void*)0), (GConnectFlags
) 0)
;
3947
3948 progress_check = ctk_check_button_new_with_label("Pulse Progress");
3949 ctk_box_pack_start (CTK_BOX (box2)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_box_get_type ()))))))
, progress_check, FALSE(0), TRUE(!(0)), 0);
3950 g_signal_connect (progress_check, "toggled",g_signal_connect_data ((progress_check), ("toggled"), (((GCallback
) (entry_toggle_pulse))), (entry), ((void*)0), (GConnectFlags
) 0)
3951 G_CALLBACK (entry_toggle_pulse), entry)g_signal_connect_data ((progress_check), ("toggled"), (((GCallback
) (entry_toggle_pulse))), (entry), ((void*)0), (GConnectFlags
) 0)
;
3952
3953 separator = ctk_separator_new (CTK_ORIENTATION_HORIZONTAL);
3954 ctk_box_pack_start (CTK_BOX (box1)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box1)), ((ctk_box_get_type ()))))))
, separator, FALSE(0), TRUE(!(0)), 0);
3955
3956 box2 = ctk_box_new (CTK_ORIENTATION_VERTICAL, 10);
3957 ctk_container_set_border_width (CTK_CONTAINER (box2)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_container_get_type ()))))))
, 10);
3958 ctk_box_pack_start (CTK_BOX (box1)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box1)), ((ctk_box_get_type ()))))))
, box2, FALSE(0), TRUE(!(0)), 0);
3959
3960 button = ctk_button_new_with_label ("close");
3961 g_signal_connect_swapped (button, "clicked",g_signal_connect_data ((button), ("clicked"), (((GCallback) (
ctk_widget_destroy))), (window), ((void*)0), G_CONNECT_SWAPPED
)
3962 G_CALLBACK (ctk_widget_destroy),g_signal_connect_data ((button), ("clicked"), (((GCallback) (
ctk_widget_destroy))), (window), ((void*)0), G_CONNECT_SWAPPED
)
3963 window)g_signal_connect_data ((button), ("clicked"), (((GCallback) (
ctk_widget_destroy))), (window), ((void*)0), G_CONNECT_SWAPPED
)
;
3964 ctk_box_pack_start (CTK_BOX (box2)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_box_get_type ()))))))
, button, TRUE(!(0)), TRUE(!(0)), 0);
3965 ctk_widget_set_can_default (button, TRUE(!(0)));
3966 ctk_widget_grab_default (button);
3967 }
3968
3969 if (!ctk_widget_get_visible (window))
3970 ctk_widget_show_all (window);
3971 else
3972 ctk_widget_destroy (window);
3973}
3974
3975static void
3976create_expander (CtkWidget *widget)
3977{
3978 static CtkWidget *window = NULL((void*)0);
3979
3980 if (!window)
3981 {
3982 CtkWidget *box1;
3983 CtkWidget *expander;
3984 CtkWidget *hidden;
3985
3986 window = ctk_window_new (CTK_WINDOW_TOPLEVEL);
3987 ctk_window_set_screen (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
,
3988 ctk_widget_get_screen (widget));
3989
3990 g_signal_connect (window, "destroy",g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
3991 G_CALLBACK (ctk_widget_destroyed),g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
3992 &window)g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
;
3993
3994 ctk_window_set_title (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
, "expander");
3995 ctk_container_set_border_width (CTK_CONTAINER (window)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_container_get_type ()))))))
, 0);
3996
3997 box1 = ctk_box_new (CTK_ORIENTATION_VERTICAL, 0);
3998 ctk_container_add (CTK_CONTAINER (window)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_container_get_type ()))))))
, box1);
3999
4000 expander = ctk_expander_new ("The Hidden");
4001
4002 ctk_box_pack_start (CTK_BOX (box1)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box1)), ((ctk_box_get_type ()))))))
, expander, TRUE(!(0)), TRUE(!(0)), 0);
4003
4004 hidden = ctk_label_new ("Revealed!");
4005
4006 ctk_container_add (CTK_CONTAINER (expander)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((expander)), ((ctk_container_get_type ()))))))
, hidden);
4007 }
4008
4009 if (!ctk_widget_get_visible (window))
4010 ctk_widget_show_all (window);
4011 else
4012 ctk_widget_destroy (window);
4013}
4014
4015
4016/* CtkEventBox */
4017
4018
4019static gboolean
4020event_box_draw (CtkWidget *widget,
4021 cairo_t *cr,
4022 gpointer user_data)
4023{
4024 if (ctk_widget_get_window (widget) ==
4025 ctk_widget_get_window (ctk_widget_get_parent (widget)))
4026 return FALSE(0);
4027
4028 cairo_set_source_rgb (cr, 0, 1, 0);
4029 cairo_paint (cr);
4030
4031 return FALSE(0);
4032}
4033
4034static void
4035event_box_label_pressed (CtkWidget *widget,
4036 CdkEventButton *event,
4037 gpointer user_data)
4038{
4039 g_print ("clicked on event box\n");
4040}
4041
4042static void
4043event_box_button_clicked (CtkWidget *widget,
4044 CtkWidget *button,
4045 gpointer user_data)
4046{
4047 g_print ("pushed button\n");
4048}
4049
4050static void
4051event_box_toggle_visible_window (CtkWidget *checkbutton,
4052 CtkEventBox *event_box)
4053{
4054 ctk_event_box_set_visible_window (event_box,
4055 ctk_toggle_button_get_active (CTK_TOGGLE_BUTTON (checkbutton)((((CtkToggleButton*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((checkbutton)), ((ctk_toggle_button_get_type ()))))))
));
4056}
4057
4058static void
4059event_box_toggle_above_child (CtkWidget *checkbutton,
4060 CtkEventBox *event_box)
4061{
4062 ctk_event_box_set_above_child (event_box,
4063 ctk_toggle_button_get_active (CTK_TOGGLE_BUTTON (checkbutton)((((CtkToggleButton*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((checkbutton)), ((ctk_toggle_button_get_type ()))))))
));
4064}
4065
4066static void
4067create_event_box (CtkWidget *widget)
4068{
4069 static CtkWidget *window = NULL((void*)0);
4070
4071 if (!window)
4072 {
4073 CtkWidget *box1;
4074 CtkWidget *box2;
4075 CtkWidget *hbox;
4076 CtkWidget *vbox;
4077 CtkWidget *button;
4078 CtkWidget *separator;
4079 CtkWidget *event_box;
4080 CtkWidget *label;
4081 CtkWidget *visible_window_check;
4082 CtkWidget *above_child_check;
4083
4084 window = ctk_window_new (CTK_WINDOW_TOPLEVEL);
4085 ctk_window_set_screen (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
,
4086 ctk_widget_get_screen (widget));
4087
4088 g_signal_connect (window, "destroy",g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
4089 G_CALLBACK (ctk_widget_destroyed),g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
4090 &window)g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
;
4091
4092 ctk_window_set_title (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
, "event box");
4093 ctk_container_set_border_width (CTK_CONTAINER (window)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_container_get_type ()))))))
, 0);
4094
4095 box1 = ctk_box_new (CTK_ORIENTATION_VERTICAL, 0);
4096 ctk_container_add (CTK_CONTAINER (window)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_container_get_type ()))))))
, box1);
4097
4098 hbox = ctk_box_new (CTK_ORIENTATION_HORIZONTAL, 0);
4099 ctk_box_pack_start (CTK_BOX (box1)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box1)), ((ctk_box_get_type ()))))))
, hbox, TRUE(!(0)), FALSE(0), 0);
4100
4101 event_box = ctk_event_box_new ();
4102 ctk_box_pack_start (CTK_BOX (hbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hbox)), ((ctk_box_get_type ()))))))
, event_box, TRUE(!(0)), FALSE(0), 0);
4103
4104 vbox = ctk_box_new (CTK_ORIENTATION_VERTICAL, 0);
4105 ctk_container_add (CTK_CONTAINER (event_box)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((event_box)), ((ctk_container_get_type ()))))))
, vbox);
4106 g_signal_connect (event_box, "button_press_event",g_signal_connect_data ((event_box), ("button_press_event"), (
((GCallback) (event_box_label_pressed))), (((void*)0)), ((void
*)0), (GConnectFlags) 0)
4107 G_CALLBACK (event_box_label_pressed),g_signal_connect_data ((event_box), ("button_press_event"), (
((GCallback) (event_box_label_pressed))), (((void*)0)), ((void
*)0), (GConnectFlags) 0)
4108 NULL)g_signal_connect_data ((event_box), ("button_press_event"), (
((GCallback) (event_box_label_pressed))), (((void*)0)), ((void
*)0), (GConnectFlags) 0)
;
4109 g_signal_connect (event_box, "draw",g_signal_connect_data ((event_box), ("draw"), (((GCallback) (
event_box_draw))), (((void*)0)), ((void*)0), (GConnectFlags) 0
)
4110 G_CALLBACK (event_box_draw),g_signal_connect_data ((event_box), ("draw"), (((GCallback) (
event_box_draw))), (((void*)0)), ((void*)0), (GConnectFlags) 0
)
4111 NULL)g_signal_connect_data ((event_box), ("draw"), (((GCallback) (
event_box_draw))), (((void*)0)), ((void*)0), (GConnectFlags) 0
)
;
4112
4113 label = ctk_label_new ("Click on this label");
4114 ctk_box_pack_start (CTK_BOX (vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_box_get_type ()))))))
, label, TRUE(!(0)), FALSE(0), 0);
4115
4116 button = ctk_button_new_with_label ("button in eventbox");
4117 ctk_box_pack_start (CTK_BOX (vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_box_get_type ()))))))
, button, TRUE(!(0)), FALSE(0), 0);
4118 g_signal_connect (button, "clicked",g_signal_connect_data ((button), ("clicked"), (((GCallback) (
event_box_button_clicked))), (((void*)0)), ((void*)0), (GConnectFlags
) 0)
4119 G_CALLBACK (event_box_button_clicked),g_signal_connect_data ((button), ("clicked"), (((GCallback) (
event_box_button_clicked))), (((void*)0)), ((void*)0), (GConnectFlags
) 0)
4120 NULL)g_signal_connect_data ((button), ("clicked"), (((GCallback) (
event_box_button_clicked))), (((void*)0)), ((void*)0), (GConnectFlags
) 0)
;
4121
4122
4123 visible_window_check = ctk_check_button_new_with_label("Visible Window");
4124 ctk_box_pack_start (CTK_BOX (box1)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box1)), ((ctk_box_get_type ()))))))
, visible_window_check, FALSE(0), TRUE(!(0)), 0);
4125 g_signal_connect (visible_window_check, "toggled",g_signal_connect_data ((visible_window_check), ("toggled"), (
((GCallback) (event_box_toggle_visible_window))), (event_box)
, ((void*)0), (GConnectFlags) 0)
4126 G_CALLBACK (event_box_toggle_visible_window), event_box)g_signal_connect_data ((visible_window_check), ("toggled"), (
((GCallback) (event_box_toggle_visible_window))), (event_box)
, ((void*)0), (GConnectFlags) 0)
;
4127 ctk_toggle_button_set_active (CTK_TOGGLE_BUTTON (visible_window_check)((((CtkToggleButton*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((visible_window_check)), ((ctk_toggle_button_get_type ())
)))))
, TRUE(!(0)));
4128
4129 above_child_check = ctk_check_button_new_with_label("Above Child");
4130 ctk_box_pack_start (CTK_BOX (box1)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box1)), ((ctk_box_get_type ()))))))
, above_child_check, FALSE(0), TRUE(!(0)), 0);
4131 g_signal_connect (above_child_check, "toggled",g_signal_connect_data ((above_child_check), ("toggled"), (((GCallback
) (event_box_toggle_above_child))), (event_box), ((void*)0), (
GConnectFlags) 0)
4132 G_CALLBACK (event_box_toggle_above_child), event_box)g_signal_connect_data ((above_child_check), ("toggled"), (((GCallback
) (event_box_toggle_above_child))), (event_box), ((void*)0), (
GConnectFlags) 0)
;
4133 ctk_toggle_button_set_active (CTK_TOGGLE_BUTTON (above_child_check)((((CtkToggleButton*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((above_child_check)), ((ctk_toggle_button_get_type ()))))
))
, FALSE(0));
4134
4135 separator = ctk_separator_new (CTK_ORIENTATION_HORIZONTAL);
4136 ctk_box_pack_start (CTK_BOX (box1)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box1)), ((ctk_box_get_type ()))))))
, separator, FALSE(0), TRUE(!(0)), 0);
4137
4138 box2 = ctk_box_new (CTK_ORIENTATION_VERTICAL, 10);
4139 ctk_container_set_border_width (CTK_CONTAINER (box2)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_container_get_type ()))))))
, 10);
4140 ctk_box_pack_start (CTK_BOX (box1)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box1)), ((ctk_box_get_type ()))))))
, box2, FALSE(0), TRUE(!(0)), 0);
4141
4142 button = ctk_button_new_with_label ("close");
4143 g_signal_connect_swapped (button, "clicked",g_signal_connect_data ((button), ("clicked"), (((GCallback) (
ctk_widget_destroy))), (window), ((void*)0), G_CONNECT_SWAPPED
)
4144 G_CALLBACK (ctk_widget_destroy),g_signal_connect_data ((button), ("clicked"), (((GCallback) (
ctk_widget_destroy))), (window), ((void*)0), G_CONNECT_SWAPPED
)
4145 window)g_signal_connect_data ((button), ("clicked"), (((GCallback) (
ctk_widget_destroy))), (window), ((void*)0), G_CONNECT_SWAPPED
)
;
4146 ctk_box_pack_start (CTK_BOX (box2)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_box_get_type ()))))))
, button, TRUE(!(0)), TRUE(!(0)), 0);
4147 ctk_widget_set_can_default (button, TRUE(!(0)));
4148 ctk_widget_grab_default (button);
4149 }
4150
4151 if (!ctk_widget_get_visible (window))
4152 ctk_widget_show_all (window);
4153 else
4154 ctk_widget_destroy (window);
4155}
4156
4157
4158/*
4159 * CtkSizeGroup
4160 */
4161
4162#define SIZE_GROUP_INITIAL_SIZE50 50
4163
4164static void
4165size_group_hsize_changed (CtkSpinButton *spin_button,
4166 CtkWidget *button)
4167{
4168 ctk_widget_set_size_request (ctk_bin_get_child (CTK_BIN (button)((((CtkBin*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((button)), ((ctk_bin_get_type ()))))))
),
4169 ctk_spin_button_get_value_as_int (spin_button),
4170 -1);
4171}
4172
4173static void
4174size_group_vsize_changed (CtkSpinButton *spin_button,
4175 CtkWidget *button)
4176{
4177 ctk_widget_set_size_request (ctk_bin_get_child (CTK_BIN (button)((((CtkBin*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((button)), ((ctk_bin_get_type ()))))))
),
4178 -1,
4179 ctk_spin_button_get_value_as_int (spin_button));
4180}
4181
4182static CtkWidget *
4183create_size_group_window (CdkScreen *screen,
4184 CtkSizeGroup *master_size_group)
4185{
4186 CtkWidget *content_area;
4187 CtkWidget *window;
4188 CtkWidget *grid;
4189 CtkWidget *main_button;
4190 CtkWidget *button;
4191 CtkWidget *spin_button;
4192 CtkWidget *hbox;
4193 CtkSizeGroup *hgroup1;
4194 CtkSizeGroup *hgroup2;
4195 CtkSizeGroup *vgroup1;
4196 CtkSizeGroup *vgroup2;
4197
4198 window = ctk_dialog_new_with_buttons ("CtkSizeGroup",
4199 NULL((void*)0), 0,
4200 "_Close",
4201 CTK_RESPONSE_NONE,
4202 NULL((void*)0));
4203
4204 ctk_window_set_screen (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
, screen);
4205
4206 ctk_window_set_resizable (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
, TRUE(!(0)));
4207
4208 g_signal_connect (window, "response",g_signal_connect_data ((window), ("response"), (((GCallback) (
ctk_widget_destroy))), (((void*)0)), ((void*)0), (GConnectFlags
) 0)
4209 G_CALLBACK (ctk_widget_destroy),g_signal_connect_data ((window), ("response"), (((GCallback) (
ctk_widget_destroy))), (((void*)0)), ((void*)0), (GConnectFlags
) 0)
4210 NULL)g_signal_connect_data ((window), ("response"), (((GCallback) (
ctk_widget_destroy))), (((void*)0)), ((void*)0), (GConnectFlags
) 0)
;
4211
4212 content_area = ctk_dialog_get_content_area (CTK_DIALOG (window)((((CtkDialog*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_dialog_get_type ()))))))
);
4213
4214 grid = ctk_grid_new ();
4215 ctk_box_pack_start (CTK_BOX (content_area)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((content_area)), ((ctk_box_get_type ()))))))
, grid, TRUE(!(0)), TRUE(!(0)), 0);
4216
4217 ctk_grid_set_row_spacing (CTK_GRID (grid)((((CtkGrid*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((grid)), ((ctk_grid_get_type ()))))))
, 5);
4218 ctk_grid_set_column_spacing (CTK_GRID (grid)((((CtkGrid*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((grid)), ((ctk_grid_get_type ()))))))
, 5);
4219 ctk_container_set_border_width (CTK_CONTAINER (grid)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((grid)), ((ctk_container_get_type ()))))))
, 5);
4220 ctk_widget_set_size_request (grid, 250, 250);
4221
4222 hgroup1 = ctk_size_group_new (CTK_SIZE_GROUP_HORIZONTAL);
4223 hgroup2 = ctk_size_group_new (CTK_SIZE_GROUP_HORIZONTAL);
4224 vgroup1 = ctk_size_group_new (CTK_SIZE_GROUP_VERTICAL);
4225 vgroup2 = ctk_size_group_new (CTK_SIZE_GROUP_VERTICAL);
4226
4227 main_button = ctk_button_new_with_label ("X");
4228 ctk_widget_set_hexpand (main_button, TRUE(!(0)));
4229 ctk_widget_set_vexpand (main_button, TRUE(!(0)));
4230 ctk_widget_set_halign (main_button, CTK_ALIGN_CENTER);
4231 ctk_widget_set_valign (main_button, CTK_ALIGN_CENTER);
4232 ctk_grid_attach (CTK_GRID (grid)((((CtkGrid*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((grid)), ((ctk_grid_get_type ()))))))
, main_button, 0, 0, 1, 1);
4233
4234 ctk_size_group_add_widget (master_size_group, main_button);
4235 ctk_size_group_add_widget (hgroup1, main_button);
4236 ctk_size_group_add_widget (vgroup1, main_button);
4237 ctk_widget_set_size_request (ctk_bin_get_child (CTK_BIN (main_button)((((CtkBin*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((main_button)), ((ctk_bin_get_type ()))))))
),
4238 SIZE_GROUP_INITIAL_SIZE50,
4239 SIZE_GROUP_INITIAL_SIZE50);
4240
4241 button = ctk_button_new ();
4242 ctk_widget_set_hexpand (button, TRUE(!(0)));
4243 ctk_widget_set_vexpand (button, TRUE(!(0)));
4244 ctk_widget_set_halign (button, CTK_ALIGN_CENTER);
4245 ctk_widget_set_valign (button, CTK_ALIGN_CENTER);
4246 ctk_grid_attach (CTK_GRID (grid)((((CtkGrid*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((grid)), ((ctk_grid_get_type ()))))))
, button, 1, 0, 1, 1);
4247
4248 ctk_size_group_add_widget (vgroup1, button);
4249 ctk_size_group_add_widget (vgroup2, button);
4250
4251 button = ctk_button_new ();
4252 ctk_widget_set_hexpand (button, TRUE(!(0)));
4253 ctk_widget_set_vexpand (button, TRUE(!(0)));
4254 ctk_widget_set_halign (button, CTK_ALIGN_CENTER);
4255 ctk_widget_set_valign (button, CTK_ALIGN_CENTER);
4256 ctk_grid_attach (CTK_GRID (grid)((((CtkGrid*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((grid)), ((ctk_grid_get_type ()))))))
, button, 0, 1, 1, 1);
4257
4258 ctk_size_group_add_widget (hgroup1, button);
4259 ctk_size_group_add_widget (hgroup2, button);
4260
4261 button = ctk_button_new ();
4262 ctk_widget_set_hexpand (button, TRUE(!(0)));
4263 ctk_widget_set_vexpand (button, TRUE(!(0)));
4264 ctk_widget_set_halign (button, CTK_ALIGN_CENTER);
4265 ctk_widget_set_valign (button, CTK_ALIGN_CENTER);
4266 ctk_grid_attach (CTK_GRID (grid)((((CtkGrid*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((grid)), ((ctk_grid_get_type ()))))))
, button, 1, 1, 1, 1);
4267
4268 ctk_size_group_add_widget (hgroup2, button);
4269 ctk_size_group_add_widget (vgroup2, button);
4270
4271 g_object_unref (hgroup1);
4272 g_object_unref (hgroup2);
4273 g_object_unref (vgroup1);
4274 g_object_unref (vgroup2);
4275
4276 hbox = ctk_box_new (CTK_ORIENTATION_HORIZONTAL, 5);
4277 ctk_box_pack_start (CTK_BOX (content_area)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((content_area)), ((ctk_box_get_type ()))))))
, hbox, FALSE(0), FALSE(0), 0);
4278
4279 spin_button = ctk_spin_button_new_with_range (1, 100, 1);
4280 ctk_spin_button_set_value (CTK_SPIN_BUTTON (spin_button)((((CtkSpinButton*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((spin_button)), ((ctk_spin_button_get_type ()))))))
, SIZE_GROUP_INITIAL_SIZE50);
4281 ctk_box_pack_start (CTK_BOX (hbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hbox)), ((ctk_box_get_type ()))))))
, spin_button, TRUE(!(0)), TRUE(!(0)), 0);
4282 g_signal_connect (spin_button, "value_changed",g_signal_connect_data ((spin_button), ("value_changed"), (((GCallback
) (size_group_hsize_changed))), (main_button), ((void*)0), (GConnectFlags
) 0)
4283 G_CALLBACK (size_group_hsize_changed), main_button)g_signal_connect_data ((spin_button), ("value_changed"), (((GCallback
) (size_group_hsize_changed))), (main_button), ((void*)0), (GConnectFlags
) 0)
;
4284
4285 spin_button = ctk_spin_button_new_with_range (1, 100, 1);
4286 ctk_spin_button_set_value (CTK_SPIN_BUTTON (spin_button)((((CtkSpinButton*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((spin_button)), ((ctk_spin_button_get_type ()))))))
, SIZE_GROUP_INITIAL_SIZE50);
4287 ctk_box_pack_start (CTK_BOX (hbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hbox)), ((ctk_box_get_type ()))))))
, spin_button, TRUE(!(0)), TRUE(!(0)), 0);
4288 g_signal_connect (spin_button, "value_changed",g_signal_connect_data ((spin_button), ("value_changed"), (((GCallback
) (size_group_vsize_changed))), (main_button), ((void*)0), (GConnectFlags
) 0)
4289 G_CALLBACK (size_group_vsize_changed), main_button)g_signal_connect_data ((spin_button), ("value_changed"), (((GCallback
) (size_group_vsize_changed))), (main_button), ((void*)0), (GConnectFlags
) 0)
;
4290
4291 return window;
4292}
4293
4294static void
4295create_size_groups (CtkWidget *widget)
4296{
4297 static CtkWidget *window1 = NULL((void*)0);
4298 static CtkWidget *window2 = NULL((void*)0);
4299 static CtkSizeGroup *master_size_group;
4300
4301 if (!master_size_group)
4302 master_size_group = ctk_size_group_new (CTK_SIZE_GROUP_BOTH);
4303
4304 if (!window1)
4305 {
4306 window1 = create_size_group_window (ctk_widget_get_screen (widget),
4307 master_size_group);
4308
4309 g_signal_connect (window1, "destroy",g_signal_connect_data ((window1), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window1), ((void*)0), (GConnectFlags
) 0)
4310 G_CALLBACK (ctk_widget_destroyed),g_signal_connect_data ((window1), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window1), ((void*)0), (GConnectFlags
) 0)
4311 &window1)g_signal_connect_data ((window1), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window1), ((void*)0), (GConnectFlags
) 0)
;
4312 }
4313
4314 if (!window2)
4315 {
4316 window2 = create_size_group_window (ctk_widget_get_screen (widget),
4317 master_size_group);
4318
4319 g_signal_connect (window2, "destroy",g_signal_connect_data ((window2), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window2), ((void*)0), (GConnectFlags
) 0)
4320 G_CALLBACK (ctk_widget_destroyed),g_signal_connect_data ((window2), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window2), ((void*)0), (GConnectFlags
) 0)
4321 &window2)g_signal_connect_data ((window2), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window2), ((void*)0), (GConnectFlags
) 0)
;
4322 }
4323
4324 if (ctk_widget_get_visible (window1) && ctk_widget_get_visible (window2))
4325 {
4326 ctk_widget_destroy (window1);
4327 ctk_widget_destroy (window2);
4328 }
4329 else
4330 {
4331 if (!ctk_widget_get_visible (window1))
4332 ctk_widget_show_all (window1);
4333 if (!ctk_widget_get_visible (window2))
4334 ctk_widget_show_all (window2);
4335 }
4336}
4337
4338/*
4339 * CtkSpinButton
4340 */
4341
4342static CtkWidget *spinner1;
4343
4344static void
4345toggle_snap (CtkWidget *widget, CtkSpinButton *spin)
4346{
4347 ctk_spin_button_set_snap_to_ticks (spin,
4348 ctk_toggle_button_get_active (CTK_TOGGLE_BUTTON (widget)((((CtkToggleButton*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((widget)), ((ctk_toggle_button_get_type ()))))))
));
4349}
4350
4351static void
4352toggle_numeric (CtkWidget *widget, CtkSpinButton *spin)
4353{
4354 ctk_spin_button_set_numeric (spin,
4355 ctk_toggle_button_get_active (CTK_TOGGLE_BUTTON (widget)((((CtkToggleButton*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((widget)), ((ctk_toggle_button_get_type ()))))))
));
4356}
4357
4358static void
4359change_digits (CtkWidget *widget, CtkSpinButton *spin)
4360{
4361 ctk_spin_button_set_digits (CTK_SPIN_BUTTON (spinner1)((((CtkSpinButton*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((spinner1)), ((ctk_spin_button_get_type ()))))))
,
4362 ctk_spin_button_get_value_as_int (spin));
4363}
4364
4365static void
4366get_value (CtkWidget *widget, gpointer data)
4367{
4368 gchar buf[32];
4369 CtkLabel *label;
4370 CtkSpinButton *spin;
4371
4372 spin = CTK_SPIN_BUTTON (spinner1)((((CtkSpinButton*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((spinner1)), ((ctk_spin_button_get_type ()))))))
;
4373 label = CTK_LABEL (g_object_get_data (G_OBJECT (widget), "user_data"))((((CtkLabel*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((g_object_get_data (((((GObject*) (void *) g_type_check_instance_cast
((GTypeInstance*) ((widget)), (((GType) ((20) << (2)))
))))), "user_data"))), ((ctk_label_get_type ()))))))
;
4374 if (GPOINTER_TO_INT (data)((gint) (glong) (data)) == 1)
4375 sprintf (buf, "%d", ctk_spin_button_get_value_as_int (spin));
4376 else
4377 sprintf (buf, "%0.*f",
4378 ctk_spin_button_get_digits (spin),
4379 ctk_spin_button_get_value (spin));
4380
4381 ctk_label_set_text (label, buf);
4382}
4383
4384static void
4385get_spin_value (CtkWidget *widget, gpointer data)
4386{
4387 gchar *buffer;
4388 CtkLabel *label;
4389 CtkSpinButton *spin;
4390
4391 spin = CTK_SPIN_BUTTON (widget)((((CtkSpinButton*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((widget)), ((ctk_spin_button_get_type ()))))))
;
4392 label = CTK_LABEL (data)((((CtkLabel*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((data)), ((ctk_label_get_type ()))))))
;
4393
4394 buffer = g_strdup_printf ("%0.*f",
4395 ctk_spin_button_get_digits (spin),
4396 ctk_spin_button_get_value (spin));
4397 ctk_label_set_text (label, buffer);
4398
4399 g_free (buffer);
4400}
4401
4402static gint
4403spin_button_time_output_func (CtkSpinButton *spin_button)
4404{
4405 CtkAdjustment *adjustment;
4406 static gchar buf[6];
4407 gdouble hours;
4408 gdouble minutes;
4409
4410 adjustment = ctk_spin_button_get_adjustment (spin_button);
4411 hours = ctk_adjustment_get_value (adjustment) / 60.0;
4412 minutes = (fabs(floor (hours) - hours) < 1e-5) ? 0.0 : 30;
4413 sprintf (buf, "%02.0f:%02.0f", floor (hours), minutes);
4414 if (strcmp (buf, ctk_entry_get_text (CTK_ENTRY (spin_button)((((CtkEntry*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((spin_button)), ((ctk_entry_get_type ()))))))
)))
4415 ctk_entry_set_text (CTK_ENTRY (spin_button)((((CtkEntry*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((spin_button)), ((ctk_entry_get_type ()))))))
, buf);
4416 return TRUE(!(0));
4417}
4418
4419static gint
4420spin_button_month_input_func (CtkSpinButton *spin_button,
4421 gdouble *new_val)
4422{
4423 gint i;
4424 static gchar *month[12] = { "January", "February", "March", "April",
4425 "May", "June", "July", "August",
4426 "September", "October", "November", "December" };
4427 gboolean found = FALSE(0);
4428
4429 for (i = 1; i <= 12; i++)
4430 {
4431 gchar *tmp1, *tmp2;
4432
4433 tmp1 = g_ascii_strup (month[i - 1], -1);
4434 tmp2 = g_ascii_strup (ctk_entry_get_text (CTK_ENTRY (spin_button)((((CtkEntry*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((spin_button)), ((ctk_entry_get_type ()))))))
), -1);
4435 if (strstr (tmp1, tmp2) == tmp1)
4436 found = TRUE(!(0));
4437 g_free (tmp1);
4438 g_free (tmp2);
4439 if (found)
4440 break;
4441 }
4442 if (!found)
4443 {
4444 *new_val = 0.0;
4445 return CTK_INPUT_ERROR-1;
4446 }
4447 *new_val = (gdouble) i;
4448 return TRUE(!(0));
4449}
4450
4451static gint
4452spin_button_month_output_func (CtkSpinButton *spin_button)
4453{
4454 CtkAdjustment *adjustment;
4455 gdouble value;
4456 gint i;
4457 static gchar *month[12] = { "January", "February", "March", "April",
4458 "May", "June", "July", "August", "September",
4459 "October", "November", "December" };
4460
4461 adjustment = ctk_spin_button_get_adjustment (spin_button);
4462 value = ctk_adjustment_get_value (adjustment);
4463 for (i = 1; i <= 12; i++)
4464 if (fabs (value - (double)i) < 1e-5)
4465 {
4466 if (strcmp (month[i-1], ctk_entry_get_text (CTK_ENTRY (spin_button)((((CtkEntry*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((spin_button)), ((ctk_entry_get_type ()))))))
)))
4467 ctk_entry_set_text (CTK_ENTRY (spin_button)((((CtkEntry*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((spin_button)), ((ctk_entry_get_type ()))))))
, month[i-1]);
4468 }
4469 return TRUE(!(0));
4470}
4471
4472static gint
4473spin_button_hex_input_func (CtkSpinButton *spin_button,
4474 gdouble *new_val)
4475{
4476 const gchar *buf;
4477 gchar *err;
4478 gdouble res;
4479
4480 buf = ctk_entry_get_text (CTK_ENTRY (spin_button)((((CtkEntry*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((spin_button)), ((ctk_entry_get_type ()))))))
);
4481 res = strtol(buf, &err, 16);
4482 *new_val = res;
4483 if (*err)
4484 return CTK_INPUT_ERROR-1;
4485 else
4486 return TRUE(!(0));
4487}
4488
4489static gint
4490spin_button_hex_output_func (CtkSpinButton *spin_button)
4491{
4492 CtkAdjustment *adjustment;
4493 static gchar buf[7];
4494 gint val;
4495
4496 adjustment = ctk_spin_button_get_adjustment (spin_button);
4497 val = (gint) ctk_adjustment_get_value (adjustment);
4498 if (fabs (val) < 1e-5)
4499 sprintf (buf, "0x00");
4500 else
4501 sprintf (buf, "0x%.2X", val);
4502 if (strcmp (buf, ctk_entry_get_text (CTK_ENTRY (spin_button)((((CtkEntry*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((spin_button)), ((ctk_entry_get_type ()))))))
)))
4503 ctk_entry_set_text (CTK_ENTRY (spin_button)((((CtkEntry*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((spin_button)), ((ctk_entry_get_type ()))))))
, buf);
4504 return TRUE(!(0));
4505}
4506
4507static void
4508create_spins (CtkWidget *widget)
4509{
4510 static CtkWidget *window = NULL((void*)0);
4511
4512 if (!window)
4513 {
4514 CtkWidget *frame;
4515 CtkWidget *hbox;
4516 CtkWidget *main_vbox;
4517 CtkWidget *vbox;
4518 CtkWidget *vbox2;
4519 CtkWidget *spinner2;
4520 CtkWidget *spinner;
4521 CtkWidget *button;
4522 CtkWidget *label;
4523 CtkWidget *val_label;
4524 CtkAdjustment *adjustment;
4525
4526 window = ctk_window_new (CTK_WINDOW_TOPLEVEL);
4527 ctk_window_set_screen (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
,
4528 ctk_widget_get_screen (widget));
4529
4530 g_signal_connect (window, "destroy",g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
4531 G_CALLBACK (ctk_widget_destroyed),g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
4532 &window)g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
;
4533
4534 ctk_window_set_title (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
, "CtkSpinButton");
4535
4536 main_vbox = ctk_box_new (CTK_ORIENTATION_VERTICAL, 5);
4537 ctk_container_set_border_width (CTK_CONTAINER (main_vbox)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((main_vbox)), ((ctk_container_get_type ()))))))
, 10);
4538 ctk_container_add (CTK_CONTAINER (window)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_container_get_type ()))))))
, main_vbox);
4539
4540 frame = ctk_frame_new ("Not accelerated");
4541 ctk_box_pack_start (CTK_BOX (main_vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((main_vbox)), ((ctk_box_get_type ()))))))
, frame, TRUE(!(0)), TRUE(!(0)), 0);
4542
4543 vbox = ctk_box_new (CTK_ORIENTATION_VERTICAL, 0);
4544 ctk_container_set_border_width (CTK_CONTAINER (vbox)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_container_get_type ()))))))
, 5);
4545 ctk_container_add (CTK_CONTAINER (frame)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((frame)), ((ctk_container_get_type ()))))))
, vbox);
4546
4547 /* Time, month, hex spinners */
4548
4549 hbox = ctk_box_new (CTK_ORIENTATION_HORIZONTAL, 0);
4550 ctk_box_pack_start (CTK_BOX (vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_box_get_type ()))))))
, hbox, TRUE(!(0)), TRUE(!(0)), 5);
4551
4552 vbox2 = ctk_box_new (CTK_ORIENTATION_VERTICAL, 0);
4553 ctk_box_pack_start (CTK_BOX (hbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hbox)), ((ctk_box_get_type ()))))))
, vbox2, TRUE(!(0)), TRUE(!(0)), 5);
4554
4555 label = ctk_label_new ("Time :");
4556 ctk_widget_set_halign (label, CTK_ALIGN_START);
4557 ctk_widget_set_valign (label, CTK_ALIGN_CENTER);
4558 ctk_box_pack_start (CTK_BOX (vbox2)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox2)), ((ctk_box_get_type ()))))))
, label, FALSE(0), TRUE(!(0)), 0);
4559
4560 adjustment = ctk_adjustment_new (0, 0, 1410, 30, 60, 0);
4561 spinner = ctk_spin_button_new (adjustment, 0, 0);
4562 ctk_editable_set_editable (CTK_EDITABLE (spinner)((((CtkEditable*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((spinner)), ((ctk_editable_get_type ()))))))
, FALSE(0));
4563 g_signal_connect (spinner,g_signal_connect_data ((spinner), ("output"), (((GCallback) (
spin_button_time_output_func))), (((void*)0)), ((void*)0), (GConnectFlags
) 0)
4564 "output",g_signal_connect_data ((spinner), ("output"), (((GCallback) (
spin_button_time_output_func))), (((void*)0)), ((void*)0), (GConnectFlags
) 0)
4565 G_CALLBACK (spin_button_time_output_func),g_signal_connect_data ((spinner), ("output"), (((GCallback) (
spin_button_time_output_func))), (((void*)0)), ((void*)0), (GConnectFlags
) 0)
4566 NULL)g_signal_connect_data ((spinner), ("output"), (((GCallback) (
spin_button_time_output_func))), (((void*)0)), ((void*)0), (GConnectFlags
) 0)
;
4567 ctk_spin_button_set_wrap (CTK_SPIN_BUTTON (spinner)((((CtkSpinButton*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((spinner)), ((ctk_spin_button_get_type ()))))))
, TRUE(!(0)));
4568 ctk_entry_set_width_chars (CTK_ENTRY (spinner)((((CtkEntry*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((spinner)), ((ctk_entry_get_type ()))))))
, 5);
4569 ctk_box_pack_start (CTK_BOX (vbox2)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox2)), ((ctk_box_get_type ()))))))
, spinner, FALSE(0), TRUE(!(0)), 0);
4570
4571 vbox2 = ctk_box_new (CTK_ORIENTATION_VERTICAL, 0);
4572 ctk_box_pack_start (CTK_BOX (hbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hbox)), ((ctk_box_get_type ()))))))
, vbox2, TRUE(!(0)), TRUE(!(0)), 5);
4573
4574 label = ctk_label_new ("Month :");
4575 ctk_widget_set_halign (label, CTK_ALIGN_START);
4576 ctk_widget_set_valign (label, CTK_ALIGN_CENTER);
4577 ctk_box_pack_start (CTK_BOX (vbox2)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox2)), ((ctk_box_get_type ()))))))
, label, FALSE(0), TRUE(!(0)), 0);
4578
4579 adjustment = ctk_adjustment_new (1.0, 1.0, 12.0, 1.0,
4580 5.0, 0.0);
4581 spinner = ctk_spin_button_new (adjustment, 0, 0);
4582 ctk_spin_button_set_update_policy (CTK_SPIN_BUTTON (spinner)((((CtkSpinButton*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((spinner)), ((ctk_spin_button_get_type ()))))))
,
4583 CTK_UPDATE_IF_VALID);
4584 g_signal_connect (spinner,g_signal_connect_data ((spinner), ("input"), (((GCallback) (spin_button_month_input_func
))), (((void*)0)), ((void*)0), (GConnectFlags) 0)
4585 "input",g_signal_connect_data ((spinner), ("input"), (((GCallback) (spin_button_month_input_func
))), (((void*)0)), ((void*)0), (GConnectFlags) 0)
4586 G_CALLBACK (spin_button_month_input_func),g_signal_connect_data ((spinner), ("input"), (((GCallback) (spin_button_month_input_func
))), (((void*)0)), ((void*)0), (GConnectFlags) 0)
4587 NULL)g_signal_connect_data ((spinner), ("input"), (((GCallback) (spin_button_month_input_func
))), (((void*)0)), ((void*)0), (GConnectFlags) 0)
;
4588 g_signal_connect (spinner,g_signal_connect_data ((spinner), ("output"), (((GCallback) (
spin_button_month_output_func))), (((void*)0)), ((void*)0), (
GConnectFlags) 0)
4589 "output",g_signal_connect_data ((spinner), ("output"), (((GCallback) (
spin_button_month_output_func))), (((void*)0)), ((void*)0), (
GConnectFlags) 0)
4590 G_CALLBACK (spin_button_month_output_func),g_signal_connect_data ((spinner), ("output"), (((GCallback) (
spin_button_month_output_func))), (((void*)0)), ((void*)0), (
GConnectFlags) 0)
4591 NULL)g_signal_connect_data ((spinner), ("output"), (((GCallback) (
spin_button_month_output_func))), (((void*)0)), ((void*)0), (
GConnectFlags) 0)
;
4592 ctk_spin_button_set_wrap (CTK_SPIN_BUTTON (spinner)((((CtkSpinButton*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((spinner)), ((ctk_spin_button_get_type ()))))))
, TRUE(!(0)));
4593 ctk_entry_set_width_chars (CTK_ENTRY (spinner)((((CtkEntry*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((spinner)), ((ctk_entry_get_type ()))))))
, 9);
4594 ctk_box_pack_start (CTK_BOX (vbox2)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox2)), ((ctk_box_get_type ()))))))
, spinner, FALSE(0), TRUE(!(0)), 0);
4595
4596 vbox2 = ctk_box_new (CTK_ORIENTATION_VERTICAL, 0);
4597 ctk_box_pack_start (CTK_BOX (hbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hbox)), ((ctk_box_get_type ()))))))
, vbox2, TRUE(!(0)), TRUE(!(0)), 5);
4598
4599 label = ctk_label_new ("Hex :");
4600 ctk_widget_set_halign (label, CTK_ALIGN_START);
4601 ctk_widget_set_valign (label, CTK_ALIGN_CENTER);
4602 ctk_box_pack_start (CTK_BOX (vbox2)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox2)), ((ctk_box_get_type ()))))))
, label, FALSE(0), TRUE(!(0)), 0);
4603
4604 adjustment = ctk_adjustment_new (0, 0, 255, 1, 16, 0);
4605 spinner = ctk_spin_button_new (adjustment, 0, 0);
4606 ctk_editable_set_editable (CTK_EDITABLE (spinner)((((CtkEditable*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((spinner)), ((ctk_editable_get_type ()))))))
, TRUE(!(0)));
4607 g_signal_connect (spinner,g_signal_connect_data ((spinner), ("input"), (((GCallback) (spin_button_hex_input_func
))), (((void*)0)), ((void*)0), (GConnectFlags) 0)
4608 "input",g_signal_connect_data ((spinner), ("input"), (((GCallback) (spin_button_hex_input_func
))), (((void*)0)), ((void*)0), (GConnectFlags) 0)
4609 G_CALLBACK (spin_button_hex_input_func),g_signal_connect_data ((spinner), ("input"), (((GCallback) (spin_button_hex_input_func
))), (((void*)0)), ((void*)0), (GConnectFlags) 0)
4610 NULL)g_signal_connect_data ((spinner), ("input"), (((GCallback) (spin_button_hex_input_func
))), (((void*)0)), ((void*)0), (GConnectFlags) 0)
;
4611 g_signal_connect (spinner,g_signal_connect_data ((spinner), ("output"), (((GCallback) (
spin_button_hex_output_func))), (((void*)0)), ((void*)0), (GConnectFlags
) 0)
4612 "output",g_signal_connect_data ((spinner), ("output"), (((GCallback) (
spin_button_hex_output_func))), (((void*)0)), ((void*)0), (GConnectFlags
) 0)
4613 G_CALLBACK (spin_button_hex_output_func),g_signal_connect_data ((spinner), ("output"), (((GCallback) (
spin_button_hex_output_func))), (((void*)0)), ((void*)0), (GConnectFlags
) 0)
4614 NULL)g_signal_connect_data ((spinner), ("output"), (((GCallback) (
spin_button_hex_output_func))), (((void*)0)), ((void*)0), (GConnectFlags
) 0)
;
4615 ctk_spin_button_set_wrap (CTK_SPIN_BUTTON (spinner)((((CtkSpinButton*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((spinner)), ((ctk_spin_button_get_type ()))))))
, TRUE(!(0)));
4616 ctk_entry_set_width_chars (CTK_ENTRY (spinner)((((CtkEntry*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((spinner)), ((ctk_entry_get_type ()))))))
, 4);
4617 ctk_box_pack_start (CTK_BOX (vbox2)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox2)), ((ctk_box_get_type ()))))))
, spinner, FALSE(0), TRUE(!(0)), 0);
4618
4619 frame = ctk_frame_new ("Accelerated");
4620 ctk_box_pack_start (CTK_BOX (main_vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((main_vbox)), ((ctk_box_get_type ()))))))
, frame, TRUE(!(0)), TRUE(!(0)), 0);
4621
4622 vbox = ctk_box_new (CTK_ORIENTATION_VERTICAL, 0);
4623 ctk_container_set_border_width (CTK_CONTAINER (vbox)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_container_get_type ()))))))
, 5);
4624 ctk_container_add (CTK_CONTAINER (frame)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((frame)), ((ctk_container_get_type ()))))))
, vbox);
4625
4626 hbox = ctk_box_new (CTK_ORIENTATION_HORIZONTAL, 0);
4627 ctk_box_pack_start (CTK_BOX (vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_box_get_type ()))))))
, hbox, FALSE(0), TRUE(!(0)), 5);
4628
4629 vbox2 = ctk_box_new (CTK_ORIENTATION_VERTICAL, 0);
4630 ctk_box_pack_start (CTK_BOX (hbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hbox)), ((ctk_box_get_type ()))))))
, vbox2, FALSE(0), FALSE(0), 5);
4631
4632 label = ctk_label_new ("Value :");
4633 ctk_widget_set_halign (label, CTK_ALIGN_START);
4634 ctk_widget_set_valign (label, CTK_ALIGN_CENTER);
4635 ctk_box_pack_start (CTK_BOX (vbox2)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox2)), ((ctk_box_get_type ()))))))
, label, FALSE(0), TRUE(!(0)), 0);
4636
4637 adjustment = ctk_adjustment_new (0.0, -10000.0, 10000.0,
4638 0.5, 100.0, 0.0);
4639 spinner1 = ctk_spin_button_new (adjustment, 1.0, 2);
4640 ctk_spin_button_set_wrap (CTK_SPIN_BUTTON (spinner1)((((CtkSpinButton*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((spinner1)), ((ctk_spin_button_get_type ()))))))
, TRUE(!(0)));
4641 ctk_box_pack_start (CTK_BOX (vbox2)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox2)), ((ctk_box_get_type ()))))))
, spinner1, FALSE(0), TRUE(!(0)), 0);
4642
4643 vbox2 = ctk_box_new (CTK_ORIENTATION_VERTICAL, 0);
4644 ctk_box_pack_start (CTK_BOX (hbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hbox)), ((ctk_box_get_type ()))))))
, vbox2, FALSE(0), FALSE(0), 5);
4645
4646 label = ctk_label_new ("Digits :");
4647 ctk_widget_set_halign (label, CTK_ALIGN_START);
4648 ctk_widget_set_valign (label, CTK_ALIGN_CENTER);
4649 ctk_box_pack_start (CTK_BOX (vbox2)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox2)), ((ctk_box_get_type ()))))))
, label, FALSE(0), TRUE(!(0)), 0);
4650
4651 adjustment = ctk_adjustment_new (2, 1, 15, 1, 1, 0);
4652 spinner2 = ctk_spin_button_new (adjustment, 0.0, 0);
4653 g_signal_connect (adjustment, "value_changed",g_signal_connect_data ((adjustment), ("value_changed"), (((GCallback
) (change_digits))), (spinner2), ((void*)0), (GConnectFlags) 0
)
4654 G_CALLBACK (change_digits),g_signal_connect_data ((adjustment), ("value_changed"), (((GCallback
) (change_digits))), (spinner2), ((void*)0), (GConnectFlags) 0
)
4655 spinner2)g_signal_connect_data ((adjustment), ("value_changed"), (((GCallback
) (change_digits))), (spinner2), ((void*)0), (GConnectFlags) 0
)
;
4656 ctk_box_pack_start (CTK_BOX (vbox2)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox2)), ((ctk_box_get_type ()))))))
, spinner2, FALSE(0), TRUE(!(0)), 0);
4657
4658 hbox = ctk_box_new (CTK_ORIENTATION_HORIZONTAL, 0);
4659 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), 5);
4660
4661 button = ctk_check_button_new_with_label ("Snap to 0.5-ticks");
4662 g_signal_connect (button, "clicked",g_signal_connect_data ((button), ("clicked"), (((GCallback) (
toggle_snap))), (spinner1), ((void*)0), (GConnectFlags) 0)
4663 G_CALLBACK (toggle_snap),g_signal_connect_data ((button), ("clicked"), (((GCallback) (
toggle_snap))), (spinner1), ((void*)0), (GConnectFlags) 0)
4664 spinner1)g_signal_connect_data ((button), ("clicked"), (((GCallback) (
toggle_snap))), (spinner1), ((void*)0), (GConnectFlags) 0)
;
4665 ctk_box_pack_start (CTK_BOX (vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_box_get_type ()))))))
, button, TRUE(!(0)), TRUE(!(0)), 0);
4666 ctk_toggle_button_set_active (CTK_TOGGLE_BUTTON (button)((((CtkToggleButton*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((button)), ((ctk_toggle_button_get_type ()))))))
, TRUE(!(0)));
4667
4668 button = ctk_check_button_new_with_label ("Numeric only input mode");
4669 g_signal_connect (button, "clicked",g_signal_connect_data ((button), ("clicked"), (((GCallback) (
toggle_numeric))), (spinner1), ((void*)0), (GConnectFlags) 0)
4670 G_CALLBACK (toggle_numeric),g_signal_connect_data ((button), ("clicked"), (((GCallback) (
toggle_numeric))), (spinner1), ((void*)0), (GConnectFlags) 0)
4671 spinner1)g_signal_connect_data ((button), ("clicked"), (((GCallback) (
toggle_numeric))), (spinner1), ((void*)0), (GConnectFlags) 0)
;
4672 ctk_box_pack_start (CTK_BOX (vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_box_get_type ()))))))
, button, TRUE(!(0)), TRUE(!(0)), 0);
4673 ctk_toggle_button_set_active (CTK_TOGGLE_BUTTON (button)((((CtkToggleButton*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((button)), ((ctk_toggle_button_get_type ()))))))
, TRUE(!(0)));
4674
4675 val_label = ctk_label_new ("");
4676
4677 hbox = ctk_box_new (CTK_ORIENTATION_HORIZONTAL, 0);
4678 ctk_box_pack_start (CTK_BOX (vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_box_get_type ()))))))
, hbox, FALSE(0), TRUE(!(0)), 5);
4679
4680 button = ctk_button_new_with_label ("Value as Int");
4681 g_object_set_data (G_OBJECT (button)((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((button)), (((GType) ((20) << (2))))))))
, "user_data", val_label);
4682 g_signal_connect (button, "clicked",g_signal_connect_data ((button), ("clicked"), (((GCallback) (
get_value))), (((gpointer) (glong) (1))), ((void*)0), (GConnectFlags
) 0)
4683 G_CALLBACK (get_value),g_signal_connect_data ((button), ("clicked"), (((GCallback) (
get_value))), (((gpointer) (glong) (1))), ((void*)0), (GConnectFlags
) 0)
4684 GINT_TO_POINTER (1))g_signal_connect_data ((button), ("clicked"), (((GCallback) (
get_value))), (((gpointer) (glong) (1))), ((void*)0), (GConnectFlags
) 0)
;
4685 ctk_box_pack_start (CTK_BOX (hbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hbox)), ((ctk_box_get_type ()))))))
, button, TRUE(!(0)), TRUE(!(0)), 5);
4686
4687 button = ctk_button_new_with_label ("Value as Float");
4688 g_object_set_data (G_OBJECT (button)((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((button)), (((GType) ((20) << (2))))))))
, "user_data", val_label);
4689 g_signal_connect (button, "clicked",g_signal_connect_data ((button), ("clicked"), (((GCallback) (
get_value))), (((gpointer) (glong) (2))), ((void*)0), (GConnectFlags
) 0)
4690 G_CALLBACK (get_value),g_signal_connect_data ((button), ("clicked"), (((GCallback) (
get_value))), (((gpointer) (glong) (2))), ((void*)0), (GConnectFlags
) 0)
4691 GINT_TO_POINTER (2))g_signal_connect_data ((button), ("clicked"), (((GCallback) (
get_value))), (((gpointer) (glong) (2))), ((void*)0), (GConnectFlags
) 0)
;
4692 ctk_box_pack_start (CTK_BOX (hbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hbox)), ((ctk_box_get_type ()))))))
, button, TRUE(!(0)), TRUE(!(0)), 5);
4693
4694 ctk_box_pack_start (CTK_BOX (vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_box_get_type ()))))))
, val_label, TRUE(!(0)), TRUE(!(0)), 0);
4695 ctk_label_set_text (CTK_LABEL (val_label)((((CtkLabel*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((val_label)), ((ctk_label_get_type ()))))))
, "0");
4696
4697 frame = ctk_frame_new ("Using Convenience Constructor");
4698 ctk_box_pack_start (CTK_BOX (main_vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((main_vbox)), ((ctk_box_get_type ()))))))
, frame, TRUE(!(0)), TRUE(!(0)), 0);
4699
4700 hbox = ctk_box_new (CTK_ORIENTATION_HORIZONTAL, 0);
4701 ctk_container_set_border_width (CTK_CONTAINER (hbox)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hbox)), ((ctk_container_get_type ()))))))
, 5);
4702 ctk_container_add (CTK_CONTAINER (frame)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((frame)), ((ctk_container_get_type ()))))))
, hbox);
4703
4704 val_label = ctk_label_new ("0.0");
4705
4706 spinner = ctk_spin_button_new_with_range (0.0, 10.0, 0.009);
4707 ctk_spin_button_set_value (CTK_SPIN_BUTTON (spinner)((((CtkSpinButton*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((spinner)), ((ctk_spin_button_get_type ()))))))
, 0.0);
4708 g_signal_connect (spinner, "value_changed",g_signal_connect_data ((spinner), ("value_changed"), (((GCallback
) (get_spin_value))), (val_label), ((void*)0), (GConnectFlags
) 0)
4709 G_CALLBACK (get_spin_value), val_label)g_signal_connect_data ((spinner), ("value_changed"), (((GCallback
) (get_spin_value))), (val_label), ((void*)0), (GConnectFlags
) 0)
;
4710 ctk_box_pack_start (CTK_BOX (hbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hbox)), ((ctk_box_get_type ()))))))
, spinner, TRUE(!(0)), TRUE(!(0)), 5);
4711 ctk_box_pack_start (CTK_BOX (hbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hbox)), ((ctk_box_get_type ()))))))
, val_label, TRUE(!(0)), TRUE(!(0)), 5);
4712
4713 hbox = ctk_box_new (CTK_ORIENTATION_HORIZONTAL, 0);
4714 ctk_box_pack_start (CTK_BOX (main_vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((main_vbox)), ((ctk_box_get_type ()))))))
, hbox, FALSE(0), TRUE(!(0)), 0);
4715
4716 button = ctk_button_new_with_label ("Close");
4717 g_signal_connect_swapped (button, "clicked",g_signal_connect_data ((button), ("clicked"), (((GCallback) (
ctk_widget_destroy))), (window), ((void*)0), G_CONNECT_SWAPPED
)
4718 G_CALLBACK (ctk_widget_destroy),g_signal_connect_data ((button), ("clicked"), (((GCallback) (
ctk_widget_destroy))), (window), ((void*)0), G_CONNECT_SWAPPED
)
4719 window)g_signal_connect_data ((button), ("clicked"), (((GCallback) (
ctk_widget_destroy))), (window), ((void*)0), G_CONNECT_SWAPPED
)
;
4720 ctk_box_pack_start (CTK_BOX (hbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hbox)), ((ctk_box_get_type ()))))))
, button, TRUE(!(0)), TRUE(!(0)), 5);
4721 }
4722
4723 if (!ctk_widget_get_visible (window))
4724 ctk_widget_show_all (window);
4725 else
4726 ctk_widget_destroy (window);
4727}
4728
4729
4730/*
4731 * Cursors
4732 */
4733
4734static gint
4735cursor_draw (CtkWidget *widget,
4736 cairo_t *cr,
4737 gpointer user_data)
4738{
4739 int width, height;
4740
4741 width = ctk_widget_get_allocated_width (widget);
4742 height = ctk_widget_get_allocated_height (widget);
4743
4744 cairo_set_fill_rule (cr, CAIRO_FILL_RULE_EVEN_ODD);
4745 cairo_rectangle (cr, 0, 0, width, height);
4746 cairo_rectangle (cr, width / 3, height / 3, width / 3, height / 3);
4747 cairo_clip (cr);
4748
4749 cairo_set_source_rgb (cr, 1, 1, 1);
4750 cairo_rectangle (cr, 0, 0, width, height / 2);
4751 cairo_fill (cr);
4752
4753 cairo_set_source_rgb (cr, 0, 0, 0);
4754 cairo_rectangle (cr, 0, height / 2, width, height / 2);
4755 cairo_fill (cr);
4756
4757 return TRUE(!(0));
4758}
4759
4760static const gchar *cursor_names[] = {
4761 "all-scroll",
4762 "arrow",
4763 "bd_double_arrow",
4764 "boat",
4765 "bottom_left_corner",
4766 "bottom_right_corner",
4767 "bottom_side",
4768 "bottom_tee",
4769 "box_spiral",
4770 "center_ptr",
4771 "circle",
4772 "clock",
4773 "coffee_mug",
4774 "copy",
4775 "cross",
4776 "crossed_circle",
4777 "cross_reverse",
4778 "crosshair",
4779 "diamond_cross",
4780 "dnd-ask",
4781 "dnd-copy",
4782 "dnd-link",
4783 "dnd-move",
4784 "dnd-none",
4785 "dot",
4786 "dotbox",
4787 "double_arrow",
4788 "draft_large",
4789 "draft_small",
4790 "draped_box",
4791 "exchange",
4792 "fd_double_arrow",
4793 "fleur",
4794 "gobbler",
4795 "gumby",
4796 "grab",
4797 "grabbing",
4798 "hand",
4799 "hand1",
4800 "hand2",
4801 "heart",
4802 "h_double_arrow",
4803 "help",
4804 "icon",
4805 "iron_cross",
4806 "left_ptr",
4807 "left_ptr_help",
4808 "left_ptr_watch",
4809 "left_side",
4810 "left_tee",
4811 "leftbutton",
4812 "link",
4813 "ll_angle",
4814 "lr_angle",
4815 "man",
4816 "middlebutton",
4817 "mouse",
4818 "move",
4819 "pencil",
4820 "pirate",
4821 "plus",
4822 "question_arrow",
4823 "right_ptr",
4824 "right_side",
4825 "right_tee",
4826 "rightbutton",
4827 "rtl_logo",
4828 "sailboat",
4829 "sb_down_arrow",
4830 "sb_h_double_arrow",
4831 "sb_left_arrow",
4832 "sb_right_arrow",
4833 "sb_up_arrow",
4834 "sb_v_double_arrow",
4835 "shuttle",
4836 "sizing",
4837 "spider",
4838 "spraycan",
4839 "star",
4840 "target",
4841 "tcross",
4842 "top_left_arrow",
4843 "top_left_corner",
4844 "top_right_corner",
4845 "top_side",
4846 "top_tee",
4847 "trek",
4848 "ul_angle",
4849 "umbrella",
4850 "ur_angle",
4851 "v_double_arrow",
4852 "vertical-text",
4853 "watch",
4854 "X_cursor",
4855 "xterm",
4856 "zoom-in",
4857 "zoom-out"
4858};
4859
4860static CtkTreeModel *
4861cursor_model (void)
4862{
4863 CtkListStore *store;
4864 gint i;
4865 store = ctk_list_store_new (1, G_TYPE_STRING((GType) ((16) << (2))));
4866
4867 for (i = 0; i < G_N_ELEMENTS (cursor_names)(sizeof (cursor_names) / sizeof ((cursor_names)[0])); i++)
4868 ctk_list_store_insert_with_values (store, NULL((void*)0), -1, 0, cursor_names[i], -1);
4869
4870 return (CtkTreeModel *)store;
4871}
4872
4873static gint
4874cursor_event (CtkWidget *widget,
4875 CdkEvent *event,
4876 CtkWidget *entry)
4877{
4878 const gchar *name;
4879 gint i;
4880 const gint n = G_N_ELEMENTS (cursor_names)(sizeof (cursor_names) / sizeof ((cursor_names)[0]));
4881
4882 name = (const gchar *)g_object_get_data (G_OBJECT (widget)((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((widget)), (((GType) ((20) << (2))))))))
, "name");
4883 if (name != NULL((void*)0))
4884 {
4885 for (i = 0; i < n; i++)
4886 if (strcmp (name, cursor_names[i]) == 0)
4887 break;
4888 }
4889 else
4890 i = 0;
4891
4892 if ((event->type == CDK_BUTTON_PRESS) &&
4893 ((event->button.button == CDK_BUTTON_PRIMARY(1)) ||
4894 (event->button.button == CDK_BUTTON_SECONDARY(3))))
4895 {
4896 if (event->button.button == CDK_BUTTON_PRIMARY(1))
4897 i = (i + 1) % n;
4898 else
4899 i = (i + n - 1) % n;
4900
4901 ctk_entry_set_text (CTK_ENTRY (entry)((((CtkEntry*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((entry)), ((ctk_entry_get_type ()))))))
, cursor_names[i]);
4902
4903 return TRUE(!(0));
4904 }
4905
4906 return FALSE(0);
4907}
4908
4909static void
4910set_cursor_from_name (CtkWidget *entry,
4911 CtkWidget *widget)
4912{
4913 const gchar *name;
4914 CdkCursor *cursor;
4915
4916 name = ctk_entry_get_text (CTK_ENTRY (entry)((((CtkEntry*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((entry)), ((ctk_entry_get_type ()))))))
);
4917 cursor = cdk_cursor_new_from_name (ctk_widget_get_display (widget), name);
4918
4919 if (cursor == NULL((void*)0))
4920 {
4921 name = NULL((void*)0);
4922 cursor = cdk_cursor_new_for_display (ctk_widget_get_display (widget), CDK_BLANK_CURSOR);
4923 }
4924
4925 cdk_window_set_cursor (ctk_widget_get_window (widget), cursor);
4926 g_object_unref (cursor);
4927
4928 g_object_set_data_full (G_OBJECT (widget)((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((widget)), (((GType) ((20) << (2))))))))
, "name", g_strdup (name)g_strdup_inline (name), g_free);
4929}
4930
4931#ifdef CDK_WINDOWING_X11
4932#include "x11/cdkx.h"
4933#endif
4934#ifdef CDK_WINDOWING_WAYLAND
4935#include "wayland/cdkwayland.h"
4936#endif
4937
4938static void
4939change_cursor_theme (CtkWidget *widget,
4940 gpointer data)
4941{
4942#if defined(CDK_WINDOWING_X11) || defined (CDK_WINDOWING_WAYLAND)
4943 const gchar *theme;
4944 gint size;
4945 GList *children;
4946 CdkDisplay *display;
4947
4948 children = ctk_container_get_children (CTK_CONTAINER (data)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((data)), ((ctk_container_get_type ()))))))
);
4949
4950 theme = ctk_entry_get_text (CTK_ENTRY (children->next->data)((((CtkEntry*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((children->next->data)), ((ctk_entry_get_type ())))
)))
);
4951 size = (gint) ctk_spin_button_get_value (CTK_SPIN_BUTTON (children->next->next->data)((((CtkSpinButton*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((children->next->next->data)), ((ctk_spin_button_get_type
()))))))
);
4952
4953 g_list_free (children);
4954
4955 display = ctk_widget_get_display (widget);
4956#ifdef CDK_WINDOWING_X11
4957 if (CDK_IS_X11_DISPLAY (display)(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (
(display)); GType __t = ((cdk_x11_display_get_type())); gboolean
__r; if (!__inst) __r = (0); else if (__inst->g_class &&
__inst->g_class->g_type == __t) __r = (!(0)); else __r
= g_type_check_instance_is_a (__inst, __t); __r; }))))
)
4958 cdk_x11_display_set_cursor_theme (display, theme, size);
4959#endif
4960#ifdef CDK_WINDOWING_WAYLAND
4961 if (CDK_IS_WAYLAND_DISPLAY (display)(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (
(display)); GType __t = ((cdk_wayland_display_get_type())); gboolean
__r; if (!__inst) __r = (0); else if (__inst->g_class &&
__inst->g_class->g_type == __t) __r = (!(0)); else __r
= g_type_check_instance_is_a (__inst, __t); __r; }))))
)
4962 cdk_wayland_display_set_cursor_theme (display, theme, size);
4963#endif
4964#endif
4965}
4966
4967
4968static void
4969create_cursors (CtkWidget *widget)
4970{
4971 static CtkWidget *window = NULL((void*)0);
4972 CtkWidget *frame;
4973 CtkWidget *hbox;
4974 CtkWidget *main_vbox;
4975 CtkWidget *vbox;
4976 CtkWidget *darea;
4977 CtkWidget *button;
4978 CtkWidget *label;
4979 CtkWidget *any;
4980 CtkWidget *entry;
4981 CtkWidget *size;
4982 CtkEntryCompletion *completion;
4983 CtkTreeModel *model;
4984 gboolean cursor_demo = FALSE(0);
4985
4986 if (!window)
4987 {
4988 window = ctk_window_new (CTK_WINDOW_TOPLEVEL);
4989 ctk_window_set_screen (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
,
4990 ctk_widget_get_screen (widget));
4991
4992 g_signal_connect (window, "destroy",g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
4993 G_CALLBACK (ctk_widget_destroyed),g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
4994 &window)g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
;
4995
4996 ctk_window_set_title (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
, "Cursors");
4997
4998 main_vbox = ctk_box_new (CTK_ORIENTATION_VERTICAL, 5);
4999 ctk_container_set_border_width (CTK_CONTAINER (main_vbox)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((main_vbox)), ((ctk_container_get_type ()))))))
, 0);
5000 ctk_container_add (CTK_CONTAINER (window)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_container_get_type ()))))))
, main_vbox);
5001
5002 vbox =
5003 g_object_new (CTK_TYPE_BOX(ctk_box_get_type ()),
5004 "orientation", CTK_ORIENTATION_VERTICAL,
5005 "CtkBox::homogeneous", FALSE(0),
5006 "CtkBox::spacing", 5,
5007 "CtkContainer::border_width", 10,
5008 "CtkWidget::parent", main_vbox,
5009 "CtkWidget::visible", TRUE(!(0)),
5010 NULL((void*)0));
5011
5012#ifdef CDK_WINDOWING_X11
5013 if (CDK_IS_X11_DISPLAY (ctk_widget_get_display (vbox))(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (
(ctk_widget_get_display (vbox))); GType __t = ((cdk_x11_display_get_type
())); gboolean __r; if (!__inst) __r = (0); else if (__inst->
g_class && __inst->g_class->g_type == __t) __r =
(!(0)); else __r = g_type_check_instance_is_a (__inst, __t);
__r; }))))
)
5014 cursor_demo = TRUE(!(0));
5015#endif
5016#ifdef CDK_WINDOWING_WAYLAND
5017 if (CDK_IS_WAYLAND_DISPLAY (ctk_widget_get_display (vbox))(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (
(ctk_widget_get_display (vbox))); GType __t = ((cdk_wayland_display_get_type
())); gboolean __r; if (!__inst) __r = (0); else if (__inst->
g_class && __inst->g_class->g_type == __t) __r =
(!(0)); else __r = g_type_check_instance_is_a (__inst, __t);
__r; }))))
)
5018 cursor_demo = TRUE(!(0));
5019#endif
5020
5021 if (cursor_demo)
5022 {
5023 guint w, h;
5024
5025 hbox = ctk_box_new (CTK_ORIENTATION_HORIZONTAL, 6);
5026 ctk_container_set_border_width (CTK_CONTAINER (hbox)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hbox)), ((ctk_container_get_type ()))))))
, 5);
5027 ctk_box_pack_start (CTK_BOX (vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_box_get_type ()))))))
, hbox, FALSE(0), TRUE(!(0)), 0);
5028
5029 label = ctk_label_new ("Cursor Theme:");
5030 ctk_widget_set_halign (label, CTK_ALIGN_START);
5031 ctk_widget_set_valign (label, CTK_ALIGN_CENTER);
5032 ctk_box_pack_start (CTK_BOX (hbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hbox)), ((ctk_box_get_type ()))))))
, label, FALSE(0), TRUE(!(0)), 0);
5033
5034 entry = ctk_entry_new ();
5035 ctk_entry_set_text (CTK_ENTRY (entry)((((CtkEntry*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((entry)), ((ctk_entry_get_type ()))))))
, "default");
5036 ctk_box_pack_start (CTK_BOX (hbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hbox)), ((ctk_box_get_type ()))))))
, entry, FALSE(0), TRUE(!(0)), 0);
5037
5038 cdk_display_get_maximal_cursor_size (ctk_widget_get_display (vbox), &w, &h);
5039 size = ctk_spin_button_new_with_range (1.0, MIN (w, h)(((w) < (h)) ? (w) : (h)), 1.0);
5040 ctk_spin_button_set_value (CTK_SPIN_BUTTON (size)((((CtkSpinButton*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((size)), ((ctk_spin_button_get_type ()))))))
, 24.0);
5041 ctk_box_pack_start (CTK_BOX (hbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hbox)), ((ctk_box_get_type ()))))))
, size, TRUE(!(0)), TRUE(!(0)), 0);
5042
5043 g_signal_connect (entry, "changed",g_signal_connect_data ((entry), ("changed"), (((GCallback) (change_cursor_theme
))), (hbox), ((void*)0), (GConnectFlags) 0)
5044 G_CALLBACK (change_cursor_theme), hbox)g_signal_connect_data ((entry), ("changed"), (((GCallback) (change_cursor_theme
))), (hbox), ((void*)0), (GConnectFlags) 0)
;
5045 g_signal_connect (size, "value-changed",g_signal_connect_data ((size), ("value-changed"), (((GCallback
) (change_cursor_theme))), (hbox), ((void*)0), (GConnectFlags
) 0)
5046 G_CALLBACK (change_cursor_theme), hbox)g_signal_connect_data ((size), ("value-changed"), (((GCallback
) (change_cursor_theme))), (hbox), ((void*)0), (GConnectFlags
) 0)
;
5047 }
5048
5049 hbox = ctk_box_new (CTK_ORIENTATION_HORIZONTAL, 6);
5050 ctk_container_set_border_width (CTK_CONTAINER (hbox)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hbox)), ((ctk_container_get_type ()))))))
, 5);
5051 ctk_box_pack_start (CTK_BOX (vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_box_get_type ()))))))
, hbox, FALSE(0), TRUE(!(0)), 0);
5052
5053 label = ctk_label_new ("Cursor Name:");
5054 ctk_widget_set_halign (label, CTK_ALIGN_START);
5055 ctk_widget_set_valign (label, CTK_ALIGN_CENTER);
5056 ctk_box_pack_start (CTK_BOX (hbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hbox)), ((ctk_box_get_type ()))))))
, label, FALSE(0), TRUE(!(0)), 0);
5057
5058 entry = ctk_entry_new ();
5059 completion = ctk_entry_completion_new ();
5060 model = cursor_model ();
5061 ctk_entry_completion_set_model (completion, model);
5062 ctk_entry_completion_set_text_column (completion, 0);
5063 ctk_entry_set_completion (CTK_ENTRY (entry)((((CtkEntry*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((entry)), ((ctk_entry_get_type ()))))))
, completion);
5064 g_object_unref (model);
5065 ctk_box_pack_start (CTK_BOX (hbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hbox)), ((ctk_box_get_type ()))))))
, entry, TRUE(!(0)), TRUE(!(0)), 0);
5066
5067 frame =
5068 g_object_new (ctk_frame_get_type (),
5069 "CtkFrame::label_xalign", 0.5,
5070 "CtkFrame::label", "Cursor Area",
5071 "CtkContainer::border_width", 10,
5072 "CtkWidget::parent", vbox,
5073 "CtkWidget::visible", TRUE(!(0)),
5074 NULL((void*)0));
5075
5076 darea = ctk_drawing_area_new ();
5077 ctk_widget_set_size_request (darea, 80, 80);
5078 ctk_container_add (CTK_CONTAINER (frame)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((frame)), ((ctk_container_get_type ()))))))
, darea);
5079 g_signal_connect (darea,g_signal_connect_data ((darea), ("draw"), (((GCallback) (cursor_draw
))), (((void*)0)), ((void*)0), (GConnectFlags) 0)
5080 "draw",g_signal_connect_data ((darea), ("draw"), (((GCallback) (cursor_draw
))), (((void*)0)), ((void*)0), (GConnectFlags) 0)
5081 G_CALLBACK (cursor_draw),g_signal_connect_data ((darea), ("draw"), (((GCallback) (cursor_draw
))), (((void*)0)), ((void*)0), (GConnectFlags) 0)
5082 NULL)g_signal_connect_data ((darea), ("draw"), (((GCallback) (cursor_draw
))), (((void*)0)), ((void*)0), (GConnectFlags) 0)
;
5083 ctk_widget_set_events (darea, CDK_EXPOSURE_MASK | CDK_BUTTON_PRESS_MASK);
5084 g_signal_connect (darea, "button_press_event",g_signal_connect_data ((darea), ("button_press_event"), (((GCallback
) (cursor_event))), (entry), ((void*)0), (GConnectFlags) 0)
5085 G_CALLBACK (cursor_event), entry)g_signal_connect_data ((darea), ("button_press_event"), (((GCallback
) (cursor_event))), (entry), ((void*)0), (GConnectFlags) 0)
;
5086 ctk_widget_show (darea);
5087
5088 g_signal_connect (entry, "changed",g_signal_connect_data ((entry), ("changed"), (((GCallback) (set_cursor_from_name
))), (darea), ((void*)0), (GConnectFlags) 0)
5089 G_CALLBACK (set_cursor_from_name), darea)g_signal_connect_data ((entry), ("changed"), (((GCallback) (set_cursor_from_name
))), (darea), ((void*)0), (GConnectFlags) 0)
;
5090
5091
5092 any = ctk_separator_new (CTK_ORIENTATION_HORIZONTAL);
5093 ctk_box_pack_start (CTK_BOX (main_vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((main_vbox)), ((ctk_box_get_type ()))))))
, any, FALSE(0), TRUE(!(0)), 0);
5094
5095 hbox = ctk_box_new (CTK_ORIENTATION_HORIZONTAL, 0);
5096 ctk_container_set_border_width (CTK_CONTAINER (hbox)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hbox)), ((ctk_container_get_type ()))))))
, 10);
5097 ctk_box_pack_start (CTK_BOX (main_vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((main_vbox)), ((ctk_box_get_type ()))))))
, hbox, FALSE(0), TRUE(!(0)), 0);
5098
5099 button = ctk_button_new_with_label ("Close");
5100 g_signal_connect_swapped (button, "clicked",g_signal_connect_data ((button), ("clicked"), (((GCallback) (
ctk_widget_destroy))), (window), ((void*)0), G_CONNECT_SWAPPED
)
5101 G_CALLBACK (ctk_widget_destroy),g_signal_connect_data ((button), ("clicked"), (((GCallback) (
ctk_widget_destroy))), (window), ((void*)0), G_CONNECT_SWAPPED
)
5102 window)g_signal_connect_data ((button), ("clicked"), (((GCallback) (
ctk_widget_destroy))), (window), ((void*)0), G_CONNECT_SWAPPED
)
;
5103 ctk_box_pack_start (CTK_BOX (hbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hbox)), ((ctk_box_get_type ()))))))
, button, TRUE(!(0)), TRUE(!(0)), 5);
5104
5105 ctk_widget_show_all (window);
5106
5107 ctk_entry_set_text (CTK_ENTRY (entry)((((CtkEntry*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((entry)), ((ctk_entry_get_type ()))))))
, "arrow");
5108 }
5109 else
5110 ctk_widget_destroy (window);
5111}
5112
5113/*
5114 * CtkColorSelection
5115 */
5116
5117void
5118create_color_selection (CtkWidget *widget)
5119{
5120 static CtkWidget *window = NULL((void*)0);
5121
5122 if (!window)
5123 {
5124 CtkWidget *picker;
5125 CtkWidget *hbox;
5126 CtkWidget *label;
5127
5128 window = ctk_window_new (CTK_WINDOW_TOPLEVEL);
5129 ctk_window_set_screen (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
,
5130 ctk_widget_get_screen (widget));
5131
5132 g_signal_connect (window, "destroy",g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
5133 G_CALLBACK (ctk_widget_destroyed),g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
5134 &window)g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
;
5135
5136 ctk_window_set_title (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
, "CtkColorButton");
5137 ctk_container_set_border_width (CTK_CONTAINER (window)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_container_get_type ()))))))
, 0);
5138
5139 hbox = ctk_box_new (CTK_ORIENTATION_HORIZONTAL, 8);
5140 ctk_container_set_border_width (CTK_CONTAINER (hbox)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hbox)), ((ctk_container_get_type ()))))))
, 8);
5141 ctk_container_add (CTK_CONTAINER (window)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_container_get_type ()))))))
, hbox);
5142
5143 label = ctk_label_new ("Pick a color");
5144 ctk_container_add (CTK_CONTAINER (hbox)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hbox)), ((ctk_container_get_type ()))))))
, label);
5145
5146 picker = ctk_color_button_new ();
5147 ctk_color_chooser_set_use_alpha (CTK_COLOR_CHOOSER (picker)((((CtkColorChooser*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((picker)), ((ctk_color_chooser_get_type ()))))))
, TRUE(!(0)));
5148 ctk_container_add (CTK_CONTAINER (hbox)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hbox)), ((ctk_container_get_type ()))))))
, picker);
5149 }
5150
5151 if (!ctk_widget_get_visible (window))
5152 ctk_widget_show_all (window);
5153 else
5154 ctk_widget_destroy (window);
5155}
5156
5157void
5158flipping_toggled_cb (CtkWidget *widget, gpointer data)
5159{
5160 int state = ctk_toggle_button_get_active (CTK_TOGGLE_BUTTON (widget)((((CtkToggleButton*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((widget)), ((ctk_toggle_button_get_type ()))))))
);
5161 int new_direction = state ? CTK_TEXT_DIR_RTL : CTK_TEXT_DIR_LTR;
5162
5163 ctk_widget_set_default_direction (new_direction);
5164}
5165
5166static void
5167orientable_toggle_orientation (CtkOrientable *orientable)
5168{
5169 CtkOrientation orientation;
5170
5171 orientation = ctk_orientable_get_orientation (orientable);
5172 ctk_orientable_set_orientation (orientable,
5173 orientation == CTK_ORIENTATION_HORIZONTAL ?
5174 CTK_ORIENTATION_VERTICAL :
5175 CTK_ORIENTATION_HORIZONTAL);
5176
5177 if (CTK_IS_CONTAINER (orientable)(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (
(orientable)); GType __t = ((ctk_container_get_type ())); gboolean
__r; if (!__inst) __r = (0); else if (__inst->g_class &&
__inst->g_class->g_type == __t) __r = (!(0)); else __r
= g_type_check_instance_is_a (__inst, __t); __r; }))))
)
5178 {
5179 GList *children;
5180 GList *child;
5181
5182 children = ctk_container_get_children (CTK_CONTAINER (orientable)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((orientable)), ((ctk_container_get_type ()))))))
);
5183
5184 for (child = children; child; child = child->next)
5185 {
5186 if (CTK_IS_ORIENTABLE (child->data)(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (
(child->data)); GType __t = ((ctk_orientable_get_type ()))
; gboolean __r; if (!__inst) __r = (0); else if (__inst->g_class
&& __inst->g_class->g_type == __t) __r = (!(0)
); else __r = g_type_check_instance_is_a (__inst, __t); __r; }
))))
)
5187 orientable_toggle_orientation (child->data);
5188 }
5189
5190 g_list_free (children);
5191 }
5192}
5193
5194void
5195flipping_orientation_toggled_cb (CtkWidget *widget, gpointer data)
5196{
5197 CtkWidget *content_area;
5198 CtkWidget *toplevel;
5199
5200 toplevel = ctk_widget_get_toplevel (widget);
5201 content_area = ctk_dialog_get_content_area (CTK_DIALOG (toplevel)((((CtkDialog*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((toplevel)), ((ctk_dialog_get_type ()))))))
);
5202 orientable_toggle_orientation (CTK_ORIENTABLE (content_area)((((CtkOrientable*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((content_area)), ((ctk_orientable_get_type ()))))))
);
5203}
5204
5205static void
5206set_direction_recurse (CtkWidget *widget,
5207 gpointer data)
5208{
5209 CtkTextDirection *dir = data;
5210
5211 ctk_widget_set_direction (widget, *dir);
5212 if (CTK_IS_CONTAINER (widget)(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (
(widget)); GType __t = ((ctk_container_get_type ())); gboolean
__r; if (!__inst) __r = (0); else if (__inst->g_class &&
__inst->g_class->g_type == __t) __r = (!(0)); else __r
= g_type_check_instance_is_a (__inst, __t); __r; }))))
)
5213 ctk_container_foreach (CTK_CONTAINER (widget)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((widget)), ((ctk_container_get_type ()))))))
,
5214 set_direction_recurse,
5215 data);
5216}
5217
5218static CtkWidget *
5219create_forward_back (const char *title,
5220 CtkTextDirection text_dir)
5221{
5222 CtkWidget *frame = ctk_frame_new (title);
5223 CtkWidget *bbox = ctk_button_box_new (CTK_ORIENTATION_HORIZONTAL);
5224 CtkWidget *back_button = ctk_button_new_with_label ("Back");
5225 CtkWidget *forward_button = ctk_button_new_with_label ("Forward");
5226
5227 ctk_container_set_border_width (CTK_CONTAINER (bbox)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((bbox)), ((ctk_container_get_type ()))))))
, 5);
5228
5229 ctk_container_add (CTK_CONTAINER (frame)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((frame)), ((ctk_container_get_type ()))))))
, bbox);
5230 ctk_container_add (CTK_CONTAINER (bbox)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((bbox)), ((ctk_container_get_type ()))))))
, back_button);
5231 ctk_container_add (CTK_CONTAINER (bbox)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((bbox)), ((ctk_container_get_type ()))))))
, forward_button);
5232
5233 set_direction_recurse (frame, &text_dir);
5234
5235 return frame;
5236}
5237
5238void
5239create_flipping (CtkWidget *widget)
5240{
5241 static CtkWidget *window = NULL((void*)0);
5242
5243 if (!window)
5244 {
5245 CtkWidget *check_button;
5246 CtkWidget *content_area;
5247
5248 window = ctk_dialog_new ();
5249
5250 ctk_window_set_screen (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
,
5251 ctk_widget_get_screen (widget));
5252
5253 g_signal_connect (window, "destroy",g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
5254 G_CALLBACK (ctk_widget_destroyed),g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
5255 &window)g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
;
5256
5257 content_area = ctk_dialog_get_content_area (CTK_DIALOG (window)((((CtkDialog*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_dialog_get_type ()))))))
);
5258
5259 ctk_window_set_title (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
, "Bidirectional Flipping");
5260
5261 check_button = ctk_check_button_new_with_label ("Right-to-left global direction");
5262 ctk_container_set_border_width (CTK_CONTAINER (check_button)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((check_button)), ((ctk_container_get_type ()))))))
, 10);
5263 ctk_box_pack_start (CTK_BOX (content_area)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((content_area)), ((ctk_box_get_type ()))))))
, check_button, TRUE(!(0)), TRUE(!(0)), 0);
5264
5265 if (ctk_widget_get_default_direction () == CTK_TEXT_DIR_RTL)
5266 ctk_toggle_button_set_active (CTK_TOGGLE_BUTTON (check_button)((((CtkToggleButton*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((check_button)), ((ctk_toggle_button_get_type ()))))))
, TRUE(!(0)));
5267
5268 g_signal_connect (check_button, "toggled",g_signal_connect_data ((check_button), ("toggled"), (((GCallback
) (flipping_toggled_cb))), (((void*)0)), ((void*)0), (GConnectFlags
) 0)
5269 G_CALLBACK (flipping_toggled_cb), NULL)g_signal_connect_data ((check_button), ("toggled"), (((GCallback
) (flipping_toggled_cb))), (((void*)0)), ((void*)0), (GConnectFlags
) 0)
;
5270
5271 check_button = ctk_check_button_new_with_label ("Toggle orientation of all boxes");
5272 ctk_container_set_border_width (CTK_CONTAINER (check_button)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((check_button)), ((ctk_container_get_type ()))))))
, 10);
5273 ctk_box_pack_start (CTK_BOX (content_area)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((content_area)), ((ctk_box_get_type ()))))))
, check_button, TRUE(!(0)), TRUE(!(0)), 0);
5274
5275 g_signal_connect (check_button, "toggled",g_signal_connect_data ((check_button), ("toggled"), (((GCallback
) (flipping_orientation_toggled_cb))), (((void*)0)), ((void*)
0), (GConnectFlags) 0)
5276 G_CALLBACK (flipping_orientation_toggled_cb), NULL)g_signal_connect_data ((check_button), ("toggled"), (((GCallback
) (flipping_orientation_toggled_cb))), (((void*)0)), ((void*)
0), (GConnectFlags) 0)
;
5277
5278 ctk_box_pack_start (CTK_BOX (content_area)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((content_area)), ((ctk_box_get_type ()))))))
,
5279 create_forward_back ("Default", CTK_TEXT_DIR_NONE),
5280 TRUE(!(0)), TRUE(!(0)), 0);
5281
5282 ctk_box_pack_start (CTK_BOX (content_area)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((content_area)), ((ctk_box_get_type ()))))))
,
5283 create_forward_back ("Left-to-Right", CTK_TEXT_DIR_LTR),
5284 TRUE(!(0)), TRUE(!(0)), 0);
5285
5286 ctk_box_pack_start (CTK_BOX (content_area)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((content_area)), ((ctk_box_get_type ()))))))
,
5287 create_forward_back ("Right-to-Left", CTK_TEXT_DIR_RTL),
5288 TRUE(!(0)), TRUE(!(0)), 0);
5289
5290 ctk_dialog_add_button (CTK_DIALOG (window)((((CtkDialog*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_dialog_get_type ()))))))
, "Close", CTK_RESPONSE_CLOSE);
5291 g_signal_connect (window, "response", G_CALLBACK (ctk_widget_destroy), NULL)g_signal_connect_data ((window), ("response"), (((GCallback) (
ctk_widget_destroy))), (((void*)0)), ((void*)0), (GConnectFlags
) 0)
;
5292 }
5293
5294 if (!ctk_widget_get_visible (window))
5295 ctk_widget_show_all (window);
5296 else
5297 ctk_widget_destroy (window);
5298}
5299
5300/*
5301 * Focus test
5302 */
5303
5304static CtkWidget*
5305make_focus_table (GList **list)
5306{
5307 CtkWidget *grid;
5308 gint i, j;
5309
5310 grid = ctk_grid_new ();
5311
5312 ctk_grid_set_row_spacing (CTK_GRID (grid)((((CtkGrid*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((grid)), ((ctk_grid_get_type ()))))))
, 10);
5313 ctk_grid_set_column_spacing (CTK_GRID (grid)((((CtkGrid*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((grid)), ((ctk_grid_get_type ()))))))
, 10);
5314
5315 for (i = 0; i < 5; i++)
5316 {
5317 for (j = 0; j < 5; j++)
5318 {
5319 CtkWidget *widget;
5320
5321 if ((i + j) % 2)
5322 widget = ctk_entry_new ();
5323 else
5324 widget = ctk_button_new_with_label ("Foo");
5325
5326 *list = g_list_prepend (*list, widget);
5327
5328 ctk_widget_set_hexpand (widget, TRUE(!(0)));
5329 ctk_widget_set_vexpand (widget, TRUE(!(0)));
5330
5331 ctk_grid_attach (CTK_GRID (grid)((((CtkGrid*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((grid)), ((ctk_grid_get_type ()))))))
, widget, i, j, 1, 1);
5332 }
5333 }
5334
5335 *list = g_list_reverse (*list);
5336
5337 return grid;
5338}
5339
5340static void
5341create_focus (CtkWidget *widget)
5342{
5343 static CtkWidget *window = NULL((void*)0);
5344
5345 if (!window)
5346 {
5347 CtkWidget *content_area;
5348 CtkWidget *table;
5349 CtkWidget *frame;
5350 GList *list = NULL((void*)0);
5351
5352 window = ctk_dialog_new_with_buttons ("Keyboard focus navigation",
5353 NULL((void*)0), 0,
5354 "_Close",
5355 CTK_RESPONSE_NONE,
5356 NULL((void*)0));
5357
5358 ctk_window_set_screen (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
,
5359 ctk_widget_get_screen (widget));
5360
5361 g_signal_connect (window, "destroy",g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
5362 G_CALLBACK (ctk_widget_destroyed),g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
5363 &window)g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
;
5364
5365 g_signal_connect (window, "response",g_signal_connect_data ((window), ("response"), (((GCallback) (
ctk_widget_destroy))), (((void*)0)), ((void*)0), (GConnectFlags
) 0)
5366 G_CALLBACK (ctk_widget_destroy),g_signal_connect_data ((window), ("response"), (((GCallback) (
ctk_widget_destroy))), (((void*)0)), ((void*)0), (GConnectFlags
) 0)
5367 NULL)g_signal_connect_data ((window), ("response"), (((GCallback) (
ctk_widget_destroy))), (((void*)0)), ((void*)0), (GConnectFlags
) 0)
;
5368
5369 content_area = ctk_dialog_get_content_area (CTK_DIALOG (window)((((CtkDialog*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_dialog_get_type ()))))))
);
5370
5371 ctk_window_set_title (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
, "Keyboard Focus Navigation");
5372
5373 frame = ctk_frame_new ("Weird tab focus chain");
5374
5375 ctk_box_pack_start (CTK_BOX (content_area)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((content_area)), ((ctk_box_get_type ()))))))
, frame, TRUE(!(0)), TRUE(!(0)), 0);
5376
5377 table = make_focus_table (&list);
5378
5379 ctk_container_add (CTK_CONTAINER (frame)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((frame)), ((ctk_container_get_type ()))))))
, table);
5380
5381 ctk_container_set_focus_chain (CTK_CONTAINER (table)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((table)), ((ctk_container_get_type ()))))))
,
5382 list);
5383
5384 g_list_free (list);
5385
5386 frame = ctk_frame_new ("Default tab focus chain");
5387
5388 ctk_box_pack_start (CTK_BOX (content_area)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((content_area)), ((ctk_box_get_type ()))))))
, frame, TRUE(!(0)), TRUE(!(0)), 0);
5389
5390 list = NULL((void*)0);
5391 table = make_focus_table (&list);
5392
5393 g_list_free (list);
5394
5395 ctk_container_add (CTK_CONTAINER (frame)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((frame)), ((ctk_container_get_type ()))))))
, table);
5396 }
5397
5398 if (!ctk_widget_get_visible (window))
5399 ctk_widget_show_all (window);
5400 else
5401 ctk_widget_destroy (window);
5402}
5403
5404/*
5405 * CtkFontSelection
5406 */
5407
5408void
5409create_font_selection (CtkWidget *widget)
5410{
5411 static CtkWidget *window = NULL((void*)0);
5412
5413 if (!window)
5414 {
5415 CtkWidget *picker;
5416 CtkWidget *hbox;
5417 CtkWidget *label;
5418
5419 window = ctk_window_new (CTK_WINDOW_TOPLEVEL);
5420 ctk_window_set_screen (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
,
5421 ctk_widget_get_screen (widget));
5422
5423 g_signal_connect (window, "destroy",g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
5424 G_CALLBACK (ctk_widget_destroyed),g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
5425 &window)g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
;
5426
5427 ctk_window_set_title (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
, "CtkFontButton");
5428 ctk_container_set_border_width (CTK_CONTAINER (window)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_container_get_type ()))))))
, 0);
5429
5430 hbox = ctk_box_new (CTK_ORIENTATION_HORIZONTAL, 8);
5431 ctk_container_set_border_width (CTK_CONTAINER (hbox)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hbox)), ((ctk_container_get_type ()))))))
, 8);
5432 ctk_container_add (CTK_CONTAINER (window)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_container_get_type ()))))))
, hbox);
5433
5434 label = ctk_label_new ("Pick a font");
5435 ctk_container_add (CTK_CONTAINER (hbox)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hbox)), ((ctk_container_get_type ()))))))
, label);
5436
5437 picker = ctk_font_button_new ();
5438 ctk_font_button_set_use_font (CTK_FONT_BUTTON (picker)((((CtkFontButton*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((picker)), ((ctk_font_button_get_type ()))))))
, TRUE(!(0)));
5439 ctk_container_add (CTK_CONTAINER (hbox)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hbox)), ((ctk_container_get_type ()))))))
, picker);
5440 }
5441
5442 if (!ctk_widget_get_visible (window))
5443 ctk_widget_show_all (window);
5444 else
5445 ctk_widget_destroy (window);
5446}
5447
5448/*
5449 * CtkDialog
5450 */
5451
5452static CtkWidget *dialog_window = NULL((void*)0);
5453
5454static void
5455dialog_response_cb (CtkWidget *widget, gint response, gpointer unused)
5456{
5457 if (response == CTK_RESPONSE_APPLY)
5458 {
5459 GList *l, *children;
5460 CtkWidget *content_area;
5461
5462 content_area = ctk_dialog_get_content_area (CTK_DIALOG (dialog_window)((((CtkDialog*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((dialog_window)), ((ctk_dialog_get_type ()))))))
);
5463 children = ctk_container_get_children (CTK_CONTAINER (content_area)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((content_area)), ((ctk_container_get_type ()))))))
);
5464
5465 for (l = children; l; l = l->next)
5466 {
5467 if (CTK_IS_LABEL (l->data)(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (
(l->data)); GType __t = ((ctk_label_get_type ())); gboolean
__r; if (!__inst) __r = (0); else if (__inst->g_class &&
__inst->g_class->g_type == __t) __r = (!(0)); else __r
= g_type_check_instance_is_a (__inst, __t); __r; }))))
)
5468 {
5469 ctk_container_remove (CTK_CONTAINER (content_area)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((content_area)), ((ctk_container_get_type ()))))))
, l->data);
5470 break;
5471 }
5472 }
5473
5474 /* no label removed, so add one */
5475 if (l == NULL((void*)0))
5476 {
5477 CtkWidget *label;
5478
5479 label = ctk_label_new ("Dialog Test");
5480 g_object_set (label, "margin", 10, NULL((void*)0));
5481 ctk_box_pack_start (CTK_BOX (content_area)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((content_area)), ((ctk_box_get_type ()))))))
,
5482 label, TRUE(!(0)), TRUE(!(0)), 0);
5483 ctk_widget_show (label);
5484 }
5485
5486 g_list_free (children);
5487 }
5488}
5489
5490static void
5491create_dialog (CtkWidget *widget)
5492{
5493 if (!dialog_window)
5494 {
5495 /* This is a terrible example; it's much simpler to create
5496 * dialogs than this. Don't use testctk for example code,
5497 * use ctk-demo ;-)
5498 */
5499
5500 dialog_window = ctk_dialog_new ();
5501 ctk_window_set_screen (CTK_WINDOW (dialog_window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((dialog_window)), ((ctk_window_get_type ()))))))
,
5502 ctk_widget_get_screen (widget));
5503
5504 g_signal_connect (dialog_window, "destroy",g_signal_connect_data ((dialog_window), ("destroy"), (((GCallback
) (ctk_widget_destroyed))), (&dialog_window), ((void*)0),
(GConnectFlags) 0)
5505 G_CALLBACK (ctk_widget_destroyed),g_signal_connect_data ((dialog_window), ("destroy"), (((GCallback
) (ctk_widget_destroyed))), (&dialog_window), ((void*)0),
(GConnectFlags) 0)
5506 &dialog_window)g_signal_connect_data ((dialog_window), ("destroy"), (((GCallback
) (ctk_widget_destroyed))), (&dialog_window), ((void*)0),
(GConnectFlags) 0)
;
5507
5508
5509 ctk_window_set_title (CTK_WINDOW (dialog_window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((dialog_window)), ((ctk_window_get_type ()))))))
, "CtkDialog");
5510 ctk_container_set_border_width (CTK_CONTAINER (dialog_window)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((dialog_window)), ((ctk_container_get_type ()))))))
, 0);
5511
5512 ctk_dialog_add_button (CTK_DIALOG (dialog_window)((((CtkDialog*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((dialog_window)), ((ctk_dialog_get_type ()))))))
,
5513 "OK",
5514 CTK_RESPONSE_OK);
5515
5516 ctk_dialog_add_button (CTK_DIALOG (dialog_window)((((CtkDialog*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((dialog_window)), ((ctk_dialog_get_type ()))))))
,
5517 "Toggle",
5518 CTK_RESPONSE_APPLY);
5519
5520 g_signal_connect (dialog_window, "response",g_signal_connect_data ((dialog_window), ("response"), (((GCallback
) (dialog_response_cb))), (((void*)0)), ((void*)0), (GConnectFlags
) 0)
5521 G_CALLBACK (dialog_response_cb),g_signal_connect_data ((dialog_window), ("response"), (((GCallback
) (dialog_response_cb))), (((void*)0)), ((void*)0), (GConnectFlags
) 0)
5522 NULL)g_signal_connect_data ((dialog_window), ("response"), (((GCallback
) (dialog_response_cb))), (((void*)0)), ((void*)0), (GConnectFlags
) 0)
;
5523 }
5524
5525 if (!ctk_widget_get_visible (dialog_window))
5526 ctk_widget_show (dialog_window);
5527 else
5528 ctk_widget_destroy (dialog_window);
5529}
5530
5531/* Display & Screen test
5532 */
5533
5534typedef struct
5535{
5536 CtkWidget *combo;
5537 CtkWidget *entry;
5538 CtkWidget *toplevel;
5539 CtkWidget *dialog_window;
5540} ScreenDisplaySelection;
5541
5542static void
5543screen_display_check (CtkWidget *widget, ScreenDisplaySelection *data)
5544{
5545 const gchar *display_name;
5546 CdkDisplay *display;
5547 CdkScreen *new_screen = NULL((void*)0);
5548 CdkScreen *current_screen = ctk_widget_get_screen (widget);
5549
5550 display_name = ctk_entry_get_text (CTK_ENTRY (data->entry)((((CtkEntry*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((data->entry)), ((ctk_entry_get_type ()))))))
);
5551 display = cdk_display_open (display_name);
5552
5553 if (!display)
5554 {
5555 CtkWidget *dialog;
5556
5557 dialog = ctk_message_dialog_new (CTK_WINDOW (ctk_widget_get_toplevel (widget))((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((ctk_widget_get_toplevel (widget))), ((ctk_window_get_type
()))))))
,
5558 CTK_DIALOG_DESTROY_WITH_PARENT,
5559 CTK_MESSAGE_ERROR,
5560 CTK_BUTTONS_OK,
5561 "The display :\n%s\ncannot be opened",
5562 display_name);
5563 ctk_window_set_screen (CTK_WINDOW (dialog)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((dialog)), ((ctk_window_get_type ()))))))
, current_screen);
5564 ctk_widget_show (dialog);
5565 g_signal_connect (dialog, "response",g_signal_connect_data ((dialog), ("response"), (((GCallback) (
ctk_widget_destroy))), (((void*)0)), ((void*)0), (GConnectFlags
) 0)
5566 G_CALLBACK (ctk_widget_destroy),g_signal_connect_data ((dialog), ("response"), (((GCallback) (
ctk_widget_destroy))), (((void*)0)), ((void*)0), (GConnectFlags
) 0)
5567 NULL)g_signal_connect_data ((dialog), ("response"), (((GCallback) (
ctk_widget_destroy))), (((void*)0)), ((void*)0), (GConnectFlags
) 0)
;
5568 }
5569 else
5570 {
5571 CtkTreeModel *model = ctk_combo_box_get_model (CTK_COMBO_BOX (data->combo)((((CtkComboBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((data->combo)), ((ctk_combo_box_get_type ()))))))
);
5572 gint i = 0;
5573 CtkTreeIter iter;
5574 gboolean found = FALSE(0);
5575 while (ctk_tree_model_iter_nth_child (model, &iter, NULL((void*)0), i++))
5576 {
5577 gchar *name;
5578 ctk_tree_model_get (model, &iter, 0, &name, -1);
5579 found = !g_ascii_strcasecmp (display_name, name);
5580 g_free (name);
5581
5582 if (found)
5583 break;
5584 }
5585 if (!found)
5586 ctk_combo_box_text_append_text (CTK_COMBO_BOX_TEXT (data->combo)((((CtkComboBoxText*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((data->combo)), ((ctk_combo_box_text_get_type ()))))))
, display_name);
5587 new_screen = cdk_display_get_default_screen (display);
5588
5589 ctk_window_set_screen (CTK_WINDOW (data->toplevel)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((data->toplevel)), ((ctk_window_get_type ()))))))
, new_screen);
5590 ctk_widget_destroy (data->dialog_window);
5591 }
5592}
5593
5594void
5595screen_display_destroy_diag (CtkWidget *widget, CtkWidget *data)
5596{
5597 ctk_widget_destroy (data);
5598}
5599
5600void
5601create_display_screen (CtkWidget *widget)
5602{
5603 CtkWidget *grid, *frame, *window, *combo_dpy, *vbox;
5604 CtkWidget *label_dpy, *applyb, *cancelb;
5605 CtkWidget *bbox;
5606 ScreenDisplaySelection *scr_dpy_data;
5607 CdkScreen *screen = ctk_widget_get_screen (widget);
5608
5609 window = g_object_new (ctk_window_get_type (),
5610 "screen", screen,
5611 "type", CTK_WINDOW_TOPLEVEL,
5612 "title", "Screen or Display selection",
5613 "border_width",
5614 10, NULL((void*)0));
5615 g_signal_connect (window, "destroy",g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroy))), (((void*)0)), ((void*)0), (GConnectFlags
) 0)
5616 G_CALLBACK (ctk_widget_destroy), NULL)g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroy))), (((void*)0)), ((void*)0), (GConnectFlags
) 0)
;
5617
5618 vbox = ctk_box_new (CTK_ORIENTATION_VERTICAL, 3);
5619 ctk_container_add (CTK_CONTAINER (window)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_container_get_type ()))))))
, vbox);
5620
5621 frame = ctk_frame_new ("Select display");
5622 ctk_container_add (CTK_CONTAINER (vbox)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_container_get_type ()))))))
, frame);
5623
5624 grid = ctk_grid_new ();
5625 ctk_grid_set_row_spacing (CTK_GRID (grid)((((CtkGrid*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((grid)), ((ctk_grid_get_type ()))))))
, 3);
5626 ctk_grid_set_column_spacing (CTK_GRID (grid)((((CtkGrid*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((grid)), ((ctk_grid_get_type ()))))))
, 3);
5627
5628 ctk_container_add (CTK_CONTAINER (frame)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((frame)), ((ctk_container_get_type ()))))))
, grid);
5629
5630 label_dpy = ctk_label_new ("move to another X display");
5631 combo_dpy = ctk_combo_box_text_new_with_entry ();
5632 ctk_widget_set_hexpand (combo_dpy, TRUE(!(0)));
5633 ctk_combo_box_text_append_text (CTK_COMBO_BOX_TEXT (combo_dpy)((((CtkComboBoxText*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((combo_dpy)), ((ctk_combo_box_text_get_type ()))))))
, "diabolo:0.0");
5634 ctk_entry_set_text (CTK_ENTRY (ctk_bin_get_child (CTK_BIN (combo_dpy)))((((CtkEntry*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((ctk_bin_get_child (((((CtkBin*) (void *) g_type_check_instance_cast
((GTypeInstance*) ((combo_dpy)), ((ctk_bin_get_type ()))))))
))), ((ctk_entry_get_type ()))))))
,
5635 "<hostname>:<X Server Num>.<Screen Num>");
5636
5637 ctk_grid_attach (CTK_GRID (grid)((((CtkGrid*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((grid)), ((ctk_grid_get_type ()))))))
, label_dpy, 0, 0, 1, 1);
5638 ctk_grid_attach (CTK_GRID (grid)((((CtkGrid*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((grid)), ((ctk_grid_get_type ()))))))
, combo_dpy, 0, 1, 1, 1);
5639
5640 bbox = ctk_button_box_new (CTK_ORIENTATION_HORIZONTAL);
5641 applyb = ctk_button_new_with_label ("_Apply");
5642 cancelb = ctk_button_new_with_label ("_Cancel");
5643
5644 ctk_container_add (CTK_CONTAINER (vbox)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_container_get_type ()))))))
, bbox);
5645
5646 ctk_container_add (CTK_CONTAINER (bbox)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((bbox)), ((ctk_container_get_type ()))))))
, applyb);
5647 ctk_container_add (CTK_CONTAINER (bbox)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((bbox)), ((ctk_container_get_type ()))))))
, cancelb);
5648
5649 scr_dpy_data = g_new0 (ScreenDisplaySelection, 1)((ScreenDisplaySelection *) g_malloc0_n ((1), sizeof (ScreenDisplaySelection
)))
;
5650
5651 scr_dpy_data->entry = ctk_bin_get_child (CTK_BIN (combo_dpy)((((CtkBin*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((combo_dpy)), ((ctk_bin_get_type ()))))))
);
5652 scr_dpy_data->toplevel = ctk_widget_get_toplevel (widget);
5653 scr_dpy_data->dialog_window = window;
5654
5655 g_signal_connect (cancelb, "clicked",g_signal_connect_data ((cancelb), ("clicked"), (((GCallback) (
screen_display_destroy_diag))), (window), ((void*)0), (GConnectFlags
) 0)
5656 G_CALLBACK (screen_display_destroy_diag), window)g_signal_connect_data ((cancelb), ("clicked"), (((GCallback) (
screen_display_destroy_diag))), (window), ((void*)0), (GConnectFlags
) 0)
;
5657 g_signal_connect (applyb, "clicked",g_signal_connect_data ((applyb), ("clicked"), (((GCallback) (
screen_display_check))), (scr_dpy_data), ((void*)0), (GConnectFlags
) 0)
5658 G_CALLBACK (screen_display_check), scr_dpy_data)g_signal_connect_data ((applyb), ("clicked"), (((GCallback) (
screen_display_check))), (scr_dpy_data), ((void*)0), (GConnectFlags
) 0)
;
5659 ctk_widget_show_all (window);
5660}
5661
5662/* Event Watcher
5663 */
5664static gulong event_watcher_enter_id = 0;
5665static gulong event_watcher_leave_id = 0;
5666
5667static gboolean
5668event_watcher (GSignalInvocationHint *ihint,
5669 guint n_param_values,
5670 const GValue *param_values,
5671 gpointer data)
5672{
5673 g_print ("Watch: \"%s\" emitted for %s\n",
5674 g_signal_name (ihint->signal_id),
5675 G_OBJECT_TYPE_NAME (g_value_get_object (param_values + 0))(g_type_name ((((((GTypeClass*) (((GTypeInstance*) (g_value_get_object
(param_values + 0)))->g_class))->g_type)))))
);
5676
5677 return TRUE(!(0));
5678}
5679
5680static void
5681event_watcher_down (void)
5682{
5683 if (event_watcher_enter_id)
5684 {
5685 guint signal_id;
5686
5687 signal_id = g_signal_lookup ("enter_notify_event", CTK_TYPE_WIDGET(ctk_widget_get_type ()));
5688 g_signal_remove_emission_hook (signal_id, event_watcher_enter_id);
5689 event_watcher_enter_id = 0;
5690 signal_id = g_signal_lookup ("leave_notify_event", CTK_TYPE_WIDGET(ctk_widget_get_type ()));
5691 g_signal_remove_emission_hook (signal_id, event_watcher_leave_id);
5692 event_watcher_leave_id = 0;
5693 }
5694}
5695
5696static void
5697event_watcher_toggle (void)
5698{
5699 if (event_watcher_enter_id)
5700 event_watcher_down ();
5701 else
5702 {
5703 guint signal_id;
5704
5705 signal_id = g_signal_lookup ("enter_notify_event", CTK_TYPE_WIDGET(ctk_widget_get_type ()));
5706 event_watcher_enter_id = g_signal_add_emission_hook (signal_id, 0, event_watcher, NULL((void*)0), NULL((void*)0));
5707 signal_id = g_signal_lookup ("leave_notify_event", CTK_TYPE_WIDGET(ctk_widget_get_type ()));
5708 event_watcher_leave_id = g_signal_add_emission_hook (signal_id, 0, event_watcher, NULL((void*)0), NULL((void*)0));
5709 }
5710}
5711
5712static void
5713create_event_watcher (CtkWidget *widget)
5714{
5715 if (!dialog_window)
5716 {
5717 CtkWidget *content_area;
5718 CtkWidget *button;
5719
5720 dialog_window = ctk_dialog_new ();
5721 ctk_window_set_screen (CTK_WINDOW (dialog_window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((dialog_window)), ((ctk_window_get_type ()))))))
,
5722 ctk_widget_get_screen (widget));
5723
5724 g_signal_connect (dialog_window, "destroy",g_signal_connect_data ((dialog_window), ("destroy"), (((GCallback
) (ctk_widget_destroyed))), (&dialog_window), ((void*)0),
(GConnectFlags) 0)
5725 G_CALLBACK (ctk_widget_destroyed),g_signal_connect_data ((dialog_window), ("destroy"), (((GCallback
) (ctk_widget_destroyed))), (&dialog_window), ((void*)0),
(GConnectFlags) 0)
5726 &dialog_window)g_signal_connect_data ((dialog_window), ("destroy"), (((GCallback
) (ctk_widget_destroyed))), (&dialog_window), ((void*)0),
(GConnectFlags) 0)
;
5727 g_signal_connect (dialog_window, "destroy",g_signal_connect_data ((dialog_window), ("destroy"), (((GCallback
) (event_watcher_down))), (((void*)0)), ((void*)0), (GConnectFlags
) 0)
5728 G_CALLBACK (event_watcher_down),g_signal_connect_data ((dialog_window), ("destroy"), (((GCallback
) (event_watcher_down))), (((void*)0)), ((void*)0), (GConnectFlags
) 0)
5729 NULL)g_signal_connect_data ((dialog_window), ("destroy"), (((GCallback
) (event_watcher_down))), (((void*)0)), ((void*)0), (GConnectFlags
) 0)
;
5730
5731 content_area = ctk_dialog_get_content_area (CTK_DIALOG (dialog_window)((((CtkDialog*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((dialog_window)), ((ctk_dialog_get_type ()))))))
);
5732
5733 ctk_window_set_title (CTK_WINDOW (dialog_window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((dialog_window)), ((ctk_window_get_type ()))))))
, "Event Watcher");
5734 ctk_container_set_border_width (CTK_CONTAINER (dialog_window)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((dialog_window)), ((ctk_container_get_type ()))))))
, 0);
5735 ctk_widget_set_size_request (dialog_window, 200, 110);
5736
5737 button = ctk_toggle_button_new_with_label ("Activate Watch");
5738 g_signal_connect (button, "clicked",g_signal_connect_data ((button), ("clicked"), (((GCallback) (
event_watcher_toggle))), (((void*)0)), ((void*)0), (GConnectFlags
) 0)
5739 G_CALLBACK (event_watcher_toggle),g_signal_connect_data ((button), ("clicked"), (((GCallback) (
event_watcher_toggle))), (((void*)0)), ((void*)0), (GConnectFlags
) 0)
5740 NULL)g_signal_connect_data ((button), ("clicked"), (((GCallback) (
event_watcher_toggle))), (((void*)0)), ((void*)0), (GConnectFlags
) 0)
;
5741 ctk_container_set_border_width (CTK_CONTAINER (button)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((button)), ((ctk_container_get_type ()))))))
, 10);
5742 ctk_box_pack_start (CTK_BOX (content_area)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((content_area)), ((ctk_box_get_type ()))))))
, button, TRUE(!(0)), TRUE(!(0)), 0);
5743 ctk_widget_show (button);
5744
5745 ctk_dialog_add_button (CTK_DIALOG (dialog_window)((((CtkDialog*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((dialog_window)), ((ctk_dialog_get_type ()))))))
, "Close", CTK_RESPONSE_CLOSE);
5746 g_signal_connect (dialog_window, "response", G_CALLBACK (ctk_widget_destroy), NULL)g_signal_connect_data ((dialog_window), ("response"), (((GCallback
) (ctk_widget_destroy))), (((void*)0)), ((void*)0), (GConnectFlags
) 0)
;
5747 }
5748
5749 if (!ctk_widget_get_visible (dialog_window))
5750 ctk_widget_show (dialog_window);
5751 else
5752 ctk_widget_destroy (dialog_window);
5753}
5754
5755/*
5756 * CtkRange
5757 */
5758
5759static gchar*
5760reformat_value (CtkScale *scale,
5761 gdouble value)
5762{
5763 return g_strdup_printf ("-->%0.*g<--",
5764 ctk_scale_get_digits (scale), value);
5765}
5766
5767static void
5768create_range_controls (CtkWidget *widget)
5769{
5770 static CtkWidget *window = NULL((void*)0);
5771
5772 if (!window)
5773 {
5774 CtkWidget *box1;
5775 CtkWidget *box2;
5776 CtkWidget *button;
5777 CtkWidget *scrollbar;
5778 CtkWidget *scale;
5779 CtkWidget *separator;
5780 CtkAdjustment *adjustment;
5781 CtkWidget *hbox;
5782
5783 window = ctk_window_new (CTK_WINDOW_TOPLEVEL);
5784
5785 ctk_window_set_screen (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
,
5786 ctk_widget_get_screen (widget));
5787
5788 g_signal_connect (window, "destroy",g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
5789 G_CALLBACK (ctk_widget_destroyed),g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
5790 &window)g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
;
5791
5792 ctk_window_set_title (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
, "range controls");
5793 ctk_container_set_border_width (CTK_CONTAINER (window)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_container_get_type ()))))))
, 0);
5794
5795
5796 box1 = ctk_box_new (CTK_ORIENTATION_VERTICAL, 0);
5797 ctk_container_add (CTK_CONTAINER (window)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_container_get_type ()))))))
, box1);
5798 ctk_widget_show (box1);
5799
5800
5801 box2 = ctk_box_new (CTK_ORIENTATION_VERTICAL, 10);
5802 ctk_container_set_border_width (CTK_CONTAINER (box2)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_container_get_type ()))))))
, 10);
5803 ctk_box_pack_start (CTK_BOX (box1)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box1)), ((ctk_box_get_type ()))))))
, box2, TRUE(!(0)), TRUE(!(0)), 0);
5804 ctk_widget_show (box2);
5805
5806
5807 adjustment = ctk_adjustment_new (0.0, 0.0, 101.0, 0.1, 1.0, 1.0);
5808
5809 scale = ctk_scale_new (CTK_ORIENTATION_HORIZONTAL, CTK_ADJUSTMENT (adjustment)((((CtkAdjustment*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((adjustment)), ((ctk_adjustment_get_type ()))))))
);
5810 ctk_widget_set_size_request (CTK_WIDGET (scale)((((CtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((scale)), ((ctk_widget_get_type ()))))))
, 150, -1);
5811 ctk_scale_set_digits (CTK_SCALE (scale)((((CtkScale*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((scale)), ((ctk_scale_get_type ()))))))
, 1);
5812 ctk_scale_set_draw_value (CTK_SCALE (scale)((((CtkScale*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((scale)), ((ctk_scale_get_type ()))))))
, TRUE(!(0)));
5813 ctk_box_pack_start (CTK_BOX (box2)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_box_get_type ()))))))
, scale, TRUE(!(0)), TRUE(!(0)), 0);
5814 ctk_widget_show (scale);
5815
5816 scrollbar = ctk_scrollbar_new (CTK_ORIENTATION_HORIZONTAL, CTK_ADJUSTMENT (adjustment)((((CtkAdjustment*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((adjustment)), ((ctk_adjustment_get_type ()))))))
);
5817 ctk_box_pack_start (CTK_BOX (box2)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_box_get_type ()))))))
, scrollbar, TRUE(!(0)), TRUE(!(0)), 0);
5818 ctk_widget_show (scrollbar);
5819
5820 scale = ctk_scale_new (CTK_ORIENTATION_HORIZONTAL, CTK_ADJUSTMENT (adjustment)((((CtkAdjustment*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((adjustment)), ((ctk_adjustment_get_type ()))))))
);
5821 ctk_scale_set_draw_value (CTK_SCALE (scale)((((CtkScale*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((scale)), ((ctk_scale_get_type ()))))))
, TRUE(!(0)));
5822 g_signal_connect (scale,g_signal_connect_data ((scale), ("format_value"), (((GCallback
) (reformat_value))), (((void*)0)), ((void*)0), (GConnectFlags
) 0)
5823 "format_value",g_signal_connect_data ((scale), ("format_value"), (((GCallback
) (reformat_value))), (((void*)0)), ((void*)0), (GConnectFlags
) 0)
5824 G_CALLBACK (reformat_value),g_signal_connect_data ((scale), ("format_value"), (((GCallback
) (reformat_value))), (((void*)0)), ((void*)0), (GConnectFlags
) 0)
5825 NULL)g_signal_connect_data ((scale), ("format_value"), (((GCallback
) (reformat_value))), (((void*)0)), ((void*)0), (GConnectFlags
) 0)
;
5826 ctk_box_pack_start (CTK_BOX (box2)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_box_get_type ()))))))
, scale, TRUE(!(0)), TRUE(!(0)), 0);
5827 ctk_widget_show (scale);
5828
5829 hbox = ctk_box_new (CTK_ORIENTATION_HORIZONTAL, 0);
5830
5831 scale = ctk_scale_new (CTK_ORIENTATION_VERTICAL, CTK_ADJUSTMENT (adjustment)((((CtkAdjustment*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((adjustment)), ((ctk_adjustment_get_type ()))))))
);
5832 ctk_widget_set_size_request (scale, -1, 200);
5833 ctk_scale_set_digits (CTK_SCALE (scale)((((CtkScale*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((scale)), ((ctk_scale_get_type ()))))))
, 2);
5834 ctk_scale_set_draw_value (CTK_SCALE (scale)((((CtkScale*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((scale)), ((ctk_scale_get_type ()))))))
, TRUE(!(0)));
5835 ctk_box_pack_start (CTK_BOX (hbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hbox)), ((ctk_box_get_type ()))))))
, scale, TRUE(!(0)), TRUE(!(0)), 0);
5836 ctk_widget_show (scale);
5837
5838 scale = ctk_scale_new (CTK_ORIENTATION_VERTICAL, CTK_ADJUSTMENT (adjustment)((((CtkAdjustment*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((adjustment)), ((ctk_adjustment_get_type ()))))))
);
5839 ctk_widget_set_size_request (scale, -1, 200);
5840 ctk_scale_set_digits (CTK_SCALE (scale)((((CtkScale*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((scale)), ((ctk_scale_get_type ()))))))
, 2);
5841 ctk_scale_set_draw_value (CTK_SCALE (scale)((((CtkScale*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((scale)), ((ctk_scale_get_type ()))))))
, TRUE(!(0)));
5842 ctk_range_set_inverted (CTK_RANGE (scale)((((CtkRange*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((scale)), ((ctk_range_get_type ()))))))
, TRUE(!(0)));
5843 ctk_box_pack_start (CTK_BOX (hbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hbox)), ((ctk_box_get_type ()))))))
, scale, TRUE(!(0)), TRUE(!(0)), 0);
5844 ctk_widget_show (scale);
5845
5846 scale = ctk_scale_new (CTK_ORIENTATION_VERTICAL, CTK_ADJUSTMENT (adjustment)((((CtkAdjustment*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((adjustment)), ((ctk_adjustment_get_type ()))))))
);
5847 ctk_scale_set_draw_value (CTK_SCALE (scale)((((CtkScale*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((scale)), ((ctk_scale_get_type ()))))))
, TRUE(!(0)));
5848 g_signal_connect (scale,g_signal_connect_data ((scale), ("format_value"), (((GCallback
) (reformat_value))), (((void*)0)), ((void*)0), (GConnectFlags
) 0)
5849 "format_value",g_signal_connect_data ((scale), ("format_value"), (((GCallback
) (reformat_value))), (((void*)0)), ((void*)0), (GConnectFlags
) 0)
5850 G_CALLBACK (reformat_value),g_signal_connect_data ((scale), ("format_value"), (((GCallback
) (reformat_value))), (((void*)0)), ((void*)0), (GConnectFlags
) 0)
5851 NULL)g_signal_connect_data ((scale), ("format_value"), (((GCallback
) (reformat_value))), (((void*)0)), ((void*)0), (GConnectFlags
) 0)
;
5852 ctk_box_pack_start (CTK_BOX (hbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hbox)), ((ctk_box_get_type ()))))))
, scale, TRUE(!(0)), TRUE(!(0)), 0);
5853 ctk_widget_show (scale);
5854
5855
5856 ctk_box_pack_start (CTK_BOX (box2)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_box_get_type ()))))))
, hbox, TRUE(!(0)), TRUE(!(0)), 0);
5857 ctk_widget_show (hbox);
5858
5859 separator = ctk_separator_new (CTK_ORIENTATION_HORIZONTAL);
5860 ctk_box_pack_start (CTK_BOX (box1)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box1)), ((ctk_box_get_type ()))))))
, separator, FALSE(0), TRUE(!(0)), 0);
5861 ctk_widget_show (separator);
5862
5863
5864 box2 = ctk_box_new (CTK_ORIENTATION_VERTICAL, 10);
5865 ctk_container_set_border_width (CTK_CONTAINER (box2)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_container_get_type ()))))))
, 10);
5866 ctk_box_pack_start (CTK_BOX (box1)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box1)), ((ctk_box_get_type ()))))))
, box2, FALSE(0), TRUE(!(0)), 0);
5867 ctk_widget_show (box2);
5868
5869
5870 button = ctk_button_new_with_label ("close");
5871 g_signal_connect_swapped (button, "clicked",g_signal_connect_data ((button), ("clicked"), (((GCallback) (
ctk_widget_destroy))), (window), ((void*)0), G_CONNECT_SWAPPED
)
5872 G_CALLBACK (ctk_widget_destroy),g_signal_connect_data ((button), ("clicked"), (((GCallback) (
ctk_widget_destroy))), (window), ((void*)0), G_CONNECT_SWAPPED
)
5873 window)g_signal_connect_data ((button), ("clicked"), (((GCallback) (
ctk_widget_destroy))), (window), ((void*)0), G_CONNECT_SWAPPED
)
;
5874 ctk_box_pack_start (CTK_BOX (box2)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_box_get_type ()))))))
, button, TRUE(!(0)), TRUE(!(0)), 0);
5875 ctk_widget_set_can_default (button, TRUE(!(0)));
5876 ctk_widget_grab_default (button);
5877 ctk_widget_show (button);
5878 }
5879
5880 if (!ctk_widget_get_visible (window))
5881 ctk_widget_show (window);
5882 else
5883 ctk_widget_destroy (window);
5884}
5885
5886struct {
5887 CdkColor color;
5888 gchar *name;
5889} text_colors[] = {
5890 { { 0, 0x0000, 0x0000, 0x0000 }, "black" },
5891 { { 0, 0xFFFF, 0xFFFF, 0xFFFF }, "white" },
5892 { { 0, 0xFFFF, 0x0000, 0x0000 }, "red" },
5893 { { 0, 0x0000, 0xFFFF, 0x0000 }, "green" },
5894 { { 0, 0x0000, 0x0000, 0xFFFF }, "blue" },
5895 { { 0, 0x0000, 0xFFFF, 0xFFFF }, "cyan" },
5896 { { 0, 0xFFFF, 0x0000, 0xFFFF }, "magenta" },
5897 { { 0, 0xFFFF, 0xFFFF, 0x0000 }, "yellow" }
5898};
5899
5900int ntext_colors = sizeof(text_colors) / sizeof(text_colors[0]);
5901
5902/*
5903 * CtkNotebook
5904 */
5905
5906static const char * book_open_xpm[] = {
5907"16 16 4 1",
5908" c None s None",
5909". c black",
5910"X c #808080",
5911"o c white",
5912" ",
5913" .. ",
5914" .Xo. ... ",
5915" .Xoo. ..oo. ",
5916" .Xooo.Xooo... ",
5917" .Xooo.oooo.X. ",
5918" .Xooo.Xooo.X. ",
5919" .Xooo.oooo.X. ",
5920" .Xooo.Xooo.X. ",
5921" .Xooo.oooo.X. ",
5922" .Xoo.Xoo..X. ",
5923" .Xo.o..ooX. ",
5924" .X..XXXXX. ",
5925" ..X....... ",
5926" .. ",
5927" "};
5928
5929static const char * book_closed_xpm[] = {
5930"16 16 6 1",
5931" c None s None",
5932". c black",
5933"X c red",
5934"o c yellow",
5935"O c #808080",
5936"# c white",
5937" ",
5938" .. ",
5939" ..XX. ",
5940" ..XXXXX. ",
5941" ..XXXXXXXX. ",
5942".ooXXXXXXXXX. ",
5943"..ooXXXXXXXXX. ",
5944".X.ooXXXXXXXXX. ",
5945".XX.ooXXXXXX.. ",
5946" .XX.ooXXX..#O ",
5947" .XX.oo..##OO. ",
5948" .XX..##OO.. ",
5949" .X.#OO.. ",
5950" ..O.. ",
5951" .. ",
5952" "};
5953
5954GdkPixbuf *book_open;
5955GdkPixbuf *book_closed;
5956CtkWidget *sample_notebook;
5957
5958static void
5959set_page_image (CtkNotebook *notebook, gint page_num, GdkPixbuf *pixbuf)
5960{
5961 CtkWidget *page_widget;
5962 CtkWidget *pixwid;
5963
5964 page_widget = ctk_notebook_get_nth_page (notebook, page_num);
5965
5966 pixwid = g_object_get_data (G_OBJECT (page_widget)((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((page_widget)), (((GType) ((20) << (2))))))))
, "tab_pixmap");
5967 ctk_image_set_from_pixbuf (CTK_IMAGE (pixwid)((((CtkImage*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((pixwid)), ((ctk_image_get_type ()))))))
, pixbuf);
5968
5969 pixwid = g_object_get_data (G_OBJECT (page_widget)((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((page_widget)), (((GType) ((20) << (2))))))))
, "menu_pixmap");
5970 ctk_image_set_from_pixbuf (CTK_IMAGE (pixwid)((((CtkImage*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((pixwid)), ((ctk_image_get_type ()))))))
, pixbuf);
5971}
5972
5973static void
5974page_switch (CtkWidget *widget, gpointer *page, gint page_num)
5975{
5976 CtkNotebook *notebook = CTK_NOTEBOOK (widget)((((CtkNotebook*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((widget)), ((ctk_notebook_get_type ()))))))
;
5977 gint old_page_num = ctk_notebook_get_current_page (notebook);
5978
5979 if (page_num == old_page_num)
5980 return;
5981
5982 set_page_image (notebook, page_num, book_open);
5983
5984 if (old_page_num != -1)
5985 set_page_image (notebook, old_page_num, book_closed);
5986}
5987
5988static void
5989tab_fill (CtkToggleButton *button, CtkWidget *child)
5990{
5991 ctk_container_child_set (CTK_CONTAINER (sample_notebook)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((sample_notebook)), ((ctk_container_get_type ()))))))
, child,
5992 "tab-fill", ctk_toggle_button_get_active (button),
5993 NULL((void*)0));
5994}
5995
5996static void
5997tab_expand (CtkToggleButton *button, CtkWidget *child)
5998{
5999 ctk_container_child_set (CTK_CONTAINER (sample_notebook)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((sample_notebook)), ((ctk_container_get_type ()))))))
, child,
6000 "tab-expand", ctk_toggle_button_get_active (button),
6001 NULL((void*)0));
6002}
6003
6004static void
6005create_pages (CtkNotebook *notebook, gint start, gint end)
6006{
6007 gint i;
6008
6009 for (i = start; i <= end; i++)
6010 {
6011 CtkWidget *child = NULL((void*)0);
6012 CtkWidget *button;
6013 CtkWidget *label;
6014 CtkWidget *hbox;
6015 CtkWidget *vbox;
6016 CtkWidget *label_box;
6017 CtkWidget *menu_box;
6018 CtkWidget *pixwid;
6019 char buffer[32];
6020 char accel_buffer[32];
6021
6022 sprintf (buffer, "Page %d", i);
6023 sprintf (accel_buffer, "Page _%d", i);
6024
6025 child = ctk_frame_new (buffer);
6026 ctk_container_set_border_width (CTK_CONTAINER (child)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((child)), ((ctk_container_get_type ()))))))
, 10);
6027
6028 vbox = ctk_box_new (CTK_ORIENTATION_VERTICAL, 0);
6029 ctk_box_set_homogeneous (CTK_BOX (vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_box_get_type ()))))))
, TRUE(!(0)));
6030 ctk_container_set_border_width (CTK_CONTAINER (vbox)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_container_get_type ()))))))
, 10);
6031 ctk_container_add (CTK_CONTAINER (child)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((child)), ((ctk_container_get_type ()))))))
, vbox);
6032
6033 hbox = ctk_box_new (CTK_ORIENTATION_HORIZONTAL, 0);
6034 ctk_box_set_homogeneous (CTK_BOX (hbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hbox)), ((ctk_box_get_type ()))))))
, TRUE(!(0)));
6035 ctk_box_pack_start (CTK_BOX (vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_box_get_type ()))))))
, hbox, FALSE(0), TRUE(!(0)), 5);
6036
6037 button = ctk_check_button_new_with_label ("Fill Tab");
6038 ctk_box_pack_start (CTK_BOX (hbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hbox)), ((ctk_box_get_type ()))))))
, button, TRUE(!(0)), TRUE(!(0)), 5);
6039 ctk_toggle_button_set_active (CTK_TOGGLE_BUTTON (button)((((CtkToggleButton*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((button)), ((ctk_toggle_button_get_type ()))))))
, TRUE(!(0)));
6040 g_signal_connect (button, "toggled",g_signal_connect_data ((button), ("toggled"), (((GCallback) (
tab_fill))), (child), ((void*)0), (GConnectFlags) 0)
6041 G_CALLBACK (tab_fill), child)g_signal_connect_data ((button), ("toggled"), (((GCallback) (
tab_fill))), (child), ((void*)0), (GConnectFlags) 0)
;
6042
6043 button = ctk_check_button_new_with_label ("Expand Tab");
6044 ctk_box_pack_start (CTK_BOX (hbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hbox)), ((ctk_box_get_type ()))))))
, button, TRUE(!(0)), TRUE(!(0)), 5);
6045 g_signal_connect (button, "toggled",g_signal_connect_data ((button), ("toggled"), (((GCallback) (
tab_expand))), (child), ((void*)0), (GConnectFlags) 0)
6046 G_CALLBACK (tab_expand), child)g_signal_connect_data ((button), ("toggled"), (((GCallback) (
tab_expand))), (child), ((void*)0), (GConnectFlags) 0)
;
6047
6048 button = ctk_button_new_with_label ("Hide Page");
6049 ctk_box_pack_end (CTK_BOX (vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_box_get_type ()))))))
, button, FALSE(0), FALSE(0), 5);
6050 g_signal_connect_swapped (button, "clicked",g_signal_connect_data ((button), ("clicked"), (((GCallback) (
ctk_widget_hide))), (child), ((void*)0), G_CONNECT_SWAPPED)
6051 G_CALLBACK (ctk_widget_hide),g_signal_connect_data ((button), ("clicked"), (((GCallback) (
ctk_widget_hide))), (child), ((void*)0), G_CONNECT_SWAPPED)
6052 child)g_signal_connect_data ((button), ("clicked"), (((GCallback) (
ctk_widget_hide))), (child), ((void*)0), G_CONNECT_SWAPPED)
;
6053
6054 ctk_widget_show_all (child);
6055
6056 label_box = ctk_box_new (CTK_ORIENTATION_HORIZONTAL, 0);
6057 pixwid = ctk_image_new_from_pixbuf (book_closed);
6058 g_object_set_data (G_OBJECT (child)((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((child)), (((GType) ((20) << (2))))))))
, "tab_pixmap", pixwid);
6059
6060 ctk_box_pack_start (CTK_BOX (label_box)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((label_box)), ((ctk_box_get_type ()))))))
, pixwid, FALSE(0), TRUE(!(0)), 0);
6061 ctk_widget_set_margin_start (pixwid, 3);
6062 ctk_widget_set_margin_end (pixwid, 3);
6063 ctk_widget_set_margin_bottom (pixwid, 1);
6064 ctk_widget_set_margin_top (pixwid, 1);
6065 label = ctk_label_new_with_mnemonic (accel_buffer);
6066 ctk_box_pack_start (CTK_BOX (label_box)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((label_box)), ((ctk_box_get_type ()))))))
, label, FALSE(0), TRUE(!(0)), 0);
6067 ctk_widget_show_all (label_box);
6068
6069
6070 menu_box = ctk_box_new (CTK_ORIENTATION_HORIZONTAL, 0);
6071 pixwid = ctk_image_new_from_pixbuf (book_closed);
6072 g_object_set_data (G_OBJECT (child)((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((child)), (((GType) ((20) << (2))))))))
, "menu_pixmap", pixwid);
6073
6074 ctk_box_pack_start (CTK_BOX (menu_box)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((menu_box)), ((ctk_box_get_type ()))))))
, pixwid, FALSE(0), TRUE(!(0)), 0);
6075 ctk_widget_set_margin_start (pixwid, 3);
6076 ctk_widget_set_margin_end (pixwid, 3);
6077 ctk_widget_set_margin_bottom (pixwid, 1);
6078 ctk_widget_set_margin_top (pixwid, 1);
6079 label = ctk_label_new (buffer);
6080 ctk_box_pack_start (CTK_BOX (menu_box)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((menu_box)), ((ctk_box_get_type ()))))))
, label, FALSE(0), TRUE(!(0)), 0);
6081 ctk_widget_show_all (menu_box);
6082
6083 ctk_notebook_append_page_menu (notebook, child, label_box, menu_box);
6084 }
6085}
6086
6087static void
6088rotate_notebook (CtkButton *button,
6089 CtkNotebook *notebook)
6090{
6091 ctk_notebook_set_tab_pos (notebook, (ctk_notebook_get_tab_pos (notebook) + 1) % 4);
6092}
6093
6094static void
6095show_all_pages (CtkButton *button,
6096 CtkNotebook *notebook)
6097{
6098 ctk_container_foreach (CTK_CONTAINER (notebook)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((notebook)), ((ctk_container_get_type ()))))))
,
6099 (CtkCallback) ctk_widget_show, NULL((void*)0));
6100}
6101
6102static void
6103notebook_type_changed (CtkWidget *optionmenu,
6104 gpointer data)
6105{
6106 CtkNotebook *notebook;
6107 gint i, c;
6108
6109 enum {
6110 STANDARD,
6111 NOTABS,
6112 BORDERLESS,
6113 SCROLLABLE
6114 };
6115
6116 notebook = CTK_NOTEBOOK (data)((((CtkNotebook*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((data)), ((ctk_notebook_get_type ()))))))
;
6117
6118 c = ctk_combo_box_get_active (CTK_COMBO_BOX (optionmenu)((((CtkComboBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((optionmenu)), ((ctk_combo_box_get_type ()))))))
);
6119
6120 switch (c)
6121 {
6122 case STANDARD:
6123 /* standard notebook */
6124 ctk_notebook_set_show_tabs (notebook, TRUE(!(0)));
6125 ctk_notebook_set_show_border (notebook, TRUE(!(0)));
6126 ctk_notebook_set_scrollable (notebook, FALSE(0));
6127 break;
6128
6129 case NOTABS:
6130 /* notabs notebook */
6131 ctk_notebook_set_show_tabs (notebook, FALSE(0));
6132 ctk_notebook_set_show_border (notebook, TRUE(!(0)));
6133 break;
6134
6135 case BORDERLESS:
6136 /* borderless */
6137 ctk_notebook_set_show_tabs (notebook, FALSE(0));
6138 ctk_notebook_set_show_border (notebook, FALSE(0));
6139 break;
6140
6141 case SCROLLABLE:
6142 /* scrollable */
6143 ctk_notebook_set_show_tabs (notebook, TRUE(!(0)));
6144 ctk_notebook_set_show_border (notebook, TRUE(!(0)));
6145 ctk_notebook_set_scrollable (notebook, TRUE(!(0)));
6146 if (ctk_notebook_get_n_pages (notebook) == 5)
6147 create_pages (notebook, 6, 15);
6148
6149 return;
6150 break;
6151 }
6152
6153 if (ctk_notebook_get_n_pages (notebook) == 15)
6154 for (i = 0; i < 10; i++)
6155 ctk_notebook_remove_page (notebook, 5);
6156}
6157
6158static void
6159notebook_popup (CtkToggleButton *button,
6160 CtkNotebook *notebook)
6161{
6162 if (ctk_toggle_button_get_active (button))
6163 ctk_notebook_popup_enable (notebook);
6164 else
6165 ctk_notebook_popup_disable (notebook);
6166}
6167
6168static void
6169create_notebook (CtkWidget *widget)
6170{
6171 static CtkWidget *window = NULL((void*)0);
6172
6173 if (!window)
6174 {
6175 CtkWidget *box1;
6176 CtkWidget *box2;
6177 CtkWidget *button;
6178 CtkWidget *separator;
6179 CtkWidget *omenu;
6180 CtkWidget *label;
6181
6182 static gchar *items[] =
6183 {
6184 "Standard",
6185 "No tabs",
6186 "Borderless",
6187 "Scrollable"
6188 };
6189
6190 window = ctk_window_new (CTK_WINDOW_TOPLEVEL);
6191 ctk_window_set_screen (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
,
6192 ctk_widget_get_screen (widget));
6193
6194 g_signal_connect (window, "destroy",g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
6195 G_CALLBACK (ctk_widget_destroyed),g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
6196 &window)g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
;
6197
6198 ctk_window_set_title (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
, "notebook");
6199 ctk_container_set_border_width (CTK_CONTAINER (window)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_container_get_type ()))))))
, 0);
6200
6201 box1 = ctk_box_new (CTK_ORIENTATION_VERTICAL, 0);
6202 ctk_container_add (CTK_CONTAINER (window)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_container_get_type ()))))))
, box1);
6203
6204 sample_notebook = ctk_notebook_new ();
6205 g_signal_connect (sample_notebook, "switch_page",g_signal_connect_data ((sample_notebook), ("switch_page"), ((
(GCallback) (page_switch))), (((void*)0)), ((void*)0), (GConnectFlags
) 0)
6206 G_CALLBACK (page_switch), NULL)g_signal_connect_data ((sample_notebook), ("switch_page"), ((
(GCallback) (page_switch))), (((void*)0)), ((void*)0), (GConnectFlags
) 0)
;
6207 ctk_notebook_set_tab_pos (CTK_NOTEBOOK (sample_notebook)((((CtkNotebook*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((sample_notebook)), ((ctk_notebook_get_type ()))))))
, CTK_POS_TOP);
6208 ctk_box_pack_start (CTK_BOX (box1)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box1)), ((ctk_box_get_type ()))))))
, sample_notebook, TRUE(!(0)), TRUE(!(0)), 0);
6209 ctk_container_set_border_width (CTK_CONTAINER (sample_notebook)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((sample_notebook)), ((ctk_container_get_type ()))))))
, 10);
6210
6211 ctk_widget_realize (sample_notebook);
6212
6213 if (!book_open)
6214 book_open = gdk_pixbuf_new_from_xpm_data (book_open_xpm);
6215
6216 if (!book_closed)
6217 book_closed = gdk_pixbuf_new_from_xpm_data (book_closed_xpm);
6218
6219 create_pages (CTK_NOTEBOOK (sample_notebook)((((CtkNotebook*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((sample_notebook)), ((ctk_notebook_get_type ()))))))
, 1, 5);
6220
6221 separator = ctk_separator_new (CTK_ORIENTATION_HORIZONTAL);
6222 ctk_box_pack_start (CTK_BOX (box1)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box1)), ((ctk_box_get_type ()))))))
, separator, FALSE(0), TRUE(!(0)), 10);
6223
6224 box2 = ctk_box_new (CTK_ORIENTATION_HORIZONTAL, 5);
6225 ctk_container_set_border_width (CTK_CONTAINER (box2)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_container_get_type ()))))))
, 10);
6226 ctk_box_pack_start (CTK_BOX (box1)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box1)), ((ctk_box_get_type ()))))))
, box2, FALSE(0), TRUE(!(0)), 0);
6227
6228 button = ctk_check_button_new_with_label ("popup menu");
6229 ctk_box_pack_start (CTK_BOX (box2)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_box_get_type ()))))))
, button, TRUE(!(0)), FALSE(0), 0);
6230 g_signal_connect (button, "clicked",g_signal_connect_data ((button), ("clicked"), (((GCallback) (
notebook_popup))), (sample_notebook), ((void*)0), (GConnectFlags
) 0)
6231 G_CALLBACK (notebook_popup),g_signal_connect_data ((button), ("clicked"), (((GCallback) (
notebook_popup))), (sample_notebook), ((void*)0), (GConnectFlags
) 0)
6232 sample_notebook)g_signal_connect_data ((button), ("clicked"), (((GCallback) (
notebook_popup))), (sample_notebook), ((void*)0), (GConnectFlags
) 0)
;
6233
6234 box2 = ctk_box_new (CTK_ORIENTATION_HORIZONTAL, 5);
6235 ctk_container_set_border_width (CTK_CONTAINER (box2)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_container_get_type ()))))))
, 10);
6236 ctk_box_pack_start (CTK_BOX (box1)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box1)), ((ctk_box_get_type ()))))))
, box2, FALSE(0), TRUE(!(0)), 0);
6237
6238 label = ctk_label_new ("Notebook Style :");
6239 ctk_box_pack_start (CTK_BOX (box2)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_box_get_type ()))))))
, label, FALSE(0), TRUE(!(0)), 0);
6240
6241 omenu = build_option_menu (items, G_N_ELEMENTS (items)(sizeof (items) / sizeof ((items)[0])), 0,
6242 notebook_type_changed,
6243 sample_notebook);
6244 ctk_box_pack_start (CTK_BOX (box2)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_box_get_type ()))))))
, omenu, FALSE(0), TRUE(!(0)), 0);
6245
6246 button = ctk_button_new_with_label ("Show all Pages");
6247 ctk_box_pack_start (CTK_BOX (box2)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_box_get_type ()))))))
, button, FALSE(0), TRUE(!(0)), 0);
6248 g_signal_connect (button, "clicked",g_signal_connect_data ((button), ("clicked"), (((GCallback) (
show_all_pages))), (sample_notebook), ((void*)0), (GConnectFlags
) 0)
6249 G_CALLBACK (show_all_pages), sample_notebook)g_signal_connect_data ((button), ("clicked"), (((GCallback) (
show_all_pages))), (sample_notebook), ((void*)0), (GConnectFlags
) 0)
;
6250
6251 box2 = ctk_box_new (CTK_ORIENTATION_HORIZONTAL, 10);
6252 ctk_box_set_homogeneous (CTK_BOX (box2)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_box_get_type ()))))))
, TRUE(!(0)));
6253 ctk_container_set_border_width (CTK_CONTAINER (box2)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_container_get_type ()))))))
, 10);
6254 ctk_box_pack_start (CTK_BOX (box1)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box1)), ((ctk_box_get_type ()))))))
, box2, FALSE(0), TRUE(!(0)), 0);
6255
6256 button = ctk_button_new_with_label ("prev");
6257 g_signal_connect_swapped (button, "clicked",g_signal_connect_data ((button), ("clicked"), (((GCallback) (
ctk_notebook_prev_page))), (sample_notebook), ((void*)0), G_CONNECT_SWAPPED
)
6258 G_CALLBACK (ctk_notebook_prev_page),g_signal_connect_data ((button), ("clicked"), (((GCallback) (
ctk_notebook_prev_page))), (sample_notebook), ((void*)0), G_CONNECT_SWAPPED
)
6259 sample_notebook)g_signal_connect_data ((button), ("clicked"), (((GCallback) (
ctk_notebook_prev_page))), (sample_notebook), ((void*)0), G_CONNECT_SWAPPED
)
;
6260 ctk_box_pack_start (CTK_BOX (box2)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_box_get_type ()))))))
, button, TRUE(!(0)), TRUE(!(0)), 0);
6261
6262 button = ctk_button_new_with_label ("next");
6263 g_signal_connect_swapped (button, "clicked",g_signal_connect_data ((button), ("clicked"), (((GCallback) (
ctk_notebook_next_page))), (sample_notebook), ((void*)0), G_CONNECT_SWAPPED
)
6264 G_CALLBACK (ctk_notebook_next_page),g_signal_connect_data ((button), ("clicked"), (((GCallback) (
ctk_notebook_next_page))), (sample_notebook), ((void*)0), G_CONNECT_SWAPPED
)
6265 sample_notebook)g_signal_connect_data ((button), ("clicked"), (((GCallback) (
ctk_notebook_next_page))), (sample_notebook), ((void*)0), G_CONNECT_SWAPPED
)
;
6266 ctk_box_pack_start (CTK_BOX (box2)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_box_get_type ()))))))
, button, TRUE(!(0)), TRUE(!(0)), 0);
6267
6268 button = ctk_button_new_with_label ("rotate");
6269 g_signal_connect (button, "clicked",g_signal_connect_data ((button), ("clicked"), (((GCallback) (
rotate_notebook))), (sample_notebook), ((void*)0), (GConnectFlags
) 0)
6270 G_CALLBACK (rotate_notebook), sample_notebook)g_signal_connect_data ((button), ("clicked"), (((GCallback) (
rotate_notebook))), (sample_notebook), ((void*)0), (GConnectFlags
) 0)
;
6271 ctk_box_pack_start (CTK_BOX (box2)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_box_get_type ()))))))
, button, TRUE(!(0)), TRUE(!(0)), 0);
6272
6273 separator = ctk_separator_new (CTK_ORIENTATION_HORIZONTAL);
6274 ctk_box_pack_start (CTK_BOX (box1)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box1)), ((ctk_box_get_type ()))))))
, separator, FALSE(0), TRUE(!(0)), 5);
6275
6276 button = ctk_button_new_with_label ("close");
6277 ctk_container_set_border_width (CTK_CONTAINER (button)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((button)), ((ctk_container_get_type ()))))))
, 5);
6278 g_signal_connect_swapped (button, "clicked",g_signal_connect_data ((button), ("clicked"), (((GCallback) (
ctk_widget_destroy))), (window), ((void*)0), G_CONNECT_SWAPPED
)
6279 G_CALLBACK (ctk_widget_destroy),g_signal_connect_data ((button), ("clicked"), (((GCallback) (
ctk_widget_destroy))), (window), ((void*)0), G_CONNECT_SWAPPED
)
6280 window)g_signal_connect_data ((button), ("clicked"), (((GCallback) (
ctk_widget_destroy))), (window), ((void*)0), G_CONNECT_SWAPPED
)
;
6281 ctk_box_pack_start (CTK_BOX (box1)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box1)), ((ctk_box_get_type ()))))))
, button, FALSE(0), FALSE(0), 0);
6282 ctk_widget_set_can_default (button, TRUE(!(0)));
6283 ctk_widget_grab_default (button);
6284 }
6285
6286 if (!ctk_widget_get_visible (window))
6287 ctk_widget_show_all (window);
6288 else
6289 ctk_widget_destroy (window);
6290}
6291
6292/*
6293 * CtkPanes
6294 */
6295
6296void
6297toggle_resize (CtkWidget *widget, CtkWidget *child)
6298{
6299 CtkContainer *container = CTK_CONTAINER (ctk_widget_get_parent (child))((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((ctk_widget_get_parent (child))), ((ctk_container_get_type
()))))))
;
6300 GValue value = G_VALUE_INIT{ 0, { { 0 } } };
6301 g_value_init (&value, G_TYPE_BOOLEAN((GType) ((5) << (2))));
6302 ctk_container_child_get_property (container, child, "resize", &value);
6303 g_value_set_boolean (&value, !g_value_get_boolean (&value));
6304 ctk_container_child_set_property (container, child, "resize", &value);
6305}
6306
6307void
6308toggle_shrink (CtkWidget *widget, CtkWidget *child)
6309{
6310 CtkContainer *container = CTK_CONTAINER (ctk_widget_get_parent (child))((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((ctk_widget_get_parent (child))), ((ctk_container_get_type
()))))))
;
6311 GValue value = G_VALUE_INIT{ 0, { { 0 } } };
6312 g_value_init (&value, G_TYPE_BOOLEAN((GType) ((5) << (2))));
6313 ctk_container_child_get_property (container, child, "shrink", &value);
6314 g_value_set_boolean (&value, !g_value_get_boolean (&value));
6315 ctk_container_child_set_property (container, child, "shrink", &value);
6316}
6317
6318CtkWidget *
6319create_pane_options (CtkPaned *paned,
6320 const gchar *frame_label,
6321 const gchar *label1,
6322 const gchar *label2)
6323{
6324 CtkWidget *child1, *child2;
6325 CtkWidget *frame;
6326 CtkWidget *grid;
6327 CtkWidget *label;
6328 CtkWidget *check_button;
6329
6330 child1 = ctk_paned_get_child1 (paned);
6331 child2 = ctk_paned_get_child2 (paned);
6332
6333 frame = ctk_frame_new (frame_label);
6334 ctk_container_set_border_width (CTK_CONTAINER (frame)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((frame)), ((ctk_container_get_type ()))))))
, 4);
6335
6336 grid = ctk_grid_new ();
6337 ctk_container_add (CTK_CONTAINER (frame)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((frame)), ((ctk_container_get_type ()))))))
, grid);
6338
6339 label = ctk_label_new (label1);
6340 ctk_grid_attach (CTK_GRID (grid)((((CtkGrid*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((grid)), ((ctk_grid_get_type ()))))))
, label, 0, 0, 1, 1);
6341
6342 check_button = ctk_check_button_new_with_label ("Resize");
6343 ctk_grid_attach (CTK_GRID (grid)((((CtkGrid*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((grid)), ((ctk_grid_get_type ()))))))
, check_button, 0, 1, 1, 1);
6344 g_signal_connect (check_button, "toggled",g_signal_connect_data ((check_button), ("toggled"), (((GCallback
) (toggle_resize))), (child1), ((void*)0), (GConnectFlags) 0)
6345 G_CALLBACK (toggle_resize),g_signal_connect_data ((check_button), ("toggled"), (((GCallback
) (toggle_resize))), (child1), ((void*)0), (GConnectFlags) 0)
6346 child1)g_signal_connect_data ((check_button), ("toggled"), (((GCallback
) (toggle_resize))), (child1), ((void*)0), (GConnectFlags) 0)
;
6347
6348 check_button = ctk_check_button_new_with_label ("Shrink");
6349 ctk_grid_attach (CTK_GRID (grid)((((CtkGrid*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((grid)), ((ctk_grid_get_type ()))))))
, check_button, 0, 2, 1, 1);
6350 ctk_toggle_button_set_active (CTK_TOGGLE_BUTTON (check_button)((((CtkToggleButton*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((check_button)), ((ctk_toggle_button_get_type ()))))))
,
6351 TRUE(!(0)));
6352 g_signal_connect (check_button, "toggled",g_signal_connect_data ((check_button), ("toggled"), (((GCallback
) (toggle_shrink))), (child1), ((void*)0), (GConnectFlags) 0)
6353 G_CALLBACK (toggle_shrink),g_signal_connect_data ((check_button), ("toggled"), (((GCallback
) (toggle_shrink))), (child1), ((void*)0), (GConnectFlags) 0)
6354 child1)g_signal_connect_data ((check_button), ("toggled"), (((GCallback
) (toggle_shrink))), (child1), ((void*)0), (GConnectFlags) 0)
;
6355
6356 label = ctk_label_new (label2);
6357 ctk_grid_attach (CTK_GRID (grid)((((CtkGrid*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((grid)), ((ctk_grid_get_type ()))))))
, label, 1, 0, 1, 1);
6358
6359 check_button = ctk_check_button_new_with_label ("Resize");
6360 ctk_grid_attach (CTK_GRID (grid)((((CtkGrid*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((grid)), ((ctk_grid_get_type ()))))))
, check_button, 1, 1, 1, 1);
6361 ctk_toggle_button_set_active (CTK_TOGGLE_BUTTON (check_button)((((CtkToggleButton*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((check_button)), ((ctk_toggle_button_get_type ()))))))
,
6362 TRUE(!(0)));
6363 g_signal_connect (check_button, "toggled",g_signal_connect_data ((check_button), ("toggled"), (((GCallback
) (toggle_resize))), (child2), ((void*)0), (GConnectFlags) 0)
6364 G_CALLBACK (toggle_resize),g_signal_connect_data ((check_button), ("toggled"), (((GCallback
) (toggle_resize))), (child2), ((void*)0), (GConnectFlags) 0)
6365 child2)g_signal_connect_data ((check_button), ("toggled"), (((GCallback
) (toggle_resize))), (child2), ((void*)0), (GConnectFlags) 0)
;
6366
6367 check_button = ctk_check_button_new_with_label ("Shrink");
6368 ctk_grid_attach (CTK_GRID (grid)((((CtkGrid*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((grid)), ((ctk_grid_get_type ()))))))
, check_button, 1, 2, 1, 1);
6369 ctk_toggle_button_set_active (CTK_TOGGLE_BUTTON (check_button)((((CtkToggleButton*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((check_button)), ((ctk_toggle_button_get_type ()))))))
,
6370 TRUE(!(0)));
6371 g_signal_connect (check_button, "toggled",g_signal_connect_data ((check_button), ("toggled"), (((GCallback
) (toggle_shrink))), (child2), ((void*)0), (GConnectFlags) 0)
6372 G_CALLBACK (toggle_shrink),g_signal_connect_data ((check_button), ("toggled"), (((GCallback
) (toggle_shrink))), (child2), ((void*)0), (GConnectFlags) 0)
6373 child2)g_signal_connect_data ((check_button), ("toggled"), (((GCallback
) (toggle_shrink))), (child2), ((void*)0), (GConnectFlags) 0)
;
6374
6375 return frame;
6376}
6377
6378void
6379create_panes (CtkWidget *widget)
6380{
6381 static CtkWidget *window = NULL((void*)0);
6382
6383 if (!window)
6384 {
6385 CtkWidget *frame;
6386 CtkWidget *hpaned;
6387 CtkWidget *vpaned;
6388 CtkWidget *button;
6389 CtkWidget *vbox;
6390
6391 window = ctk_window_new (CTK_WINDOW_TOPLEVEL);
6392
6393 ctk_window_set_screen (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
,
6394 ctk_widget_get_screen (widget));
6395
6396 g_signal_connect (window, "destroy",g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
6397 G_CALLBACK (ctk_widget_destroyed),g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
6398 &window)g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
;
6399
6400 ctk_window_set_title (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
, "Panes");
6401 ctk_container_set_border_width (CTK_CONTAINER (window)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_container_get_type ()))))))
, 0);
6402
6403 vbox = ctk_box_new (CTK_ORIENTATION_VERTICAL, 0);
6404 ctk_container_add (CTK_CONTAINER (window)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_container_get_type ()))))))
, vbox);
6405
6406 vpaned = ctk_paned_new (CTK_ORIENTATION_VERTICAL);
6407 ctk_box_pack_start (CTK_BOX (vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_box_get_type ()))))))
, vpaned, TRUE(!(0)), TRUE(!(0)), 0);
6408 ctk_container_set_border_width (CTK_CONTAINER(vpaned)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vpaned)), ((ctk_container_get_type ()))))))
, 5);
6409
6410 hpaned = ctk_paned_new (CTK_ORIENTATION_HORIZONTAL);
6411 ctk_paned_add1 (CTK_PANED (vpaned)((((CtkPaned*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vpaned)), ((ctk_paned_get_type ()))))))
, hpaned);
6412
6413 frame = ctk_frame_new (NULL((void*)0));
6414 ctk_frame_set_shadow_type (CTK_FRAME(frame)((((CtkFrame*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((frame)), ((ctk_frame_get_type ()))))))
, CTK_SHADOW_IN);
6415 ctk_widget_set_size_request (frame, 60, 60);
6416 ctk_paned_add1 (CTK_PANED (hpaned)((((CtkPaned*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hpaned)), ((ctk_paned_get_type ()))))))
, frame);
6417
6418 button = ctk_button_new_with_label ("Hi there");
6419 ctk_container_add (CTK_CONTAINER(frame)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((frame)), ((ctk_container_get_type ()))))))
, button);
6420
6421 frame = ctk_frame_new (NULL((void*)0));
6422 ctk_frame_set_shadow_type (CTK_FRAME(frame)((((CtkFrame*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((frame)), ((ctk_frame_get_type ()))))))
, CTK_SHADOW_IN);
6423 ctk_widget_set_size_request (frame, 80, 60);
6424 ctk_paned_add2 (CTK_PANED (hpaned)((((CtkPaned*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hpaned)), ((ctk_paned_get_type ()))))))
, frame);
6425
6426 frame = ctk_frame_new (NULL((void*)0));
6427 ctk_frame_set_shadow_type (CTK_FRAME(frame)((((CtkFrame*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((frame)), ((ctk_frame_get_type ()))))))
, CTK_SHADOW_IN);
6428 ctk_widget_set_size_request (frame, 60, 80);
6429 ctk_paned_add2 (CTK_PANED (vpaned)((((CtkPaned*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vpaned)), ((ctk_paned_get_type ()))))))
, frame);
6430
6431 /* Now create toggle buttons to control sizing */
6432
6433 ctk_box_pack_start (CTK_BOX (vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_box_get_type ()))))))
,
6434 create_pane_options (CTK_PANED (hpaned)((((CtkPaned*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hpaned)), ((ctk_paned_get_type ()))))))
,
6435 "Horizontal",
6436 "Left",
6437 "Right"),
6438 FALSE(0), FALSE(0), 0);
6439
6440 ctk_box_pack_start (CTK_BOX (vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_box_get_type ()))))))
,
6441 create_pane_options (CTK_PANED (vpaned)((((CtkPaned*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vpaned)), ((ctk_paned_get_type ()))))))
,
6442 "Vertical",
6443 "Top",
6444 "Bottom"),
6445 FALSE(0), FALSE(0), 0);
6446
6447 ctk_widget_show_all (vbox);
6448 }
6449
6450 if (!ctk_widget_get_visible (window))
6451 ctk_widget_show (window);
6452 else
6453 ctk_widget_destroy (window);
6454}
6455
6456/*
6457 * Paned keyboard navigation
6458 */
6459
6460static CtkWidget*
6461paned_keyboard_window1 (CtkWidget *widget)
6462{
6463 CtkWidget *window1;
6464 CtkWidget *hpaned1;
6465 CtkWidget *frame1;
6466 CtkWidget *vbox1;
6467 CtkWidget *button7;
6468 CtkWidget *button8;
6469 CtkWidget *button9;
6470 CtkWidget *vpaned1;
6471 CtkWidget *frame2;
6472 CtkWidget *frame5;
6473 CtkWidget *hbox1;
6474 CtkWidget *button5;
6475 CtkWidget *button6;
6476 CtkWidget *frame3;
6477 CtkWidget *frame4;
6478 CtkWidget *grid1;
6479 CtkWidget *button1;
6480 CtkWidget *button2;
6481 CtkWidget *button3;
6482 CtkWidget *button4;
6483
6484 window1 = ctk_window_new (CTK_WINDOW_TOPLEVEL);
6485 ctk_window_set_title (CTK_WINDOW (window1)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window1)), ((ctk_window_get_type ()))))))
, "Basic paned navigation");
6486 ctk_window_set_screen (CTK_WINDOW (window1)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window1)), ((ctk_window_get_type ()))))))
,
6487 ctk_widget_get_screen (widget));
6488
6489 hpaned1 = ctk_paned_new (CTK_ORIENTATION_HORIZONTAL);
6490 ctk_container_add (CTK_CONTAINER (window1)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window1)), ((ctk_container_get_type ()))))))
, hpaned1);
6491
6492 frame1 = ctk_frame_new (NULL((void*)0));
6493 ctk_paned_pack1 (CTK_PANED (hpaned1)((((CtkPaned*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hpaned1)), ((ctk_paned_get_type ()))))))
, frame1, FALSE(0), TRUE(!(0)));
6494 ctk_frame_set_shadow_type (CTK_FRAME (frame1)((((CtkFrame*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((frame1)), ((ctk_frame_get_type ()))))))
, CTK_SHADOW_IN);
6495
6496 vbox1 = ctk_box_new (CTK_ORIENTATION_VERTICAL, 0);
6497 ctk_container_add (CTK_CONTAINER (frame1)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((frame1)), ((ctk_container_get_type ()))))))
, vbox1);
6498
6499 button7 = ctk_button_new_with_label ("button7");
6500 ctk_box_pack_start (CTK_BOX (vbox1)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox1)), ((ctk_box_get_type ()))))))
, button7, FALSE(0), FALSE(0), 0);
6501
6502 button8 = ctk_button_new_with_label ("button8");
6503 ctk_box_pack_start (CTK_BOX (vbox1)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox1)), ((ctk_box_get_type ()))))))
, button8, FALSE(0), FALSE(0), 0);
6504
6505 button9 = ctk_button_new_with_label ("button9");
6506 ctk_box_pack_start (CTK_BOX (vbox1)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox1)), ((ctk_box_get_type ()))))))
, button9, FALSE(0), FALSE(0), 0);
6507
6508 vpaned1 = ctk_paned_new (CTK_ORIENTATION_VERTICAL);
6509 ctk_paned_pack2 (CTK_PANED (hpaned1)((((CtkPaned*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hpaned1)), ((ctk_paned_get_type ()))))))
, vpaned1, TRUE(!(0)), TRUE(!(0)));
6510
6511 frame2 = ctk_frame_new (NULL((void*)0));
6512 ctk_paned_pack1 (CTK_PANED (vpaned1)((((CtkPaned*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vpaned1)), ((ctk_paned_get_type ()))))))
, frame2, FALSE(0), TRUE(!(0)));
6513 ctk_frame_set_shadow_type (CTK_FRAME (frame2)((((CtkFrame*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((frame2)), ((ctk_frame_get_type ()))))))
, CTK_SHADOW_IN);
6514
6515 frame5 = ctk_frame_new (NULL((void*)0));
6516 ctk_container_add (CTK_CONTAINER (frame2)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((frame2)), ((ctk_container_get_type ()))))))
, frame5);
6517
6518 hbox1 = ctk_box_new (CTK_ORIENTATION_HORIZONTAL, 0);
6519 ctk_container_add (CTK_CONTAINER (frame5)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((frame5)), ((ctk_container_get_type ()))))))
, hbox1);
6520
6521 button5 = ctk_button_new_with_label ("button5");
6522 ctk_box_pack_start (CTK_BOX (hbox1)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hbox1)), ((ctk_box_get_type ()))))))
, button5, FALSE(0), FALSE(0), 0);
6523
6524 button6 = ctk_button_new_with_label ("button6");
6525 ctk_box_pack_start (CTK_BOX (hbox1)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hbox1)), ((ctk_box_get_type ()))))))
, button6, FALSE(0), FALSE(0), 0);
6526
6527 frame3 = ctk_frame_new (NULL((void*)0));
6528 ctk_paned_pack2 (CTK_PANED (vpaned1)((((CtkPaned*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vpaned1)), ((ctk_paned_get_type ()))))))
, frame3, TRUE(!(0)), TRUE(!(0)));
6529 ctk_frame_set_shadow_type (CTK_FRAME (frame3)((((CtkFrame*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((frame3)), ((ctk_frame_get_type ()))))))
, CTK_SHADOW_IN);
6530
6531 frame4 = ctk_frame_new ("Buttons");
6532 ctk_container_add (CTK_CONTAINER (frame3)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((frame3)), ((ctk_container_get_type ()))))))
, frame4);
6533 ctk_container_set_border_width (CTK_CONTAINER (frame4)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((frame4)), ((ctk_container_get_type ()))))))
, 15);
6534
6535 grid1 = ctk_grid_new ();
6536 ctk_container_add (CTK_CONTAINER (frame4)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((frame4)), ((ctk_container_get_type ()))))))
, grid1);
6537 ctk_container_set_border_width (CTK_CONTAINER (grid1)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((grid1)), ((ctk_container_get_type ()))))))
, 11);
6538
6539 button1 = ctk_button_new_with_label ("button1");
6540 ctk_grid_attach (CTK_GRID (grid1)((((CtkGrid*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((grid1)), ((ctk_grid_get_type ()))))))
, button1, 0, 0, 1, 1);
6541
6542 button2 = ctk_button_new_with_label ("button2");
6543 ctk_grid_attach (CTK_GRID (grid1)((((CtkGrid*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((grid1)), ((ctk_grid_get_type ()))))))
, button2, 1, 0, 1, 1);
6544
6545 button3 = ctk_button_new_with_label ("button3");
6546 ctk_grid_attach (CTK_GRID (grid1)((((CtkGrid*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((grid1)), ((ctk_grid_get_type ()))))))
, button3, 0, 1, 1, 1);
6547
6548 button4 = ctk_button_new_with_label ("button4");
6549 ctk_grid_attach (CTK_GRID (grid1)((((CtkGrid*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((grid1)), ((ctk_grid_get_type ()))))))
, button4, 1, 1, 1, 1);
6550
6551 return window1;
6552}
6553
6554static CtkWidget*
6555paned_keyboard_window2 (CtkWidget *widget)
6556{
6557 CtkWidget *window2;
6558 CtkWidget *hpaned2;
6559 CtkWidget *frame6;
6560 CtkWidget *button13;
6561 CtkWidget *hbox2;
6562 CtkWidget *vpaned2;
6563 CtkWidget *frame7;
6564 CtkWidget *button12;
6565 CtkWidget *frame8;
6566 CtkWidget *button11;
6567 CtkWidget *button10;
6568
6569 window2 = ctk_window_new (CTK_WINDOW_TOPLEVEL);
6570 ctk_window_set_title (CTK_WINDOW (window2)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window2)), ((ctk_window_get_type ()))))))
, "\"button 10\" is not inside the horisontal pane");
6571
6572 ctk_window_set_screen (CTK_WINDOW (window2)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window2)), ((ctk_window_get_type ()))))))
,
6573 ctk_widget_get_screen (widget));
6574
6575 hpaned2 = ctk_paned_new (CTK_ORIENTATION_HORIZONTAL);
6576 ctk_container_add (CTK_CONTAINER (window2)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window2)), ((ctk_container_get_type ()))))))
, hpaned2);
6577
6578 frame6 = ctk_frame_new (NULL((void*)0));
6579 ctk_paned_pack1 (CTK_PANED (hpaned2)((((CtkPaned*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hpaned2)), ((ctk_paned_get_type ()))))))
, frame6, FALSE(0), TRUE(!(0)));
6580 ctk_frame_set_shadow_type (CTK_FRAME (frame6)((((CtkFrame*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((frame6)), ((ctk_frame_get_type ()))))))
, CTK_SHADOW_IN);
6581
6582 button13 = ctk_button_new_with_label ("button13");
6583 ctk_container_add (CTK_CONTAINER (frame6)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((frame6)), ((ctk_container_get_type ()))))))
, button13);
6584
6585 hbox2 = ctk_box_new (CTK_ORIENTATION_HORIZONTAL, 0);
6586 ctk_paned_pack2 (CTK_PANED (hpaned2)((((CtkPaned*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hpaned2)), ((ctk_paned_get_type ()))))))
, hbox2, TRUE(!(0)), TRUE(!(0)));
6587
6588 vpaned2 = ctk_paned_new (CTK_ORIENTATION_VERTICAL);
6589 ctk_box_pack_start (CTK_BOX (hbox2)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hbox2)), ((ctk_box_get_type ()))))))
, vpaned2, TRUE(!(0)), TRUE(!(0)), 0);
6590
6591 frame7 = ctk_frame_new (NULL((void*)0));
6592 ctk_paned_pack1 (CTK_PANED (vpaned2)((((CtkPaned*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vpaned2)), ((ctk_paned_get_type ()))))))
, frame7, FALSE(0), TRUE(!(0)));
6593 ctk_frame_set_shadow_type (CTK_FRAME (frame7)((((CtkFrame*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((frame7)), ((ctk_frame_get_type ()))))))
, CTK_SHADOW_IN);
6594
6595 button12 = ctk_button_new_with_label ("button12");
6596 ctk_container_add (CTK_CONTAINER (frame7)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((frame7)), ((ctk_container_get_type ()))))))
, button12);
6597
6598 frame8 = ctk_frame_new (NULL((void*)0));
6599 ctk_paned_pack2 (CTK_PANED (vpaned2)((((CtkPaned*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vpaned2)), ((ctk_paned_get_type ()))))))
, frame8, TRUE(!(0)), TRUE(!(0)));
6600 ctk_frame_set_shadow_type (CTK_FRAME (frame8)((((CtkFrame*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((frame8)), ((ctk_frame_get_type ()))))))
, CTK_SHADOW_IN);
6601
6602 button11 = ctk_button_new_with_label ("button11");
6603 ctk_container_add (CTK_CONTAINER (frame8)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((frame8)), ((ctk_container_get_type ()))))))
, button11);
6604
6605 button10 = ctk_button_new_with_label ("button10");
6606 ctk_box_pack_start (CTK_BOX (hbox2)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hbox2)), ((ctk_box_get_type ()))))))
, button10, FALSE(0), FALSE(0), 0);
6607
6608 return window2;
6609}
6610
6611static CtkWidget*
6612paned_keyboard_window3 (CtkWidget *widget)
6613{
6614 CtkWidget *window3;
6615 CtkWidget *vbox2;
6616 CtkWidget *label1;
6617 CtkWidget *hpaned3;
6618 CtkWidget *frame9;
6619 CtkWidget *button14;
6620 CtkWidget *hpaned4;
6621 CtkWidget *frame10;
6622 CtkWidget *button15;
6623 CtkWidget *hpaned5;
6624 CtkWidget *frame11;
6625 CtkWidget *button16;
6626 CtkWidget *frame12;
6627 CtkWidget *button17;
6628
6629 window3 = ctk_window_new (CTK_WINDOW_TOPLEVEL);
6630 g_object_set_data (G_OBJECT (window3)((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window3)), (((GType) ((20) << (2))))))))
, "window3", window3);
6631 ctk_window_set_title (CTK_WINDOW (window3)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window3)), ((ctk_window_get_type ()))))))
, "Nested panes");
6632
6633 ctk_window_set_screen (CTK_WINDOW (window3)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window3)), ((ctk_window_get_type ()))))))
,
6634 ctk_widget_get_screen (widget));
6635
6636
6637 vbox2 = ctk_box_new (CTK_ORIENTATION_VERTICAL, 0);
6638 ctk_container_add (CTK_CONTAINER (window3)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window3)), ((ctk_container_get_type ()))))))
, vbox2);
6639
6640 label1 = ctk_label_new ("Three panes nested inside each other");
6641 ctk_box_pack_start (CTK_BOX (vbox2)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox2)), ((ctk_box_get_type ()))))))
, label1, FALSE(0), FALSE(0), 0);
6642
6643 hpaned3 = ctk_paned_new (CTK_ORIENTATION_HORIZONTAL);
6644 ctk_box_pack_start (CTK_BOX (vbox2)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox2)), ((ctk_box_get_type ()))))))
, hpaned3, TRUE(!(0)), TRUE(!(0)), 0);
6645
6646 frame9 = ctk_frame_new (NULL((void*)0));
6647 ctk_paned_pack1 (CTK_PANED (hpaned3)((((CtkPaned*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hpaned3)), ((ctk_paned_get_type ()))))))
, frame9, FALSE(0), TRUE(!(0)));
6648 ctk_frame_set_shadow_type (CTK_FRAME (frame9)((((CtkFrame*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((frame9)), ((ctk_frame_get_type ()))))))
, CTK_SHADOW_IN);
6649
6650 button14 = ctk_button_new_with_label ("button14");
6651 ctk_container_add (CTK_CONTAINER (frame9)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((frame9)), ((ctk_container_get_type ()))))))
, button14);
6652
6653 hpaned4 = ctk_paned_new (CTK_ORIENTATION_HORIZONTAL);
6654 ctk_paned_pack2 (CTK_PANED (hpaned3)((((CtkPaned*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hpaned3)), ((ctk_paned_get_type ()))))))
, hpaned4, TRUE(!(0)), TRUE(!(0)));
6655
6656 frame10 = ctk_frame_new (NULL((void*)0));
6657 ctk_paned_pack1 (CTK_PANED (hpaned4)((((CtkPaned*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hpaned4)), ((ctk_paned_get_type ()))))))
, frame10, FALSE(0), TRUE(!(0)));
6658 ctk_frame_set_shadow_type (CTK_FRAME (frame10)((((CtkFrame*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((frame10)), ((ctk_frame_get_type ()))))))
, CTK_SHADOW_IN);
6659
6660 button15 = ctk_button_new_with_label ("button15");
6661 ctk_container_add (CTK_CONTAINER (frame10)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((frame10)), ((ctk_container_get_type ()))))))
, button15);
6662
6663 hpaned5 = ctk_paned_new (CTK_ORIENTATION_HORIZONTAL);
6664 ctk_paned_pack2 (CTK_PANED (hpaned4)((((CtkPaned*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hpaned4)), ((ctk_paned_get_type ()))))))
, hpaned5, TRUE(!(0)), TRUE(!(0)));
6665
6666 frame11 = ctk_frame_new (NULL((void*)0));
6667 ctk_paned_pack1 (CTK_PANED (hpaned5)((((CtkPaned*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hpaned5)), ((ctk_paned_get_type ()))))))
, frame11, FALSE(0), TRUE(!(0)));
6668 ctk_frame_set_shadow_type (CTK_FRAME (frame11)((((CtkFrame*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((frame11)), ((ctk_frame_get_type ()))))))
, CTK_SHADOW_IN);
6669
6670 button16 = ctk_button_new_with_label ("button16");
6671 ctk_container_add (CTK_CONTAINER (frame11)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((frame11)), ((ctk_container_get_type ()))))))
, button16);
6672
6673 frame12 = ctk_frame_new (NULL((void*)0));
6674 ctk_paned_pack2 (CTK_PANED (hpaned5)((((CtkPaned*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hpaned5)), ((ctk_paned_get_type ()))))))
, frame12, TRUE(!(0)), TRUE(!(0)));
6675 ctk_frame_set_shadow_type (CTK_FRAME (frame12)((((CtkFrame*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((frame12)), ((ctk_frame_get_type ()))))))
, CTK_SHADOW_IN);
6676
6677 button17 = ctk_button_new_with_label ("button17");
6678 ctk_container_add (CTK_CONTAINER (frame12)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((frame12)), ((ctk_container_get_type ()))))))
, button17);
6679
6680 return window3;
6681}
6682
6683static CtkWidget*
6684paned_keyboard_window4 (CtkWidget *widget)
6685{
6686 CtkWidget *window4;
6687 CtkWidget *vbox3;
6688 CtkWidget *label2;
6689 CtkWidget *hpaned6;
6690 CtkWidget *vpaned3;
6691 CtkWidget *button19;
6692 CtkWidget *button18;
6693 CtkWidget *hbox3;
6694 CtkWidget *vpaned4;
6695 CtkWidget *button21;
6696 CtkWidget *button20;
6697 CtkWidget *vpaned5;
6698 CtkWidget *button23;
6699 CtkWidget *button22;
6700 CtkWidget *vpaned6;
6701 CtkWidget *button25;
6702 CtkWidget *button24;
6703
6704 window4 = ctk_window_new (CTK_WINDOW_TOPLEVEL);
6705 g_object_set_data (G_OBJECT (window4)((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window4)), (((GType) ((20) << (2))))))))
, "window4", window4);
6706 ctk_window_set_title (CTK_WINDOW (window4)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window4)), ((ctk_window_get_type ()))))))
, "window4");
6707
6708 ctk_window_set_screen (CTK_WINDOW (window4)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window4)), ((ctk_window_get_type ()))))))
,
6709 ctk_widget_get_screen (widget));
6710
6711 vbox3 = ctk_box_new (CTK_ORIENTATION_VERTICAL, 0);
6712 ctk_container_add (CTK_CONTAINER (window4)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window4)), ((ctk_container_get_type ()))))))
, vbox3);
6713
6714 label2 = ctk_label_new ("Widget tree:\n\nhpaned \n - vpaned\n - hbox\n - vpaned\n - vpaned\n - vpaned\n");
6715 ctk_box_pack_start (CTK_BOX (vbox3)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox3)), ((ctk_box_get_type ()))))))
, label2, FALSE(0), FALSE(0), 0);
6716 ctk_label_set_justify (CTK_LABEL (label2)((((CtkLabel*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((label2)), ((ctk_label_get_type ()))))))
, CTK_JUSTIFY_LEFT);
6717
6718 hpaned6 = ctk_paned_new (CTK_ORIENTATION_HORIZONTAL);
6719 ctk_box_pack_start (CTK_BOX (vbox3)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox3)), ((ctk_box_get_type ()))))))
, hpaned6, TRUE(!(0)), TRUE(!(0)), 0);
6720
6721 vpaned3 = ctk_paned_new (CTK_ORIENTATION_VERTICAL);
6722 ctk_paned_pack1 (CTK_PANED (hpaned6)((((CtkPaned*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hpaned6)), ((ctk_paned_get_type ()))))))
, vpaned3, FALSE(0), TRUE(!(0)));
6723
6724 button19 = ctk_button_new_with_label ("button19");
6725 ctk_paned_pack1 (CTK_PANED (vpaned3)((((CtkPaned*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vpaned3)), ((ctk_paned_get_type ()))))))
, button19, FALSE(0), TRUE(!(0)));
6726
6727 button18 = ctk_button_new_with_label ("button18");
6728 ctk_paned_pack2 (CTK_PANED (vpaned3)((((CtkPaned*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vpaned3)), ((ctk_paned_get_type ()))))))
, button18, TRUE(!(0)), TRUE(!(0)));
6729
6730 hbox3 = ctk_box_new (CTK_ORIENTATION_HORIZONTAL, 0);
6731 ctk_paned_pack2 (CTK_PANED (hpaned6)((((CtkPaned*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hpaned6)), ((ctk_paned_get_type ()))))))
, hbox3, TRUE(!(0)), TRUE(!(0)));
6732
6733 vpaned4 = ctk_paned_new (CTK_ORIENTATION_VERTICAL);
6734 ctk_box_pack_start (CTK_BOX (hbox3)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hbox3)), ((ctk_box_get_type ()))))))
, vpaned4, TRUE(!(0)), TRUE(!(0)), 0);
6735
6736 button21 = ctk_button_new_with_label ("button21");
6737 ctk_paned_pack1 (CTK_PANED (vpaned4)((((CtkPaned*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vpaned4)), ((ctk_paned_get_type ()))))))
, button21, FALSE(0), TRUE(!(0)));
6738
6739 button20 = ctk_button_new_with_label ("button20");
6740 ctk_paned_pack2 (CTK_PANED (vpaned4)((((CtkPaned*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vpaned4)), ((ctk_paned_get_type ()))))))
, button20, TRUE(!(0)), TRUE(!(0)));
6741
6742 vpaned5 = ctk_paned_new (CTK_ORIENTATION_VERTICAL);
6743 ctk_box_pack_start (CTK_BOX (hbox3)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hbox3)), ((ctk_box_get_type ()))))))
, vpaned5, TRUE(!(0)), TRUE(!(0)), 0);
6744
6745 button23 = ctk_button_new_with_label ("button23");
6746 ctk_paned_pack1 (CTK_PANED (vpaned5)((((CtkPaned*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vpaned5)), ((ctk_paned_get_type ()))))))
, button23, FALSE(0), TRUE(!(0)));
6747
6748 button22 = ctk_button_new_with_label ("button22");
6749 ctk_paned_pack2 (CTK_PANED (vpaned5)((((CtkPaned*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vpaned5)), ((ctk_paned_get_type ()))))))
, button22, TRUE(!(0)), TRUE(!(0)));
6750
6751 vpaned6 = ctk_paned_new (CTK_ORIENTATION_VERTICAL);
6752 ctk_box_pack_start (CTK_BOX (hbox3)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hbox3)), ((ctk_box_get_type ()))))))
, vpaned6, TRUE(!(0)), TRUE(!(0)), 0);
6753
6754 button25 = ctk_button_new_with_label ("button25");
6755 ctk_paned_pack1 (CTK_PANED (vpaned6)((((CtkPaned*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vpaned6)), ((ctk_paned_get_type ()))))))
, button25, FALSE(0), TRUE(!(0)));
6756
6757 button24 = ctk_button_new_with_label ("button24");
6758 ctk_paned_pack2 (CTK_PANED (vpaned6)((((CtkPaned*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vpaned6)), ((ctk_paned_get_type ()))))))
, button24, TRUE(!(0)), TRUE(!(0)));
6759
6760 return window4;
6761}
6762
6763static void
6764create_paned_keyboard_navigation (CtkWidget *widget)
6765{
6766 static CtkWidget *window1 = NULL((void*)0);
6767 static CtkWidget *window2 = NULL((void*)0);
6768 static CtkWidget *window3 = NULL((void*)0);
6769 static CtkWidget *window4 = NULL((void*)0);
6770
6771 if (window1 &&
6772 (ctk_widget_get_screen (window1) != ctk_widget_get_screen (widget)))
6773 {
6774 ctk_widget_destroy (window1);
6775 ctk_widget_destroy (window2);
6776 ctk_widget_destroy (window3);
6777 ctk_widget_destroy (window4);
6778 }
6779
6780 if (!window1)
6781 {
6782 window1 = paned_keyboard_window1 (widget);
6783 g_signal_connect (window1, "destroy",g_signal_connect_data ((window1), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window1), ((void*)0), (GConnectFlags
) 0)
6784 G_CALLBACK (ctk_widget_destroyed),g_signal_connect_data ((window1), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window1), ((void*)0), (GConnectFlags
) 0)
6785 &window1)g_signal_connect_data ((window1), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window1), ((void*)0), (GConnectFlags
) 0)
;
6786 }
6787
6788 if (!window2)
6789 {
6790 window2 = paned_keyboard_window2 (widget);
6791 g_signal_connect (window2, "destroy",g_signal_connect_data ((window2), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window2), ((void*)0), (GConnectFlags
) 0)
6792 G_CALLBACK (ctk_widget_destroyed),g_signal_connect_data ((window2), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window2), ((void*)0), (GConnectFlags
) 0)
6793 &window2)g_signal_connect_data ((window2), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window2), ((void*)0), (GConnectFlags
) 0)
;
6794 }
6795
6796 if (!window3)
6797 {
6798 window3 = paned_keyboard_window3 (widget);
6799 g_signal_connect (window3, "destroy",g_signal_connect_data ((window3), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window3), ((void*)0), (GConnectFlags
) 0)
6800 G_CALLBACK (ctk_widget_destroyed),g_signal_connect_data ((window3), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window3), ((void*)0), (GConnectFlags
) 0)
6801 &window3)g_signal_connect_data ((window3), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window3), ((void*)0), (GConnectFlags
) 0)
;
6802 }
6803
6804 if (!window4)
6805 {
6806 window4 = paned_keyboard_window4 (widget);
6807 g_signal_connect (window4, "destroy",g_signal_connect_data ((window4), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window4), ((void*)0), (GConnectFlags
) 0)
6808 G_CALLBACK (ctk_widget_destroyed),g_signal_connect_data ((window4), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window4), ((void*)0), (GConnectFlags
) 0)
6809 &window4)g_signal_connect_data ((window4), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window4), ((void*)0), (GConnectFlags
) 0)
;
6810 }
6811
6812 if (ctk_widget_get_visible (window1))
6813 ctk_widget_destroy (CTK_WIDGET (window1)((((CtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window1)), ((ctk_widget_get_type ()))))))
);
6814 else
6815 ctk_widget_show_all (CTK_WIDGET (window1)((((CtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window1)), ((ctk_widget_get_type ()))))))
);
6816
6817 if (ctk_widget_get_visible (window2))
6818 ctk_widget_destroy (CTK_WIDGET (window2)((((CtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window2)), ((ctk_widget_get_type ()))))))
);
6819 else
6820 ctk_widget_show_all (CTK_WIDGET (window2)((((CtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window2)), ((ctk_widget_get_type ()))))))
);
6821
6822 if (ctk_widget_get_visible (window3))
6823 ctk_widget_destroy (CTK_WIDGET (window3)((((CtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window3)), ((ctk_widget_get_type ()))))))
);
6824 else
6825 ctk_widget_show_all (CTK_WIDGET (window3)((((CtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window3)), ((ctk_widget_get_type ()))))))
);
6826
6827 if (ctk_widget_get_visible (window4))
6828 ctk_widget_destroy (CTK_WIDGET (window4)((((CtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window4)), ((ctk_widget_get_type ()))))))
);
6829 else
6830 ctk_widget_show_all (CTK_WIDGET (window4)((((CtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window4)), ((ctk_widget_get_type ()))))))
);
6831}
6832
6833
6834/*
6835 * Shaped Windows
6836 */
6837
6838typedef struct _cursoroffset {gint x,y;} CursorOffset;
6839
6840static void
6841shape_pressed (CtkWidget *widget, CdkEventButton *event)
6842{
6843 CursorOffset *p;
6844
6845 /* ignore double and triple click */
6846 if (event->type != CDK_BUTTON_PRESS)
6847 return;
6848
6849 p = g_object_get_data (G_OBJECT (widget)((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((widget)), (((GType) ((20) << (2))))))))
, "cursor_offset");
6850 p->x = (int) event->x;
6851 p->y = (int) event->y;
6852
6853 ctk_grab_add (widget);
6854 cdk_seat_grab (cdk_event_get_seat ((CdkEvent *) event),
6855 ctk_widget_get_window (widget),
6856 CDK_SEAT_CAPABILITY_ALL_POINTING,
6857 TRUE(!(0)), NULL((void*)0), (CdkEvent *) event, NULL((void*)0), NULL((void*)0));
6858}
6859
6860static void
6861shape_released (CtkWidget *widget,
6862 CdkEventButton *event)
6863{
6864 ctk_grab_remove (widget);
6865 cdk_seat_ungrab (cdk_event_get_seat ((CdkEvent *) event));
6866}
6867
6868static void
6869shape_motion (CtkWidget *widget,
6870 CdkEventMotion *event)
6871{
6872 gint xp, yp;
6873 CursorOffset * p;
6874
6875 p = g_object_get_data (G_OBJECT (widget)((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((widget)), (((GType) ((20) << (2))))))))
, "cursor_offset");
6876
6877 /*
6878 * Can't use event->x / event->y here
6879 * because I need absolute coordinates.
6880 */
6881 cdk_window_get_device_position (cdk_screen_get_root_window (ctk_widget_get_screen (widget)),
6882 cdk_event_get_device ((CdkEvent *) event),
6883 &xp, &yp, NULL((void*)0));
6884 ctk_window_move (CTK_WINDOW (widget)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((widget)), ((ctk_window_get_type ()))))))
, xp - p->x, yp - p->y);
6885}
6886
6887CtkWidget *
6888shape_create_icon (CdkScreen *screen,
6889 char *xpm_file,
6890 gint x,
6891 gint y,
6892 gint px,
6893 gint py,
6894 gint window_type)
6895{
6896 CtkWidget *window;
6897 CtkWidget *image;
6898 CtkWidget *fixed;
6899 CursorOffset* icon_pos;
6900 cairo_surface_t *mask;
6901 cairo_region_t *mask_region;
6902 GdkPixbuf *pixbuf;
6903 cairo_t *cr;
6904
6905 /*
6906 * CDK_WINDOW_TOPLEVEL works also, giving you a title border
6907 */
6908 window = ctk_window_new (window_type);
6909 ctk_window_set_screen (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
, screen);
6910
6911 fixed = ctk_fixed_new ();
6912 ctk_widget_set_size_request (fixed, 100, 100);
6913 ctk_container_add (CTK_CONTAINER (window)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_container_get_type ()))))))
, fixed);
6914 ctk_widget_show (fixed);
6915
6916 ctk_widget_set_events (window,
6917 ctk_widget_get_events (window) |
6918 CDK_BUTTON_MOTION_MASK |
6919 CDK_BUTTON_PRESS_MASK);
6920
6921 ctk_widget_realize (window);
6922
6923 pixbuf = gdk_pixbuf_new_from_file (xpm_file, NULL((void*)0));
6924 g_assert (pixbuf)do { if (pixbuf) ; else g_assertion_message_expr (((gchar*) 0
), "testctk.c", 6924, ((const char*) (__func__)), "pixbuf"); }
while (0)
; /* FIXME: error handling */
6925
6926 mask = cairo_image_surface_create (CAIRO_FORMAT_A1,
6927 gdk_pixbuf_get_width (pixbuf),
6928 gdk_pixbuf_get_height (pixbuf));
6929 cr = cairo_create (mask);
6930 cdk_cairo_set_source_pixbuf (cr, pixbuf, 0, 0);
6931 cairo_paint (cr);
6932 cairo_destroy (cr);
6933
6934 mask_region = cdk_cairo_region_create_from_surface (mask);
6935
6936 cairo_region_translate (mask_region, px, py);
6937
6938 image = ctk_image_new_from_pixbuf (pixbuf);
6939 ctk_fixed_put (CTK_FIXED (fixed)((((CtkFixed*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((fixed)), ((ctk_fixed_get_type ()))))))
, image, px,py);
6940 ctk_widget_show (image);
6941
6942 ctk_widget_shape_combine_region (window, mask_region);
6943
6944 cairo_region_destroy (mask_region);
6945 cairo_surface_destroy (mask);
6946 g_object_unref (pixbuf);
6947
6948 g_signal_connect (window, "button_press_event",g_signal_connect_data ((window), ("button_press_event"), (((GCallback
) (shape_pressed))), (((void*)0)), ((void*)0), (GConnectFlags
) 0)
6949 G_CALLBACK (shape_pressed), NULL)g_signal_connect_data ((window), ("button_press_event"), (((GCallback
) (shape_pressed))), (((void*)0)), ((void*)0), (GConnectFlags
) 0)
;
6950 g_signal_connect (window, "button_release_event",g_signal_connect_data ((window), ("button_release_event"), ((
(GCallback) (shape_released))), (((void*)0)), ((void*)0), (GConnectFlags
) 0)
6951 G_CALLBACK (shape_released), NULL)g_signal_connect_data ((window), ("button_release_event"), ((
(GCallback) (shape_released))), (((void*)0)), ((void*)0), (GConnectFlags
) 0)
;
6952 g_signal_connect (window, "motion_notify_event",g_signal_connect_data ((window), ("motion_notify_event"), (((
GCallback) (shape_motion))), (((void*)0)), ((void*)0), (GConnectFlags
) 0)
6953 G_CALLBACK (shape_motion), NULL)g_signal_connect_data ((window), ("motion_notify_event"), (((
GCallback) (shape_motion))), (((void*)0)), ((void*)0), (GConnectFlags
) 0)
;
6954
6955 icon_pos = g_new (CursorOffset, 1)((CursorOffset *) g_malloc_n ((1), sizeof (CursorOffset)));
6956 g_object_set_data (G_OBJECT (window)((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), (((GType) ((20) << (2))))))))
, "cursor_offset", icon_pos);
6957
6958 ctk_window_move (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
, x, y);
6959 ctk_widget_show (window);
6960
6961 return window;
6962}
6963
6964void
6965create_shapes (CtkWidget *widget)
6966{
6967 /* Variables used by the Drag/Drop and Shape Window demos */
6968 static CtkWidget *modeller = NULL((void*)0);
6969 static CtkWidget *sheets = NULL((void*)0);
6970 static CtkWidget *rings = NULL((void*)0);
6971 static CtkWidget *with_region = NULL((void*)0);
6972 CdkScreen *screen = ctk_widget_get_screen (widget);
6973
6974 if (!(file_exists ("Modeller.xpm") &&
6975 file_exists ("FilesQueue.xpm") &&
6976 file_exists ("3DRings.xpm")))
6977 return;
6978
6979
6980 if (!modeller)
6981 {
6982 modeller = shape_create_icon (screen, "Modeller.xpm",
6983 440, 140, 0,0, CTK_WINDOW_POPUP);
6984
6985 g_signal_connect (modeller, "destroy",g_signal_connect_data ((modeller), ("destroy"), (((GCallback)
(ctk_widget_destroyed))), (&modeller), ((void*)0), (GConnectFlags
) 0)
6986 G_CALLBACK (ctk_widget_destroyed),g_signal_connect_data ((modeller), ("destroy"), (((GCallback)
(ctk_widget_destroyed))), (&modeller), ((void*)0), (GConnectFlags
) 0)
6987 &modeller)g_signal_connect_data ((modeller), ("destroy"), (((GCallback)
(ctk_widget_destroyed))), (&modeller), ((void*)0), (GConnectFlags
) 0)
;
6988 }
6989 else
6990 ctk_widget_destroy (modeller);
6991
6992 if (!sheets)
6993 {
6994 sheets = shape_create_icon (screen, "FilesQueue.xpm",
6995 580, 170, 0,0, CTK_WINDOW_POPUP);
6996
6997 g_signal_connect (sheets, "destroy",g_signal_connect_data ((sheets), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&sheets), ((void*)0), (GConnectFlags
) 0)
6998 G_CALLBACK (ctk_widget_destroyed),g_signal_connect_data ((sheets), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&sheets), ((void*)0), (GConnectFlags
) 0)
6999 &sheets)g_signal_connect_data ((sheets), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&sheets), ((void*)0), (GConnectFlags
) 0)
;
7000
7001 }
7002 else
7003 ctk_widget_destroy (sheets);
7004
7005 if (!rings)
7006 {
7007 rings = shape_create_icon (screen, "3DRings.xpm",
7008 460, 270, 25,25, CTK_WINDOW_TOPLEVEL);
7009
7010 g_signal_connect (rings, "destroy",g_signal_connect_data ((rings), ("destroy"), (((GCallback) (ctk_widget_destroyed
))), (&rings), ((void*)0), (GConnectFlags) 0)
7011 G_CALLBACK (ctk_widget_destroyed),g_signal_connect_data ((rings), ("destroy"), (((GCallback) (ctk_widget_destroyed
))), (&rings), ((void*)0), (GConnectFlags) 0)
7012 &rings)g_signal_connect_data ((rings), ("destroy"), (((GCallback) (ctk_widget_destroyed
))), (&rings), ((void*)0), (GConnectFlags) 0)
;
7013 }
7014 else
7015 ctk_widget_destroy (rings);
7016
7017 if (!with_region)
7018 {
7019 cairo_region_t *region;
7020 gint x, y;
7021
7022 with_region = shape_create_icon (screen, "3DRings.xpm",
7023 460, 270, 25,25, CTK_WINDOW_TOPLEVEL);
7024
7025 ctk_window_set_decorated (CTK_WINDOW (with_region)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((with_region)), ((ctk_window_get_type ()))))))
, FALSE(0));
7026
7027 g_signal_connect (with_region, "destroy",g_signal_connect_data ((with_region), ("destroy"), (((GCallback
) (ctk_widget_destroyed))), (&with_region), ((void*)0), (
GConnectFlags) 0)
7028 G_CALLBACK (ctk_widget_destroyed),g_signal_connect_data ((with_region), ("destroy"), (((GCallback
) (ctk_widget_destroyed))), (&with_region), ((void*)0), (
GConnectFlags) 0)
7029 &with_region)g_signal_connect_data ((with_region), ("destroy"), (((GCallback
) (ctk_widget_destroyed))), (&with_region), ((void*)0), (
GConnectFlags) 0)
;
7030
7031 /* reset shape from mask to a region */
7032 x = 0;
7033 y = 0;
7034 region = cairo_region_create ();
7035
7036 while (x < 460)
7037 {
7038 while (y < 270)
7039 {
7040 CdkRectangle rect;
7041 rect.x = x;
7042 rect.y = y;
7043 rect.width = 10;
7044 rect.height = 10;
7045
7046 cairo_region_union_rectangle (region, &rect);
7047
7048 y += 20;
7049 }
7050 y = 0;
7051 x += 20;
7052 }
7053
7054 cdk_window_shape_combine_region (ctk_widget_get_window (with_region),
7055 region,
7056 0, 0);
7057 }
7058 else
7059 ctk_widget_destroy (with_region);
7060}
7061
7062/*
7063 * WM Hints demo
7064 */
7065
7066void
7067create_wmhints (CtkWidget *widget)
7068{
7069 static CtkWidget *window = NULL((void*)0);
7070
7071 if (!window)
7072 {
7073 CtkWidget *label;
7074 CtkWidget *separator;
7075 CtkWidget *button;
7076 CtkWidget *box1;
7077 CtkWidget *box2;
7078 CdkWindow *cdk_window;
7079 GdkPixbuf *pixbuf;
7080 GList *list;
7081
7082 window = ctk_window_new (CTK_WINDOW_TOPLEVEL);
7083
7084 ctk_window_set_screen (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
,
7085 ctk_widget_get_screen (widget));
7086
7087 g_signal_connect (window, "destroy",g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
7088 G_CALLBACK (ctk_widget_destroyed),g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
7089 &window)g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
;
7090
7091 ctk_window_set_title (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
, "WM Hints");
7092 ctk_container_set_border_width (CTK_CONTAINER (window)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_container_get_type ()))))))
, 0);
7093
7094 ctk_widget_realize (window);
7095
7096 cdk_window = ctk_widget_get_window (window);
7097
7098 pixbuf = gdk_pixbuf_new_from_xpm_data ((const char **) openfile);
7099 list = g_list_prepend (NULL((void*)0), pixbuf);
7100
7101 cdk_window_set_icon_list (cdk_window, list);
7102
7103 g_list_free (list);
7104 g_object_unref (pixbuf);
7105
7106 cdk_window_set_icon_name (cdk_window, "WMHints Test Icon");
7107
7108 cdk_window_set_decorations (cdk_window, CDK_DECOR_ALL | CDK_DECOR_MENU);
7109 cdk_window_set_functions (cdk_window, CDK_FUNC_ALL | CDK_FUNC_RESIZE);
7110
7111 box1 = ctk_box_new (CTK_ORIENTATION_VERTICAL, 0);
7112 ctk_container_add (CTK_CONTAINER (window)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_container_get_type ()))))))
, box1);
7113 ctk_widget_show (box1);
7114
7115 label = ctk_label_new ("Try iconizing me!");
7116 ctk_widget_set_size_request (label, 150, 50);
7117 ctk_box_pack_start (CTK_BOX (box1)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box1)), ((ctk_box_get_type ()))))))
, label, TRUE(!(0)), TRUE(!(0)), 0);
7118 ctk_widget_show (label);
7119
7120
7121 separator = ctk_separator_new (CTK_ORIENTATION_HORIZONTAL);
7122 ctk_box_pack_start (CTK_BOX (box1)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box1)), ((ctk_box_get_type ()))))))
, separator, FALSE(0), TRUE(!(0)), 0);
7123 ctk_widget_show (separator);
7124
7125
7126 box2 = ctk_box_new (CTK_ORIENTATION_VERTICAL, 10);
7127 ctk_container_set_border_width (CTK_CONTAINER (box2)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_container_get_type ()))))))
, 10);
7128 ctk_box_pack_start (CTK_BOX (box1)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box1)), ((ctk_box_get_type ()))))))
, box2, FALSE(0), TRUE(!(0)), 0);
7129 ctk_widget_show (box2);
7130
7131
7132 button = ctk_button_new_with_label ("close");
7133
7134 g_signal_connect_swapped (button, "clicked",g_signal_connect_data ((button), ("clicked"), (((GCallback) (
ctk_widget_destroy))), (window), ((void*)0), G_CONNECT_SWAPPED
)
7135 G_CALLBACK (ctk_widget_destroy),g_signal_connect_data ((button), ("clicked"), (((GCallback) (
ctk_widget_destroy))), (window), ((void*)0), G_CONNECT_SWAPPED
)
7136 window)g_signal_connect_data ((button), ("clicked"), (((GCallback) (
ctk_widget_destroy))), (window), ((void*)0), G_CONNECT_SWAPPED
)
;
7137
7138 ctk_box_pack_start (CTK_BOX (box2)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_box_get_type ()))))))
, button, TRUE(!(0)), TRUE(!(0)), 0);
7139 ctk_widget_set_can_default (button, TRUE(!(0)));
7140 ctk_widget_grab_default (button);
7141 ctk_widget_show (button);
7142 }
7143
7144 if (!ctk_widget_get_visible (window))
7145 ctk_widget_show (window);
7146 else
7147 ctk_widget_destroy (window);
7148}
7149
7150
7151/*
7152 * Window state tracking
7153 */
7154
7155static gint
7156window_state_callback (CtkWidget *widget,
7157 CdkEventWindowState *event,
7158 gpointer data)
7159{
7160 CtkWidget *label = data;
7161 gchar *msg;
7162
7163 msg = g_strconcat (ctk_window_get_title (CTK_WINDOW (widget)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((widget)), ((ctk_window_get_type ()))))))
), ": ",
7164 (event->new_window_state & CDK_WINDOW_STATE_WITHDRAWN) ?
7165 "withdrawn" : "not withdrawn", ", ",
7166 (event->new_window_state & CDK_WINDOW_STATE_ICONIFIED) ?
7167 "iconified" : "not iconified", ", ",
7168 (event->new_window_state & CDK_WINDOW_STATE_STICKY) ?
7169 "sticky" : "not sticky", ", ",
7170 (event->new_window_state & CDK_WINDOW_STATE_MAXIMIZED) ?
7171 "maximized" : "not maximized", ", ",
7172 (event->new_window_state & CDK_WINDOW_STATE_FULLSCREEN) ?
7173 "fullscreen" : "not fullscreen",
7174 (event->new_window_state & CDK_WINDOW_STATE_ABOVE) ?
7175 "above" : "not above", ", ",
7176 (event->new_window_state & CDK_WINDOW_STATE_BELOW) ?
7177 "below" : "not below", ", ",
7178 NULL((void*)0));
7179
7180 ctk_label_set_text (CTK_LABEL (label)((((CtkLabel*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((label)), ((ctk_label_get_type ()))))))
, msg);
7181
7182 g_free (msg);
7183
7184 return FALSE(0);
7185}
7186
7187static CtkWidget*
7188tracking_label (CtkWidget *window)
7189{
7190 CtkWidget *label;
7191 CtkWidget *hbox;
7192 CtkWidget *button;
7193
7194 hbox = ctk_box_new (CTK_ORIENTATION_HORIZONTAL, 5);
7195
7196 g_signal_connect_object (hbox,
7197 "destroy",
7198 G_CALLBACK (ctk_widget_destroy)((GCallback) (ctk_widget_destroy)),
7199 window,
7200 G_CONNECT_SWAPPED);
7201
7202 label = ctk_label_new ("<no window state events received>");
7203 ctk_label_set_line_wrap (CTK_LABEL (label)((((CtkLabel*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((label)), ((ctk_label_get_type ()))))))
, TRUE(!(0)));
7204 ctk_box_pack_start (CTK_BOX (hbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hbox)), ((ctk_box_get_type ()))))))
, label, FALSE(0), FALSE(0), 0);
7205
7206 g_signal_connect (window,g_signal_connect_data ((window), ("window_state_event"), (((GCallback
) (window_state_callback))), (label), ((void*)0), (GConnectFlags
) 0)
7207 "window_state_event",g_signal_connect_data ((window), ("window_state_event"), (((GCallback
) (window_state_callback))), (label), ((void*)0), (GConnectFlags
) 0)
7208 G_CALLBACK (window_state_callback),g_signal_connect_data ((window), ("window_state_event"), (((GCallback
) (window_state_callback))), (label), ((void*)0), (GConnectFlags
) 0)
7209 label)g_signal_connect_data ((window), ("window_state_event"), (((GCallback
) (window_state_callback))), (label), ((void*)0), (GConnectFlags
) 0)
;
7210
7211 button = ctk_button_new_with_label ("Deiconify");
7212 g_signal_connect_object (button,
7213 "clicked",
7214 G_CALLBACK (ctk_window_deiconify)((GCallback) (ctk_window_deiconify)),
7215 window,
7216 G_CONNECT_SWAPPED);
7217 ctk_box_pack_end (CTK_BOX (hbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hbox)), ((ctk_box_get_type ()))))))
, button, FALSE(0), FALSE(0), 0);
7218
7219 button = ctk_button_new_with_label ("Iconify");
7220 g_signal_connect_object (button,
7221 "clicked",
7222 G_CALLBACK (ctk_window_iconify)((GCallback) (ctk_window_iconify)),
7223 window,
7224 G_CONNECT_SWAPPED);
7225 ctk_box_pack_end (CTK_BOX (hbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hbox)), ((ctk_box_get_type ()))))))
, button, FALSE(0), FALSE(0), 0);
7226
7227 button = ctk_button_new_with_label ("Fullscreen");
7228 g_signal_connect_object (button,
7229 "clicked",
7230 G_CALLBACK (ctk_window_fullscreen)((GCallback) (ctk_window_fullscreen)),
7231 window,
7232 G_CONNECT_SWAPPED);
7233 ctk_box_pack_end (CTK_BOX (hbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hbox)), ((ctk_box_get_type ()))))))
, button, FALSE(0), FALSE(0), 0);
7234
7235 button = ctk_button_new_with_label ("Unfullscreen");
7236 g_signal_connect_object (button,
7237 "clicked",
7238 G_CALLBACK (ctk_window_unfullscreen)((GCallback) (ctk_window_unfullscreen)),
7239 window,
7240 G_CONNECT_SWAPPED);
7241 ctk_box_pack_end (CTK_BOX (hbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hbox)), ((ctk_box_get_type ()))))))
, button, FALSE(0), FALSE(0), 0);
7242
7243 button = ctk_button_new_with_label ("Present");
7244 g_signal_connect_object (button,
7245 "clicked",
7246 G_CALLBACK (ctk_window_present)((GCallback) (ctk_window_present)),
7247 window,
7248 G_CONNECT_SWAPPED);
7249 ctk_box_pack_end (CTK_BOX (hbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hbox)), ((ctk_box_get_type ()))))))
, button, FALSE(0), FALSE(0), 0);
7250
7251 button = ctk_button_new_with_label ("Show");
7252 g_signal_connect_object (button,
7253 "clicked",
7254 G_CALLBACK (ctk_widget_show)((GCallback) (ctk_widget_show)),
7255 window,
7256 G_CONNECT_SWAPPED);
7257 ctk_box_pack_end (CTK_BOX (hbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hbox)), ((ctk_box_get_type ()))))))
, button, FALSE(0), FALSE(0), 0);
7258
7259 ctk_widget_show_all (hbox);
7260
7261 return hbox;
7262}
7263
7264void
7265keep_window_above (CtkToggleButton *togglebutton, gpointer data)
7266{
7267 CtkWidget *button = g_object_get_data (G_OBJECT (togglebutton)((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((togglebutton)), (((GType) ((20) << (2))))))))
, "radio");
7268
7269 ctk_window_set_keep_above (CTK_WINDOW (data)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((data)), ((ctk_window_get_type ()))))))
,
7270 ctk_toggle_button_get_active (togglebutton));
7271
7272 if (ctk_toggle_button_get_active (togglebutton))
7273 ctk_toggle_button_set_active (CTK_TOGGLE_BUTTON (button)((((CtkToggleButton*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((button)), ((ctk_toggle_button_get_type ()))))))
, FALSE(0));
7274}
7275
7276void
7277keep_window_below (CtkToggleButton *togglebutton, gpointer data)
7278{
7279 CtkWidget *button = g_object_get_data (G_OBJECT (togglebutton)((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((togglebutton)), (((GType) ((20) << (2))))))))
, "radio");
7280
7281 ctk_window_set_keep_below (CTK_WINDOW (data)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((data)), ((ctk_window_get_type ()))))))
,
7282 ctk_toggle_button_get_active (togglebutton));
7283
7284 if (ctk_toggle_button_get_active (togglebutton))
7285 ctk_toggle_button_set_active (CTK_TOGGLE_BUTTON (button)((((CtkToggleButton*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((button)), ((ctk_toggle_button_get_type ()))))))
, FALSE(0));
7286}
7287
7288
7289static CtkWidget*
7290get_state_controls (CtkWidget *window)
7291{
7292 CtkWidget *vbox;
7293 CtkWidget *button;
7294 CtkWidget *button_above;
7295 CtkWidget *button_below;
7296
7297 vbox = ctk_box_new (CTK_ORIENTATION_VERTICAL, 0);
7298
7299 button = ctk_button_new_with_label ("Stick");
7300 g_signal_connect_object (button,
7301 "clicked",
7302 G_CALLBACK (ctk_window_stick)((GCallback) (ctk_window_stick)),
7303 window,
7304 G_CONNECT_SWAPPED);
7305 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);
7306
7307 button = ctk_button_new_with_label ("Unstick");
7308 g_signal_connect_object (button,
7309 "clicked",
7310 G_CALLBACK (ctk_window_unstick)((GCallback) (ctk_window_unstick)),
7311 window,
7312 G_CONNECT_SWAPPED);
7313 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);
7314
7315 button = ctk_button_new_with_label ("Maximize");
7316 g_signal_connect_object (button,
7317 "clicked",
7318 G_CALLBACK (ctk_window_maximize)((GCallback) (ctk_window_maximize)),
7319 window,
7320 G_CONNECT_SWAPPED);
7321 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);
7322
7323 button = ctk_button_new_with_label ("Unmaximize");
7324 g_signal_connect_object (button,
7325 "clicked",
7326 G_CALLBACK (ctk_window_unmaximize)((GCallback) (ctk_window_unmaximize)),
7327 window,
7328 G_CONNECT_SWAPPED);
7329 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);
7330
7331 button = ctk_button_new_with_label ("Iconify");
7332 g_signal_connect_object (button,
7333 "clicked",
7334 G_CALLBACK (ctk_window_iconify)((GCallback) (ctk_window_iconify)),
7335 window,
7336 G_CONNECT_SWAPPED);
7337 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);
7338
7339 button = ctk_button_new_with_label ("Fullscreen");
7340 g_signal_connect_object (button,
7341 "clicked",
7342 G_CALLBACK (ctk_window_fullscreen)((GCallback) (ctk_window_fullscreen)),
7343 window,
7344 G_CONNECT_SWAPPED);
7345 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);
7346
7347 button = ctk_button_new_with_label ("Unfullscreen");
7348 g_signal_connect_object (button,
7349 "clicked",
7350 G_CALLBACK (ctk_window_unfullscreen)((GCallback) (ctk_window_unfullscreen)),
7351 window,
7352 G_CONNECT_SWAPPED);
7353 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);
7354
7355 button_above = ctk_toggle_button_new_with_label ("Keep above");
7356 g_signal_connect (button_above,g_signal_connect_data ((button_above), ("toggled"), (((GCallback
) (keep_window_above))), (window), ((void*)0), (GConnectFlags
) 0)
7357 "toggled",g_signal_connect_data ((button_above), ("toggled"), (((GCallback
) (keep_window_above))), (window), ((void*)0), (GConnectFlags
) 0)
7358 G_CALLBACK (keep_window_above),g_signal_connect_data ((button_above), ("toggled"), (((GCallback
) (keep_window_above))), (window), ((void*)0), (GConnectFlags
) 0)
7359 window)g_signal_connect_data ((button_above), ("toggled"), (((GCallback
) (keep_window_above))), (window), ((void*)0), (GConnectFlags
) 0)
;
7360 ctk_box_pack_start (CTK_BOX (vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_box_get_type ()))))))
, button_above, FALSE(0), FALSE(0), 0);
7361
7362 button_below = ctk_toggle_button_new_with_label ("Keep below");
7363 g_signal_connect (button_below,g_signal_connect_data ((button_below), ("toggled"), (((GCallback
) (keep_window_below))), (window), ((void*)0), (GConnectFlags
) 0)
7364 "toggled",g_signal_connect_data ((button_below), ("toggled"), (((GCallback
) (keep_window_below))), (window), ((void*)0), (GConnectFlags
) 0)
7365 G_CALLBACK (keep_window_below),g_signal_connect_data ((button_below), ("toggled"), (((GCallback
) (keep_window_below))), (window), ((void*)0), (GConnectFlags
) 0)
7366 window)g_signal_connect_data ((button_below), ("toggled"), (((GCallback
) (keep_window_below))), (window), ((void*)0), (GConnectFlags
) 0)
;
7367 ctk_box_pack_start (CTK_BOX (vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_box_get_type ()))))))
, button_below, FALSE(0), FALSE(0), 0);
7368
7369 g_object_set_data (G_OBJECT (button_above)((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((button_above)), (((GType) ((20) << (2))))))))
, "radio", button_below);
7370 g_object_set_data (G_OBJECT (button_below)((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((button_below)), (((GType) ((20) << (2))))))))
, "radio", button_above);
7371
7372 button = ctk_button_new_with_label ("Hide (withdraw)");
7373 g_signal_connect_object (button,
7374 "clicked",
7375 G_CALLBACK (ctk_widget_hide)((GCallback) (ctk_widget_hide)),
7376 window,
7377 G_CONNECT_SWAPPED);
7378 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);
7379
7380 ctk_widget_show_all (vbox);
7381
7382 return vbox;
7383}
7384
7385void
7386create_window_states (CtkWidget *widget)
7387{
7388 static CtkWidget *window = NULL((void*)0);
7389
7390 if (!window)
7391 {
7392 CtkWidget *label;
7393 CtkWidget *box1;
7394 CtkWidget *iconified;
7395 CtkWidget *normal;
7396 CtkWidget *controls;
7397
7398 window = ctk_window_new (CTK_WINDOW_TOPLEVEL);
7399 ctk_window_set_screen (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
,
7400 ctk_widget_get_screen (widget));
7401
7402 g_signal_connect (window, "destroy",g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
7403 G_CALLBACK (ctk_widget_destroyed),g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
7404 &window)g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
;
7405
7406 ctk_window_set_title (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
, "Window states");
7407
7408 box1 = ctk_box_new (CTK_ORIENTATION_VERTICAL, 0);
7409 ctk_container_add (CTK_CONTAINER (window)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_container_get_type ()))))))
, box1);
7410
7411 iconified = ctk_window_new (CTK_WINDOW_TOPLEVEL);
7412
7413 ctk_window_set_screen (CTK_WINDOW (iconified)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((iconified)), ((ctk_window_get_type ()))))))
,
7414 ctk_widget_get_screen (widget));
7415
7416 g_signal_connect_object (iconified, "destroy",
7417 G_CALLBACK (ctk_widget_destroy)((GCallback) (ctk_widget_destroy)),
7418 window,
7419 G_CONNECT_SWAPPED);
7420 ctk_window_iconify (CTK_WINDOW (iconified)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((iconified)), ((ctk_window_get_type ()))))))
);
7421 ctk_window_set_title (CTK_WINDOW (iconified)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((iconified)), ((ctk_window_get_type ()))))))
, "Iconified initially");
7422 controls = get_state_controls (iconified);
7423 ctk_container_add (CTK_CONTAINER (iconified)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((iconified)), ((ctk_container_get_type ()))))))
, controls);
7424
7425 normal = ctk_window_new (CTK_WINDOW_TOPLEVEL);
7426
7427 ctk_window_set_screen (CTK_WINDOW (normal)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((normal)), ((ctk_window_get_type ()))))))
,
7428 ctk_widget_get_screen (widget));
7429
7430 g_signal_connect_object (normal, "destroy",
7431 G_CALLBACK (ctk_widget_destroy)((GCallback) (ctk_widget_destroy)),
7432 window,
7433 G_CONNECT_SWAPPED);
7434
7435 ctk_window_set_title (CTK_WINDOW (normal)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((normal)), ((ctk_window_get_type ()))))))
, "Deiconified initially");
7436 controls = get_state_controls (normal);
7437 ctk_container_add (CTK_CONTAINER (normal)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((normal)), ((ctk_container_get_type ()))))))
, controls);
7438
7439 label = tracking_label (iconified);
7440 ctk_container_add (CTK_CONTAINER (box1)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box1)), ((ctk_container_get_type ()))))))
, label);
7441
7442 label = tracking_label (normal);
7443 ctk_container_add (CTK_CONTAINER (box1)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box1)), ((ctk_container_get_type ()))))))
, label);
7444
7445 ctk_widget_show_all (iconified);
7446 ctk_widget_show_all (normal);
7447 ctk_widget_show_all (box1);
7448 }
7449
7450 if (!ctk_widget_get_visible (window))
7451 ctk_widget_show (window);
7452 else
7453 ctk_widget_destroy (window);
7454}
7455
7456/*
7457 * Window sizing
7458 */
7459
7460static gint
7461configure_event_callback (CtkWidget *widget,
7462 CdkEventConfigure *event,
7463 gpointer data)
7464{
7465 CtkWidget *label = data;
7466 gchar *msg;
7467 gint x, y;
7468
7469 ctk_window_get_position (CTK_WINDOW (widget)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((widget)), ((ctk_window_get_type ()))))))
, &x, &y);
7470
7471 msg = g_strdup_printf ("event: %d,%d %d x %d\n"
7472 "position: %d, %d",
7473 event->x, event->y, event->width, event->height,
7474 x, y);
7475
7476 ctk_label_set_text (CTK_LABEL (label)((((CtkLabel*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((label)), ((ctk_label_get_type ()))))))
, msg);
7477
7478 g_free (msg);
7479
7480 return FALSE(0);
7481}
7482
7483static void
7484get_ints (CtkWidget *window,
7485 gint *a,
7486 gint *b)
7487{
7488 CtkWidget *spin1;
7489 CtkWidget *spin2;
7490
7491 spin1 = g_object_get_data (G_OBJECT (window)((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), (((GType) ((20) << (2))))))))
, "spin1");
7492 spin2 = g_object_get_data (G_OBJECT (window)((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), (((GType) ((20) << (2))))))))
, "spin2");
7493
7494 *a = ctk_spin_button_get_value_as_int (CTK_SPIN_BUTTON (spin1)((((CtkSpinButton*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((spin1)), ((ctk_spin_button_get_type ()))))))
);
7495 *b = ctk_spin_button_get_value_as_int (CTK_SPIN_BUTTON (spin2)((((CtkSpinButton*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((spin2)), ((ctk_spin_button_get_type ()))))))
);
7496}
7497
7498static void
7499set_size_callback (CtkWidget *widget,
7500 gpointer data)
7501{
7502 gint w, h;
7503
7504 get_ints (data, &w, &h);
7505
7506 ctk_window_resize (CTK_WINDOW (g_object_get_data (data, "target"))((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((g_object_get_data (data, "target"))), ((ctk_window_get_type
()))))))
, w, h);
7507}
7508
7509static void
7510unset_default_size_callback (CtkWidget *widget,
7511 gpointer data)
7512{
7513 ctk_window_set_default_size (g_object_get_data (data, "target"),
7514 -1, -1);
7515}
7516
7517static void
7518set_default_size_callback (CtkWidget *widget,
7519 gpointer data)
7520{
7521 gint w, h;
7522
7523 get_ints (data, &w, &h);
7524
7525 ctk_window_set_default_size (g_object_get_data (data, "target"),
7526 w, h);
7527}
7528
7529static void
7530unset_size_request_callback (CtkWidget *widget,
7531 gpointer data)
7532{
7533 ctk_widget_set_size_request (g_object_get_data (data, "target"),
7534 -1, -1);
7535}
7536
7537static void
7538set_size_request_callback (CtkWidget *widget,
7539 gpointer data)
7540{
7541 gint w, h;
7542
7543 get_ints (data, &w, &h);
7544
7545 ctk_widget_set_size_request (g_object_get_data (data, "target"),
7546 w, h);
7547}
7548
7549static void
7550set_location_callback (CtkWidget *widget,
7551 gpointer data)
7552{
7553 gint x, y;
7554
7555 get_ints (data, &x, &y);
7556
7557 ctk_window_move (g_object_get_data (data, "target"), x, y);
7558}
7559
7560static void
7561move_to_position_callback (CtkWidget *widget,
7562 gpointer data)
7563{
7564 gint x, y;
7565 CtkWindow *window;
7566
7567 window = g_object_get_data (data, "target");
7568
7569 ctk_window_get_position (window, &x, &y);
7570
7571 ctk_window_move (window, x, y);
7572}
7573
7574static void
7575set_geometry_callback (CtkWidget *entry,
7576 gpointer data)
7577{
7578 gchar *text;
7579 CtkWindow *target;
7580
7581 target = CTK_WINDOW (g_object_get_data (G_OBJECT (data), "target"))((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((g_object_get_data (((((GObject*) (void *) g_type_check_instance_cast
((GTypeInstance*) ((data)), (((GType) ((20) << (2)))))
))), "target"))), ((ctk_window_get_type ()))))))
;
7582
7583 text = ctk_editable_get_chars (CTK_EDITABLE (entry)((((CtkEditable*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((entry)), ((ctk_editable_get_type ()))))))
, 0, -1);
7584
7585 if (!ctk_window_parse_geometry (target, text))
7586 g_print ("Bad geometry string '%s'\n", text);
7587
7588 g_free (text);
7589}
7590
7591static void
7592resizable_callback (CtkWidget *widget,
7593 gpointer data)
7594{
7595 g_object_set (g_object_get_data (data, "target"),
7596 "resizable", ctk_toggle_button_get_active (CTK_TOGGLE_BUTTON (widget)((((CtkToggleButton*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((widget)), ((ctk_toggle_button_get_type ()))))))
),
7597 NULL((void*)0));
7598}
7599
7600static void
7601gravity_selected (CtkWidget *widget,
7602 gpointer data)
7603{
7604 ctk_window_set_gravity (CTK_WINDOW (g_object_get_data (data, "target"))((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((g_object_get_data (data, "target"))), ((ctk_window_get_type
()))))))
,
7605 ctk_combo_box_get_active (CTK_COMBO_BOX (widget)((((CtkComboBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((widget)), ((ctk_combo_box_get_type ()))))))
) + CDK_GRAVITY_NORTH_WEST);
7606}
7607
7608static void
7609pos_selected (CtkWidget *widget,
7610 gpointer data)
7611{
7612 ctk_window_set_position (CTK_WINDOW (g_object_get_data (data, "target"))((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((g_object_get_data (data, "target"))), ((ctk_window_get_type
()))))))
,
7613 ctk_combo_box_get_active (CTK_COMBO_BOX (widget)((((CtkComboBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((widget)), ((ctk_combo_box_get_type ()))))))
) + CTK_WIN_POS_NONE);
7614}
7615
7616static void
7617move_gravity_window_to_current_position (CtkWidget *widget,
7618 gpointer data)
7619{
7620 gint x, y;
7621 CtkWindow *window;
7622
7623 window = CTK_WINDOW (data)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((data)), ((ctk_window_get_type ()))))))
;
7624
7625 ctk_window_get_position (window, &x, &y);
7626
7627 ctk_window_move (window, x, y);
7628}
7629
7630static void
7631get_screen_corner (CtkWindow *window,
7632 gint *x,
7633 gint *y)
7634{
7635 int w, h;
7636 CdkScreen * screen = ctk_window_get_screen (window);
7637
7638 ctk_window_get_size (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
, &w, &h);
7639
7640 switch (ctk_window_get_gravity (window))
7641 {
7642 case CDK_GRAVITY_SOUTH_EAST:
7643 *x = cdk_screen_get_width (screen) - w;
7644 *y = cdk_screen_get_height (screen) - h;
7645 break;
7646
7647 case CDK_GRAVITY_NORTH_EAST:
7648 *x = cdk_screen_get_width (screen) - w;
7649 *y = 0;
7650 break;
7651
7652 case CDK_GRAVITY_SOUTH_WEST:
7653 *x = 0;
7654 *y = cdk_screen_get_height (screen) - h;
7655 break;
7656
7657 case CDK_GRAVITY_NORTH_WEST:
7658 *x = 0;
7659 *y = 0;
7660 break;
7661
7662 case CDK_GRAVITY_SOUTH:
7663 *x = (cdk_screen_get_width (screen) - w) / 2;
7664 *y = cdk_screen_get_height (screen) - h;
7665 break;
7666
7667 case CDK_GRAVITY_NORTH:
7668 *x = (cdk_screen_get_width (screen) - w) / 2;
7669 *y = 0;
7670 break;
7671
7672 case CDK_GRAVITY_WEST:
7673 *x = 0;
7674 *y = (cdk_screen_get_height (screen) - h) / 2;
7675 break;
7676
7677 case CDK_GRAVITY_EAST:
7678 *x = cdk_screen_get_width (screen) - w;
7679 *y = (cdk_screen_get_height (screen) - h) / 2;
7680 break;
7681
7682 case CDK_GRAVITY_CENTER:
7683 *x = (cdk_screen_get_width (screen) - w) / 2;
7684 *y = (cdk_screen_get_height (screen) - h) / 2;
7685 break;
7686
7687 case CDK_GRAVITY_STATIC:
7688 /* pick some random numbers */
7689 *x = 350;
7690 *y = 350;
7691 break;
7692
7693 default:
7694 g_assert_not_reached ()do { g_assertion_message_expr (((gchar*) 0), "testctk.c", 7694
, ((const char*) (__func__)), ((void*)0)); } while (0)
;
7695 break;
7696 }
7697}
7698
7699static void
7700move_gravity_window_to_starting_position (CtkWidget *widget,
7701 gpointer data)
7702{
7703 gint x, y;
7704 CtkWindow *window;
7705
7706 window = CTK_WINDOW (data)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((data)), ((ctk_window_get_type ()))))))
;
7707
7708 get_screen_corner (window,
7709 &x, &y);
7710
7711 ctk_window_move (window, x, y);
7712}
7713
7714static CtkWidget*
7715make_gravity_window (CtkWidget *destroy_with,
7716 CdkGravity gravity,
7717 const gchar *title)
7718{
7719 CtkWidget *window;
7720 CtkWidget *button;
7721 CtkWidget *vbox;
7722 int x, y;
7723
7724 window = ctk_window_new (CTK_WINDOW_TOPLEVEL);
7725
7726 ctk_window_set_screen (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
,
7727 ctk_widget_get_screen (destroy_with));
7728
7729 vbox = ctk_box_new (CTK_ORIENTATION_VERTICAL, 0);
7730 ctk_widget_show (vbox);
7731
7732 ctk_container_add (CTK_CONTAINER (window)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_container_get_type ()))))))
, vbox);
7733 ctk_window_set_title (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
, title);
7734 ctk_window_set_gravity (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
, gravity);
7735
7736 g_signal_connect_object (destroy_with,
7737 "destroy",
7738 G_CALLBACK (ctk_widget_destroy)((GCallback) (ctk_widget_destroy)),
7739 window,
7740 G_CONNECT_SWAPPED);
7741
7742
7743 button = ctk_button_new_with_mnemonic ("_Move to current position");
7744
7745 g_signal_connect (button, "clicked",g_signal_connect_data ((button), ("clicked"), (((GCallback) (
move_gravity_window_to_current_position))), (window), ((void*
)0), (GConnectFlags) 0)
7746 G_CALLBACK (move_gravity_window_to_current_position),g_signal_connect_data ((button), ("clicked"), (((GCallback) (
move_gravity_window_to_current_position))), (window), ((void*
)0), (GConnectFlags) 0)
7747 window)g_signal_connect_data ((button), ("clicked"), (((GCallback) (
move_gravity_window_to_current_position))), (window), ((void*
)0), (GConnectFlags) 0)
;
7748
7749 ctk_container_add (CTK_CONTAINER (vbox)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_container_get_type ()))))))
, button);
7750 ctk_widget_show (button);
7751
7752 button = ctk_button_new_with_mnemonic ("Move to _starting position");
7753
7754 g_signal_connect (button, "clicked",g_signal_connect_data ((button), ("clicked"), (((GCallback) (
move_gravity_window_to_starting_position))), (window), ((void
*)0), (GConnectFlags) 0)
7755 G_CALLBACK (move_gravity_window_to_starting_position),g_signal_connect_data ((button), ("clicked"), (((GCallback) (
move_gravity_window_to_starting_position))), (window), ((void
*)0), (GConnectFlags) 0)
7756 window)g_signal_connect_data ((button), ("clicked"), (((GCallback) (
move_gravity_window_to_starting_position))), (window), ((void
*)0), (GConnectFlags) 0)
;
7757
7758 ctk_container_add (CTK_CONTAINER (vbox)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_container_get_type ()))))))
, button);
7759 ctk_widget_show (button);
7760
7761 /* Pretend this is the result of --geometry.
7762 * DO NOT COPY THIS CODE unless you are setting --geometry results,
7763 * and in that case you probably should just use ctk_window_parse_geometry().
7764 * AGAIN, DO NOT SET CDK_HINT_USER_POS! It violates the ICCCM unless
7765 * you are parsing --geometry or equivalent.
7766 */
7767 ctk_window_set_geometry_hints (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
,
7768 NULL((void*)0), NULL((void*)0),
7769 CDK_HINT_USER_POS);
7770
7771 ctk_window_set_default_size (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
,
7772 200, 200);
7773
7774 get_screen_corner (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
, &x, &y);
7775
7776 ctk_window_move (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
,
7777 x, y);
7778
7779 return window;
7780}
7781
7782static void
7783do_gravity_test (CtkWidget *widget,
7784 gpointer data)
7785{
7786 CtkWidget *destroy_with = data;
7787 CtkWidget *window;
7788
7789 /* We put a window at each gravity point on the screen. */
7790 window = make_gravity_window (destroy_with, CDK_GRAVITY_NORTH_WEST,
7791 "NorthWest");
7792 ctk_widget_show (window);
7793
7794 window = make_gravity_window (destroy_with, CDK_GRAVITY_SOUTH_EAST,
7795 "SouthEast");
7796 ctk_widget_show (window);
7797
7798 window = make_gravity_window (destroy_with, CDK_GRAVITY_NORTH_EAST,
7799 "NorthEast");
7800 ctk_widget_show (window);
7801
7802 window = make_gravity_window (destroy_with, CDK_GRAVITY_SOUTH_WEST,
7803 "SouthWest");
7804 ctk_widget_show (window);
7805
7806 window = make_gravity_window (destroy_with, CDK_GRAVITY_SOUTH,
7807 "South");
7808 ctk_widget_show (window);
7809
7810 window = make_gravity_window (destroy_with, CDK_GRAVITY_NORTH,
7811 "North");
7812 ctk_widget_show (window);
7813
7814
7815 window = make_gravity_window (destroy_with, CDK_GRAVITY_WEST,
7816 "West");
7817 ctk_widget_show (window);
7818
7819
7820 window = make_gravity_window (destroy_with, CDK_GRAVITY_EAST,
7821 "East");
7822 ctk_widget_show (window);
7823
7824 window = make_gravity_window (destroy_with, CDK_GRAVITY_CENTER,
7825 "Center");
7826 ctk_widget_show (window);
7827
7828 window = make_gravity_window (destroy_with, CDK_GRAVITY_STATIC,
7829 "Static");
7830 ctk_widget_show (window);
7831}
7832
7833static CtkWidget*
7834window_controls (CtkWidget *window)
7835{
7836 CtkWidget *control_window;
7837 CtkWidget *label;
7838 CtkWidget *vbox;
7839 CtkWidget *button;
7840 CtkWidget *spin;
7841 CtkAdjustment *adjustment;
7842 CtkWidget *entry;
7843 CtkWidget *om;
7844 gint i;
7845
7846 control_window = ctk_window_new (CTK_WINDOW_TOPLEVEL);
7847
7848 ctk_window_set_screen (CTK_WINDOW (control_window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((control_window)), ((ctk_window_get_type ()))))))
,
7849 ctk_widget_get_screen (window));
7850
7851 ctk_window_set_title (CTK_WINDOW (control_window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((control_window)), ((ctk_window_get_type ()))))))
, "Size controls");
7852
7853 g_object_set_data (G_OBJECT (control_window)((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((control_window)), (((GType) ((20) << (2))))))))
,
7854 "target",
7855 window);
7856
7857 g_signal_connect_object (control_window,
7858 "destroy",
7859 G_CALLBACK (ctk_widget_destroy)((GCallback) (ctk_widget_destroy)),
7860 window,
7861 G_CONNECT_SWAPPED);
7862
7863 vbox = ctk_box_new (CTK_ORIENTATION_VERTICAL, 5);
7864
7865 ctk_container_add (CTK_CONTAINER (control_window)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((control_window)), ((ctk_container_get_type ()))))))
, vbox);
7866
7867 label = ctk_label_new ("<no configure events>");
7868 ctk_box_pack_start (CTK_BOX (vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_box_get_type ()))))))
, label, FALSE(0), FALSE(0), 0);
7869
7870 g_signal_connect (window,g_signal_connect_data ((window), ("configure_event"), (((GCallback
) (configure_event_callback))), (label), ((void*)0), (GConnectFlags
) 0)
7871 "configure_event",g_signal_connect_data ((window), ("configure_event"), (((GCallback
) (configure_event_callback))), (label), ((void*)0), (GConnectFlags
) 0)
7872 G_CALLBACK (configure_event_callback),g_signal_connect_data ((window), ("configure_event"), (((GCallback
) (configure_event_callback))), (label), ((void*)0), (GConnectFlags
) 0)
7873 label)g_signal_connect_data ((window), ("configure_event"), (((GCallback
) (configure_event_callback))), (label), ((void*)0), (GConnectFlags
) 0)
;
7874
7875 adjustment = ctk_adjustment_new (10.0, -2000.0, 2000.0, 1.0, 5.0, 0.0);
7876 spin = ctk_spin_button_new (adjustment, 0, 0);
7877
7878 ctk_box_pack_start (CTK_BOX (vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_box_get_type ()))))))
, spin, FALSE(0), FALSE(0), 0);
7879
7880 g_object_set_data (G_OBJECT (control_window)((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((control_window)), (((GType) ((20) << (2))))))))
, "spin1", spin);
7881
7882 adjustment = ctk_adjustment_new (10.0, -2000.0, 2000.0, 1.0, 5.0, 0.0);
7883 spin = ctk_spin_button_new (adjustment, 0, 0);
7884
7885 ctk_box_pack_start (CTK_BOX (vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_box_get_type ()))))))
, spin, FALSE(0), FALSE(0), 0);
7886
7887 g_object_set_data (G_OBJECT (control_window)((((GObject*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((control_window)), (((GType) ((20) << (2))))))))
, "spin2", spin);
7888
7889 entry = ctk_entry_new ();
7890 ctk_box_pack_start (CTK_BOX (vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_box_get_type ()))))))
, entry, FALSE(0), FALSE(0), 0);
7891
7892 g_signal_connect (entry, "changed",g_signal_connect_data ((entry), ("changed"), (((GCallback) (set_geometry_callback
))), (control_window), ((void*)0), (GConnectFlags) 0)
7893 G_CALLBACK (set_geometry_callback),g_signal_connect_data ((entry), ("changed"), (((GCallback) (set_geometry_callback
))), (control_window), ((void*)0), (GConnectFlags) 0)
7894 control_window)g_signal_connect_data ((entry), ("changed"), (((GCallback) (set_geometry_callback
))), (control_window), ((void*)0), (GConnectFlags) 0)
;
7895
7896 button = ctk_button_new_with_label ("Show gravity test windows");
7897 g_signal_connect_swapped (button,g_signal_connect_data ((button), ("clicked"), (((GCallback) (
do_gravity_test))), (control_window), ((void*)0), G_CONNECT_SWAPPED
)
7898 "clicked",g_signal_connect_data ((button), ("clicked"), (((GCallback) (
do_gravity_test))), (control_window), ((void*)0), G_CONNECT_SWAPPED
)
7899 G_CALLBACK (do_gravity_test),g_signal_connect_data ((button), ("clicked"), (((GCallback) (
do_gravity_test))), (control_window), ((void*)0), G_CONNECT_SWAPPED
)
7900 control_window)g_signal_connect_data ((button), ("clicked"), (((GCallback) (
do_gravity_test))), (control_window), ((void*)0), G_CONNECT_SWAPPED
)
;
7901 ctk_box_pack_end (CTK_BOX (vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_box_get_type ()))))))
, button, FALSE(0), FALSE(0), 0);
7902
7903 G_GNUC_BEGIN_IGNORE_DEPRECATIONSclang diagnostic push clang diagnostic ignored "-Wdeprecated-declarations"
;
7904 button = ctk_button_new_with_label ("Reshow with initial size");
7905 g_signal_connect_object (button,
7906 "clicked",
7907 G_CALLBACK (ctk_window_reshow_with_initial_size)((GCallback) (ctk_window_reshow_with_initial_size)),
7908 window,
7909 G_CONNECT_SWAPPED);
7910 ctk_box_pack_end (CTK_BOX (vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_box_get_type ()))))))
, button, FALSE(0), FALSE(0), 0);
7911 G_GNUC_END_IGNORE_DEPRECATIONSclang diagnostic pop ;
7912
7913 button = ctk_button_new_with_label ("Queue resize");
7914 g_signal_connect_object (button,
7915 "clicked",
7916 G_CALLBACK (ctk_widget_queue_resize)((GCallback) (ctk_widget_queue_resize)),
7917 window,
7918 G_CONNECT_SWAPPED);
7919 ctk_box_pack_end (CTK_BOX (vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_box_get_type ()))))))
, button, FALSE(0), FALSE(0), 0);
7920
7921 button = ctk_button_new_with_label ("Resize");
7922 g_signal_connect (button,g_signal_connect_data ((button), ("clicked"), (((GCallback) (
set_size_callback))), (control_window), ((void*)0), (GConnectFlags
) 0)
7923 "clicked",g_signal_connect_data ((button), ("clicked"), (((GCallback) (
set_size_callback))), (control_window), ((void*)0), (GConnectFlags
) 0)
7924 G_CALLBACK (set_size_callback),g_signal_connect_data ((button), ("clicked"), (((GCallback) (
set_size_callback))), (control_window), ((void*)0), (GConnectFlags
) 0)
7925 control_window)g_signal_connect_data ((button), ("clicked"), (((GCallback) (
set_size_callback))), (control_window), ((void*)0), (GConnectFlags
) 0)
;
7926 ctk_box_pack_end (CTK_BOX (vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_box_get_type ()))))))
, button, FALSE(0), FALSE(0), 0);
7927
7928 button = ctk_button_new_with_label ("Set default size");
7929 g_signal_connect (button,g_signal_connect_data ((button), ("clicked"), (((GCallback) (
set_default_size_callback))), (control_window), ((void*)0), (
GConnectFlags) 0)
7930 "clicked",g_signal_connect_data ((button), ("clicked"), (((GCallback) (
set_default_size_callback))), (control_window), ((void*)0), (
GConnectFlags) 0)
7931 G_CALLBACK (set_default_size_callback),g_signal_connect_data ((button), ("clicked"), (((GCallback) (
set_default_size_callback))), (control_window), ((void*)0), (
GConnectFlags) 0)
7932 control_window)g_signal_connect_data ((button), ("clicked"), (((GCallback) (
set_default_size_callback))), (control_window), ((void*)0), (
GConnectFlags) 0)
;
7933 ctk_box_pack_end (CTK_BOX (vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_box_get_type ()))))))
, button, FALSE(0), FALSE(0), 0);
7934
7935 button = ctk_button_new_with_label ("Unset default size");
7936 g_signal_connect (button,g_signal_connect_data ((button), ("clicked"), (((GCallback) (
unset_default_size_callback))), (control_window), ((void*)0),
(GConnectFlags) 0)
7937 "clicked",g_signal_connect_data ((button), ("clicked"), (((GCallback) (
unset_default_size_callback))), (control_window), ((void*)0),
(GConnectFlags) 0)
7938 G_CALLBACK (unset_default_size_callback),g_signal_connect_data ((button), ("clicked"), (((GCallback) (
unset_default_size_callback))), (control_window), ((void*)0),
(GConnectFlags) 0)
7939 control_window)g_signal_connect_data ((button), ("clicked"), (((GCallback) (
unset_default_size_callback))), (control_window), ((void*)0),
(GConnectFlags) 0)
;
7940 ctk_box_pack_end (CTK_BOX (vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_box_get_type ()))))))
, button, FALSE(0), FALSE(0), 0);
7941
7942 button = ctk_button_new_with_label ("Set size request");
7943 g_signal_connect (button,g_signal_connect_data ((button), ("clicked"), (((GCallback) (
set_size_request_callback))), (control_window), ((void*)0), (
GConnectFlags) 0)
7944 "clicked",g_signal_connect_data ((button), ("clicked"), (((GCallback) (
set_size_request_callback))), (control_window), ((void*)0), (
GConnectFlags) 0)
7945 G_CALLBACK (set_size_request_callback),g_signal_connect_data ((button), ("clicked"), (((GCallback) (
set_size_request_callback))), (control_window), ((void*)0), (
GConnectFlags) 0)
7946 control_window)g_signal_connect_data ((button), ("clicked"), (((GCallback) (
set_size_request_callback))), (control_window), ((void*)0), (
GConnectFlags) 0)
;
7947 ctk_box_pack_end (CTK_BOX (vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_box_get_type ()))))))
, button, FALSE(0), FALSE(0), 0);
7948
7949 button = ctk_button_new_with_label ("Unset size request");
7950 g_signal_connect (button,g_signal_connect_data ((button), ("clicked"), (((GCallback) (
unset_size_request_callback))), (control_window), ((void*)0),
(GConnectFlags) 0)
7951 "clicked",g_signal_connect_data ((button), ("clicked"), (((GCallback) (
unset_size_request_callback))), (control_window), ((void*)0),
(GConnectFlags) 0)
7952 G_CALLBACK (unset_size_request_callback),g_signal_connect_data ((button), ("clicked"), (((GCallback) (
unset_size_request_callback))), (control_window), ((void*)0),
(GConnectFlags) 0)
7953 control_window)g_signal_connect_data ((button), ("clicked"), (((GCallback) (
unset_size_request_callback))), (control_window), ((void*)0),
(GConnectFlags) 0)
;
7954 ctk_box_pack_end (CTK_BOX (vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_box_get_type ()))))))
, button, FALSE(0), FALSE(0), 0);
7955
7956 button = ctk_button_new_with_label ("Move");
7957 g_signal_connect (button,g_signal_connect_data ((button), ("clicked"), (((GCallback) (
set_location_callback))), (control_window), ((void*)0), (GConnectFlags
) 0)
7958 "clicked",g_signal_connect_data ((button), ("clicked"), (((GCallback) (
set_location_callback))), (control_window), ((void*)0), (GConnectFlags
) 0)
7959 G_CALLBACK (set_location_callback),g_signal_connect_data ((button), ("clicked"), (((GCallback) (
set_location_callback))), (control_window), ((void*)0), (GConnectFlags
) 0)
7960 control_window)g_signal_connect_data ((button), ("clicked"), (((GCallback) (
set_location_callback))), (control_window), ((void*)0), (GConnectFlags
) 0)
;
7961 ctk_box_pack_end (CTK_BOX (vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_box_get_type ()))))))
, button, FALSE(0), FALSE(0), 0);
7962
7963 button = ctk_button_new_with_label ("Move to current position");
7964 g_signal_connect (button,g_signal_connect_data ((button), ("clicked"), (((GCallback) (
move_to_position_callback))), (control_window), ((void*)0), (
GConnectFlags) 0)
7965 "clicked",g_signal_connect_data ((button), ("clicked"), (((GCallback) (
move_to_position_callback))), (control_window), ((void*)0), (
GConnectFlags) 0)
7966 G_CALLBACK (move_to_position_callback),g_signal_connect_data ((button), ("clicked"), (((GCallback) (
move_to_position_callback))), (control_window), ((void*)0), (
GConnectFlags) 0)
7967 control_window)g_signal_connect_data ((button), ("clicked"), (((GCallback) (
move_to_position_callback))), (control_window), ((void*)0), (
GConnectFlags) 0)
;
7968 ctk_box_pack_end (CTK_BOX (vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_box_get_type ()))))))
, button, FALSE(0), FALSE(0), 0);
7969
7970 button = ctk_check_button_new_with_label ("Allow resize");
7971 ctk_toggle_button_set_active (CTK_TOGGLE_BUTTON (button)((((CtkToggleButton*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((button)), ((ctk_toggle_button_get_type ()))))))
, TRUE(!(0)));
7972 g_signal_connect (button,g_signal_connect_data ((button), ("toggled"), (((GCallback) (
resizable_callback))), (control_window), ((void*)0), (GConnectFlags
) 0)
7973 "toggled",g_signal_connect_data ((button), ("toggled"), (((GCallback) (
resizable_callback))), (control_window), ((void*)0), (GConnectFlags
) 0)
7974 G_CALLBACK (resizable_callback),g_signal_connect_data ((button), ("toggled"), (((GCallback) (
resizable_callback))), (control_window), ((void*)0), (GConnectFlags
) 0)
7975 control_window)g_signal_connect_data ((button), ("toggled"), (((GCallback) (
resizable_callback))), (control_window), ((void*)0), (GConnectFlags
) 0)
;
7976 ctk_box_pack_end (CTK_BOX (vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_box_get_type ()))))))
, button, FALSE(0), FALSE(0), 0);
7977
7978 button = ctk_button_new_with_mnemonic ("_Show");
7979 g_signal_connect_object (button,
7980 "clicked",
7981 G_CALLBACK (ctk_widget_show)((GCallback) (ctk_widget_show)),
7982 window,
7983 G_CONNECT_SWAPPED);
7984 ctk_box_pack_end (CTK_BOX (vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_box_get_type ()))))))
, button, FALSE(0), FALSE(0), 0);
7985
7986 button = ctk_button_new_with_mnemonic ("_Hide");
7987 g_signal_connect_object (button,
7988 "clicked",
7989 G_CALLBACK (ctk_widget_hide)((GCallback) (ctk_widget_hide)),
7990 window,
7991 G_CONNECT_SWAPPED);
7992 ctk_box_pack_end (CTK_BOX (vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_box_get_type ()))))))
, button, FALSE(0), FALSE(0), 0);
7993
7994 om = ctk_combo_box_text_new ();
7995 i = 0;
7996 while (i < 10)
7997 {
7998 static gchar *names[] = {
7999 "CDK_GRAVITY_NORTH_WEST",
8000 "CDK_GRAVITY_NORTH",
8001 "CDK_GRAVITY_NORTH_EAST",
8002 "CDK_GRAVITY_WEST",
8003 "CDK_GRAVITY_CENTER",
8004 "CDK_GRAVITY_EAST",
8005 "CDK_GRAVITY_SOUTH_WEST",
8006 "CDK_GRAVITY_SOUTH",
8007 "CDK_GRAVITY_SOUTH_EAST",
8008 "CDK_GRAVITY_STATIC",
8009 NULL((void*)0)
8010 };
8011
8012 g_assert (names[i])do { if (names[i]) ; else g_assertion_message_expr (((gchar*)
0), "testctk.c", 8012, ((const char*) (__func__)), "names[i]"
); } while (0)
;
8013 ctk_combo_box_text_append_text (CTK_COMBO_BOX_TEXT (om)((((CtkComboBoxText*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((om)), ((ctk_combo_box_text_get_type ()))))))
, names[i]);
8014
8015 ++i;
8016 }
8017
8018 g_signal_connect (om,g_signal_connect_data ((om), ("changed"), (((GCallback) (gravity_selected
))), (control_window), ((void*)0), (GConnectFlags) 0)
8019 "changed",g_signal_connect_data ((om), ("changed"), (((GCallback) (gravity_selected
))), (control_window), ((void*)0), (GConnectFlags) 0)
8020 G_CALLBACK (gravity_selected),g_signal_connect_data ((om), ("changed"), (((GCallback) (gravity_selected
))), (control_window), ((void*)0), (GConnectFlags) 0)
8021 control_window)g_signal_connect_data ((om), ("changed"), (((GCallback) (gravity_selected
))), (control_window), ((void*)0), (GConnectFlags) 0)
;
8022
8023 ctk_box_pack_end (CTK_BOX (vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_box_get_type ()))))))
, om, FALSE(0), FALSE(0), 0);
8024
8025
8026 om = ctk_combo_box_text_new ();
8027 i = 0;
8028 while (i < 5)
8029 {
8030 static gchar *names[] = {
8031 "CTK_WIN_POS_NONE",
8032 "CTK_WIN_POS_CENTER",
8033 "CTK_WIN_POS_MOUSE",
8034 "CTK_WIN_POS_CENTER_ALWAYS",
8035 "CTK_WIN_POS_CENTER_ON_PARENT",
8036 NULL((void*)0)
8037 };
8038
8039 g_assert (names[i])do { if (names[i]) ; else g_assertion_message_expr (((gchar*)
0), "testctk.c", 8039, ((const char*) (__func__)), "names[i]"
); } while (0)
;
8040 ctk_combo_box_text_append_text (CTK_COMBO_BOX_TEXT (om)((((CtkComboBoxText*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((om)), ((ctk_combo_box_text_get_type ()))))))
, names[i]);
8041
8042 ++i;
8043 }
8044
8045 g_signal_connect (om,g_signal_connect_data ((om), ("changed"), (((GCallback) (pos_selected
))), (control_window), ((void*)0), (GConnectFlags) 0)
8046 "changed",g_signal_connect_data ((om), ("changed"), (((GCallback) (pos_selected
))), (control_window), ((void*)0), (GConnectFlags) 0)
8047 G_CALLBACK (pos_selected),g_signal_connect_data ((om), ("changed"), (((GCallback) (pos_selected
))), (control_window), ((void*)0), (GConnectFlags) 0)
8048 control_window)g_signal_connect_data ((om), ("changed"), (((GCallback) (pos_selected
))), (control_window), ((void*)0), (GConnectFlags) 0)
;
8049
8050 ctk_box_pack_end (CTK_BOX (vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_box_get_type ()))))))
, om, FALSE(0), FALSE(0), 0);
8051
8052 ctk_widget_show_all (vbox);
8053
8054 return control_window;
8055}
8056
8057void
8058create_window_sizing (CtkWidget *widget)
8059{
8060 static CtkWidget *window = NULL((void*)0);
8061 static CtkWidget *target_window = NULL((void*)0);
8062
8063 if (!target_window)
8064 {
8065 CtkWidget *label;
8066
8067 target_window = ctk_window_new (CTK_WINDOW_TOPLEVEL);
8068 ctk_window_set_screen (CTK_WINDOW (target_window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((target_window)), ((ctk_window_get_type ()))))))
,
8069 ctk_widget_get_screen (widget));
8070 label = ctk_label_new (NULL((void*)0));
8071 ctk_label_set_markup (CTK_LABEL (label)((((CtkLabel*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((label)), ((ctk_label_get_type ()))))))
, "<span foreground=\"purple\"><big>Window being resized</big></span>\nBlah blah blah blah\nblah blah blah\nblah blah blah blah blah");
8072 ctk_container_add (CTK_CONTAINER (target_window)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((target_window)), ((ctk_container_get_type ()))))))
, label);
8073 ctk_widget_show (label);
8074
8075 g_signal_connect (target_window, "destroy",g_signal_connect_data ((target_window), ("destroy"), (((GCallback
) (ctk_widget_destroyed))), (&target_window), ((void*)0),
(GConnectFlags) 0)
8076 G_CALLBACK (ctk_widget_destroyed),g_signal_connect_data ((target_window), ("destroy"), (((GCallback
) (ctk_widget_destroyed))), (&target_window), ((void*)0),
(GConnectFlags) 0)
8077 &target_window)g_signal_connect_data ((target_window), ("destroy"), (((GCallback
) (ctk_widget_destroyed))), (&target_window), ((void*)0),
(GConnectFlags) 0)
;
8078
8079 window = window_controls (target_window);
8080
8081 g_signal_connect (window, "destroy",g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
8082 G_CALLBACK (ctk_widget_destroyed),g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
8083 &window)g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
;
8084
8085 ctk_window_set_title (CTK_WINDOW (target_window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((target_window)), ((ctk_window_get_type ()))))))
, "Window to size");
8086 }
8087
8088 /* don't show target window by default, we want to allow testing
8089 * of behavior on first show.
8090 */
8091
8092 if (!ctk_widget_get_visible (window))
8093 ctk_widget_show (window);
8094 else
8095 ctk_widget_destroy (window);
8096}
8097
8098/*
8099 * CtkProgressBar
8100 */
8101
8102typedef struct _ProgressData {
8103 CtkWidget *window;
8104 CtkWidget *pbar;
8105 CtkWidget *block_spin;
8106 CtkWidget *x_align_spin;
8107 CtkWidget *y_align_spin;
8108 CtkWidget *step_spin;
8109 CtkWidget *act_blocks_spin;
8110 CtkWidget *label;
8111 CtkWidget *omenu1;
8112 CtkWidget *elmenu;
8113 CtkWidget *omenu2;
8114 CtkWidget *entry;
8115 int timer;
8116 gboolean activity;
8117} ProgressData;
8118
8119gboolean
8120progress_timeout (gpointer data)
8121{
8122 ProgressData *pdata = data;
8123 gdouble new_val;
8124 gchar *text;
8125
8126 if (pdata->activity)
8127 {
8128 ctk_progress_bar_pulse (CTK_PROGRESS_BAR (pdata->pbar)((((CtkProgressBar*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((pdata->pbar)), ((ctk_progress_bar_get_type ()))))))
);
8129
8130 text = g_strdup_printf ("%s", "???");
8131 }
8132 else
8133 {
8134 new_val = ctk_progress_bar_get_fraction (CTK_PROGRESS_BAR (pdata->pbar)((((CtkProgressBar*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((pdata->pbar)), ((ctk_progress_bar_get_type ()))))))
) + 0.01;
8135 if (new_val > 1.00)
8136 new_val = 0.00;
8137 ctk_progress_bar_set_fraction (CTK_PROGRESS_BAR (pdata->pbar)((((CtkProgressBar*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((pdata->pbar)), ((ctk_progress_bar_get_type ()))))))
, new_val);
8138
8139 text = g_strdup_printf ("%.0f%%", 100 * new_val);
8140 }
8141
8142 ctk_label_set_text (CTK_LABEL (pdata->label)((((CtkLabel*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((pdata->label)), ((ctk_label_get_type ()))))))
, text);
8143 g_free (text);
8144
8145 return TRUE(!(0));
8146}
8147
8148static void
8149destroy_progress (CtkWidget *widget,
8150 ProgressData **pdata)
8151{
8152 if ((*pdata)->timer)
8153 {
8154 g_source_remove ((*pdata)->timer);
8155 (*pdata)->timer = 0;
8156 }
8157 (*pdata)->window = NULL((void*)0);
8158 g_free (*pdata);
8159 *pdata = NULL((void*)0);
8160}
8161
8162static void
8163progressbar_toggle_orientation (CtkWidget *widget, gpointer data)
8164{
8165 ProgressData *pdata;
8166 gint i;
8167
8168 pdata = (ProgressData *) data;
8169
8170 if (!ctk_widget_get_mapped (widget))
8171 return;
8172
8173 i = ctk_combo_box_get_active (CTK_COMBO_BOX (widget)((((CtkComboBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((widget)), ((ctk_combo_box_get_type ()))))))
);
8174
8175 if (i == 0 || i == 1)
8176 ctk_orientable_set_orientation (CTK_ORIENTABLE (pdata->pbar)((((CtkOrientable*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((pdata->pbar)), ((ctk_orientable_get_type ()))))))
, CTK_ORIENTATION_HORIZONTAL);
8177 else
8178 ctk_orientable_set_orientation (CTK_ORIENTABLE (pdata->pbar)((((CtkOrientable*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((pdata->pbar)), ((ctk_orientable_get_type ()))))))
, CTK_ORIENTATION_VERTICAL);
8179
8180 if (i == 1 || i == 2)
8181 ctk_progress_bar_set_inverted (CTK_PROGRESS_BAR (pdata->pbar)((((CtkProgressBar*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((pdata->pbar)), ((ctk_progress_bar_get_type ()))))))
, TRUE(!(0)));
8182 else
8183 ctk_progress_bar_set_inverted (CTK_PROGRESS_BAR (pdata->pbar)((((CtkProgressBar*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((pdata->pbar)), ((ctk_progress_bar_get_type ()))))))
, FALSE(0));
8184}
8185
8186static void
8187toggle_show_text (CtkWidget *widget, ProgressData *pdata)
8188{
8189 gboolean active;
8190
8191 active = ctk_toggle_button_get_active (CTK_TOGGLE_BUTTON (widget)((((CtkToggleButton*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((widget)), ((ctk_toggle_button_get_type ()))))))
);
8192 ctk_progress_bar_set_show_text (CTK_PROGRESS_BAR (pdata->pbar)((((CtkProgressBar*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((pdata->pbar)), ((ctk_progress_bar_get_type ()))))))
, active);
8193}
8194
8195static void
8196progressbar_toggle_ellipsize (CtkWidget *widget,
8197 gpointer data)
8198{
8199 if (ctk_widget_is_drawable (widget))
8200 {
8201 ProgressData *pdata = data;
8202 gint i = ctk_combo_box_get_active (CTK_COMBO_BOX (widget)((((CtkComboBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((widget)), ((ctk_combo_box_get_type ()))))))
);
8203 ctk_progress_bar_set_ellipsize (CTK_PROGRESS_BAR (pdata->pbar)((((CtkProgressBar*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((pdata->pbar)), ((ctk_progress_bar_get_type ()))))))
, i);
8204 }
8205}
8206
8207static void
8208toggle_activity_mode (CtkWidget *widget, ProgressData *pdata)
8209{
8210 pdata->activity = ctk_toggle_button_get_active (CTK_TOGGLE_BUTTON (widget)((((CtkToggleButton*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((widget)), ((ctk_toggle_button_get_type ()))))))
);
8211}
8212
8213static void
8214toggle_running (CtkWidget *widget, ProgressData *pdata)
8215{
8216 if (ctk_toggle_button_get_active (CTK_TOGGLE_BUTTON (widget)((((CtkToggleButton*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((widget)), ((ctk_toggle_button_get_type ()))))))
))
8217 {
8218 if (pdata->timer == 0)
8219 pdata->timer = g_timeout_add (100, (GSourceFunc)progress_timeout, pdata);
8220 }
8221 else
8222 {
8223 if (pdata->timer != 0)
8224 {
8225 g_source_remove (pdata->timer);
8226 pdata->timer = 0;
8227 }
8228 }
8229}
8230
8231static void
8232entry_changed (CtkWidget *widget, ProgressData *pdata)
8233{
8234 ctk_progress_bar_set_text (CTK_PROGRESS_BAR (pdata->pbar)((((CtkProgressBar*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((pdata->pbar)), ((ctk_progress_bar_get_type ()))))))
,
8235 ctk_entry_get_text (CTK_ENTRY (pdata->entry)((((CtkEntry*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((pdata->entry)), ((ctk_entry_get_type ()))))))
));
8236}
8237
8238void
8239create_progress_bar (CtkWidget *widget)
8240{
8241 static ProgressData *pdata = NULL((void*)0);
8242
8243 if (!pdata)
8244 pdata = g_new0 (ProgressData, 1)((ProgressData *) g_malloc0_n ((1), sizeof (ProgressData)));
8245
8246 if (!pdata->window)
8247 {
8248 CtkWidget *content_area;
8249 CtkWidget *vbox;
8250 CtkWidget *vbox2;
8251 CtkWidget *hbox;
8252 CtkWidget *check;
8253 CtkWidget *frame;
8254 CtkWidget *grid;
8255 CtkWidget *label;
8256
8257 static gchar *items1[] =
8258 {
8259 "Left-Right",
8260 "Right-Left",
8261 "Bottom-Top",
8262 "Top-Bottom"
8263 };
8264
8265 static char *ellipsize_items[] =
8266 {
8267 "None", // PANGO_ELLIPSIZE_NONE,
8268 "Start", // PANGO_ELLIPSIZE_START,
8269 "Middle", // PANGO_ELLIPSIZE_MIDDLE,
8270 "End", // PANGO_ELLIPSIZE_END
8271 };
8272
8273 pdata->window = ctk_dialog_new ();
8274
8275 ctk_window_set_screen (CTK_WINDOW (pdata->window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((pdata->window)), ((ctk_window_get_type ()))))))
,
8276 ctk_widget_get_screen (widget));
8277
8278 ctk_window_set_resizable (CTK_WINDOW (pdata->window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((pdata->window)), ((ctk_window_get_type ()))))))
, TRUE(!(0)));
8279
8280 g_signal_connect (pdata->window, "destroy",g_signal_connect_data ((pdata->window), ("destroy"), (((GCallback
) (destroy_progress))), (&pdata), ((void*)0), (GConnectFlags
) 0)
8281 G_CALLBACK (destroy_progress),g_signal_connect_data ((pdata->window), ("destroy"), (((GCallback
) (destroy_progress))), (&pdata), ((void*)0), (GConnectFlags
) 0)
8282 &pdata)g_signal_connect_data ((pdata->window), ("destroy"), (((GCallback
) (destroy_progress))), (&pdata), ((void*)0), (GConnectFlags
) 0)
;
8283 pdata->timer = 0;
8284
8285 content_area = ctk_dialog_get_content_area (CTK_DIALOG (pdata->window)((((CtkDialog*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((pdata->window)), ((ctk_dialog_get_type ()))))))
);
8286
8287 ctk_window_set_title (CTK_WINDOW (pdata->window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((pdata->window)), ((ctk_window_get_type ()))))))
, "CtkProgressBar");
8288 ctk_container_set_border_width (CTK_CONTAINER (pdata->window)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((pdata->window)), ((ctk_container_get_type ()))))))
, 0);
8289
8290 vbox = ctk_box_new (CTK_ORIENTATION_VERTICAL, 5);
8291 ctk_container_set_border_width (CTK_CONTAINER (vbox)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_container_get_type ()))))))
, 10);
8292 ctk_box_pack_start (CTK_BOX (content_area)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((content_area)), ((ctk_box_get_type ()))))))
, vbox, FALSE(0), TRUE(!(0)), 0);
8293
8294 frame = ctk_frame_new ("Progress");
8295 ctk_box_pack_start (CTK_BOX (vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_box_get_type ()))))))
, frame, FALSE(0), TRUE(!(0)), 0);
8296
8297 vbox2 = ctk_box_new (CTK_ORIENTATION_VERTICAL, 5);
8298 ctk_container_add (CTK_CONTAINER (frame)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((frame)), ((ctk_container_get_type ()))))))
, vbox2);
8299
8300 pdata->pbar = ctk_progress_bar_new ();
8301 ctk_progress_bar_set_ellipsize (CTK_PROGRESS_BAR (pdata->pbar)((((CtkProgressBar*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((pdata->pbar)), ((ctk_progress_bar_get_type ()))))))
,
8302 PANGO_ELLIPSIZE_MIDDLE);
8303 ctk_widget_set_halign (pdata->pbar, CTK_ALIGN_CENTER);
8304 ctk_widget_set_valign (pdata->pbar, CTK_ALIGN_CENTER);
8305 ctk_box_pack_start (CTK_BOX (vbox2)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox2)), ((ctk_box_get_type ()))))))
, pdata->pbar, FALSE(0), FALSE(0), 5);
8306
8307 hbox = ctk_box_new (CTK_ORIENTATION_HORIZONTAL, 5);
8308 ctk_widget_set_halign (hbox, CTK_ALIGN_CENTER);
8309 ctk_widget_set_valign (hbox, CTK_ALIGN_CENTER);
8310 ctk_box_pack_start (CTK_BOX (vbox2)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox2)), ((ctk_box_get_type ()))))))
, hbox, FALSE(0), FALSE(0), 5);
8311 label = ctk_label_new ("Label updated by user :");
8312 ctk_box_pack_start (CTK_BOX (hbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hbox)), ((ctk_box_get_type ()))))))
, label, FALSE(0), TRUE(!(0)), 0);
8313 pdata->label = ctk_label_new ("");
8314 ctk_box_pack_start (CTK_BOX (hbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hbox)), ((ctk_box_get_type ()))))))
, pdata->label, FALSE(0), TRUE(!(0)), 0);
8315
8316 frame = ctk_frame_new ("Options");
8317 ctk_box_pack_start (CTK_BOX (vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_box_get_type ()))))))
, frame, FALSE(0), TRUE(!(0)), 0);
8318
8319 vbox2 = ctk_box_new (CTK_ORIENTATION_VERTICAL, 5);
8320 ctk_container_add (CTK_CONTAINER (frame)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((frame)), ((ctk_container_get_type ()))))))
, vbox2);
8321
8322 grid = ctk_grid_new ();
8323 ctk_grid_set_row_spacing (CTK_GRID (grid)((((CtkGrid*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((grid)), ((ctk_grid_get_type ()))))))
, 10);
8324 ctk_grid_set_column_spacing (CTK_GRID (grid)((((CtkGrid*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((grid)), ((ctk_grid_get_type ()))))))
, 10);
8325 ctk_box_pack_start (CTK_BOX (vbox2)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox2)), ((ctk_box_get_type ()))))))
, grid, FALSE(0), TRUE(!(0)), 0);
8326
8327 label = ctk_label_new ("Orientation :");
8328 ctk_grid_attach (CTK_GRID (grid)((((CtkGrid*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((grid)), ((ctk_grid_get_type ()))))))
, label, 0, 0, 1, 1);
8329 ctk_widget_set_halign (label, CTK_ALIGN_START);
8330 ctk_widget_set_valign (label, CTK_ALIGN_CENTER);
8331
8332 pdata->omenu1 = build_option_menu (items1, 4, 0,
8333 progressbar_toggle_orientation,
8334 pdata);
8335 ctk_grid_attach (CTK_GRID (grid)((((CtkGrid*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((grid)), ((ctk_grid_get_type ()))))))
, pdata->omenu1, 1, 0, 1, 1);
8336
8337 check = ctk_check_button_new_with_label ("Running");
8338 g_signal_connect (check, "toggled",g_signal_connect_data ((check), ("toggled"), (((GCallback) (toggle_running
))), (pdata), ((void*)0), (GConnectFlags) 0)
8339 G_CALLBACK (toggle_running),g_signal_connect_data ((check), ("toggled"), (((GCallback) (toggle_running
))), (pdata), ((void*)0), (GConnectFlags) 0)
8340 pdata)g_signal_connect_data ((check), ("toggled"), (((GCallback) (toggle_running
))), (pdata), ((void*)0), (GConnectFlags) 0)
;
8341 ctk_grid_attach (CTK_GRID (grid)((((CtkGrid*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((grid)), ((ctk_grid_get_type ()))))))
, check, 0, 1, 2, 1);
8342 ctk_toggle_button_set_active (CTK_TOGGLE_BUTTON (check)((((CtkToggleButton*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((check)), ((ctk_toggle_button_get_type ()))))))
, TRUE(!(0)));
8343
8344 check = ctk_check_button_new_with_label ("Show text");
8345 g_signal_connect (check, "clicked",g_signal_connect_data ((check), ("clicked"), (((GCallback) (toggle_show_text
))), (pdata), ((void*)0), (GConnectFlags) 0)
8346 G_CALLBACK (toggle_show_text),g_signal_connect_data ((check), ("clicked"), (((GCallback) (toggle_show_text
))), (pdata), ((void*)0), (GConnectFlags) 0)
8347 pdata)g_signal_connect_data ((check), ("clicked"), (((GCallback) (toggle_show_text
))), (pdata), ((void*)0), (GConnectFlags) 0)
;
8348 ctk_grid_attach (CTK_GRID (grid)((((CtkGrid*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((grid)), ((ctk_grid_get_type ()))))))
, check, 0, 2, 1, 1);
8349
8350 hbox = ctk_box_new (CTK_ORIENTATION_HORIZONTAL, 0);
8351 ctk_grid_attach (CTK_GRID (grid)((((CtkGrid*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((grid)), ((ctk_grid_get_type ()))))))
, hbox, 1, 2, 1, 1);
8352
8353 label = ctk_label_new ("Text: ");
8354 ctk_box_pack_start (CTK_BOX (hbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hbox)), ((ctk_box_get_type ()))))))
, label, FALSE(0), TRUE(!(0)), 0);
8355
8356 pdata->entry = ctk_entry_new ();
8357 ctk_widget_set_hexpand (pdata->entry, TRUE(!(0)));
8358 g_signal_connect (pdata->entry, "changed",g_signal_connect_data ((pdata->entry), ("changed"), (((GCallback
) (entry_changed))), (pdata), ((void*)0), (GConnectFlags) 0)
8359 G_CALLBACK (entry_changed),g_signal_connect_data ((pdata->entry), ("changed"), (((GCallback
) (entry_changed))), (pdata), ((void*)0), (GConnectFlags) 0)
8360 pdata)g_signal_connect_data ((pdata->entry), ("changed"), (((GCallback
) (entry_changed))), (pdata), ((void*)0), (GConnectFlags) 0)
;
8361 ctk_box_pack_start (CTK_BOX (hbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hbox)), ((ctk_box_get_type ()))))))
, pdata->entry, TRUE(!(0)), TRUE(!(0)), 0);
8362 ctk_widget_set_size_request (pdata->entry, 100, -1);
8363
8364 label = ctk_label_new ("Ellipsize text :");
8365 ctk_grid_attach (CTK_GRID (grid)((((CtkGrid*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((grid)), ((ctk_grid_get_type ()))))))
, label, 0, 10, 1, 1);
8366
8367 ctk_widget_set_halign (label, CTK_ALIGN_START);
8368 ctk_widget_set_valign (label, CTK_ALIGN_CENTER);
8369 pdata->elmenu = build_option_menu (ellipsize_items,
8370 sizeof (ellipsize_items) / sizeof (ellipsize_items[0]),
8371 2, // PANGO_ELLIPSIZE_MIDDLE
8372 progressbar_toggle_ellipsize,
8373 pdata);
8374 ctk_grid_attach (CTK_GRID (grid)((((CtkGrid*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((grid)), ((ctk_grid_get_type ()))))))
, pdata->elmenu, 1, 10, 1, 1);
8375
8376 check = ctk_check_button_new_with_label ("Activity mode");
8377 g_signal_connect (check, "clicked",g_signal_connect_data ((check), ("clicked"), (((GCallback) (toggle_activity_mode
))), (pdata), ((void*)0), (GConnectFlags) 0)
8378 G_CALLBACK (toggle_activity_mode), pdata)g_signal_connect_data ((check), ("clicked"), (((GCallback) (toggle_activity_mode
))), (pdata), ((void*)0), (GConnectFlags) 0)
;
8379 ctk_grid_attach (CTK_GRID (grid)((((CtkGrid*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((grid)), ((ctk_grid_get_type ()))))))
, check, 0, 15, 1, 1);
8380
8381 ctk_dialog_add_button (CTK_DIALOG (pdata->window)((((CtkDialog*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((pdata->window)), ((ctk_dialog_get_type ()))))))
, "Close", CTK_RESPONSE_CLOSE);
8382 g_signal_connect (pdata->window, "response",g_signal_connect_data ((pdata->window), ("response"), (((GCallback
) (ctk_widget_destroy))), (((void*)0)), ((void*)0), (GConnectFlags
) 0)
8383 G_CALLBACK (ctk_widget_destroy),g_signal_connect_data ((pdata->window), ("response"), (((GCallback
) (ctk_widget_destroy))), (((void*)0)), ((void*)0), (GConnectFlags
) 0)
8384 NULL)g_signal_connect_data ((pdata->window), ("response"), (((GCallback
) (ctk_widget_destroy))), (((void*)0)), ((void*)0), (GConnectFlags
) 0)
;
8385 }
8386
8387 if (!ctk_widget_get_visible (pdata->window))
8388 ctk_widget_show_all (pdata->window);
8389 else
8390 ctk_widget_destroy (pdata->window);
8391}
8392
8393/*
8394 * Properties
8395 */
8396
8397typedef struct {
8398 int x;
8399 int y;
8400 gboolean found;
8401 gboolean first;
8402 CtkWidget *res_widget;
8403} FindWidgetData;
8404
8405static void
8406find_widget (CtkWidget *widget, FindWidgetData *data)
8407{
8408 CtkAllocation new_allocation;
8409 gint x_offset = 0;
8410 gint y_offset = 0;
8411
8412 ctk_widget_get_allocation (widget, &new_allocation);
8413
8414 if (data->found || !ctk_widget_get_mapped (widget))
8415 return;
8416
8417 /* Note that in the following code, we only count the
8418 * position as being inside a WINDOW widget if it is inside
8419 * widget->window; points that are outside of widget->window
8420 * but within the allocation are not counted. This is consistent
8421 * with the way we highlight drag targets.
8422 */
8423 if (ctk_widget_get_has_window (widget))
8424 {
8425 new_allocation.x = 0;
8426 new_allocation.y = 0;
8427 }
8428
8429 if (ctk_widget_get_parent (widget) && !data->first)
8430 {
8431 CdkWindow *window = ctk_widget_get_window (widget);
8432 while (window != ctk_widget_get_window (ctk_widget_get_parent (widget)))
8433 {
8434 gint tx, ty, twidth, theight;
8435
8436 twidth = cdk_window_get_width (window);
8437 theight = cdk_window_get_height (window);
8438
8439 if (new_allocation.x < 0)
8440 {
8441 new_allocation.width += new_allocation.x;
8442 new_allocation.x = 0;
8443 }
8444 if (new_allocation.y < 0)
8445 {
8446 new_allocation.height += new_allocation.y;
8447 new_allocation.y = 0;
8448 }
8449 if (new_allocation.x + new_allocation.width > twidth)
8450 new_allocation.width = twidth - new_allocation.x;
8451 if (new_allocation.y + new_allocation.height > theight)
8452 new_allocation.height = theight - new_allocation.y;
8453
8454 cdk_window_get_position (window, &tx, &ty);
8455 new_allocation.x += tx;
8456 x_offset += tx;
8457 new_allocation.y += ty;
8458 y_offset += ty;
8459
8460 window = cdk_window_get_parent (window);
8461 }
8462 }
8463
8464 if ((data->x >= new_allocation.x) && (data->y >= new_allocation.y) &&
8465 (data->x < new_allocation.x + new_allocation.width) &&
8466 (data->y < new_allocation.y + new_allocation.height))
8467 {
8468 /* First, check if the drag is in a valid drop site in
8469 * one of our children
8470 */
8471 if (CTK_IS_CONTAINER (widget)(((__extension__ ({ GTypeInstance *__inst = (GTypeInstance*) (
(widget)); GType __t = ((ctk_container_get_type ())); gboolean
__r; if (!__inst) __r = (0); else if (__inst->g_class &&
__inst->g_class->g_type == __t) __r = (!(0)); else __r
= g_type_check_instance_is_a (__inst, __t); __r; }))))
)
8472 {
8473 FindWidgetData new_data = *data;
8474
8475 new_data.x -= x_offset;
8476 new_data.y -= y_offset;
8477 new_data.found = FALSE(0);
8478 new_data.first = FALSE(0);
8479
8480 ctk_container_forall (CTK_CONTAINER (widget)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((widget)), ((ctk_container_get_type ()))))))
,
8481 (CtkCallback)find_widget,
8482 &new_data);
8483
8484 data->found = new_data.found;
8485 if (data->found)
8486 data->res_widget = new_data.res_widget;
8487 }
8488
8489 /* If not, and this widget is registered as a drop site, check to
8490 * emit "drag_motion" to check if we are actually in
8491 * a drop site.
8492 */
8493 if (!data->found)
8494 {
8495 data->found = TRUE(!(0));
8496 data->res_widget = widget;
8497 }
8498 }
8499}
8500
8501static CtkWidget *
8502find_widget_at_pointer (CdkDevice *device)
8503{
8504 CtkWidget *widget = NULL((void*)0);
8505 CdkWindow *pointer_window;
8506 gint x, y;
8507 FindWidgetData data;
8508
8509 pointer_window = cdk_device_get_window_at_position (device, NULL((void*)0), NULL((void*)0));
8510
8511 if (pointer_window)
8512 {
8513 gpointer widget_ptr;
8514
8515 cdk_window_get_user_data (pointer_window, &widget_ptr);
8516 widget = widget_ptr;
8517 }
8518
8519 if (widget)
8520 {
8521 cdk_window_get_device_position (ctk_widget_get_window (widget),
8522 device,
8523 &x, &y, NULL((void*)0));
8524
8525 data.x = x;
8526 data.y = y;
8527 data.found = FALSE(0);
8528 data.first = TRUE(!(0));
8529
8530 find_widget (widget, &data);
8531 if (data.found)
8532 return data.res_widget;
8533 return widget;
8534 }
8535 return NULL((void*)0);
8536}
8537
8538struct SnapshotData {
8539 CtkWidget *toplevel_button;
8540 CtkWidget **window;
8541 CdkCursor *cursor;
8542 gboolean in_query;
8543 gboolean is_toplevel;
8544 gint handler;
8545};
8546
8547static void
8548destroy_snapshot_data (CtkWidget *widget,
8549 struct SnapshotData *data)
8550{
8551 if (*data->window)
8552 *data->window = NULL((void*)0);
8553
8554 if (data->cursor)
8555 {
8556 g_object_unref (data->cursor);
8557 data->cursor = NULL((void*)0);
8558 }
8559
8560 if (data->handler)
8561 {
8562 g_signal_handler_disconnect (widget, data->handler);
8563 data->handler = 0;
8564 }
8565
8566 g_free (data);
8567}
8568
8569static gint
8570snapshot_widget_event (CtkWidget *widget,
8571 CdkEvent *event,
8572 struct SnapshotData *data)
8573{
8574 CtkWidget *res_widget = NULL((void*)0);
8575
8576 if (!data->in_query)
8577 return FALSE(0);
8578
8579 if (event->type == CDK_BUTTON_RELEASE)
8580 {
8581 ctk_grab_remove (widget);
8582 cdk_seat_ungrab (cdk_event_get_seat (event));
8583
8584 res_widget = find_widget_at_pointer (cdk_event_get_device (event));
8585 if (data->is_toplevel && res_widget)
8586 res_widget = ctk_widget_get_toplevel (res_widget);
8587 if (res_widget)
8588 {
8589 cairo_surface_t *surface;
8590 CtkWidget *window, *image;
8591 GdkPixbuf *pixbuf;
8592 int width, height;
8593 cairo_t *cr;
8594
8595 width = ctk_widget_get_allocated_width (res_widget);
8596 height = ctk_widget_get_allocated_height (res_widget);
8597
8598 surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, width, height);
8599
8600 cr = cairo_create (surface);
8601 ctk_widget_draw (res_widget, cr);
8602 cairo_destroy (cr);
8603
8604 pixbuf = gdk_pixbuf_get_from_surface (surface,
8605 0, 0,
8606 width, height);
8607 cairo_surface_destroy (surface);
8608
8609 window = ctk_window_new (CTK_WINDOW_TOPLEVEL);
8610 image = ctk_image_new_from_pixbuf (pixbuf);
8611 g_object_unref (pixbuf);
8612
8613 ctk_container_add (CTK_CONTAINER (window)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_container_get_type ()))))))
, image);
8614 ctk_widget_show_all (window);
8615 }
8616
8617 data->in_query = FALSE(0);
8618 }
8619 return FALSE(0);
8620}
8621
8622
8623static void
8624snapshot_widget (CtkButton *button,
8625 struct SnapshotData *data)
8626{
8627 CtkWidget *widget = CTK_WIDGET (button)((((CtkWidget*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((button)), ((ctk_widget_get_type ()))))))
;
8628 CdkDevice *device;
8629
8630 device = ctk_get_current_event_device ();
8631 if (device == NULL((void*)0))
8632 return;
8633
8634 data->is_toplevel = widget == data->toplevel_button;
8635
8636 if (!data->cursor)
8637 data->cursor = cdk_cursor_new_for_display (ctk_widget_get_display (widget),
8638 CDK_TARGET);
8639
8640 cdk_seat_grab (cdk_device_get_seat (device),
8641 ctk_widget_get_window (widget),
8642 CDK_SEAT_CAPABILITY_ALL_POINTING,
8643 TRUE(!(0)), data->cursor, NULL((void*)0), NULL((void*)0), NULL((void*)0));
8644
8645 g_signal_connect (button, "event",g_signal_connect_data ((button), ("event"), (((GCallback) (snapshot_widget_event
))), (data), ((void*)0), (GConnectFlags) 0)
8646 G_CALLBACK (snapshot_widget_event), data)g_signal_connect_data ((button), ("event"), (((GCallback) (snapshot_widget_event
))), (data), ((void*)0), (GConnectFlags) 0)
;
8647
8648 ctk_grab_add (widget);
8649
8650 data->in_query = TRUE(!(0));
8651}
8652
8653static void
8654create_snapshot (CtkWidget *widget)
8655{
8656 static CtkWidget *window = NULL((void*)0);
8657 struct SnapshotData *data;
8658
8659 data = g_new (struct SnapshotData, 1)((struct SnapshotData *) g_malloc_n ((1), sizeof (struct SnapshotData
)))
;
8660 data->window = &window;
8661 data->in_query = FALSE(0);
8662 data->cursor = NULL((void*)0);
8663 data->handler = 0;
8664
8665 if (!window)
8666 {
8667 CtkWidget *button;
8668 CtkWidget *vbox;
8669
8670 window = ctk_window_new (CTK_WINDOW_TOPLEVEL);
8671
8672 ctk_window_set_screen (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
,
8673 ctk_widget_get_screen (widget));
8674
8675 data->handler = g_signal_connect (window, "destroy",g_signal_connect_data ((window), ("destroy"), (((GCallback) (
destroy_snapshot_data))), (data), ((void*)0), (GConnectFlags)
0)
8676 G_CALLBACK (destroy_snapshot_data),g_signal_connect_data ((window), ("destroy"), (((GCallback) (
destroy_snapshot_data))), (data), ((void*)0), (GConnectFlags)
0)
8677 data)g_signal_connect_data ((window), ("destroy"), (((GCallback) (
destroy_snapshot_data))), (data), ((void*)0), (GConnectFlags)
0)
;
8678
8679 ctk_window_set_title (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
, "test snapshot");
8680 ctk_container_set_border_width (CTK_CONTAINER (window)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_container_get_type ()))))))
, 10);
8681
8682 vbox = ctk_box_new (CTK_ORIENTATION_VERTICAL, 1);
8683 ctk_container_add (CTK_CONTAINER (window)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_container_get_type ()))))))
, vbox);
8684
8685 button = ctk_button_new_with_label ("Snapshot widget");
8686 ctk_box_pack_start (CTK_BOX (vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_box_get_type ()))))))
, button, TRUE(!(0)), TRUE(!(0)), 0);
8687 g_signal_connect (button, "clicked",g_signal_connect_data ((button), ("clicked"), (((GCallback) (
snapshot_widget))), (data), ((void*)0), (GConnectFlags) 0)
8688 G_CALLBACK (snapshot_widget),g_signal_connect_data ((button), ("clicked"), (((GCallback) (
snapshot_widget))), (data), ((void*)0), (GConnectFlags) 0)
8689 data)g_signal_connect_data ((button), ("clicked"), (((GCallback) (
snapshot_widget))), (data), ((void*)0), (GConnectFlags) 0)
;
8690
8691 button = ctk_button_new_with_label ("Snapshot toplevel");
8692 data->toplevel_button = button;
8693 ctk_box_pack_start (CTK_BOX (vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_box_get_type ()))))))
, button, TRUE(!(0)), TRUE(!(0)), 0);
8694 g_signal_connect (button, "clicked",g_signal_connect_data ((button), ("clicked"), (((GCallback) (
snapshot_widget))), (data), ((void*)0), (GConnectFlags) 0)
8695 G_CALLBACK (snapshot_widget),g_signal_connect_data ((button), ("clicked"), (((GCallback) (
snapshot_widget))), (data), ((void*)0), (GConnectFlags) 0)
8696 data)g_signal_connect_data ((button), ("clicked"), (((GCallback) (
snapshot_widget))), (data), ((void*)0), (GConnectFlags) 0)
;
8697 }
8698
8699 if (!ctk_widget_get_visible (window))
8700 ctk_widget_show_all (window);
8701 else
8702 ctk_widget_destroy (window);
8703
8704}
8705
8706/*
8707 * Selection Test
8708 */
8709
8710void
8711selection_test_received (CtkWidget *tree_view,
8712 CtkSelectionData *selection_data)
8713{
8714 CtkTreeModel *model;
8715 CtkListStore *store;
8716 CdkAtom *atoms;
8717 int i, l;
8718
8719 if (ctk_selection_data_get_length (selection_data) < 0)
8720 {
8721 g_print ("Selection retrieval failed\n");
8722 return;
8723 }
8724 if (ctk_selection_data_get_data_type (selection_data) != CDK_SELECTION_TYPE_ATOM((CdkAtom)((gpointer) (gulong) (4))))
8725 {
8726 g_print ("Selection \"TARGETS\" was not returned as atoms!\n");
8727 return;
8728 }
8729
8730 /* Clear out any current list items */
8731
8732 model = ctk_tree_view_get_model (CTK_TREE_VIEW (tree_view)((((CtkTreeView*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((tree_view)), ((ctk_tree_view_get_type ()))))))
);
8733 store = CTK_LIST_STORE (model)((((CtkListStore*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((model)), ((ctk_list_store_get_type ()))))))
;
8734 ctk_list_store_clear (store);
8735
8736 /* Add new items to list */
8737
8738 ctk_selection_data_get_targets (selection_data,
8739 &atoms, &l);
8740
8741 for (i = 0; i < l; i++)
8742 {
8743 char *name;
8744 CtkTreeIter iter;
8745
8746 name = cdk_atom_name (atoms[i]);
8747 if (name != NULL((void*)0))
8748 {
8749 ctk_list_store_insert_with_values (store, &iter, i, 0, name, -1);
8750 g_free (name);
8751 }
8752 else
8753 ctk_list_store_insert_with_values (store, &iter, i, 0, "(bad atom)", -1);
8754 }
8755
8756 return;
8757}
8758
8759void
8760selection_test_get_targets (CtkWidget *dialog, gint response, CtkWidget *tree_view)
8761{
8762 static CdkAtom targets_atom = CDK_NONE((CdkAtom)((gpointer) (gulong) (0)));
8763
8764 if (response != CTK_RESPONSE_APPLY)
8765 {
8766 ctk_widget_destroy (dialog);
8767 return;
8768 }
8769
8770 if (targets_atom == CDK_NONE((CdkAtom)((gpointer) (gulong) (0))))
8771 targets_atom = cdk_atom_intern ("TARGETS", FALSE(0));
8772
8773 ctk_selection_convert (tree_view, CDK_SELECTION_PRIMARY((CdkAtom)((gpointer) (gulong) (1))), targets_atom,
8774 CDK_CURRENT_TIME0L);
8775}
8776
8777void
8778create_selection_test (CtkWidget *widget)
8779{
8780 static CtkWidget *window = NULL((void*)0);
8781
8782 if (!window)
8783 {
8784 CtkWidget *content_area;
8785 CtkWidget *vbox;
8786 CtkWidget *scrolled_win;
8787 CtkListStore* store;
8788 CtkWidget *tree_view;
8789 CtkTreeViewColumn *column;
8790 CtkCellRenderer *renderer;
8791 CtkWidget *label;
8792
8793 window = ctk_dialog_new ();
8794
8795 ctk_window_set_screen (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
,
8796 ctk_widget_get_screen (widget));
8797
8798 g_signal_connect (window, "destroy",g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
8799 G_CALLBACK (ctk_widget_destroyed),g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
8800 &window)g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
;
8801
8802 content_area = ctk_dialog_get_content_area (CTK_DIALOG (window)((((CtkDialog*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_dialog_get_type ()))))))
);
8803
8804 ctk_window_set_title (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
, "Selection Test");
8805 ctk_container_set_border_width (CTK_CONTAINER (window)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_container_get_type ()))))))
, 0);
8806
8807 /* Create the list */
8808
8809 vbox = ctk_box_new (CTK_ORIENTATION_VERTICAL, 5);
8810 ctk_container_set_border_width (CTK_CONTAINER (vbox)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_container_get_type ()))))))
, 10);
8811 ctk_box_pack_start (CTK_BOX (content_area)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((content_area)), ((ctk_box_get_type ()))))))
, vbox, TRUE(!(0)), TRUE(!(0)), 0);
8812
8813 label = ctk_label_new ("Gets available targets for current selection");
8814 ctk_box_pack_start (CTK_BOX (vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_box_get_type ()))))))
, label, FALSE(0), FALSE(0), 0);
8815
8816 scrolled_win = ctk_scrolled_window_new (NULL((void*)0), NULL((void*)0));
8817 ctk_scrolled_window_set_policy (CTK_SCROLLED_WINDOW (scrolled_win)((((CtkScrolledWindow*) (void *) g_type_check_instance_cast (
(GTypeInstance*) ((scrolled_win)), ((ctk_scrolled_window_get_type
()))))))
,
8818 CTK_POLICY_AUTOMATIC,
8819 CTK_POLICY_AUTOMATIC);
8820 ctk_box_pack_start (CTK_BOX (vbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((vbox)), ((ctk_box_get_type ()))))))
, scrolled_win, TRUE(!(0)), TRUE(!(0)), 0);
8821 ctk_widget_set_size_request (scrolled_win, 100, 200);
8822
8823 store = ctk_list_store_new (1, G_TYPE_STRING((GType) ((16) << (2))));
8824 tree_view = ctk_tree_view_new_with_model (CTK_TREE_MODEL (store)((((CtkTreeModel*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((store)), ((ctk_tree_model_get_type ()))))))
);
8825 ctk_container_add (CTK_CONTAINER (scrolled_win)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((scrolled_win)), ((ctk_container_get_type ()))))))
, tree_view);
8826
8827 renderer = ctk_cell_renderer_text_new ();
8828 column = ctk_tree_view_column_new_with_attributes ("Target", renderer,
8829 "text", 0, NULL((void*)0));
8830 ctk_tree_view_append_column (CTK_TREE_VIEW (tree_view)((((CtkTreeView*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((tree_view)), ((ctk_tree_view_get_type ()))))))
, column);
8831
8832 g_signal_connect (tree_view, "selection_received",g_signal_connect_data ((tree_view), ("selection_received"), (
((GCallback) (selection_test_received))), (((void*)0)), ((void
*)0), (GConnectFlags) 0)
8833 G_CALLBACK (selection_test_received), NULL)g_signal_connect_data ((tree_view), ("selection_received"), (
((GCallback) (selection_test_received))), (((void*)0)), ((void
*)0), (GConnectFlags) 0)
;
8834
8835 /* .. And create some buttons */
8836 ctk_dialog_add_button (CTK_DIALOG (window)((((CtkDialog*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_dialog_get_type ()))))))
,
8837 "Get Targets",
8838 CTK_RESPONSE_APPLY);
8839
8840 g_signal_connect (window, "response",g_signal_connect_data ((window), ("response"), (((GCallback) (
selection_test_get_targets))), (tree_view), ((void*)0), (GConnectFlags
) 0)
8841 G_CALLBACK (selection_test_get_targets), tree_view)g_signal_connect_data ((window), ("response"), (((GCallback) (
selection_test_get_targets))), (tree_view), ((void*)0), (GConnectFlags
) 0)
;
8842
8843 ctk_dialog_add_button (CTK_DIALOG (window)((((CtkDialog*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_dialog_get_type ()))))))
,
8844 "Quit",
8845 CTK_RESPONSE_CLOSE);
8846 }
8847
8848 if (!ctk_widget_get_visible (window))
8849 ctk_widget_show_all (window);
8850 else
8851 ctk_widget_destroy (window);
8852}
8853
8854/*
8855 * Test scrolling
8856 */
8857
8858static int scroll_test_pos = 0.0;
8859
8860static gint
8861scroll_test_draw (CtkWidget *widget,
8862 cairo_t *cr,
8863 CtkAdjustment *adjustment)
8864{
8865 gint i,j;
8866 gint imin, imax, jmin, jmax;
8867 CdkRectangle clip;
8868
8869 cdk_cairo_get_clip_rectangle (cr, &clip);
8870
8871 imin = (clip.x) / 10;
8872 imax = (clip.x + clip.width + 9) / 10;
8873
8874 jmin = ((int)ctk_adjustment_get_value (adjustment) + clip.y) / 10;
8875 jmax = ((int)ctk_adjustment_get_value (adjustment) + clip.y + clip.height + 9) / 10;
8876
8877 for (i=imin; i<imax; i++)
8878 for (j=jmin; j<jmax; j++)
8879 if ((i+j) % 2)
8880 cairo_rectangle (cr, 10*i, 10*j - (int)ctk_adjustment_get_value (adjustment), 1+i%10, 1+j%10);
8881
8882 cairo_fill (cr);
8883
8884 return TRUE(!(0));
8885}
8886
8887static gint
8888scroll_test_scroll (CtkWidget *widget, CdkEventScroll *event,
8889 CtkAdjustment *adjustment)
8890{
8891 gdouble new_value = ctk_adjustment_get_value (adjustment) + ((event->direction == CDK_SCROLL_UP) ?
8892 -ctk_adjustment_get_page_increment (adjustment) / 2:
8893 ctk_adjustment_get_page_increment (adjustment) / 2);
8894 new_value = CLAMP (new_value, ctk_adjustment_get_lower (adjustment), ctk_adjustment_get_upper (adjustment) - ctk_adjustment_get_page_size (adjustment))(((new_value) > (ctk_adjustment_get_upper (adjustment) - ctk_adjustment_get_page_size
(adjustment))) ? (ctk_adjustment_get_upper (adjustment) - ctk_adjustment_get_page_size
(adjustment)) : (((new_value) < (ctk_adjustment_get_lower
(adjustment))) ? (ctk_adjustment_get_lower (adjustment)) : (
new_value)))
;
8895 ctk_adjustment_set_value (adjustment, new_value);
8896
8897 return TRUE(!(0));
8898}
8899
8900static void
8901scroll_test_configure (CtkWidget *widget, CdkEventConfigure *event,
8902 CtkAdjustment *adjustment)
8903{
8904 CtkAllocation allocation;
8905
8906 ctk_widget_get_allocation (widget, &allocation);
8907 ctk_adjustment_configure (adjustment,
8908 ctk_adjustment_get_value (adjustment),
8909 ctk_adjustment_get_lower (adjustment),
8910 ctk_adjustment_get_upper (adjustment),
8911 0.1 * allocation.height,
8912 0.9 * allocation.height,
8913 allocation.height);
8914}
8915
8916static void
8917scroll_test_adjustment_changed (CtkAdjustment *adjustment, CtkWidget *widget)
8918{
8919 CdkWindow *window;
8920 gint dy;
8921
8922 dy = scroll_test_pos - (int)ctk_adjustment_get_value (adjustment);
8923 scroll_test_pos = ctk_adjustment_get_value (adjustment);
8924
8925 if (!ctk_widget_is_drawable (widget))
8926 return;
8927
8928 window = ctk_widget_get_window (widget);
8929 cdk_window_scroll (window, 0, dy);
8930 cdk_window_process_updates (window, FALSE(0));
8931}
8932
8933
8934void
8935create_scroll_test (CtkWidget *widget)
8936{
8937 static CtkWidget *window = NULL((void*)0);
8938
8939 if (!window)
8940 {
8941 CtkWidget *content_area;
8942 CtkWidget *hbox;
8943 CtkWidget *drawing_area;
8944 CtkWidget *scrollbar;
8945 CtkAdjustment *adjustment;
8946 CdkGeometry geometry;
8947 CdkWindowHints geometry_mask;
8948
8949 window = ctk_dialog_new ();
8950
8951 ctk_window_set_screen (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
,
8952 ctk_widget_get_screen (widget));
8953
8954 g_signal_connect (window, "destroy",g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
8955 G_CALLBACK (ctk_widget_destroyed),g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
8956 &window)g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
;
8957
8958 content_area = ctk_dialog_get_content_area (CTK_DIALOG (window)((((CtkDialog*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_dialog_get_type ()))))))
);
8959
8960 ctk_window_set_title (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
, "Scroll Test");
8961 ctk_container_set_border_width (CTK_CONTAINER (window)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_container_get_type ()))))))
, 0);
8962
8963 hbox = ctk_box_new (CTK_ORIENTATION_HORIZONTAL, 0);
8964 ctk_box_pack_start (CTK_BOX (content_area)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((content_area)), ((ctk_box_get_type ()))))))
, hbox, TRUE(!(0)), TRUE(!(0)), 0);
8965 ctk_widget_show (hbox);
8966
8967 drawing_area = ctk_drawing_area_new ();
8968 ctk_widget_set_size_request (drawing_area, 200, 200);
8969 ctk_box_pack_start (CTK_BOX (hbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hbox)), ((ctk_box_get_type ()))))))
, drawing_area, TRUE(!(0)), TRUE(!(0)), 0);
8970 ctk_widget_show (drawing_area);
8971
8972 ctk_widget_set_events (drawing_area, CDK_EXPOSURE_MASK | CDK_SCROLL_MASK);
8973
8974 adjustment = ctk_adjustment_new (0.0, 0.0, 1000.0, 1.0, 180.0, 200.0);
8975 scroll_test_pos = 0.0;
8976
8977 scrollbar = ctk_scrollbar_new (CTK_ORIENTATION_VERTICAL, adjustment);
8978 ctk_box_pack_start (CTK_BOX (hbox)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((hbox)), ((ctk_box_get_type ()))))))
, scrollbar, FALSE(0), FALSE(0), 0);
8979 ctk_widget_show (scrollbar);
8980
8981 g_signal_connect (drawing_area, "draw",g_signal_connect_data ((drawing_area), ("draw"), (((GCallback
) (scroll_test_draw))), (adjustment), ((void*)0), (GConnectFlags
) 0)
8982 G_CALLBACK (scroll_test_draw), adjustment)g_signal_connect_data ((drawing_area), ("draw"), (((GCallback
) (scroll_test_draw))), (adjustment), ((void*)0), (GConnectFlags
) 0)
;
8983 g_signal_connect (drawing_area, "configure_event",g_signal_connect_data ((drawing_area), ("configure_event"), (
((GCallback) (scroll_test_configure))), (adjustment), ((void*
)0), (GConnectFlags) 0)
8984 G_CALLBACK (scroll_test_configure), adjustment)g_signal_connect_data ((drawing_area), ("configure_event"), (
((GCallback) (scroll_test_configure))), (adjustment), ((void*
)0), (GConnectFlags) 0)
;
8985 g_signal_connect (drawing_area, "scroll_event",g_signal_connect_data ((drawing_area), ("scroll_event"), (((GCallback
) (scroll_test_scroll))), (adjustment), ((void*)0), (GConnectFlags
) 0)
8986 G_CALLBACK (scroll_test_scroll), adjustment)g_signal_connect_data ((drawing_area), ("scroll_event"), (((GCallback
) (scroll_test_scroll))), (adjustment), ((void*)0), (GConnectFlags
) 0)
;
8987
8988 g_signal_connect (adjustment, "value_changed",g_signal_connect_data ((adjustment), ("value_changed"), (((GCallback
) (scroll_test_adjustment_changed))), (drawing_area), ((void*
)0), (GConnectFlags) 0)
8989 G_CALLBACK (scroll_test_adjustment_changed),g_signal_connect_data ((adjustment), ("value_changed"), (((GCallback
) (scroll_test_adjustment_changed))), (drawing_area), ((void*
)0), (GConnectFlags) 0)
8990 drawing_area)g_signal_connect_data ((adjustment), ("value_changed"), (((GCallback
) (scroll_test_adjustment_changed))), (drawing_area), ((void*
)0), (GConnectFlags) 0)
;
8991
8992 /* .. And create some buttons */
8993
8994 ctk_dialog_add_button (CTK_DIALOG (window)((((CtkDialog*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_dialog_get_type ()))))))
,
8995 "Quit",
8996 CTK_RESPONSE_CLOSE);
8997 g_signal_connect_swapped (window, "response",g_signal_connect_data ((window), ("response"), (((GCallback) (
ctk_widget_destroy))), (window), ((void*)0), G_CONNECT_SWAPPED
)
8998 G_CALLBACK (ctk_widget_destroy),g_signal_connect_data ((window), ("response"), (((GCallback) (
ctk_widget_destroy))), (window), ((void*)0), G_CONNECT_SWAPPED
)
8999 window)g_signal_connect_data ((window), ("response"), (((GCallback) (
ctk_widget_destroy))), (window), ((void*)0), G_CONNECT_SWAPPED
)
;
9000
9001 /* Set up gridded geometry */
9002
9003 geometry_mask = CDK_HINT_MIN_SIZE |
9004 CDK_HINT_BASE_SIZE |
9005 CDK_HINT_RESIZE_INC;
9006
9007 geometry.min_width = 20;
9008 geometry.min_height = 20;
9009 geometry.base_width = 0;
9010 geometry.base_height = 0;
9011 geometry.width_inc = 10;
9012 geometry.height_inc = 10;
9013
9014 ctk_window_set_geometry_hints (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
,
9015 drawing_area, &geometry, geometry_mask);
9016 }
9017
9018 if (!ctk_widget_get_visible (window))
9019 ctk_widget_show (window);
9020 else
9021 ctk_widget_destroy (window);
9022}
9023
9024/*
9025 * Timeout Test
9026 */
9027
9028static int timer = 0;
9029
9030gint
9031timeout_test (CtkWidget *label)
9032{
9033 static int count = 0;
9034 static char buffer[32];
9035
9036 sprintf (buffer, "count: %d", ++count);
9037 ctk_label_set_text (CTK_LABEL (label)((((CtkLabel*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((label)), ((ctk_label_get_type ()))))))
, buffer);
9038
9039 return TRUE(!(0));
9040}
9041
9042void
9043start_timeout_test (CtkWidget *widget,
9044 CtkWidget *label)
9045{
9046 if (!timer)
9047 {
9048 timer = g_timeout_add (100, (GSourceFunc)timeout_test, label);
9049 }
9050}
9051
9052void
9053stop_timeout_test (CtkWidget *widget,
9054 gpointer data)
9055{
9056 if (timer)
9057 {
9058 g_source_remove (timer);
9059 timer = 0;
9060 }
9061}
9062
9063void
9064destroy_timeout_test (CtkWidget *widget,
9065 CtkWidget **window)
9066{
9067 stop_timeout_test (NULL((void*)0), NULL((void*)0));
9068
9069 *window = NULL((void*)0);
9070}
9071
9072void
9073create_timeout_test (CtkWidget *widget)
9074{
9075 static CtkWidget *window = NULL((void*)0);
9076
9077 if (!window)
9078 {
9079 CtkWidget *action_area, *content_area;
9080 CtkWidget *button;
9081 CtkWidget *label;
9082
9083 window = ctk_dialog_new ();
9084
9085 ctk_window_set_screen (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
,
9086 ctk_widget_get_screen (widget));
9087
9088 g_signal_connect (window, "destroy",g_signal_connect_data ((window), ("destroy"), (((GCallback) (
destroy_timeout_test))), (&window), ((void*)0), (GConnectFlags
) 0)
9089 G_CALLBACK (destroy_timeout_test),g_signal_connect_data ((window), ("destroy"), (((GCallback) (
destroy_timeout_test))), (&window), ((void*)0), (GConnectFlags
) 0)
9090 &window)g_signal_connect_data ((window), ("destroy"), (((GCallback) (
destroy_timeout_test))), (&window), ((void*)0), (GConnectFlags
) 0)
;
9091
9092 content_area = ctk_dialog_get_content_area (CTK_DIALOG (window)((((CtkDialog*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_dialog_get_type ()))))))
);
9093 action_area = ctk_dialog_get_content_area (CTK_DIALOG (window)((((CtkDialog*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_dialog_get_type ()))))))
);
9094
9095 ctk_window_set_title (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
, "Timeout Test");
9096 ctk_container_set_border_width (CTK_CONTAINER (window)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_container_get_type ()))))))
, 0);
9097
9098 label = ctk_label_new ("count: 0");
9099 g_object_set (label, "margin", 10, NULL((void*)0));
9100 ctk_box_pack_start (CTK_BOX (content_area)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((content_area)), ((ctk_box_get_type ()))))))
, label, TRUE(!(0)), TRUE(!(0)), 0);
9101 ctk_widget_show (label);
9102
9103 button = ctk_button_new_with_label ("close");
9104 g_signal_connect_swapped (button, "clicked",g_signal_connect_data ((button), ("clicked"), (((GCallback) (
ctk_widget_destroy))), (window), ((void*)0), G_CONNECT_SWAPPED
)
9105 G_CALLBACK (ctk_widget_destroy),g_signal_connect_data ((button), ("clicked"), (((GCallback) (
ctk_widget_destroy))), (window), ((void*)0), G_CONNECT_SWAPPED
)
9106 window)g_signal_connect_data ((button), ("clicked"), (((GCallback) (
ctk_widget_destroy))), (window), ((void*)0), G_CONNECT_SWAPPED
)
;
9107 ctk_widget_set_can_default (button, TRUE(!(0)));
9108 ctk_box_pack_start (CTK_BOX (action_area)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((action_area)), ((ctk_box_get_type ()))))))
, button, TRUE(!(0)), TRUE(!(0)), 0);
9109 ctk_widget_grab_default (button);
9110 ctk_widget_show (button);
9111
9112 button = ctk_button_new_with_label ("start");
9113 g_signal_connect (button, "clicked",g_signal_connect_data ((button), ("clicked"), (((GCallback) (
start_timeout_test))), (label), ((void*)0), (GConnectFlags) 0
)
9114 G_CALLBACK(start_timeout_test),g_signal_connect_data ((button), ("clicked"), (((GCallback) (
start_timeout_test))), (label), ((void*)0), (GConnectFlags) 0
)
9115 label)g_signal_connect_data ((button), ("clicked"), (((GCallback) (
start_timeout_test))), (label), ((void*)0), (GConnectFlags) 0
)
;
9116 ctk_widget_set_can_default (button, TRUE(!(0)));
9117 ctk_box_pack_start (CTK_BOX (action_area)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((action_area)), ((ctk_box_get_type ()))))))
, button, TRUE(!(0)), TRUE(!(0)), 0);
9118 ctk_widget_show (button);
9119
9120 button = ctk_button_new_with_label ("stop");
9121 g_signal_connect (button, "clicked",g_signal_connect_data ((button), ("clicked"), (((GCallback) (
stop_timeout_test))), (((void*)0)), ((void*)0), (GConnectFlags
) 0)
9122 G_CALLBACK (stop_timeout_test),g_signal_connect_data ((button), ("clicked"), (((GCallback) (
stop_timeout_test))), (((void*)0)), ((void*)0), (GConnectFlags
) 0)
9123 NULL)g_signal_connect_data ((button), ("clicked"), (((GCallback) (
stop_timeout_test))), (((void*)0)), ((void*)0), (GConnectFlags
) 0)
;
9124 ctk_widget_set_can_default (button, TRUE(!(0)));
9125 ctk_box_pack_start (CTK_BOX (action_area)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((action_area)), ((ctk_box_get_type ()))))))
, button, TRUE(!(0)), TRUE(!(0)), 0);
9126 ctk_widget_show (button);
9127 }
9128
9129 if (!ctk_widget_get_visible (window))
9130 ctk_widget_show (window);
9131 else
9132 ctk_widget_destroy (window);
9133}
9134
9135/*
9136 * Test of recursive mainloop
9137 */
9138
9139void
9140mainloop_destroyed (CtkWidget *w, CtkWidget **window)
9141{
9142 *window = NULL((void*)0);
9143 ctk_main_quit ();
9144}
9145
9146void
9147create_mainloop (CtkWidget *widget)
9148{
9149 static CtkWidget *window = NULL((void*)0);
9150
9151 if (!window)
9152 {
9153 CtkWidget *content_area;
9154 CtkWidget *label;
9155
9156 window = ctk_dialog_new ();
9157
9158 ctk_window_set_screen (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
,
9159 ctk_widget_get_screen (widget));
9160
9161 ctk_window_set_title (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
, "Test Main Loop");
9162
9163 g_signal_connect (window, "destroy",g_signal_connect_data ((window), ("destroy"), (((GCallback) (
mainloop_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
9164 G_CALLBACK (mainloop_destroyed),g_signal_connect_data ((window), ("destroy"), (((GCallback) (
mainloop_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
9165 &window)g_signal_connect_data ((window), ("destroy"), (((GCallback) (
mainloop_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
;
9166
9167 content_area = ctk_dialog_get_content_area (CTK_DIALOG (window)((((CtkDialog*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_dialog_get_type ()))))))
);
9168
9169 label = ctk_label_new ("In recursive main loop...");
9170 g_object_set (label, "margin", 20, NULL((void*)0));
9171
9172 ctk_box_pack_start (CTK_BOX (content_area)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((content_area)), ((ctk_box_get_type ()))))))
, label, TRUE(!(0)), TRUE(!(0)), 0);
9173 ctk_widget_show (label);
9174
9175 ctk_dialog_add_button (CTK_DIALOG (window)((((CtkDialog*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_dialog_get_type ()))))))
,
9176 "Leave",
9177 CTK_RESPONSE_OK);
9178 g_signal_connect_swapped (window, "response",g_signal_connect_data ((window), ("response"), (((GCallback) (
ctk_widget_destroy))), (window), ((void*)0), G_CONNECT_SWAPPED
)
9179 G_CALLBACK (ctk_widget_destroy),g_signal_connect_data ((window), ("response"), (((GCallback) (
ctk_widget_destroy))), (window), ((void*)0), G_CONNECT_SWAPPED
)
9180 window)g_signal_connect_data ((window), ("response"), (((GCallback) (
ctk_widget_destroy))), (window), ((void*)0), G_CONNECT_SWAPPED
)
;
9181 }
9182
9183 if (!ctk_widget_get_visible (window))
9184 {
9185 ctk_widget_show (window);
9186
9187 g_print ("create_mainloop: start\n");
9188 ctk_main ();
9189 g_print ("create_mainloop: done\n");
9190 }
9191 else
9192 ctk_widget_destroy (window);
9193}
9194
9195static gboolean
9196layout_draw_handler (CtkWidget *widget, cairo_t *cr)
9197{
9198 CtkLayout *layout;
9199 CdkWindow *bin_window;
9200 CdkRectangle clip;
9201 gint i,j,x,y;
9202 gint imin, imax, jmin, jmax;
9203
9204 layout = CTK_LAYOUT (widget)((((CtkLayout*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((widget)), ((ctk_layout_get_type ()))))))
;
9205 bin_window = ctk_layout_get_bin_window (layout);
9206
9207 if (!ctk_cairo_should_draw_window (cr, bin_window))
9208 return FALSE(0);
9209
9210 cdk_window_get_position (bin_window, &x, &y);
9211 cairo_translate (cr, x, y);
9212
9213 cdk_cairo_get_clip_rectangle (cr, &clip);
9214
9215 imin = (clip.x) / 10;
9216 imax = (clip.x + clip.width + 9) / 10;
9217
9218 jmin = (clip.y) / 10;
9219 jmax = (clip.y + clip.height + 9) / 10;
9220
9221 for (i=imin; i<imax; i++)
9222 for (j=jmin; j<jmax; j++)
9223 if ((i+j) % 2)
9224 cairo_rectangle (cr,
9225 10*i, 10*j,
9226 1+i%10, 1+j%10);
9227
9228 cairo_fill (cr);
9229
9230 return FALSE(0);
9231}
9232
9233void create_layout (CtkWidget *widget)
9234{
9235 static CtkWidget *window = NULL((void*)0);
9236
9237 if (!window)
9238 {
9239 CtkAdjustment *hadjustment, *vadjustment;
9240 CtkLayout *layout;
9241 CtkWidget *layout_widget;
9242 CtkWidget *scrolledwindow;
9243 CtkWidget *button;
9244 gchar buf[16];
9245 gint i, j;
9246
9247 window = ctk_window_new (CTK_WINDOW_TOPLEVEL);
9248 ctk_window_set_screen (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
,
9249 ctk_widget_get_screen (widget));
9250
9251 g_signal_connect (window, "destroy",g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
9252 G_CALLBACK (ctk_widget_destroyed),g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
9253 &window)g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
;
9254
9255 ctk_window_set_title (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
, "Layout");
9256 ctk_widget_set_size_request (window, 200, 200);
9257
9258 scrolledwindow = ctk_scrolled_window_new (NULL((void*)0), NULL((void*)0));
9259 ctk_scrolled_window_set_shadow_type (CTK_SCROLLED_WINDOW (scrolledwindow)((((CtkScrolledWindow*) (void *) g_type_check_instance_cast (
(GTypeInstance*) ((scrolledwindow)), ((ctk_scrolled_window_get_type
()))))))
,
9260 CTK_SHADOW_IN);
9261 ctk_scrolled_window_set_placement (CTK_SCROLLED_WINDOW (scrolledwindow)((((CtkScrolledWindow*) (void *) g_type_check_instance_cast (
(GTypeInstance*) ((scrolledwindow)), ((ctk_scrolled_window_get_type
()))))))
,
9262 CTK_CORNER_TOP_RIGHT);
9263
9264 ctk_container_add (CTK_CONTAINER (window)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_container_get_type ()))))))
, scrolledwindow);
9265
9266 layout_widget = ctk_layout_new (NULL((void*)0), NULL((void*)0));
9267 layout = CTK_LAYOUT (layout_widget)((((CtkLayout*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((layout_widget)), ((ctk_layout_get_type ()))))))
;
9268 ctk_container_add (CTK_CONTAINER (scrolledwindow)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((scrolledwindow)), ((ctk_container_get_type ()))))))
, layout_widget);
9269
9270 /* We set step sizes here since CtkLayout does not set
9271 * them itself.
9272 */
9273 hadjustment = ctk_scrollable_get_hadjustment (CTK_SCROLLABLE (layout)((((CtkScrollable*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((layout)), ((ctk_scrollable_get_type ()))))))
);
9274 vadjustment = ctk_scrollable_get_vadjustment (CTK_SCROLLABLE (layout)((((CtkScrollable*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((layout)), ((ctk_scrollable_get_type ()))))))
);
9275 ctk_adjustment_set_step_increment (hadjustment, 10.0);
9276 ctk_adjustment_set_step_increment (vadjustment, 10.0);
9277 ctk_scrollable_set_hadjustment (CTK_SCROLLABLE (layout)((((CtkScrollable*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((layout)), ((ctk_scrollable_get_type ()))))))
, hadjustment);
9278 ctk_scrollable_set_vadjustment (CTK_SCROLLABLE (layout)((((CtkScrollable*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((layout)), ((ctk_scrollable_get_type ()))))))
, vadjustment);
9279
9280 ctk_widget_set_events (layout_widget, CDK_EXPOSURE_MASK);
9281 g_signal_connect (layout, "draw",g_signal_connect_data ((layout), ("draw"), (((GCallback) (layout_draw_handler
))), (((void*)0)), ((void*)0), (GConnectFlags) 0)
9282 G_CALLBACK (layout_draw_handler), NULL)g_signal_connect_data ((layout), ("draw"), (((GCallback) (layout_draw_handler
))), (((void*)0)), ((void*)0), (GConnectFlags) 0)
;
9283
9284 ctk_layout_set_size (layout, 1600, 128000);
9285
9286 for (i=0 ; i < 16 ; i++)
9287 for (j=0 ; j < 16 ; j++)
9288 {
9289 sprintf(buf, "Button %d, %d", i, j);
9290 if ((i + j) % 2)
9291 button = ctk_button_new_with_label (buf);
9292 else
9293 button = ctk_label_new (buf);
9294
9295 ctk_layout_put (layout, button, j*100, i*100);
9296 }
9297
9298 for (i=16; i < 1280; i++)
9299 {
9300 sprintf(buf, "Button %d, %d", i, 0);
9301 if (i % 2)
9302 button = ctk_button_new_with_label (buf);
9303 else
9304 button = ctk_label_new (buf);
9305
9306 ctk_layout_put (layout, button, 0, i*100);
9307 }
9308 }
9309
9310 if (!ctk_widget_get_visible (window))
9311 ctk_widget_show_all (window);
9312 else
9313 ctk_widget_destroy (window);
9314}
9315
9316static void
9317show_native (CtkWidget *button,
9318 CtkFileChooserNative *native)
9319{
9320 ctk_native_dialog_show (CTK_NATIVE_DIALOG (native));
9321}
9322
9323static void
9324hide_native (CtkWidget *button,
9325 CtkFileChooserNative *native)
9326{
9327 ctk_native_dialog_hide (CTK_NATIVE_DIALOG (native));
9328}
9329
9330static void
9331native_response (CtkNativeDialog *self,
9332 gint response_id,
9333 CtkWidget *label)
9334{
9335 static int count = 0;
9336 char *res;
9337 GSList *uris, *l;
9338 GString *s;
9339 char *response;
9340 CtkFileFilter *filter;
9341
9342 uris = ctk_file_chooser_get_uris (CTK_FILE_CHOOSER (self)((((CtkFileChooser*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((self)), ((ctk_file_chooser_get_type ()))))))
);
9343 filter = ctk_file_chooser_get_filter (CTK_FILE_CHOOSER (self)((((CtkFileChooser*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((self)), ((ctk_file_chooser_get_type ()))))))
);
9344 s = g_string_new ("");
9345 for (l = uris; l != NULL((void*)0); l = l->next)
9346 {
9347 g_string_prepend (s, l->data);
9348 g_string_prepend (s, "\n");
9349 }
9350
9351 switch (response_id)
9352 {
9353 case CTK_RESPONSE_NONE:
9354 response = g_strdup ("CTK_RESPONSE_NONE")g_strdup_inline ("CTK_RESPONSE_NONE");
9355 break;
9356 case CTK_RESPONSE_ACCEPT:
9357 response = g_strdup ("CTK_RESPONSE_ACCEPT")g_strdup_inline ("CTK_RESPONSE_ACCEPT");
9358 break;
9359 case CTK_RESPONSE_CANCEL:
9360 response = g_strdup ("CTK_RESPONSE_CANCEL")g_strdup_inline ("CTK_RESPONSE_CANCEL");
9361 break;
9362 case CTK_RESPONSE_DELETE_EVENT:
9363 response = g_strdup ("CTK_RESPONSE_DELETE_EVENT")g_strdup_inline ("CTK_RESPONSE_DELETE_EVENT");
9364 break;
9365 default:
9366 response = g_strdup_printf ("%d", response_id);
9367 break;
9368 }
9369
9370 if (filter)
9371 res = g_strdup_printf ("Response #%d: %s\n"
9372 "Filter: %s\n"
9373 "Files:\n"
9374 "%s",
9375 ++count,
9376 response,
9377 ctk_file_filter_get_name (filter),
9378 s->str);
9379 else
9380 res = g_strdup_printf ("Response #%d: %s\n"
9381 "NO Filter\n"
9382 "Files:\n"
9383 "%s",
9384 ++count,
9385 response,
9386 s->str);
9387 ctk_label_set_text (CTK_LABEL (label)((((CtkLabel*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((label)), ((ctk_label_get_type ()))))))
, res);
9388 g_free (response);
9389 g_string_free (s, TRUE)(__builtin_constant_p ((!(0))) ? (((!(0))) ? (g_string_free) (
(s), ((!(0)))) : g_string_free_and_steal (s)) : (g_string_free
) ((s), ((!(0)))))
;
9390}
9391
9392static void
9393native_modal_toggle (CtkWidget *checkbutton,
9394 CtkFileChooserNative *native)
9395{
9396 ctk_native_dialog_set_modal (CTK_NATIVE_DIALOG (native),
9397 ctk_toggle_button_get_active (CTK_TOGGLE_BUTTON(checkbutton)((((CtkToggleButton*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((checkbutton)), ((ctk_toggle_button_get_type ()))))))
));
9398}
9399
9400static void
9401native_multi_select_toggle (CtkWidget *checkbutton,
9402 CtkFileChooserNative *native)
9403{
9404 ctk_file_chooser_set_select_multiple (CTK_FILE_CHOOSER (native)((((CtkFileChooser*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((native)), ((ctk_file_chooser_get_type ()))))))
,
9405 ctk_toggle_button_get_active (CTK_TOGGLE_BUTTON(checkbutton)((((CtkToggleButton*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((checkbutton)), ((ctk_toggle_button_get_type ()))))))
));
9406}
9407
9408static void
9409native_overwrite_confirmation_toggle (CtkWidget *checkbutton,
9410 CtkFileChooserNative *native)
9411{
9412 ctk_file_chooser_set_do_overwrite_confirmation (CTK_FILE_CHOOSER (native)((((CtkFileChooser*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((native)), ((ctk_file_chooser_get_type ()))))))
,
9413 ctk_toggle_button_get_active (CTK_TOGGLE_BUTTON(checkbutton)((((CtkToggleButton*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((checkbutton)), ((ctk_toggle_button_get_type ()))))))
));
9414}
9415
9416static void
9417native_extra_widget_toggle (CtkWidget *checkbutton,
9418 CtkFileChooserNative *native)
9419{
9420 gboolean extra_widget = ctk_toggle_button_get_active (CTK_TOGGLE_BUTTON(checkbutton)((((CtkToggleButton*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((checkbutton)), ((ctk_toggle_button_get_type ()))))))
);
9421
9422 if (extra_widget)
9423 {
9424 CtkWidget *extra = ctk_check_button_new_with_label ("Extra toggle");
9425 ctk_widget_show (extra);
9426 ctk_file_chooser_set_extra_widget (CTK_FILE_CHOOSER (native)((((CtkFileChooser*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((native)), ((ctk_file_chooser_get_type ()))))))
, extra);
9427 }
9428 else
9429 {
9430 ctk_file_chooser_set_extra_widget (CTK_FILE_CHOOSER (native)((((CtkFileChooser*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((native)), ((ctk_file_chooser_get_type ()))))))
, NULL((void*)0));
9431 }
9432}
9433
9434
9435static void
9436native_visible_notify_show (GObject *object,
9437 GParamSpec *pspec,
9438 CtkWidget *show_button)
9439{
9440 CtkFileChooserNative *native = CTK_FILE_CHOOSER_NATIVE (object);
9441 gboolean visible;
9442
9443 visible = ctk_native_dialog_get_visible (CTK_NATIVE_DIALOG (native));
9444 ctk_widget_set_sensitive (show_button, !visible);
9445}
9446
9447static void
9448native_visible_notify_hide (GObject *object,
9449 GParamSpec *pspec,
9450 CtkWidget *hide_button)
9451{
9452 CtkFileChooserNative *native = CTK_FILE_CHOOSER_NATIVE (object);
9453 gboolean visible;
9454
9455 visible = ctk_native_dialog_get_visible (CTK_NATIVE_DIALOG (native));
9456 ctk_widget_set_sensitive (hide_button, visible);
9457}
9458
9459static char *
9460get_some_file (void)
9461{
9462 GFile *dir = g_file_new_for_path (g_get_current_dir ());
9463 GFileEnumerator *e;
9464 char *res = NULL((void*)0);
9465
9466 e = g_file_enumerate_children (dir, "*", 0, NULL((void*)0), NULL((void*)0));
9467 if (e)
9468 {
9469 while (res == NULL((void*)0))
9470 {
9471 GFileInfo *info;
9472
9473 info = g_file_enumerator_next_file (e, NULL((void*)0), NULL((void*)0));
9474
9475 if (info)
9476 {
9477 if (g_file_info_get_file_type (info) == G_FILE_TYPE_REGULAR)
9478 {
9479 GFile *child = g_file_enumerator_get_child (e, info);
9480 res = g_file_get_path (child);
9481 g_object_unref (child);
9482 }
9483 g_object_unref (info);
9484 }
9485 else
9486 break;
9487 }
9488 }
9489
9490 return res;
9491}
9492
9493static void
9494native_action_changed (CtkWidget *combo,
9495 CtkFileChooserNative *native)
9496{
9497 int i;
9498 gboolean save_as = FALSE(0);
9499 i = ctk_combo_box_get_active (CTK_COMBO_BOX (combo)((((CtkComboBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((combo)), ((ctk_combo_box_get_type ()))))))
);
9500
9501 if (i == 4) /* Save as */
9502 {
9503 save_as = TRUE(!(0));
9504 i = CTK_FILE_CHOOSER_ACTION_SAVE;
9505 }
9506
9507 ctk_file_chooser_set_action (CTK_FILE_CHOOSER (native)((((CtkFileChooser*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((native)), ((ctk_file_chooser_get_type ()))))))
,
9508 (CtkFileChooserAction) i);
9509
9510
9511 if (i == CTK_FILE_CHOOSER_ACTION_SAVE ||
9512 i == CTK_FILE_CHOOSER_ACTION_CREATE_FOLDER)
9513 {
9514 if (save_as)
9515 {
9516 char *file = get_some_file ();
9517 ctk_file_chooser_set_filename (CTK_FILE_CHOOSER (native)((((CtkFileChooser*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((native)), ((ctk_file_chooser_get_type ()))))))
, file);
9518 g_free (file);
9519 }
9520 else
9521 ctk_file_chooser_set_current_name (CTK_FILE_CHOOSER (native)((((CtkFileChooser*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((native)), ((ctk_file_chooser_get_type ()))))))
, "newname.txt");
9522 }
9523}
9524
9525static void
9526native_filter_changed (CtkWidget *combo,
9527 CtkFileChooserNative *native)
9528{
9529 int i;
9530 GSList *filters, *l;
9531 CtkFileFilter *filter;
9532
9533 i = ctk_combo_box_get_active (CTK_COMBO_BOX (combo)((((CtkComboBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((combo)), ((ctk_combo_box_get_type ()))))))
);
9534
9535 filters = ctk_file_chooser_list_filters (CTK_FILE_CHOOSER (native)((((CtkFileChooser*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((native)), ((ctk_file_chooser_get_type ()))))))
);
9536 for (l = filters; l != NULL((void*)0); l = l->next)
9537 ctk_file_chooser_remove_filter (CTK_FILE_CHOOSER (native)((((CtkFileChooser*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((native)), ((ctk_file_chooser_get_type ()))))))
, l->data);
9538 g_slist_free (filters);
9539
9540 switch (i)
9541 {
9542 case 0:
9543 break;
9544 case 1: /* pattern */
9545 filter = ctk_file_filter_new ();
9546 ctk_file_filter_set_name (filter, "Text");
9547 ctk_file_filter_add_pattern (filter, "*.doc");
9548 ctk_file_filter_add_pattern (filter, "*.txt");
9549 ctk_file_chooser_add_filter (CTK_FILE_CHOOSER (native)((((CtkFileChooser*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((native)), ((ctk_file_chooser_get_type ()))))))
, filter);
9550
9551 filter = ctk_file_filter_new ();
9552 ctk_file_filter_set_name (filter, "Images");
9553 ctk_file_filter_add_pixbuf_formats (filter);
9554 ctk_file_chooser_add_filter (CTK_FILE_CHOOSER (native)((((CtkFileChooser*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((native)), ((ctk_file_chooser_get_type ()))))))
, filter);
9555 ctk_file_chooser_set_filter (CTK_FILE_CHOOSER (native)((((CtkFileChooser*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((native)), ((ctk_file_chooser_get_type ()))))))
, filter);
9556
9557 filter = ctk_file_filter_new ();
9558 ctk_file_filter_set_name (filter, "All");
9559 ctk_file_filter_add_pattern (filter, "*");
9560 ctk_file_chooser_add_filter (CTK_FILE_CHOOSER (native)((((CtkFileChooser*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((native)), ((ctk_file_chooser_get_type ()))))))
, filter);
9561 break;
9562
9563 case 2: /* mimetype */
9564 filter = ctk_file_filter_new ();
9565 ctk_file_filter_set_name (filter, "Text");
9566 ctk_file_filter_add_mime_type (filter, "text/plain");
9567 ctk_file_chooser_add_filter (CTK_FILE_CHOOSER (native)((((CtkFileChooser*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((native)), ((ctk_file_chooser_get_type ()))))))
, filter);
9568
9569 filter = ctk_file_filter_new ();
9570 ctk_file_filter_set_name (filter, "All");
9571 ctk_file_filter_add_pattern (filter, "*");
9572 ctk_file_chooser_add_filter (CTK_FILE_CHOOSER (native)((((CtkFileChooser*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((native)), ((ctk_file_chooser_get_type ()))))))
, filter);
9573 ctk_file_chooser_set_filter (CTK_FILE_CHOOSER (native)((((CtkFileChooser*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((native)), ((ctk_file_chooser_get_type ()))))))
, filter);
9574 break;
9575 }
9576}
9577
9578static void
9579destroy_native (CtkFileChooserNative *native)
9580{
9581 ctk_native_dialog_destroy (CTK_NATIVE_DIALOG (native));
9582 g_object_unref (native);
9583}
9584
9585void
9586create_native_dialogs (CtkWidget *widget)
9587{
9588 static CtkWidget *window = NULL((void*)0);
9589
9590 if (!window)
9591 {
9592 CtkWidget *box, *label;
9593 CtkWidget *show_button, *hide_button, *check_button;
9594 CtkFileChooserNative *native;
9595 CtkWidget *combo;
9596
9597 window = ctk_window_new (CTK_WINDOW_TOPLEVEL);
9598 ctk_window_set_screen (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
,
9599 ctk_widget_get_screen (widget));
9600
9601 native = ctk_file_chooser_native_new ("Native title",
9602 CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
,
9603 CTK_FILE_CHOOSER_ACTION_OPEN,
9604 "_accept&native",
9605 "_cancel__native");
9606
9607 g_signal_connect_swapped (G_OBJECT (window), "destroy", G_CALLBACK (destroy_native), native)g_signal_connect_data ((((((GObject*) (void *) g_type_check_instance_cast
((GTypeInstance*) ((window)), (((GType) ((20) << (2)))
)))))), ("destroy"), (((GCallback) (destroy_native))), (native
), ((void*)0), G_CONNECT_SWAPPED)
;
9608
9609 ctk_file_chooser_add_shortcut_folder (CTK_FILE_CHOOSER (native)((((CtkFileChooser*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((native)), ((ctk_file_chooser_get_type ()))))))
,
9610 g_get_current_dir (),
9611 NULL((void*)0));
9612
9613 ctk_window_set_title (CTK_WINDOW(window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
, "Native dialog parent");
9614
9615 box = ctk_box_new (CTK_ORIENTATION_VERTICAL, 5);
9616 ctk_container_add (CTK_CONTAINER (window)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_container_get_type ()))))))
, box);
9617
9618 label = ctk_label_new ("");
9619 ctk_box_pack_start (CTK_BOX (box)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box)), ((ctk_box_get_type ()))))))
, label, FALSE(0), FALSE(0), 4);
9620
9621 combo = ctk_combo_box_text_new ();
9622
9623 ctk_combo_box_text_append_text (CTK_COMBO_BOX_TEXT (combo)((((CtkComboBoxText*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((combo)), ((ctk_combo_box_text_get_type ()))))))
, "Open");
9624 ctk_combo_box_text_append_text (CTK_COMBO_BOX_TEXT (combo)((((CtkComboBoxText*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((combo)), ((ctk_combo_box_text_get_type ()))))))
, "Save");
9625 ctk_combo_box_text_append_text (CTK_COMBO_BOX_TEXT (combo)((((CtkComboBoxText*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((combo)), ((ctk_combo_box_text_get_type ()))))))
, "Select Folder");
9626 ctk_combo_box_text_append_text (CTK_COMBO_BOX_TEXT (combo)((((CtkComboBoxText*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((combo)), ((ctk_combo_box_text_get_type ()))))))
, "Create Folder");
9627 ctk_combo_box_text_append_text (CTK_COMBO_BOX_TEXT (combo)((((CtkComboBoxText*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((combo)), ((ctk_combo_box_text_get_type ()))))))
, "Save as");
9628
9629 g_signal_connect (combo, "changed",g_signal_connect_data ((combo), ("changed"), (((GCallback) (native_action_changed
))), (native), ((void*)0), (GConnectFlags) 0)
9630 G_CALLBACK (native_action_changed), native)g_signal_connect_data ((combo), ("changed"), (((GCallback) (native_action_changed
))), (native), ((void*)0), (GConnectFlags) 0)
;
9631 ctk_combo_box_set_active (CTK_COMBO_BOX (combo)((((CtkComboBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((combo)), ((ctk_combo_box_get_type ()))))))
, CTK_FILE_CHOOSER_ACTION_OPEN);
9632 ctk_box_pack_start (CTK_BOX (box)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box)), ((ctk_box_get_type ()))))))
, combo, FALSE(0), FALSE(0), 4);
9633
9634 combo = ctk_combo_box_text_new ();
9635
9636 ctk_combo_box_text_append_text (CTK_COMBO_BOX_TEXT (combo)((((CtkComboBoxText*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((combo)), ((ctk_combo_box_text_get_type ()))))))
, "No filters");
9637 ctk_combo_box_text_append_text (CTK_COMBO_BOX_TEXT (combo)((((CtkComboBoxText*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((combo)), ((ctk_combo_box_text_get_type ()))))))
, "Pattern filter");
9638 ctk_combo_box_text_append_text (CTK_COMBO_BOX_TEXT (combo)((((CtkComboBoxText*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((combo)), ((ctk_combo_box_text_get_type ()))))))
, "Mimetype filter");
9639
9640 g_signal_connect (combo, "changed",g_signal_connect_data ((combo), ("changed"), (((GCallback) (native_filter_changed
))), (native), ((void*)0), (GConnectFlags) 0)
9641 G_CALLBACK (native_filter_changed), native)g_signal_connect_data ((combo), ("changed"), (((GCallback) (native_filter_changed
))), (native), ((void*)0), (GConnectFlags) 0)
;
9642 ctk_combo_box_set_active (CTK_COMBO_BOX (combo)((((CtkComboBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((combo)), ((ctk_combo_box_get_type ()))))))
, 0);
9643 ctk_box_pack_start (CTK_BOX (box)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box)), ((ctk_box_get_type ()))))))
, combo, FALSE(0), FALSE(0), 4);
9644
9645 check_button = ctk_check_button_new_with_label ("Modal");
9646 g_signal_connect (check_button, "toggled",g_signal_connect_data ((check_button), ("toggled"), (((GCallback
) (native_modal_toggle))), (native), ((void*)0), (GConnectFlags
) 0)
9647 G_CALLBACK (native_modal_toggle), native)g_signal_connect_data ((check_button), ("toggled"), (((GCallback
) (native_modal_toggle))), (native), ((void*)0), (GConnectFlags
) 0)
;
9648 ctk_box_pack_start (CTK_BOX (box)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box)), ((ctk_box_get_type ()))))))
, check_button, FALSE(0), FALSE(0), 4);
9649
9650 check_button = ctk_check_button_new_with_label ("Multiple select");
9651 g_signal_connect (check_button, "toggled",g_signal_connect_data ((check_button), ("toggled"), (((GCallback
) (native_multi_select_toggle))), (native), ((void*)0), (GConnectFlags
) 0)
9652 G_CALLBACK (native_multi_select_toggle), native)g_signal_connect_data ((check_button), ("toggled"), (((GCallback
) (native_multi_select_toggle))), (native), ((void*)0), (GConnectFlags
) 0)
;
9653 ctk_box_pack_start (CTK_BOX (box)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box)), ((ctk_box_get_type ()))))))
, check_button, FALSE(0), FALSE(0), 4);
9654
9655 check_button = ctk_check_button_new_with_label ("Confirm overwrite");
9656 g_signal_connect (check_button, "toggled",g_signal_connect_data ((check_button), ("toggled"), (((GCallback
) (native_overwrite_confirmation_toggle))), (native), ((void*
)0), (GConnectFlags) 0)
9657 G_CALLBACK (native_overwrite_confirmation_toggle), native)g_signal_connect_data ((check_button), ("toggled"), (((GCallback
) (native_overwrite_confirmation_toggle))), (native), ((void*
)0), (GConnectFlags) 0)
;
9658 ctk_box_pack_start (CTK_BOX (box)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box)), ((ctk_box_get_type ()))))))
, check_button, FALSE(0), FALSE(0), 4);
9659
9660 check_button = ctk_check_button_new_with_label ("Extra widget");
9661 g_signal_connect (check_button, "toggled",g_signal_connect_data ((check_button), ("toggled"), (((GCallback
) (native_extra_widget_toggle))), (native), ((void*)0), (GConnectFlags
) 0)
9662 G_CALLBACK (native_extra_widget_toggle), native)g_signal_connect_data ((check_button), ("toggled"), (((GCallback
) (native_extra_widget_toggle))), (native), ((void*)0), (GConnectFlags
) 0)
;
9663 ctk_box_pack_start (CTK_BOX (box)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box)), ((ctk_box_get_type ()))))))
, check_button, FALSE(0), FALSE(0), 4);
9664
9665 show_button = ctk_button_new_with_label ("Show");
9666 hide_button = ctk_button_new_with_label ("Hide");
9667 ctk_widget_set_sensitive (hide_button, FALSE(0));
9668
9669 ctk_box_pack_start (CTK_BOX (box)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box)), ((ctk_box_get_type ()))))))
, show_button, FALSE(0), FALSE(0), 4);
9670 ctk_box_pack_start (CTK_BOX (box)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box)), ((ctk_box_get_type ()))))))
, hide_button, FALSE(0), FALSE(0), 4);
9671
9672 /* connect signals */
9673 g_signal_connect (native, "response",g_signal_connect_data ((native), ("response"), (((GCallback) (
native_response))), (label), ((void*)0), (GConnectFlags) 0)
9674 G_CALLBACK (native_response), label)g_signal_connect_data ((native), ("response"), (((GCallback) (
native_response))), (label), ((void*)0), (GConnectFlags) 0)
;
9675 g_signal_connect (show_button, "clicked",g_signal_connect_data ((show_button), ("clicked"), (((GCallback
) (show_native))), (native), ((void*)0), (GConnectFlags) 0)
9676 G_CALLBACK (show_native), native)g_signal_connect_data ((show_button), ("clicked"), (((GCallback
) (show_native))), (native), ((void*)0), (GConnectFlags) 0)
;
9677 g_signal_connect (hide_button, "clicked",g_signal_connect_data ((hide_button), ("clicked"), (((GCallback
) (hide_native))), (native), ((void*)0), (GConnectFlags) 0)
9678 G_CALLBACK (hide_native), native)g_signal_connect_data ((hide_button), ("clicked"), (((GCallback
) (hide_native))), (native), ((void*)0), (GConnectFlags) 0)
;
9679
9680 g_signal_connect (native, "notify::visible",g_signal_connect_data ((native), ("notify::visible"), (((GCallback
) (native_visible_notify_show))), (show_button), ((void*)0), (
GConnectFlags) 0)
9681 G_CALLBACK (native_visible_notify_show), show_button)g_signal_connect_data ((native), ("notify::visible"), (((GCallback
) (native_visible_notify_show))), (show_button), ((void*)0), (
GConnectFlags) 0)
;
9682 g_signal_connect (native, "notify::visible",g_signal_connect_data ((native), ("notify::visible"), (((GCallback
) (native_visible_notify_hide))), (hide_button), ((void*)0), (
GConnectFlags) 0)
9683 G_CALLBACK (native_visible_notify_hide), hide_button)g_signal_connect_data ((native), ("notify::visible"), (((GCallback
) (native_visible_notify_hide))), (hide_button), ((void*)0), (
GConnectFlags) 0)
;
9684
9685 g_signal_connect (window, "destroy",g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
9686 G_CALLBACK (ctk_widget_destroyed),g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
9687 &window)g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_widget_destroyed))), (&window), ((void*)0), (GConnectFlags
) 0)
;
9688 }
9689
9690 if (!ctk_widget_get_visible (window))
9691 ctk_widget_show_all (window);
9692 else
9693 ctk_widget_destroy (window);
9694}
9695
9696/*
9697 * Main Window and Exit
9698 */
9699
9700void
9701do_exit (CtkWidget *widget, CtkWidget *window)
9702{
9703 ctk_widget_destroy (window);
9704 ctk_main_quit ();
9705}
9706
9707struct {
9708 char *label;
9709 void (*func) (CtkWidget *widget);
9710 gboolean do_not_benchmark;
9711} buttons[] =
9712{
9713 { .label = "alpha window", .func = create_alpha_window },
9714 { .label = "alpha widget", .func = create_alpha_widgets },
9715 { .label = "big windows", .func = create_big_windows },
9716 { .label = "button box", .func = create_button_box },
9717 { .label = "buttons", .func = create_buttons },
9718 { .label = "check buttons", .func = create_check_buttons },
9719 { .label = "color selection", .func = create_color_selection },
9720 { .label = "composited window", .func = create_composited_window },
9721 { .label = "cursors", .func = create_cursors },
9722 { .label = "dialog", .func = create_dialog },
9723 { .label = "display", .func = create_display_screen, .do_not_benchmark = TRUE(!(0)) },
9724 { .label = "entry", .func = create_entry },
9725 { .label = "event box", .func = create_event_box },
9726 { .label = "event watcher", .func = create_event_watcher },
9727 { .label = "expander", .func = create_expander },
9728 { .label = "flipping", .func = create_flipping },
9729 { .label = "focus", .func = create_focus },
9730 { .label = "font selection", .func = create_font_selection },
9731 { .label = "image", .func = create_image },
9732 { .label = "key lookup", .func = create_key_lookup },
9733 { .label = "labels", .func = create_labels },
9734 { .label = "layout", .func = create_layout },
9735 { .label = "listbox", .func = create_listbox },
9736 { .label = "menus", .func = create_menus },
9737 { .label = "message dialog", .func = create_message_dialog },
9738 { .label = "modal window", .func = create_modal_window, .do_not_benchmark = TRUE(!(0)) },
9739 { .label = "native dialogs", .func = create_native_dialogs },
9740 { .label = "notebook", .func = create_notebook },
9741 { .label = "panes", .func = create_panes },
9742 { .label = "paned keyboard", .func = create_paned_keyboard_navigation },
9743 { .label = "pixbuf", .func = create_pixbuf },
9744 { .label = "progress bar", .func = create_progress_bar },
9745 { .label = "radio buttons", .func = create_radio_buttons },
9746 { .label = "range controls", .func = create_range_controls },
9747 { .label = "reparent", .func = create_reparent },
9748 { .label = "resize grips", .func = create_resize_grips },
9749 { .label = "rotated label", .func = create_rotated_label },
9750 { .label = "rotated text", .func = create_rotated_text },
9751 { .label = "saved position", .func = create_saved_position },
9752 { .label = "scrolled windows", .func = create_scrolled_windows },
9753 { .label = "shapes", .func = create_shapes },
9754 { .label = "size groups", .func = create_size_groups },
9755 { .label = "snapshot", .func = create_snapshot },
9756 { .label = "spinbutton", .func = create_spins },
9757 { .label = "statusbar", .func = create_statusbar },
9758 { .label = "test mainloop", .func = create_mainloop, .do_not_benchmark = TRUE(!(0)) },
9759 { .label = "test scrolling", .func = create_scroll_test },
9760 { .label = "test selection", .func = create_selection_test },
9761 { .label = "test timeout", .func = create_timeout_test },
9762 { .label = "toggle buttons", .func = create_toggle_buttons },
9763 { .label = "toolbar", .func = create_toolbar },
9764 { .label = "tooltips", .func = create_tooltips },
9765 { .label = "WM hints", .func = create_wmhints },
9766 { .label = "window sizing", .func = create_window_sizing },
9767 { .label = "window states", .func = create_window_states }
9768};
9769int nbuttons = sizeof (buttons) / sizeof (buttons[0]);
9770
9771void
9772create_main_window (void)
9773{
9774 CtkWidget *window;
9775 CtkWidget *box1;
9776 CtkWidget *box2;
9777 CtkWidget *scrolled_window;
9778 CtkWidget *button;
9779 CtkWidget *label;
9780 gchar buffer[64];
9781 CtkWidget *separator;
9782 CdkGeometry geometry;
9783 int i;
9784
9785 window = ctk_window_new (CTK_WINDOW_TOPLEVEL);
9786 ctk_widget_set_name (window, "main_window");
9787 ctk_window_move (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
, 50, 20);
9788 ctk_window_set_default_size (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
, -1, 400);
9789
9790 geometry.min_width = -1;
9791 geometry.min_height = -1;
9792 geometry.max_width = -1;
9793 geometry.max_height = G_MAXSHORT32767;
9794 ctk_window_set_geometry_hints (CTK_WINDOW (window)((((CtkWindow*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_window_get_type ()))))))
, NULL((void*)0),
9795 &geometry,
9796 CDK_HINT_MIN_SIZE | CDK_HINT_MAX_SIZE);
9797
9798 g_signal_connect (window, "destroy",g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_main_quit))), (((void*)0)), ((void*)0), (GConnectFlags) 0
)
9799 G_CALLBACK (ctk_main_quit),g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_main_quit))), (((void*)0)), ((void*)0), (GConnectFlags) 0
)
9800 NULL)g_signal_connect_data ((window), ("destroy"), (((GCallback) (
ctk_main_quit))), (((void*)0)), ((void*)0), (GConnectFlags) 0
)
;
9801 g_signal_connect (window, "delete-event",g_signal_connect_data ((window), ("delete-event"), (((GCallback
) (ctk_false))), (((void*)0)), ((void*)0), (GConnectFlags) 0)
9802 G_CALLBACK (ctk_false),g_signal_connect_data ((window), ("delete-event"), (((GCallback
) (ctk_false))), (((void*)0)), ((void*)0), (GConnectFlags) 0)
9803 NULL)g_signal_connect_data ((window), ("delete-event"), (((GCallback
) (ctk_false))), (((void*)0)), ((void*)0), (GConnectFlags) 0)
;
9804
9805 box1 = ctk_box_new (CTK_ORIENTATION_VERTICAL, 0);
9806 ctk_container_add (CTK_CONTAINER (window)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((window)), ((ctk_container_get_type ()))))))
, box1);
9807
9808 if (ctk_micro_versionctk_get_micro_version () > 0)
9809 sprintf (buffer,
9810 "Ctk+ v%d.%d.%d",
9811 ctk_get_major_version (),
9812 ctk_get_minor_version (),
9813 ctk_get_micro_version ());
9814 else
9815 sprintf (buffer,
9816 "Ctk+ v%d.%d",
9817 ctk_get_major_version (),
9818 ctk_get_minor_version ());
9819
9820 label = ctk_label_new (buffer);
9821 ctk_box_pack_start (CTK_BOX (box1)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box1)), ((ctk_box_get_type ()))))))
, label, FALSE(0), FALSE(0), 0);
9822 ctk_widget_set_name (label, "testctk-version-label");
9823
9824 scrolled_window = ctk_scrolled_window_new (NULL((void*)0), NULL((void*)0));
9825 ctk_container_set_border_width (CTK_CONTAINER (scrolled_window)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((scrolled_window)), ((ctk_container_get_type ()))))))
, 10);
9826 ctk_scrolled_window_set_policy (CTK_SCROLLED_WINDOW (scrolled_window)((((CtkScrolledWindow*) (void *) g_type_check_instance_cast (
(GTypeInstance*) ((scrolled_window)), ((ctk_scrolled_window_get_type
()))))))
,
9827 CTK_POLICY_NEVER,
9828 CTK_POLICY_AUTOMATIC);
9829 ctk_box_pack_start (CTK_BOX (box1)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box1)), ((ctk_box_get_type ()))))))
, scrolled_window, TRUE(!(0)), TRUE(!(0)), 0);
9830
9831 box2 = ctk_box_new (CTK_ORIENTATION_VERTICAL, 0);
9832 ctk_container_set_border_width (CTK_CONTAINER (box2)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_container_get_type ()))))))
, 10);
9833 ctk_container_add (CTK_CONTAINER (scrolled_window)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((scrolled_window)), ((ctk_container_get_type ()))))))
, box2);
9834 ctk_container_set_focus_vadjustment (CTK_CONTAINER (box2)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_container_get_type ()))))))
,
9835 ctk_scrolled_window_get_vadjustment (CTK_SCROLLED_WINDOW (scrolled_window)((((CtkScrolledWindow*) (void *) g_type_check_instance_cast (
(GTypeInstance*) ((scrolled_window)), ((ctk_scrolled_window_get_type
()))))))
));
9836 ctk_widget_show (box2);
9837
9838 for (i = 0; i < nbuttons; i++)
9839 {
9840 button = ctk_button_new_with_label (buttons[i].label);
9841 if (buttons[i].func)
9842 g_signal_connect (button,g_signal_connect_data ((button), ("clicked"), (((GCallback) (
buttons[i].func))), (((void*)0)), ((void*)0), (GConnectFlags)
0)
9843 "clicked",g_signal_connect_data ((button), ("clicked"), (((GCallback) (
buttons[i].func))), (((void*)0)), ((void*)0), (GConnectFlags)
0)
9844 G_CALLBACK(buttons[i].func),g_signal_connect_data ((button), ("clicked"), (((GCallback) (
buttons[i].func))), (((void*)0)), ((void*)0), (GConnectFlags)
0)
9845 NULL)g_signal_connect_data ((button), ("clicked"), (((GCallback) (
buttons[i].func))), (((void*)0)), ((void*)0), (GConnectFlags)
0)
;
9846 else
9847 ctk_widget_set_sensitive (button, FALSE(0));
9848 ctk_box_pack_start (CTK_BOX (box2)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_box_get_type ()))))))
, button, TRUE(!(0)), TRUE(!(0)), 0);
9849 }
9850
9851 separator = ctk_separator_new (CTK_ORIENTATION_HORIZONTAL);
9852 ctk_box_pack_start (CTK_BOX (box1)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box1)), ((ctk_box_get_type ()))))))
, separator, FALSE(0), TRUE(!(0)), 0);
9853
9854 box2 = ctk_box_new (CTK_ORIENTATION_VERTICAL, 10);
9855 ctk_container_set_border_width (CTK_CONTAINER (box2)((((CtkContainer*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_container_get_type ()))))))
, 10);
9856 ctk_box_pack_start (CTK_BOX (box1)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box1)), ((ctk_box_get_type ()))))))
, box2, FALSE(0), TRUE(!(0)), 0);
9857
9858 button = ctk_button_new_with_mnemonic ("_Close");
9859 g_signal_connect (button, "clicked",g_signal_connect_data ((button), ("clicked"), (((GCallback) (
do_exit))), (window), ((void*)0), (GConnectFlags) 0)
9860 G_CALLBACK (do_exit),g_signal_connect_data ((button), ("clicked"), (((GCallback) (
do_exit))), (window), ((void*)0), (GConnectFlags) 0)
9861 window)g_signal_connect_data ((button), ("clicked"), (((GCallback) (
do_exit))), (window), ((void*)0), (GConnectFlags) 0)
;
9862 ctk_box_pack_start (CTK_BOX (box2)((((CtkBox*) (void *) g_type_check_instance_cast ((GTypeInstance
*) ((box2)), ((ctk_box_get_type ()))))))
, button, TRUE(!(0)), TRUE(!(0)), 0);
9863 ctk_widget_set_can_default (button, TRUE(!(0)));
9864 ctk_widget_grab_default (button);
9865
9866 ctk_widget_show_all (window);
9867}
9868
9869static void
9870test_init (void)
9871{
9872 if (g_file_test ("../modules/input/immodules.cache", G_FILE_TEST_EXISTS))
9873 g_setenv ("CTK_IM_MODULE_FILE", "../modules/input/immodules.cache", TRUE(!(0)));
9874}
9875
9876static char *
9877pad (const char *str, int to)
9878{
9879 static char buf[256];
9880 int len = strlen (str);
9881 int i;
9882
9883 for (i = 0; i < to; i++)
9884 buf[i] = ' ';
9885
9886 buf[to] = '\0';
9887
9888 memcpy (buf, str, len);
9889
9890 return buf;
9891}
9892
9893static void
9894bench_iteration (CtkWidget *widget, void (* fn) (CtkWidget *widget))
9895{
9896 fn (widget); /* on */
9897 while (g_main_context_iteration (NULL((void*)0), FALSE(0)));
9898 fn (widget); /* off */
9899 while (g_main_context_iteration (NULL((void*)0), FALSE(0)));
9900}
9901
9902void
9903do_real_bench (CtkWidget *widget, void (* fn) (CtkWidget *widget), char *name, int num)
9904{
9905 gint64 t0, t1;
9906 double dt_first;
9907 double dt;
9908 int n;
9909 static gboolean printed_headers = FALSE(0);
9910
9911 if (!printed_headers) {
9912 g_print ("Test Iters First Other\n");
9913 g_print ("-------------------- ----- ---------- ----------\n");
9914 printed_headers = TRUE(!(0));
9915 }
9916
9917 t0 = g_get_monotonic_time ();
9918 bench_iteration (widget, fn);
9919 t1 = g_get_monotonic_time ();
9920
9921 dt_first = ((double)(t1 - t0)) / 1000.0;
9922
9923 t0 = g_get_monotonic_time ();
9924 for (n = 0; n < num - 1; n++)
9925 bench_iteration (widget, fn);
9926 t1 = g_get_monotonic_time ();
9927 dt = ((double)(t1 - t0)) / 1000.0;
9928
9929 g_print ("%s %5d ", pad (name, 20), num);
9930 if (num > 1)
9931 g_print ("%10.1f %10.1f\n", dt_first, dt/(num-1));
9932 else
9933 g_print ("%10.1f\n", dt_first);
9934}
9935
9936void
9937do_bench (char* what, int num)
9938{
9939 int i;
9940 CtkWidget *widget;
9941 void (* fn) (CtkWidget *widget);
9942 fn = NULL((void*)0);
9943 widget = ctk_window_new (CTK_WINDOW_TOPLEVEL);
9944
9945 if (g_ascii_strcasecmp (what, "ALL") == 0)
9946 {
9947 for (i = 0; i < nbuttons; i++)
9948 {
9949 if (!buttons[i].do_not_benchmark)
9950 do_real_bench (widget, buttons[i].func, buttons[i].label, num);
9951 }
9952
9953 return;
9954 }
9955 else
9956 {
9957 for (i = 0; i < nbuttons; i++)
9958 {
9959 if (strcmp (buttons[i].label, what) == 0)
9960 {
9961 fn = buttons[i].func;
9962 break;
9963 }
9964 }
9965
9966 if (!fn)
9967 g_print ("Can't bench: \"%s\" not found.\n", what);
9968 else
9969 do_real_bench (widget, fn, buttons[i].label, num);
9970 }
9971}
9972
9973void
9974usage (void)
9975{
9976 fprintf (stderrstderr, "Usage: testctk [--bench ALL|<bench>[:<count>]]\n");
9977 exit (1);
9978}
9979
9980int
9981main (int argc, char *argv[])
9982{
9983 CtkCssProvider *provider, *memory_provider;
9984 CdkDisplay *display;
9985 CdkScreen *screen;
9986 CtkBindingSet *binding_set;
9987 int i;
9988 gboolean done_benchmarks = FALSE(0);
9989
9990 srand (time (NULL((void*)0)));
9991
9992 test_init ();
9993
9994 g_set_application_name ("CTK+ Test Program");
9995
9996 ctk_init (&argc, &argv);
9997
9998 provider = ctk_css_provider_new ();
9999
10000 /* Check to see if we are being run from the correct
10001 * directory.
10002 */
10003 if (file_exists ("testctk.css"))
10004 ctk_css_provider_load_from_path (provider, "testctk.css", NULL((void*)0));
10005 else if (file_exists ("tests/testctk.css"))
10006 ctk_css_provider_load_from_path (provider, "tests/testctk.css", NULL((void*)0));
10007 else
10008 g_warning ("Couldn't find file \"testctk.css\".");
10009
10010 display = cdk_display_get_default ();
10011 screen = cdk_display_get_default_screen (display);
10012
10013 ctk_style_context_add_provider_for_screen (screen, CTK_STYLE_PROVIDER (provider)((((CtkStyleProvider*) (void *) g_type_check_instance_cast ((
GTypeInstance*) ((provider)), ((ctk_style_provider_get_type (
)))))))
,
10014 CTK_STYLE_PROVIDER_PRIORITY_APPLICATION600);
10015 g_object_unref (provider);
10016
10017 ctk_accelerator_set_default_mod_mask (CDK_SHIFT_MASK |
10018 CDK_CONTROL_MASK |
10019 CDK_MOD1_MASK |
10020 CDK_META_MASK |
10021 CDK_SUPER_MASK |
10022 CDK_HYPER_MASK |
10023 CDK_MOD4_MASK);
10024 /* benchmarking
10025 */
10026 for (i = 1; i < argc; i++)
10027 {
10028 if (strncmp (argv[i], "--bench", strlen("--bench")) == 0)
10029 {
10030 int num = 1;
10031 char *nextarg;
10032 char *what;
10033 char *count;
10034
10035 nextarg = strchr (argv[i], '=');
10036 if (nextarg)
10037 nextarg++;
10038 else
10039 {
10040 i++;
10041 if (i == argc)
10042 usage ();
10043 nextarg = argv[i];
10044 }
10045
10046 count = strchr (nextarg, ':');
10047 if (count)
10048 {
10049 what = g_strndup (nextarg, count - nextarg);
10050 count++;
10051 num = atoi (count);
10052 if (num <= 0)
10053 usage ();
10054 }
10055 else
10056 what = g_strdup (nextarg)g_strdup_inline (nextarg);
10057
10058 do_bench (what, num ? num : 1);
10059 done_benchmarks = TRUE(!(0));
10060 }
10061 else
10062 usage ();
10063 }
10064 if (done_benchmarks)
10065 return 0;
10066
10067 /* bindings test
10068 */
10069 binding_set = ctk_binding_set_by_class (g_type_class_ref (CTK_TYPE_WIDGET(ctk_widget_get_type ())));
10070 ctk_binding_entry_add_signal (binding_set,
10071 '9', CDK_CONTROL_MASK | CDK_RELEASE_MASK,
10072 "debug_msg",
10073 1,
10074 G_TYPE_STRING((GType) ((16) << (2))), "CtkWidgetClass <ctrl><release>9 test");
10075
10076 memory_provider = ctk_css_provider_new ();
10077 ctk_css_provider_load_from_data (memory_provider,
10078 "#testctk-version-label {\n"
10079 " color: #f00;\n"
10080 " font-family: Sans;\n"
10081 " font-size: 18px;\n"
10082 "}",
10083 -1, NULL((void*)0));
10084 ctk_style_context_add_provider_for_screen (screen, CTK_STYLE_PROVIDER (memory_provider)((((CtkStyleProvider*) (void *) g_type_check_instance_cast ((
GTypeInstance*) ((memory_provider)), ((ctk_style_provider_get_type
()))))))
,
10085 CTK_STYLE_PROVIDER_PRIORITY_APPLICATION600 + 1);
10086
10087 create_main_window ();
10088
10089 ctk_main ();
10090
10091 if (1)
10092 {
10093 while (g_main_context_pending (NULL((void*)0)))
10094 g_main_context_iteration (NULL((void*)0), FALSE(0));
10095#if 0
10096 sleep (1);
10097 while (g_main_context_pending (NULL((void*)0)))
10098 g_main_context_iteration (NULL((void*)0), FALSE(0));
10099#endif
10100 }
10101 return 0;
10102}