summaryrefslogtreecommitdiff
path: root/tests/testvolumebutton.c
diff options
context:
space:
mode:
authorBastien Nocera <hadess@hadess.net>2007-05-19 23:35:00 +0000
committerBastien Nocera <hadess@src.gnome.org>2007-05-19 23:35:00 +0000
commit9477c9184272d61b87299ea90aa7c3dba5bad1bf (patch)
tree5c8a8bd56679c1fdd749ad227a03ddc21358065e /tests/testvolumebutton.c
parent6baa568f8cc3b1663ecbd906ae76ce25ca737da3 (diff)
downloadgtk+-9477c9184272d61b87299ea90aa7c3dba5bad1bf.tar.gz
Add the GtkVolumeButton widget, a button that pops up a scale when clicked
2007-05-20 Bastien Nocera <hadess@hadess.net> * gtk/Makefile.am: * gtk/gtk.h: * gtk/gtk.symbols: * gtk/gtkvolumebutton.[ch]: Add the GtkVolumeButton widget, a button that pops up a scale when clicked (Closes: #415775) * tests/Makefile.am: * tests/testvolumebutton.c: Add a test program for the volume button 2007-05-20 Bastien Nocera <hadess@hadess.net> * POTFILES.in: Add volume button to the list 2007-05-20 Bastien Nocera <hadess@hadess.net> * gtk/gtk-sections.txt: Add the GtkVolumeButton widget to the docs svn path=/trunk/; revision=17877
Diffstat (limited to 'tests/testvolumebutton.c')
-rw-r--r--tests/testvolumebutton.c81
1 files changed, 81 insertions, 0 deletions
diff --git a/tests/testvolumebutton.c b/tests/testvolumebutton.c
new file mode 100644
index 0000000000..3e316ebd21
--- /dev/null
+++ b/tests/testvolumebutton.c
@@ -0,0 +1,81 @@
+/* testvolumebutton.c
+ * Copyright (C) 2007 Red Hat, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#include <gtk/gtk.h>
+
+static void
+value_changed (GtkWidget *button,
+ gdouble volume,
+ gpointer user_data)
+{
+ g_message ("volume changed to %f", volume);
+}
+
+static void
+response_cb (GtkDialog *dialog,
+ gint arg1,
+ gpointer user_data)
+{
+ gtk_widget_destroy (GTK_WIDGET (dialog));
+}
+
+static gboolean
+show_error (gpointer data)
+{
+ GtkWindow *window = (GtkWindow *) data;
+ GtkWidget *dialog;
+
+ g_message ("showing error");
+
+ dialog = gtk_message_dialog_new (window,
+ GTK_DIALOG_MODAL,
+ GTK_MESSAGE_INFO,
+ GTK_BUTTONS_CLOSE,
+ "This should have unbroken the grab");
+ g_signal_connect (G_OBJECT (dialog),
+ "response",
+ G_CALLBACK (response_cb), NULL);
+ gtk_widget_show (dialog);
+
+ return FALSE;
+}
+
+int main (int argc, char **argv)
+{
+ GtkWidget *window;
+ GtkWidget *button;
+
+ gtk_init (&argc, &argv);
+
+ window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+ button = gtk_volume_button_new ();
+ g_signal_connect (G_OBJECT (button),
+ "value-changed",
+ G_CALLBACK (value_changed), NULL);
+ gtk_container_add (GTK_CONTAINER (window), button);
+
+ gtk_widget_show_all (window);
+ gtk_button_clicked (GTK_BUTTON (button));
+ g_timeout_add (4000, (GSourceFunc) show_error, window);
+
+ gtk_main ();
+
+ return 0;
+}
+