GtkDemo: Add demo for theming style classes
This also demonstrates the use of Gtk.Builder to load .ui files. Also simplify handling of resources in GtkDemo build: we don't need to make a distinction between images and other resources.
This commit is contained in:
parent
f6003f94a4
commit
ae624a0048
4 changed files with 372 additions and 16 deletions
38
sample/GtkDemo/DemoThemingStyleClasses.cs
Normal file
38
sample/GtkDemo/DemoThemingStyleClasses.cs
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
/* CSS Theming/Style Classes
|
||||||
|
*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using Gtk;
|
||||||
|
|
||||||
|
namespace GtkDemo
|
||||||
|
{
|
||||||
|
[Demo ("Style Classes", "DemoThemingStyleClasses.cs", "CSS Theming")]
|
||||||
|
public class DemoThemingStyleClasses : Window
|
||||||
|
{
|
||||||
|
public DemoThemingStyleClasses () : base ("Style Classes")
|
||||||
|
{
|
||||||
|
BorderWidth = 12;
|
||||||
|
var builder = new Builder ("theming.ui");
|
||||||
|
|
||||||
|
var grid = (Widget)builder.GetObject ("grid");
|
||||||
|
grid.ShowAll ();
|
||||||
|
Add (grid);
|
||||||
|
|
||||||
|
Show ();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override bool OnDeleteEvent (Gdk.Event evt)
|
||||||
|
{
|
||||||
|
Destroy ();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -13,7 +13,7 @@ DEBUGS = $(addsuffix .mdb, $(TARGETS))
|
||||||
CLEANFILES = $(TARGETS) $(DEBUGS)
|
CLEANFILES = $(TARGETS) $(DEBUGS)
|
||||||
noinst_SCRIPTS = $(TARGETS)
|
noinst_SCRIPTS = $(TARGETS)
|
||||||
|
|
||||||
EXTRA_DIST = $(sources) $(image_names) $(css_names)
|
EXTRA_DIST = $(sources) $(resource_files)
|
||||||
|
|
||||||
sources = \
|
sources = \
|
||||||
DemoApplicationWindow.cs \
|
DemoApplicationWindow.cs \
|
||||||
|
@ -40,11 +40,14 @@ sources = \
|
||||||
DemoSpinner.cs \
|
DemoSpinner.cs \
|
||||||
DemoStockBrowser.cs \
|
DemoStockBrowser.cs \
|
||||||
DemoTextView.cs \
|
DemoTextView.cs \
|
||||||
|
DemoThemingStyleClasses.cs \
|
||||||
DemoTreeStore.cs \
|
DemoTreeStore.cs \
|
||||||
DemoUIManager.cs \
|
DemoUIManager.cs \
|
||||||
DemoPrinting.cs
|
DemoPrinting.cs
|
||||||
|
|
||||||
images = \
|
resource_ids = \
|
||||||
|
css/css_basics.css,css_basics.css \
|
||||||
|
css/reset.css,reset.css \
|
||||||
images/gnome-foot.png,gnome-foot.png \
|
images/gnome-foot.png,gnome-foot.png \
|
||||||
images/MonoIcon.png,MonoIcon.png \
|
images/MonoIcon.png,MonoIcon.png \
|
||||||
images/gnome-calendar.png,gnome-calendar.png \
|
images/gnome-calendar.png,gnome-calendar.png \
|
||||||
|
@ -57,9 +60,12 @@ images = \
|
||||||
images/apple-red.png,apple-red.png \
|
images/apple-red.png,apple-red.png \
|
||||||
images/background.jpg,background.jpg \
|
images/background.jpg,background.jpg \
|
||||||
images/gtk-logo-rgb.gif,gtk-logo-rgb.gif \
|
images/gtk-logo-rgb.gif,gtk-logo-rgb.gif \
|
||||||
images/floppybuddy.gif,floppybuddy.gif
|
images/floppybuddy.gif,floppybuddy.gif \
|
||||||
|
theming.ui,theming.ui
|
||||||
|
|
||||||
image_names = \
|
resource_files = \
|
||||||
|
css/css_basics.css \
|
||||||
|
css/reset.css \
|
||||||
images/gnome-foot.png \
|
images/gnome-foot.png \
|
||||||
images/MonoIcon.png \
|
images/MonoIcon.png \
|
||||||
images/gnome-calendar.png \
|
images/gnome-calendar.png \
|
||||||
|
@ -72,20 +78,12 @@ image_names = \
|
||||||
images/apple-red.png \
|
images/apple-red.png \
|
||||||
images/background.jpg \
|
images/background.jpg \
|
||||||
images/gtk-logo-rgb.gif \
|
images/gtk-logo-rgb.gif \
|
||||||
images/floppybuddy.gif
|
images/floppybuddy.gif \
|
||||||
|
theming.ui
|
||||||
css = \
|
|
||||||
css/css_basics.css,css_basics.css \
|
|
||||||
css/reset.css,reset.css
|
|
||||||
|
|
||||||
css_names = \
|
|
||||||
css/css_basics.css \
|
|
||||||
css/reset.css
|
|
||||||
|
|
||||||
build_sources = $(addprefix $(srcdir)/, $(sources))
|
build_sources = $(addprefix $(srcdir)/, $(sources))
|
||||||
build_images = $(addprefix $(srcdir)/, $(images))
|
build_resources = $(addprefix $(srcdir)/, $(resource_ids))
|
||||||
build_css = $(addprefix $(srcdir)/, $(css))
|
resources = $(addprefix -resource:, $(build_sources), $(build_resources))
|
||||||
resources = $(addprefix -resource:, $(build_sources), $(build_images), $(build_css))
|
|
||||||
|
|
||||||
GtkDemo.exe: $(build_sources) $(assemblies)
|
GtkDemo.exe: $(build_sources) $(assemblies)
|
||||||
$(CSC) $(CSFLAGS) -out:GtkDemo.exe $(build_sources) $(references) $(resources)
|
$(CSC) $(CSFLAGS) -out:GtkDemo.exe $(build_sources) $(references) $(resources)
|
||||||
|
|
319
sample/GtkDemo/theming.ui
Normal file
319
sample/GtkDemo/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>
|
|
@ -111,6 +111,7 @@
|
||||||
<Compile Include="valtest\Gtksharp\Valobj.cs" />
|
<Compile Include="valtest\Gtksharp\Valobj.cs" />
|
||||||
<Compile Include="GtkDemo\DemoSpinner.cs" />
|
<Compile Include="GtkDemo\DemoSpinner.cs" />
|
||||||
<Compile Include="GtkDemo\DemoCssBasics.cs" />
|
<Compile Include="GtkDemo\DemoCssBasics.cs" />
|
||||||
|
<Compile Include="GtkDemo\DemoThemingStyleClasses.cs" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|
Loading…
Reference in a new issue