Make sure that all timeouts in HildonBanner are removed
[hildon] / examples / hildon-picker-button-example.c
1 /*
2  * This file is a part of hildon
3  *
4  * Copyright (C) 2008 Nokia Corporation, all rights reserved.
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU Lesser Public License as published by
8  * the Free Software Foundation; version 2 of the license.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  * GNU Lesser Public License for more details.
14  *
15  */
16
17 #include                                        <glib.h>
18 #include                                        <gtk/gtk.h>
19 #include                                        <hildon/hildon.h>
20
21 static void
22 on_picker_value_changed (HildonPickerButton * button, gpointer data)
23 {
24   g_print ("Newly selected value: %s\n",
25            hildon_button_get_value (HILDON_BUTTON (button)));
26 }
27
28 int
29 main (int argc, char **argv)
30 {
31   HildonProgram *program = NULL;
32   GtkWidget *window = NULL;
33   GtkWidget *button;
34   GtkWidget *selector;
35
36   hildon_gtk_init (&argc, &argv);
37
38   program = hildon_program_get_instance ();
39   g_set_application_name ("hildon-picker-button-example");
40
41   window = hildon_stackable_window_new ();
42   gtk_window_set_default_size (GTK_WINDOW (window), 300, 200);
43   hildon_program_add_window (program, HILDON_WINDOW (window));
44
45   button = hildon_picker_button_new (HILDON_SIZE_AUTO, HILDON_BUTTON_ARRANGEMENT_VERTICAL);
46   selector = hildon_touch_selector_new_text ();
47   hildon_button_set_title (HILDON_BUTTON (button), "Continent");
48
49   hildon_touch_selector_append_text (HILDON_TOUCH_SELECTOR (selector), "America");
50   hildon_touch_selector_append_text (HILDON_TOUCH_SELECTOR (selector), "Europe");
51   hildon_touch_selector_append_text (HILDON_TOUCH_SELECTOR (selector), "Asia");
52   hildon_touch_selector_append_text (HILDON_TOUCH_SELECTOR (selector), "Africa");
53   hildon_touch_selector_append_text (HILDON_TOUCH_SELECTOR (selector),
54                                      "Australia");
55
56   /* Select any item, just to show that during selector's setting, the currently selected
57      item will be displayed in the button's value. */
58   hildon_touch_selector_set_active (HILDON_TOUCH_SELECTOR (selector), 0, 2);
59
60   hildon_picker_button_set_selector (HILDON_PICKER_BUTTON (button),
61                                      HILDON_TOUCH_SELECTOR (selector));
62
63   g_signal_connect (G_OBJECT (button), "value-changed",
64                     G_CALLBACK (on_picker_value_changed), NULL);
65
66   gtk_container_add (GTK_CONTAINER (window), button);
67
68   g_signal_connect (G_OBJECT (window), "delete-event", 
69                     G_CALLBACK (gtk_main_quit), NULL);
70
71   gtk_widget_show_all (window);
72
73   gtk_main ();
74
75   return 0;
76 }