summaryrefslogtreecommitdiff
path: root/tests
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
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')
-rw-r--r--tests/Makefile.am8
-rw-r--r--tests/testvolumebutton.c81
2 files changed, 88 insertions, 1 deletions
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 8aafd1ae67..0f2a739eba 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -85,7 +85,8 @@ noinst_PROGRAMS = \
testmerge \
testactions \
testgrouping \
- testtooltips
+ testtooltips \
+ testvolumebutton
autotestfilechooser_DEPENDENCIES = $(TEST_DEPS)
simple_DEPENDENCIES = $(TEST_DEPS)
@@ -140,6 +141,7 @@ testmerge_DEPENDENCIES = $(TEST_DEPS)
testactions_DEPENDENCIES = $(TEST_DEPS)
testgrouping_DEPENDENCIES = $(TEST_DEPS)
testtooltips_DEPENDENCIES = $(TEST_DEPS)
+testvolumebutton_DEPENDENCIES = $(TEST_DEPS)
autotestfilechooser_LDADD = $(LDADDS)
simple_LDADD = $(LDADDS)
@@ -201,6 +203,7 @@ testmerge_LDADD = $(LDADDS)
testactions_LDADD = $(LDADDS)
testgrouping_LDADD = $(LDADDS)
testtooltips_LDADD = $(LDADDS)
+testvolumebutton_LDADD = $(LDADDS)
autotestfilechooser_SOURCES = \
autotestfilechooser.c
@@ -285,6 +288,9 @@ testtooltips_SOURCES = \
testrecentchoosermenu_SOURCES = \
testrecentchoosermenu.c
+testvolumebutton_SOURCES = \
+ testvolumebutton.c
+
EXTRA_DIST = \
prop-editor.h \
testgtk.1 \
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;
+}
+