2008-07-31 Alberto Garcia <agarcia@igalia.com>
[hildon] / examples / hildon-hvolumebar-timer-example.c
1 /*
2  * This file is a part of hildon examples
3  *
4  * Copyright (C) 2005, 2006 Nokia Corporation, all rights reserved.
5  *
6  * Author: Michael Dominic Kostrzewa <michael.kostrzewa@nokia.com>
7  *
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.
12  *
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.
17  *
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
21  * 02110-1301 USA
22  *
23  */
24
25 #include                                        <stdio.h>
26 #include                                        <stdlib.h>
27 #include                                        <glib.h>
28 #include                                        <gtk/gtk.h>
29 #include                                        "hildon.h"
30
31 gboolean
32 on_idle                                         (void);
33
34 GtkDialog*                                      dialog = NULL;
35
36 HildonHVolumebar*                               bar = NULL;
37
38 int                                             cycle = 0;
39
40 gboolean
41 on_idle                                         (void)
42 {
43
44     if (dialog == NULL) {
45
46         g_debug ("Creating the dialog!");
47         
48         dialog = GTK_DIALOG (gtk_dialog_new ());
49
50         bar = HILDON_HVOLUMEBAR (hildon_hvolumebar_new ());
51         gtk_widget_set_size_request (GTK_WIDGET (bar), 400, -1);
52         hildon_helper_set_insensitive_message ((GtkWidget *) bar, "Insensitive");
53         hildon_volumebar_set_range_insensitive_message (HILDON_VOLUMEBAR (bar), "Insensitive range");
54
55         gtk_box_pack_start (GTK_BOX (dialog->vbox), GTK_WIDGET (bar), FALSE, FALSE, 0);
56         gtk_dialog_add_button (dialog, "Close", GTK_RESPONSE_CLOSE);
57
58         gtk_widget_show_all (GTK_WIDGET (dialog));
59         gtk_dialog_run (dialog);
60         gtk_widget_hide (GTK_WIDGET (dialog));
61  
62     } else {
63         
64         if (cycle == 0) {
65                 g_debug ("Making insensitive...");
66                 gtk_widget_set_sensitive (GTK_WIDGET (bar), FALSE);
67         } else if (cycle == 1) {
68                 g_debug ("Making sensitive...");
69                 gtk_widget_set_sensitive (GTK_WIDGET (bar), TRUE);
70         } else if (cycle == 2) { 
71                 g_debug ("Showing back...");
72                 gtk_widget_show (GTK_WIDGET (dialog));
73                 gtk_dialog_run (dialog);
74                 gtk_widget_hide (GTK_WIDGET (dialog));
75         }
76          
77         cycle = (cycle + 1) % 3;
78     }
79
80     g_timeout_add (2000, (GSourceFunc) on_idle, NULL);
81     return FALSE;
82 }
83
84 int
85 main                                            (int argc, 
86                                                  char **args)
87 {
88     gtk_init (&argc, &args);
89
90     g_timeout_add (2000, (GSourceFunc) on_idle, NULL);
91
92     gtk_main ();
93     
94     return 0;
95 }
96
97