mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2025-01-13 05:50:10 +00:00
gtk-demo: Add a theming example
This commit is contained in:
parent
91d01434bc
commit
6480f3c685
@ -43,6 +43,7 @@ demos = \
|
|||||||
stock_browser.c \
|
stock_browser.c \
|
||||||
textview.c \
|
textview.c \
|
||||||
textscroll.c \
|
textscroll.c \
|
||||||
|
theming.c \
|
||||||
toolpalette.c \
|
toolpalette.c \
|
||||||
transparent.c \
|
transparent.c \
|
||||||
tree_store.c \
|
tree_store.c \
|
||||||
@ -76,6 +77,7 @@ EXTRA_DIST += \
|
|||||||
application.gresource.xml \
|
application.gresource.xml \
|
||||||
application.ui \
|
application.ui \
|
||||||
menus.ui \
|
menus.ui \
|
||||||
|
theming.ui \
|
||||||
gtk-logo-24.png \
|
gtk-logo-24.png \
|
||||||
gtk-logo-48.png \
|
gtk-logo-48.png \
|
||||||
org.gtk.Demo.gschema.xml
|
org.gtk.Demo.gschema.xml
|
||||||
@ -122,7 +124,13 @@ IMAGEFILES= alphatest.png \
|
|||||||
gnu-keys.png \
|
gnu-keys.png \
|
||||||
gtk-logo-rgb.gif
|
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
|
DISTCLEANFILES = demos.h
|
||||||
|
|
||||||
|
61
demos/gtk-demo/theming.c
Normal file
61
demos/gtk-demo/theming.c
Normal file
@ -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;
|
||||||
|
}
|
319
demos/gtk-demo/theming.ui
Normal file
319
demos/gtk-demo/theming.ui
Normal file
@ -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>
|
Loading…
Reference in New Issue
Block a user