diff --git a/configure.ac b/configure.ac index 22608673b1..5c7811792b 100644 --- a/configure.ac +++ b/configure.ac @@ -1747,6 +1747,7 @@ tests/a11y/Makefile tests/css/Makefile tests/css/parser/Makefile tests/reftests/Makefile +tests/visuals/Makefile docs/Makefile docs/reference/Makefile docs/reference/gdk/Makefile diff --git a/tests/Makefile.am b/tests/Makefile.am index 7173805e1c..9652b41ff2 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -1,7 +1,7 @@ ## Makefile.am for gtk+/tests include $(top_srcdir)/Makefile.decl -SUBDIRS = css reftests a11y +SUBDIRS = css reftests a11y visuals AM_CPPFLAGS = \ -I$(top_srcdir) \ diff --git a/tests/visuals/Makefile.am b/tests/visuals/Makefile.am new file mode 100644 index 0000000000..aec9e3bf12 --- /dev/null +++ b/tests/visuals/Makefile.am @@ -0,0 +1,28 @@ +AM_CPPFLAGS = \ + -I$(top_srcdir) \ + -I$(top_builddir)/gdk \ + -I$(top_srcdir)/gdk \ + $(GTK_DEBUG_FLAGS) \ + $(GTK_DEP_CFLAGS) \ + $(GDK_DEP_CFLAGS) + +AM_CXXFLAGS = $(AM_CPPFLAGS) + +DEPS = \ + $(top_builddir)/gtk/libgtk-3.la + +LDADDS = \ + $(top_builddir)/gtk/libgtk-3.la \ + $(top_builddir)/gdk/libgdk-3.la \ + $(GTK_DEP_LIBS) \ + -lm + +noinst_PROGRAMS = visuals + +visuals_DEPENDENCIES = $(TEST_DEPS) +visuals_LDADD = $(LDADDS) +visuals_SOURCES = visuals.c + +EXTRA_DIST = \ + inline-toolbar.ui \ + primary-toolbar.ui \ No newline at end of file diff --git a/tests/visuals/inline-toolbar.ui b/tests/visuals/inline-toolbar.ui new file mode 100644 index 0000000000..5421cbd505 --- /dev/null +++ b/tests/visuals/inline-toolbar.ui @@ -0,0 +1,120 @@ + + + + + False + 600 + + + 6 + vertical + + + True + False + True + 1 + + + + False + True + False + False + Normal + True + list-add-symbolic + + + False + True + + + + + False + True + False + False + Normal + True + list-add-symbolic + + + False + True + + + + + False + True + False + False + Active + True + list-remove-symbolic + True + + + False + True + + + + + False + True + False + False + Active + True + list-remove-symbolic + True + + + False + True + + + + + False + True + False + False + False + Insensitive + True + edit-find-symbolic + + + False + True + + + + + False + True + False + False + False + Insensitive Active + True + go-up-symbolic + True + + + False + True + + + + + + + + diff --git a/tests/visuals/primary-toolbar.ui b/tests/visuals/primary-toolbar.ui new file mode 100644 index 0000000000..1517fd7cf6 --- /dev/null +++ b/tests/visuals/primary-toolbar.ui @@ -0,0 +1,213 @@ + + + + + False + 800 + + + 6 + vertical + + + True + False + True + + + + False + True + False + False + Normal + True + True + edit-find + + + False + True + + + + + False + True + False + False + Active + True + True + edit-find + True + + + False + True + + + + + False + True + False + False + Insensitive + True + True + edit-find + + + False + True + + + + + False + True + False + False + Insensitive Active + True + edit-find + True + True + + + False + True + + + + + False + True + False + True + + + True + True + + Search... + edit-find-symbolic + + + + + False + + + + + False + True + False + True + + + True + True + + + + + False + + + + + + + True + False + True + + + + False + True + False + Normal + True + True + edit-find-symbolic + + + + False + True + + + + + False + True + False + Active + True + True + edit-find-symbolic + True + + + + False + True + + + + + False + True + False + False + Insensitive + True + True + edit-find-symbolic + + + + False + True + + + + + False + True + False + False + Insensitive Active + True + edit-find-symbolic + True + True + + + + False + True + + + + + + + + diff --git a/tests/visuals/visuals.c b/tests/visuals/visuals.c new file mode 100644 index 0000000000..df65b5960f --- /dev/null +++ b/tests/visuals/visuals.c @@ -0,0 +1,85 @@ +/* visuals: UI runner for visual GtkBuilder files + * + * Copyright (C) 2012 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free + * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + * Author: Cosimo Cecchi + * + */ + +#include + +static void +dark_button_toggled_cb (GtkToggleButton *button, + gpointer user_data) +{ + gboolean active = gtk_toggle_button_get_active (button); + GtkSettings *settings = gtk_settings_get_default (); + + g_object_set (settings, + "gtk-application-prefer-dark-theme", active, + NULL); +} + +static void +create_dark_popup (GtkWidget *parent) +{ + GtkWidget *popup = gtk_window_new (GTK_WINDOW_TOPLEVEL); + GtkWidget *button = gtk_toggle_button_new_with_label ("Dark"); + + gtk_window_set_decorated (GTK_WINDOW (popup), FALSE); + gtk_widget_set_size_request (popup, 100, 100); + gtk_window_set_resizable (GTK_WINDOW (popup), FALSE); + + g_signal_connect (popup, "delete-event", + G_CALLBACK (gtk_true), NULL); + + gtk_container_add (GTK_CONTAINER (popup), button); + g_signal_connect (button, "toggled", + G_CALLBACK (dark_button_toggled_cb), NULL); + + gtk_window_set_transient_for (GTK_WINDOW (popup), GTK_WINDOW (parent)); + + gtk_widget_show_all (popup); +} + +int +main (int argc, char *argv[]) +{ + GtkBuilder *builder; + GtkWidget *window; + const gchar *filename; + + gtk_init (&argc, &argv); + + if (argc > 1) + filename = argv[1]; + + builder = gtk_builder_new (); + gtk_builder_add_from_file (builder, filename, NULL); + + window = GTK_WIDGET (gtk_builder_get_object (builder, "window1")); + g_object_unref (G_OBJECT (builder)); + g_signal_connect (window, "destroy", + G_CALLBACK (gtk_main_quit), NULL); + gtk_widget_show_all (window); + + create_dark_popup (window); + gtk_main (); + + return 0; +}