2 * This file is a part of hildon examples
4 * Copyright (C) 2008 Nokia Corporation, all rights reserved.
6 * Author: Karl Lattimer <karl.lattimer@nokia.com>
8 * This library is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Lesser General Public License
10 * as published by the Free Software Foundation; version 2.1 of
11 * the License, or (at your option) any later version.
13 * This library is distributed in the hope that it will be useful, but
14 * WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 * Lesser General Public License for more details.
18 * You should have received a copy of the GNU Lesser General Public
19 * License along with this library; if not, write to the Free Software
20 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
28 static GtkWidget *horizontal_layout;
29 static GtkWidget *images;
32 button_clicked_cb (HildonButton *button,
35 g_debug ("Pressed button: %s", hildon_button_get_title (button));
42 return gtk_image_new_from_stock (GTK_STOCK_INFO, GTK_ICON_SIZE_BUTTON);
46 vertical_buttons_window (GtkButton *b,
56 HildonButtonArrangement arrangement;
60 win = hildon_stackable_window_new ();
61 gtk_container_set_border_width (GTK_CONTAINER (win), 20);
63 arrangement = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (horizontal_layout)) ?
64 HILDON_BUTTON_ARRANGEMENT_HORIZONTAL :
65 HILDON_BUTTON_ARRANGEMENT_VERTICAL;
67 use_images = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (images));
69 /* Create and pack boxes */
70 hbox = GTK_BOX (gtk_hbox_new (FALSE, 10));
71 vbox1 = GTK_BOX (gtk_vbox_new (FALSE, 10));
72 vbox2 = GTK_BOX (gtk_vbox_new (FALSE, 10));
73 vbox3 = GTK_BOX (gtk_vbox_new (FALSE, 10));
75 gtk_box_pack_start (hbox, GTK_WIDGET (vbox1), TRUE, TRUE, 0);
76 gtk_box_pack_start (hbox, GTK_WIDGET (vbox2), TRUE, TRUE, 0);
77 gtk_box_pack_start (hbox, GTK_WIDGET (vbox3), TRUE, TRUE, 0);
80 gtk_box_pack_start (vbox1, gtk_label_new ("Finger height"), FALSE, FALSE, 0);
81 for (i = 0; i < 4; i++) {
82 gchar *title = g_strdup_printf ("Title %d", i);
83 button = hildon_button_new_with_text (HILDON_SIZE_FINGER_HEIGHT |
84 HILDON_SIZE_AUTO_WIDTH, arrangement, title,
85 i % 2 ? "Value" : NULL);
86 g_signal_connect (button, "clicked", G_CALLBACK (button_clicked_cb), NULL);
87 gtk_box_pack_start (vbox1, button, FALSE, FALSE, 0);
90 hildon_button_set_image (HILDON_BUTTON (button), create_image ());
92 hildon_button_set_image_position (HILDON_BUTTON (button), GTK_POS_RIGHT);
96 gtk_box_pack_start (vbox2, gtk_label_new ("Thumb height"), FALSE, FALSE, 0);
97 for (i = 0; i < 3; i++) {
98 gchar *title = g_strdup_printf ("Title %d", i);
99 button = hildon_button_new_with_text (HILDON_SIZE_THUMB_HEIGHT |
100 HILDON_SIZE_AUTO_WIDTH, arrangement, title,
101 i % 2 ? "Value" : NULL);
102 g_signal_connect (button, "clicked", G_CALLBACK (button_clicked_cb), NULL);
103 gtk_box_pack_start (vbox2, button, FALSE, FALSE, 0);
106 hildon_button_set_image (HILDON_BUTTON (button), create_image ());
108 hildon_button_set_image_position (HILDON_BUTTON (button), GTK_POS_RIGHT);
112 gtk_box_pack_start (vbox3, gtk_label_new ("Auto height"), FALSE, FALSE, 0);
113 for (i = 0; i < 6; i++) {
114 gchar *title = g_strdup_printf ("Title %d", i);
115 button = hildon_button_new_with_text (HILDON_SIZE_AUTO, arrangement, title,
116 i % 2 ? "Value" : NULL);
117 g_signal_connect (button, "clicked", G_CALLBACK (button_clicked_cb), NULL);
118 gtk_box_pack_start (vbox3, button, FALSE, FALSE, 0);
121 hildon_button_set_image (HILDON_BUTTON (button), create_image ());
123 hildon_button_set_image_position (HILDON_BUTTON (button), GTK_POS_RIGHT);
126 gtk_container_add (GTK_CONTAINER (win), GTK_WIDGET (hbox));
128 gtk_widget_show_all (win);
132 horizontal_buttons_window (GtkButton *b,
142 HildonButtonArrangement arrangement;
146 win = hildon_stackable_window_new ();
147 gtk_container_set_border_width (GTK_CONTAINER (win), 20);
149 arrangement = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (horizontal_layout)) ?
150 HILDON_BUTTON_ARRANGEMENT_HORIZONTAL :
151 HILDON_BUTTON_ARRANGEMENT_VERTICAL;
153 use_images = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (images));
155 /* Create and pack boxes */
156 vbox = GTK_BOX (gtk_vbox_new (FALSE, 10));
157 hbox1 = GTK_BOX (gtk_hbox_new (FALSE, 10));
158 hbox2 = GTK_BOX (gtk_hbox_new (FALSE, 10));
159 hbox3 = GTK_BOX (gtk_hbox_new (FALSE, 10));
160 hbox4 = GTK_BOX (gtk_hbox_new (FALSE, 10));
162 gtk_box_pack_start (vbox, gtk_label_new ("(all buttons have finger height)"), FALSE, FALSE, 0);
163 gtk_box_pack_start (vbox, GTK_WIDGET (hbox1), FALSE, FALSE, 0);
164 gtk_box_pack_start (vbox, GTK_WIDGET (hbox2), FALSE, FALSE, 0);
165 gtk_box_pack_start (vbox, GTK_WIDGET (hbox3), FALSE, FALSE, 0);
166 gtk_box_pack_start (vbox, GTK_WIDGET (hbox4), FALSE, FALSE, 0);
168 /* Full screen width button */
169 button = hildon_button_new_with_text (HILDON_SIZE_FULLSCREEN_WIDTH |
170 HILDON_SIZE_FINGER_HEIGHT, arrangement, "Full width", "Value");
171 gtk_box_pack_start (hbox1, button, TRUE, TRUE, 0);
172 g_signal_connect (button, "clicked", G_CALLBACK (button_clicked_cb), NULL);
174 hildon_button_set_image (HILDON_BUTTON (button), create_image ());
176 /* Half screen width buttons */
177 button = hildon_button_new_with_text (HILDON_SIZE_HALFSCREEN_WIDTH |
178 HILDON_SIZE_FINGER_HEIGHT, arrangement, "Half width 1", "Value");
179 gtk_box_pack_start (hbox2, button, TRUE, TRUE, 0);
180 g_signal_connect (button, "clicked", G_CALLBACK (button_clicked_cb), NULL);
182 hildon_button_set_image (HILDON_BUTTON (button), create_image ());
184 button = hildon_button_new_with_text (HILDON_SIZE_HALFSCREEN_WIDTH |
185 HILDON_SIZE_FINGER_HEIGHT, arrangement,
186 "Half width 2 with long title",
188 gtk_box_pack_start (hbox2, button, TRUE, TRUE, 0);
189 g_signal_connect (button, "clicked", G_CALLBACK (button_clicked_cb), NULL);
191 hildon_button_set_image (HILDON_BUTTON (button), create_image ());
192 hildon_button_set_image_position (HILDON_BUTTON (button), GTK_POS_RIGHT);
194 /* Half screen width buttons */
195 button = hildon_button_new_with_text (HILDON_SIZE_HALFSCREEN_WIDTH |
196 HILDON_SIZE_FINGER_HEIGHT, arrangement, "Half width 3", NULL);
197 gtk_box_pack_start (hbox3, button, TRUE, TRUE, 0);
198 g_signal_connect (button, "clicked", G_CALLBACK (button_clicked_cb), NULL);
200 hildon_button_set_image (HILDON_BUTTON (button), create_image ());
201 hildon_button_set_image_position (HILDON_BUTTON (button), GTK_POS_RIGHT);
203 button = hildon_button_new_with_text (HILDON_SIZE_HALFSCREEN_WIDTH |
204 HILDON_SIZE_FINGER_HEIGHT, arrangement,
205 "Half width 4 with very long title (REALLY long)",
206 "Value (title is truncated)");
207 gtk_box_pack_start (hbox3, button, TRUE, TRUE, 0);
208 g_signal_connect (button, "clicked", G_CALLBACK (button_clicked_cb), NULL);
210 hildon_button_set_image (HILDON_BUTTON (button), create_image ());
212 /* Auto width button */
213 button = hildon_button_new_with_text (HILDON_SIZE_AUTO_WIDTH |
214 HILDON_SIZE_FINGER_HEIGHT, arrangement,
215 "Auto width 1", "Value");
216 gtk_box_pack_start (hbox4, button, TRUE, TRUE, 0);
217 g_signal_connect (button, "clicked", G_CALLBACK (button_clicked_cb), NULL);
219 hildon_button_set_image (HILDON_BUTTON (button), create_image ());
221 button = hildon_button_new_with_text (HILDON_SIZE_AUTO_WIDTH |
222 HILDON_SIZE_FINGER_HEIGHT, arrangement,
223 "Auto width 2 with longer text", NULL);
224 gtk_box_pack_start (hbox4, button, TRUE, TRUE, 0);
225 g_signal_connect (button, "clicked", G_CALLBACK (button_clicked_cb), NULL);
227 hildon_button_set_image (HILDON_BUTTON (button), create_image ());
228 hildon_button_set_image_position (HILDON_BUTTON (button), GTK_POS_RIGHT);
230 gtk_container_add (GTK_CONTAINER (win), GTK_WIDGET (vbox));
232 gtk_widget_show_all (win);
236 common_buttons_window (GtkButton *b,
243 GtkSizeGroup *title1, *value1, *title2, *value2, *centered;
246 win = hildon_stackable_window_new ();
247 gtk_container_set_border_width (GTK_CONTAINER (win), 20);
249 panarea = hildon_pannable_area_new ();
250 vbox = GTK_BOX (gtk_vbox_new (FALSE, 10));
252 /* Single centered title */
253 button = hildon_button_new_with_text (HILDON_SIZE_AUTO_WIDTH |
254 HILDON_SIZE_FINGER_HEIGHT, HILDON_BUTTON_ARRANGEMENT_VERTICAL,
255 "Centered title", NULL);
256 gtk_box_pack_start (vbox, button, FALSE, FALSE, 0);
257 g_signal_connect (button, "clicked", G_CALLBACK (button_clicked_cb), NULL);
259 /* Single left-aligned title */
260 button = hildon_button_new_with_text (HILDON_SIZE_AUTO_WIDTH |
261 HILDON_SIZE_FINGER_HEIGHT, HILDON_BUTTON_ARRANGEMENT_VERTICAL,
262 "Left-aligned title", NULL);
263 gtk_button_set_alignment (GTK_BUTTON (button), 0.0, 0.5);
264 gtk_box_pack_start (vbox, button, FALSE, FALSE, 0);
265 g_signal_connect (button, "clicked", G_CALLBACK (button_clicked_cb), NULL);
267 /* Single right-aligned title */
268 button = hildon_button_new_with_text (HILDON_SIZE_AUTO_WIDTH |
269 HILDON_SIZE_FINGER_HEIGHT, HILDON_BUTTON_ARRANGEMENT_VERTICAL,
270 "Right-aligned title", NULL);
271 gtk_button_set_alignment (GTK_BUTTON (button), 1.0, 0.5);
272 gtk_box_pack_start (vbox, button, FALSE, FALSE, 0);
273 g_signal_connect (button, "clicked", G_CALLBACK (button_clicked_cb), NULL);
275 gtk_box_pack_start (vbox, gtk_hseparator_new (), FALSE, FALSE, 0);
277 /* Centered title and value */
278 button = hildon_button_new_with_text (HILDON_SIZE_AUTO_WIDTH |
279 HILDON_SIZE_FINGER_HEIGHT, HILDON_BUTTON_ARRANGEMENT_VERTICAL,
280 "Centered title", "Centered value");
281 hildon_button_set_title_alignment (HILDON_BUTTON (button), 0.5, 0.5);
282 hildon_button_set_value_alignment (HILDON_BUTTON (button), 0.5, 0.5);
283 gtk_box_pack_start (vbox, button, FALSE, FALSE, 0);
284 g_signal_connect (button, "clicked", G_CALLBACK (button_clicked_cb), NULL);
286 /* Left-aligned title and value */
287 button = hildon_button_new_with_text (HILDON_SIZE_AUTO_WIDTH |
288 HILDON_SIZE_FINGER_HEIGHT, HILDON_BUTTON_ARRANGEMENT_VERTICAL,
289 "Left-aligned title", "Left-aligned value");
290 gtk_button_set_alignment (GTK_BUTTON (button), 0.0, 0.5);
291 gtk_box_pack_start (vbox, button, FALSE, FALSE, 0);
292 g_signal_connect (button, "clicked", G_CALLBACK (button_clicked_cb), NULL);
294 /* Right-aligned title and value */
295 button = hildon_button_new_with_text (HILDON_SIZE_AUTO_WIDTH |
296 HILDON_SIZE_FINGER_HEIGHT, HILDON_BUTTON_ARRANGEMENT_VERTICAL,
297 "Right-aligned title", "Right-aligned value");
298 gtk_button_set_alignment (GTK_BUTTON (button), 1.0, 0.5);
299 hildon_button_set_title_alignment (HILDON_BUTTON (button), 1.0, 0.5);
300 hildon_button_set_value_alignment (HILDON_BUTTON (button), 1.0, 0.5);
301 gtk_box_pack_start (vbox, button, FALSE, FALSE, 0);
302 g_signal_connect (button, "clicked", G_CALLBACK (button_clicked_cb), NULL);
304 gtk_box_pack_start (vbox, gtk_hseparator_new (), FALSE, FALSE, 0);
306 /* Left-aligned title and value (with image) */
307 button = hildon_button_new_with_text (HILDON_SIZE_AUTO_WIDTH |
308 HILDON_SIZE_FINGER_HEIGHT, HILDON_BUTTON_ARRANGEMENT_VERTICAL,
309 "Left-aligned title (with image)", "Left-aligned value");
310 hildon_button_set_alignment (HILDON_BUTTON (button), 0.0, 0.5, 1.0, 0.0);
311 hildon_button_set_image (HILDON_BUTTON (button), create_image ());
312 hildon_button_set_image_position (HILDON_BUTTON (button), GTK_POS_RIGHT);
313 gtk_box_pack_start (vbox, button, FALSE, FALSE, 0);
314 g_signal_connect (button, "clicked", G_CALLBACK (button_clicked_cb), NULL);
316 /* Right-aligned title and value (with image) */
317 button = hildon_button_new_with_text (HILDON_SIZE_AUTO_WIDTH |
318 HILDON_SIZE_FINGER_HEIGHT, HILDON_BUTTON_ARRANGEMENT_VERTICAL,
319 "Right-aligned title (with image)", "Right-aligned value");
320 hildon_button_set_alignment (HILDON_BUTTON (button), 1.0, 0.5, 1.0, 0.0);
321 hildon_button_set_title_alignment (HILDON_BUTTON (button), 1.0, 0.5);
322 hildon_button_set_value_alignment (HILDON_BUTTON (button), 1.0, 0.5);
323 hildon_button_set_image (HILDON_BUTTON (button), create_image ());
324 hildon_button_set_image_position (HILDON_BUTTON (button), GTK_POS_LEFT);
325 gtk_box_pack_start (vbox, button, FALSE, FALSE, 0);
326 g_signal_connect (button, "clicked", G_CALLBACK (button_clicked_cb), NULL);
328 gtk_box_pack_start (vbox, gtk_hseparator_new (), FALSE, FALSE, 0);
330 /* Centered title and value (horizontal) */
331 button = hildon_button_new_with_text (HILDON_SIZE_AUTO_WIDTH |
332 HILDON_SIZE_FINGER_HEIGHT, HILDON_BUTTON_ARRANGEMENT_HORIZONTAL,
333 "Centered labels", "Left and right margins are the same");
334 gtk_box_pack_start (vbox, button, FALSE, FALSE, 0);
335 g_signal_connect (button, "clicked", G_CALLBACK (button_clicked_cb), NULL);
337 /* Left-aligned title, right-aligned value (horizontal) */
338 button = hildon_button_new_with_text (HILDON_SIZE_AUTO_WIDTH |
339 HILDON_SIZE_FINGER_HEIGHT, HILDON_BUTTON_ARRANGEMENT_HORIZONTAL,
340 "Left-aligned title", "Right-aligned value");
341 hildon_button_set_alignment (HILDON_BUTTON (button), 0.5, 0.5, 1.0, 0.0);
342 gtk_box_pack_start (vbox, button, FALSE, FALSE, 0);
343 g_signal_connect (button, "clicked", G_CALLBACK (button_clicked_cb), NULL);
345 gtk_box_pack_start (vbox, gtk_hseparator_new (), FALSE, FALSE, 0);
347 /* Centered title and value (horizontal) */
348 centered = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL);
349 button = hildon_button_new_with_text (HILDON_SIZE_AUTO_WIDTH |
350 HILDON_SIZE_FINGER_HEIGHT, HILDON_BUTTON_ARRANGEMENT_HORIZONTAL,
351 "Same sized labels", "All using the same size group");
352 hildon_button_set_title_alignment (HILDON_BUTTON (button), 1.0, 0.5);
353 hildon_button_add_size_groups (HILDON_BUTTON (button), centered, centered, NULL);
354 gtk_box_pack_start (vbox, button, FALSE, FALSE, 0);
355 g_signal_connect (button, "clicked", G_CALLBACK (button_clicked_cb), NULL);
357 /* Centered title and value (horizontal) */
358 button = hildon_button_new_with_text (HILDON_SIZE_AUTO_WIDTH |
359 HILDON_SIZE_FINGER_HEIGHT, HILDON_BUTTON_ARRANGEMENT_HORIZONTAL,
360 "Labels aligned to the center", "Both buttons are aligned");
361 hildon_button_set_title_alignment (HILDON_BUTTON (button), 1.0, 0.5);
362 hildon_button_add_size_groups (HILDON_BUTTON (button), centered, centered, NULL);
363 gtk_box_pack_start (vbox, button, FALSE, FALSE, 0);
364 g_signal_connect (button, "clicked", G_CALLBACK (button_clicked_cb), NULL);
366 gtk_box_pack_start (vbox, gtk_hseparator_new (), FALSE, FALSE, 0);
368 /* Left-aligned title and value (horizontal) */
369 title1 = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL);
370 value1 = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL);
371 button = hildon_button_new_with_text (HILDON_SIZE_AUTO_WIDTH |
372 HILDON_SIZE_FINGER_HEIGHT, HILDON_BUTTON_ARRANGEMENT_HORIZONTAL,
373 "Left-aligned title", "Left-aligned value");
374 gtk_button_set_alignment (GTK_BUTTON (button), 0.0, 0.5);
375 hildon_button_add_size_groups (HILDON_BUTTON (button), title1, value1, NULL);
376 gtk_box_pack_start (vbox, button, FALSE, FALSE, 0);
377 g_signal_connect (button, "clicked", G_CALLBACK (button_clicked_cb), NULL);
379 /* Left-aligned title and value (horizontal), sharing the same GtkSizeGroup */
380 button = hildon_button_new_with_text (HILDON_SIZE_AUTO_WIDTH |
381 HILDON_SIZE_FINGER_HEIGHT, HILDON_BUTTON_ARRANGEMENT_HORIZONTAL,
382 "Left-aligned title (2)", "Left-aligned value (2)");
383 gtk_button_set_alignment (GTK_BUTTON (button), 0.0, 0.5);
384 hildon_button_add_size_groups (HILDON_BUTTON (button), title1, value1, NULL);
385 gtk_box_pack_start (vbox, button, FALSE, FALSE, 0);
386 g_signal_connect (button, "clicked", G_CALLBACK (button_clicked_cb), NULL);
388 gtk_box_pack_start (vbox, gtk_hseparator_new (), FALSE, FALSE, 0);
390 /* Right-aligned title and value (horizontal) */
391 title2 = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL);
392 value2 = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL);
393 button = hildon_button_new_with_text (HILDON_SIZE_AUTO_WIDTH |
394 HILDON_SIZE_FINGER_HEIGHT, HILDON_BUTTON_ARRANGEMENT_HORIZONTAL,
395 "Right-aligned title", "Right-aligned value");
396 gtk_button_set_alignment (GTK_BUTTON (button), 1.0, 0.5);
397 hildon_button_set_title_alignment (HILDON_BUTTON (button), 1.0, 0.5);
398 hildon_button_set_value_alignment (HILDON_BUTTON (button), 1.0, 0.5);
399 hildon_button_add_size_groups (HILDON_BUTTON (button), title2, value2, NULL);
400 gtk_box_pack_start (vbox, button, FALSE, FALSE, 0);
401 g_signal_connect (button, "clicked", G_CALLBACK (button_clicked_cb), NULL);
403 /* Right-aligned title and value (horizontal), sharing the same GtkSizeGroup */
404 button = hildon_button_new_with_text (HILDON_SIZE_AUTO_WIDTH |
405 HILDON_SIZE_FINGER_HEIGHT, HILDON_BUTTON_ARRANGEMENT_HORIZONTAL,
406 "Right-aligned title (2)", "Right-aligned value (2)");
407 gtk_button_set_alignment (GTK_BUTTON (button), 1.0, 0.5);
408 hildon_button_set_title_alignment (HILDON_BUTTON (button), 1.0, 0.5);
409 hildon_button_set_value_alignment (HILDON_BUTTON (button), 1.0, 0.5);
410 hildon_button_add_size_groups (HILDON_BUTTON (button), title2, value2, NULL);
411 gtk_box_pack_start (vbox, button, FALSE, FALSE, 0);
412 g_signal_connect (button, "clicked", G_CALLBACK (button_clicked_cb), NULL);
415 hildon_pannable_area_add_with_viewport (HILDON_PANNABLE_AREA (panarea), GTK_WIDGET (vbox));
416 gtk_container_add (GTK_CONTAINER (win), panarea);
418 g_object_unref (title1);
419 g_object_unref (value1);
420 g_object_unref (title2);
421 g_object_unref (value2);
422 g_object_unref (centered);
424 gtk_widget_show_all (win);
440 hildon_gtk_init (&argc, &argv);
442 vbox = GTK_BOX (gtk_vbox_new (FALSE, 10));
443 hbox = GTK_BOX (gtk_hbox_new (TRUE, 10));
445 win = hildon_stackable_window_new ();
447 label = gtk_label_new ("HildonButton example");
448 but1 = gtk_button_new_with_label ("Buttons with different heights");
449 but2 = gtk_button_new_with_label ("Buttons with different widths");
450 but3 = gtk_button_new_with_label ("Common button layouts");
452 horizontal_layout = gtk_check_button_new_with_label ("Use horizontal layout");
453 images = gtk_check_button_new_with_label ("Use images");
454 gtk_box_pack_start (hbox, horizontal_layout, TRUE, TRUE, 0);
455 gtk_box_pack_start (hbox, images, TRUE, TRUE, 0);
456 align = gtk_alignment_new (0.5, 0.5, 0, 0);
457 gtk_container_add (GTK_CONTAINER (align), GTK_WIDGET (hbox));
459 gtk_box_pack_start (vbox, label, TRUE, TRUE, 0);
460 gtk_box_pack_start (vbox, gtk_hseparator_new (), FALSE, FALSE, 0);
461 gtk_box_pack_start (vbox, but1, TRUE, TRUE, 0);
462 gtk_box_pack_start (vbox, but2, TRUE, TRUE, 0);
463 gtk_box_pack_start (vbox, align, FALSE, FALSE, 0);
464 gtk_box_pack_start (vbox, gtk_hseparator_new (), FALSE, FALSE, 0);
465 gtk_box_pack_start (vbox, but3, TRUE, TRUE, 0);
467 gtk_container_set_border_width (GTK_CONTAINER (win), 20);
468 gtk_container_add (GTK_CONTAINER (win), GTK_WIDGET (vbox));
470 g_signal_connect (but1, "clicked", G_CALLBACK (vertical_buttons_window), NULL);
471 g_signal_connect (but2, "clicked", G_CALLBACK (horizontal_buttons_window), NULL);
472 g_signal_connect (but3, "clicked", G_CALLBACK (common_buttons_window), NULL);
473 g_signal_connect (win, "destroy", G_CALLBACK (gtk_main_quit), NULL);
475 gtk_widget_show_all (win);