diff options
author | Matthias Clasen <mclasen@redhat.com> | 2012-05-18 01:23:45 -0400 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2012-05-18 01:23:45 -0400 |
commit | 6480f3c685bbcfa04f62d054e04447ab88eaa340 (patch) | |
tree | b17ca313c44c65757ad54050c0ff1dbc129a769d /demos | |
parent | 91d01434bc77b454d1f59ab72d8dbed97c7269f1 (diff) | |
download | gtk+-6480f3c685bbcfa04f62d054e04447ab88eaa340.tar.gz |
gtk-demo: Add a theming example
Diffstat (limited to 'demos')
-rw-r--r-- | demos/gtk-demo/Makefile.am | 10 | ||||
-rw-r--r-- | demos/gtk-demo/theming.c | 61 | ||||
-rw-r--r-- | demos/gtk-demo/theming.ui | 319 |
3 files changed, 389 insertions, 1 deletions
diff --git a/demos/gtk-demo/Makefile.am b/demos/gtk-demo/Makefile.am index dacedd2d05..0c4da0f2fe 100644 --- a/demos/gtk-demo/Makefile.am +++ b/demos/gtk-demo/Makefile.am @@ -43,6 +43,7 @@ demos = \ stock_browser.c \ textview.c \ textscroll.c \ + theming.c \ toolpalette.c \ transparent.c \ tree_store.c \ @@ -76,6 +77,7 @@ EXTRA_DIST += \ application.gresource.xml \ application.ui \ menus.ui \ + theming.ui \ gtk-logo-24.png \ gtk-logo-48.png \ org.gtk.Demo.gschema.xml @@ -122,7 +124,13 @@ IMAGEFILES= alphatest.png \ gnu-keys.png \ gtk-logo-rgb.gif -democode_DATA = $(demos) $(IMAGEFILES) demo.ui menus.ui application.ui +democode_DATA = \ + $(demos) \ + $(IMAGEFILES) \ + demo.ui \ + menus.ui \ + application.ui \ + theming.ui DISTCLEANFILES = demos.h diff --git a/demos/gtk-demo/theming.c b/demos/gtk-demo/theming.c new file mode 100644 index 0000000000..a74ec6cb59 --- /dev/null +++ b/demos/gtk-demo/theming.c @@ -0,0 +1,61 @@ +/* Theming :: theming.ui + * + * GTK+ uses CSS for theming. Style classes can be associated + * with widgets to inform the theme about intended rendering. + * + * This demo shows some common examples where theming features + * of GTK+ are used for certain effects: primary toolbars, + * inline toolbars and linked buttons. + */ + +#include <gtk/gtk.h> +#include "demo-common.h" + +static GtkWidget *window = NULL; + +GtkWidget * +do_theming (GtkWidget *do_widget) +{ + GtkWidget *grid; + GtkBuilder *builder; + gchar *filename; + GError *err = NULL; + + if (!window) + { + window = gtk_window_new (GTK_WINDOW_TOPLEVEL); + gtk_window_set_screen (GTK_WINDOW (window), + gtk_widget_get_screen (do_widget)); + gtk_window_set_title (GTK_WINDOW (window), "Theming"); + gtk_container_set_border_width (GTK_CONTAINER (window), 12); + g_signal_connect (window, "destroy", + G_CALLBACK (gtk_widget_destroyed), &window); + + builder = gtk_builder_new (); + filename = demo_find_file ("theming.ui", NULL); + gtk_builder_add_from_file (builder, filename, &err); + g_free (filename); + if (err) + { + g_error ("ERROR: %s\n", err->message); + return NULL; + } + + grid = (GtkWidget *)gtk_builder_get_object (builder, "grid"); + gtk_widget_show_all (grid); + gtk_container_add (GTK_CONTAINER (window), grid); + g_object_unref (builder); + } + + if (!gtk_widget_get_visible (window)) + { + gtk_widget_show (window); + } + else + { + gtk_widget_destroy (window); + window = NULL; + } + + return window; +} diff --git a/demos/gtk-demo/theming.ui b/demos/gtk-demo/theming.ui new file mode 100644 index 0000000000..728b1d1cf1 --- /dev/null +++ b/demos/gtk-demo/theming.ui @@ -0,0 +1,319 @@ +<?xml version="1.0" encoding="UTF-8"?> +<interface> + <object class="GtkGrid" id="grid"> + <property name="row-spacing">6</property> + <property name="orientation">vertical</property> + <child> + <object class="GtkToolbar" id="toolbar1"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="hexpand">True</property> + <property name="show-arrow">False</property> + <style> + <class name="primary-toolbar"/> + </style> + <child> + <object class="GtkToggleToolButton" id="toolbutton1"> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="use_action_appearance">False</property> + <property name="label" translatable="yes">Normal</property> + <property name="use_underline">True</property> + <property name="is_important">True</property> + <property name="icon_name">edit-find</property> + </object> + <packing> + <property name="expand">False</property> + <property name="homogeneous">True</property> + </packing> + </child> + <child> + <object class="GtkToggleToolButton" id="toolbutton2"> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="use_action_appearance">False</property> + <property name="label" translatable="yes">Active</property> + <property name="use_underline">True</property> + <property name="is_important">True</property> + <property name="icon_name">edit-find</property> + <property name="active">True</property> + </object> + <packing> + <property name="expand">False</property> + <property name="homogeneous">True</property> + </packing> + </child> + <child> + <object class="GtkToggleToolButton" id="toolbutton3"> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="sensitive">False</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">Insensitive</property> + <property name="use_underline">True</property> + <property name="is_important">True</property> + <property name="icon_name">edit-find</property> + </object> + <packing> + <property name="expand">False</property> + <property name="homogeneous">True</property> + </packing> + </child> + <child> + <object class="GtkToggleToolButton" id="toolbutton5"> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">Raised</property> + <property name="use_underline">True</property> + <property name="is_important">True</property> + <property name="icon_name">edit-find-symbolic</property> + <style> + <class name="raised"/> + </style> + </object> + <packing> + <property name="expand">False</property> + <property name="homogeneous">True</property> + </packing> + </child> + <child> + <object class="GtkToggleToolButton" id="toolbutton6"> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">Raised Active</property> + <property name="use_underline">True</property> + <property name="is_important">True</property> + <property name="icon_name">edit-find-symbolic</property> + <property name="active">True</property> + <style> + <class name="raised"/> + </style> + </object> + <packing> + <property name="expand">False</property> + <property name="homogeneous">True</property> + </packing> + </child> + <child> + <object class="GtkToggleToolButton" id="toolbutton4"> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="sensitive">False</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">Insensitive Active</property> + <property name="use_underline">True</property> + <property name="icon_name">edit-find</property> + <property name="is_important">True</property> + <property name="active">True</property> + </object> + <packing> + <property name="expand">False</property> + <property name="homogeneous">True</property> + </packing> + </child> + <child> + <object class="GtkToolItem" id="toolitementry"> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <child> + <object class="GtkEntry" id="entry1"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="invisible_char">•</property> + <property name="placeholder-text" translatable="yes">Search...</property> + <property name="secondary-icon-name">edit-find-symbolic</property> + </object> + </child> + </object> + <packing> + <property name="expand">False</property> + </packing> + </child> + <child> + <object class="GtkToolItem" id="toolitemswitch"> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <child> + <object class="GtkSwitch" id="switch1"> + <property name="visible">True</property> + <property name="can_focus">True</property> + </object> + </child> + </object> + <packing> + <property name="expand">False</property> + </packing> + </child> + </object> + </child> + <child> + <object class="GtkBox" id="box1"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="orientation">horizontal</property> + <property name="valign">center</property> + <property name="halign">center</property> + <style> + <class name="linked"/> + </style> + <child> + <object class="GtkButton" id="button1"> + <property name="label" translatable="yes">Hi, I am a button</property> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + <property name="use_action_appearance">False</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkButton" id="button2"> + <property name="label" translatable="yes">And I'm another button</property> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + <property name="use_action_appearance">False</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> + </child> + <child> + <object class="GtkButton" id="button3"> + <property name="label" translatable="yes">This is a button party!</property> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + <property name="use_action_appearance">False</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">2</property> + </packing> + </child> + </object> + </child> + <child> + <object class="GtkToolbar" id="itoolbar1"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="hexpand">True</property> + <property name="icon_size">1</property> + <style> + <class name="inline-toolbar"/> + </style> + <child> + <object class="GtkToggleToolButton" id="itoolbutton1"> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="use_action_appearance">False</property> + <property name="label" translatable="yes">Normal</property> + <property name="use_underline">True</property> + <property name="icon_name">list-add-symbolic</property> + </object> + <packing> + <property name="expand">False</property> + <property name="homogeneous">True</property> + </packing> + </child> + <child> + <object class="GtkToggleToolButton" id="itoolbutton2"> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="use_action_appearance">False</property> + <property name="label" translatable="yes">Normal</property> + <property name="use_underline">True</property> + <property name="icon_name">list-add-symbolic</property> + </object> + <packing> + <property name="expand">False</property> + <property name="homogeneous">True</property> + </packing> + </child> + <child> + <object class="GtkToggleToolButton" id="itoolbutton3"> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="use_action_appearance">False</property> + <property name="label" translatable="yes">Active</property> + <property name="use_underline">True</property> + <property name="icon_name">list-remove-symbolic</property> + <property name="active">True</property> + </object> + <packing> + <property name="expand">False</property> + <property name="homogeneous">True</property> + </packing> + </child> + <child> + <object class="GtkToggleToolButton" id="itoolbutton4"> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="use_action_appearance">False</property> + <property name="label" translatable="yes">Active</property> + <property name="use_underline">True</property> + <property name="icon_name">list-remove-symbolic</property> + <property name="active">True</property> + </object> + <packing> + <property name="expand">False</property> + <property name="homogeneous">True</property> + </packing> + </child> + <child> + <object class="GtkToggleToolButton" id="itoolbutton5"> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="sensitive">False</property> + <property name="can_focus">False</property> + <property name="use_action_appearance">False</property> + <property name="label" translatable="yes">Insensitive</property> + <property name="use_underline">True</property> + <property name="icon_name">edit-find-symbolic</property> + </object> + <packing> + <property name="expand">False</property> + <property name="homogeneous">True</property> + </packing> + </child> + <child> + <object class="GtkToggleToolButton" id="itoolbutton6"> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="sensitive">False</property> + <property name="can_focus">False</property> + <property name="use_action_appearance">False</property> + <property name="label" translatable="yes">Insensitive Active</property> + <property name="use_underline">True</property> + <property name="icon_name">go-up-symbolic</property> + <property name="active">True</property> + </object> + <packing> + <property name="expand">False</property> + <property name="homogeneous">True</property> + </packing> + </child> + </object> + </child> + </object> +</interface> |