[gtk/redo-doc-images: 67/67] Generate screenshots on the fly
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/redo-doc-images: 67/67] Generate screenshots on the fly
- Date: Fri, 6 May 2022 18:01:31 +0000 (UTC)
commit bac0f0d3221194edf1658795aa4b486136a2de5f
Author: Matthias Clasen <mclasen redhat com>
Date: Mon Apr 18 11:56:43 2022 -0400
Generate screenshots on the fly
This commit adds a new meson option -Dupdate_screenshots=true.
When it is enabled, and -Dgtk_doc=true is also used, then the
build will generate images to include in the API docs from
ui files in docs/reference/gtk/images.
Note: we still keep a copy of the images in git, in order to
allow building without a display connection. To update the
images in git, the generated images need to be copied back
from the builddir to the srcdir.
docs/reference/gtk/images/aboutdialog.ui | 16 +++
docs/reference/gtk/images/action-bar.ui | 47 +++++++++
docs/reference/gtk/images/appchooserbutton.ui | 43 ++++++++
docs/reference/gtk/images/appchooserdialog.ui | 8 ++
docs/reference/gtk/images/assistant.ui | 30 ++++++
docs/reference/gtk/images/box.ui | 94 +++++++++++++++++
docs/reference/gtk/images/button.ui | 30 ++++++
docs/reference/gtk/images/calendar.ui | 44 ++++++++
docs/reference/gtk/images/centerbox.ui | 63 ++++++++++++
docs/reference/gtk/images/check-button.ui | 43 ++++++++
docs/reference/gtk/images/color-button.ui | 43 ++++++++
docs/reference/gtk/images/colorchooser.ui | 6 ++
docs/reference/gtk/images/combo-box-entry.ui | 35 +++++++
docs/reference/gtk/images/combo-box-text.ui | 33 ++++++
docs/reference/gtk/images/combo-box.ui | 49 +++++++++
docs/reference/gtk/images/dialog.ui | 30 ++++++
docs/reference/gtk/images/drawingarea-content.png | Bin 0 -> 15050 bytes
docs/reference/gtk/images/drawingarea.ui | 49 +++++++++
docs/reference/gtk/images/drop-down.ui | 37 +++++++
docs/reference/gtk/images/emojichooser.ui | 6 ++
docs/reference/gtk/images/entry.ui | 34 ++++++
docs/reference/gtk/images/expander.ui | 34 ++++++
docs/reference/gtk/images/flow-box.ui | 66 ++++++++++++
docs/reference/gtk/images/folder.png | Bin 0 -> 1270 bytes
docs/reference/gtk/images/font-button.ui | 43 ++++++++
docs/reference/gtk/images/fontchooser.ui | 8 ++
docs/reference/gtk/images/frame.ui | 34 ++++++
docs/reference/gtk/images/glarea-content.png | Bin 0 -> 10128 bytes
docs/reference/gtk/images/glarea.ui | 54 ++++++++++
docs/reference/gtk/images/gnome.png | Bin 0 -> 1210 bytes
docs/reference/gtk/images/grid.ui | 101 ++++++++++++++++++
docs/reference/gtk/images/headerbar.ui | 23 +++++
docs/reference/gtk/images/icon-view.ui | 71 +++++++++++++
docs/reference/gtk/images/image.ui | 44 ++++++++
docs/reference/gtk/images/info-bar.ui | 40 ++++++++
docs/reference/gtk/images/label.ui | 30 ++++++
docs/reference/gtk/images/levelbar.ui | 45 ++++++++
docs/reference/gtk/images/link-button.ui | 31 ++++++
docs/reference/gtk/images/list-and-tree.ui | 81 +++++++++++++++
docs/reference/gtk/images/list-box.ui | 96 +++++++++++++++++
docs/reference/gtk/images/media-controls.ui | 51 +++++++++
docs/reference/gtk/images/menu-button.ui | 44 ++++++++
docs/reference/gtk/images/menu.ui | 38 +++++++
docs/reference/gtk/images/menubar.ui | 54 ++++++++++
docs/reference/gtk/images/meson.build | 91 ++++++++++++++++
docs/reference/gtk/images/messagedialog.ui | 19 ++++
docs/reference/gtk/images/multiline-text.ui | 44 ++++++++
docs/reference/gtk/images/notebook.ui | 58 +++++++++++
docs/reference/gtk/images/overlay.ui | 70 +++++++++++++
docs/reference/gtk/images/pagesetupdialog.ui | 6 ++
docs/reference/gtk/images/panes.ui | 84 +++++++++++++++
docs/reference/gtk/images/password-entry.ui | 35 +++++++
docs/reference/gtk/images/picture.ui | 46 +++++++++
docs/reference/gtk/images/popover.ui | 16 +++
docs/reference/gtk/images/printdialog.ui | 8 ++
docs/reference/gtk/images/progressbar.ui | 42 ++++++++
docs/reference/gtk/images/radio-button.ui | 44 ++++++++
docs/reference/gtk/images/scales.ui | 74 +++++++++++++
docs/reference/gtk/images/scrollbar.ui | 45 ++++++++
docs/reference/gtk/images/scrolledwindow.ui | 31 ++++++
docs/reference/gtk/images/search-bar.ui | 43 ++++++++
docs/reference/gtk/images/search-entry.ui | 34 ++++++
docs/reference/gtk/images/separator.ui | 61 +++++++++++
docs/reference/gtk/images/shortcuts-window.ui | 120 ++++++++++++++++++++++
docs/reference/gtk/images/sidebar.ui | 57 ++++++++++
docs/reference/gtk/images/spinbutton.ui | 49 +++++++++
docs/reference/gtk/images/spinner.ui | 43 ++++++++
docs/reference/gtk/images/stack.ui | 63 ++++++++++++
docs/reference/gtk/images/stackswitcher.ui | 63 ++++++++++++
docs/reference/gtk/images/statusbar.ui | 42 ++++++++
docs/reference/gtk/images/style.css | 18 ++++
docs/reference/gtk/images/switch.ui | 41 ++++++++
docs/reference/gtk/images/toggle-button.ui | 45 ++++++++
docs/reference/gtk/images/video.ui | 47 +++++++++
docs/reference/gtk/images/volumebutton.ui | 43 ++++++++
docs/reference/gtk/images/window.ui | 9 ++
docs/reference/gtk/images/windowcontrols.ui | 44 ++++++++
docs/reference/gtk/meson.build | 7 +-
meson_options.txt | 5 +
79 files changed, 3274 insertions(+), 1 deletion(-)
---
diff --git a/docs/reference/gtk/images/aboutdialog.ui b/docs/reference/gtk/images/aboutdialog.ui
new file mode 100644
index 0000000000..651caf83f6
--- /dev/null
+++ b/docs/reference/gtk/images/aboutdialog.ui
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <object class="GtkAboutDialog">
+ <property name="program-name">GTK Code Demos</property>
+ <property name="version">4.8.0</property>
+ <property name="copyright">© 1997-2022 The GTK Team</property>
+ <property name="comments">Program to demonstrate GTK functions</property>
+ <property name="logo">gtk-logo.png</property>
+ <property name="title">About GTK Code Demos</property>
+ <property name="authors">Peter Mattis
+Spencer Kimball
+Josh MacDonald
+and many more…
+</property>
+ </object>
+</interface>
diff --git a/docs/reference/gtk/images/action-bar.ui b/docs/reference/gtk/images/action-bar.ui
new file mode 100644
index 0000000000..3af2a6ba88
--- /dev/null
+++ b/docs/reference/gtk/images/action-bar.ui
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <object class="GtkWindow">
+ <property name="decorated">0</property>
+ <property name="resizable">0</property>
+ <property name="default-width">280</property>
+ <property name="default-height">120</property>
+ <style>
+ <class name="nobackground"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <style>
+ <class name="shadow"/>
+ <class name="background"/>
+ <class name="frame"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <property name="orientation">vertical</property>
+ <property name="hexpand">1</property>
+ <property name="vexpand">1</property>
+ <child>
+ <object class="GtkTextView">
+ <property name="vexpand">1</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkActionBar">
+ <child>
+ <object class="GtkButton">
+ <property name="icon-name">object-select-symbolic</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkButton">
+ <property name="icon-name">call-start-symbolic</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/docs/reference/gtk/images/appchooserbutton.ui b/docs/reference/gtk/images/appchooserbutton.ui
new file mode 100644
index 0000000000..cb8dfc29db
--- /dev/null
+++ b/docs/reference/gtk/images/appchooserbutton.ui
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <object class="GtkWindow">
+ <property name="decorated">0</property>
+ <property name="resizable">0</property>
+ <property name="default-width">280</property>
+ <property name="default-height">120</property>
+ <style>
+ <class name="nobackground"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <style>
+ <class name="shadow"/>
+ <class name="background"/>
+ <class name="frame"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <property name="orientation">vertical</property>
+ <property name="spacing">3</property>
+ <property name="hexpand">1</property>
+ <property name="vexpand">1</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <child>
+ <object class="GtkAppChooserButton">
+ <property name="content-type">text/plain</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel">
+ <property name="label">Application Button</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/docs/reference/gtk/images/appchooserdialog.ui b/docs/reference/gtk/images/appchooserdialog.ui
new file mode 100644
index 0000000000..f355ae2db8
--- /dev/null
+++ b/docs/reference/gtk/images/appchooserdialog.ui
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <object class="GtkAppChooserDialog">
+ <property name="content-type">image/png</property>
+ <property name="default-width">200</property>
+ <property name="default-height">300</property>
+ </object>
+</interface>
diff --git a/docs/reference/gtk/images/assistant.ui b/docs/reference/gtk/images/assistant.ui
new file mode 100644
index 0000000000..11c3b70d12
--- /dev/null
+++ b/docs/reference/gtk/images/assistant.ui
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <object class="GtkAssistant">
+ <property name="resizable">0</property>
+ <property name="default-width">300</property>
+ <property name="default-height">140</property>
+ <property name="title">Assistant</property>
+ <child>
+ <object class="GtkAssistantPage">
+ <property name="title">Assistant page</property>
+ <property name="complete">1</property>
+ <property name="child">
+ <object class="GtkLabel">
+ <property name="label">Assistant</property>
+ </object>
+ </property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkAssistantPage">
+ <property name="page-type">confirm</property>
+ <property name="child">
+ <object class="GtkLabel">
+ <property name="label">You sure?</property>
+ </object>
+ </property>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/docs/reference/gtk/images/box.ui b/docs/reference/gtk/images/box.ui
new file mode 100644
index 0000000000..cf6353cb54
--- /dev/null
+++ b/docs/reference/gtk/images/box.ui
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <object class="GtkWindow">
+ <property name="decorated">0</property>
+ <property name="resizable">0</property>
+ <style>
+ <class name="nobackground"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <style>
+ <class name="shadow"/>
+ <class name="background"/>
+ <class name="frame"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <property name="margin-top">10</property>
+ <property name="margin-bottom">10</property>
+ <property name="margin-start">10</property>
+ <property name="margin-end">10</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">3</property>
+ <child>
+ <object class="GtkBox">
+ <property name="orientation">horizontal</property>
+ <property name="homogeneous">1</property>
+
+ <child>
+ <object class="GtkBox">
+ <property name="orientation">horizontal</property>
+ <property name="spacing">5</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <child>
+ <object class="GtkButton">
+ <style><class name="small-button"/></style>
+ <property name="valign">center</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkButton">
+ <style><class name="small-button"/></style>
+ <property name="valign">center</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel">
+ <property name="label">⋯</property>
+ </object>
+ </child>
+ </object>
+ </child>
+
+ <child>
+ <object class="GtkBox">
+ <property name="orientation">vertical</property>
+ <property name="spacing">5</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <child>
+ <object class="GtkButton">
+ <style><class name="small-button"/></style>
+ <property name="halign">center</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkButton">
+ <style><class name="small-button"/></style>
+ <property name="halign">center</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel">
+ <property name="label">⋮</property>
+ </object>
+ </child>
+ </object>
+ </child>
+
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel">
+ <property name="justify">center</property>
+ <property name="label">Horizontal and Vertical Boxes</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/docs/reference/gtk/images/button.ui b/docs/reference/gtk/images/button.ui
new file mode 100644
index 0000000000..9ed81e1860
--- /dev/null
+++ b/docs/reference/gtk/images/button.ui
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <object class="GtkWindow">
+ <property name="decorated">0</property>
+ <property name="resizable">0</property>
+ <property name="default-width">280</property>
+ <property name="default-height">120</property>
+ <style>
+ <class name="nobackground"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <style>
+ <class name="shadow"/>
+ <class name="background"/>
+ <class name="frame"/>
+ </style>
+ <child>
+ <object class="GtkButton">
+ <property name="hexpand">1</property>
+ <property name="vexpand">1</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="label">Button</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/docs/reference/gtk/images/calendar.ui b/docs/reference/gtk/images/calendar.ui
new file mode 100644
index 0000000000..5e0651ee9e
--- /dev/null
+++ b/docs/reference/gtk/images/calendar.ui
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <object class="GtkWindow">
+ <property name="decorated">0</property>
+ <property name="resizable">0</property>
+ <style>
+ <class name="nobackground"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <style>
+ <class name="shadow"/>
+ <class name="background"/>
+ <class name="frame"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <property name="orientation">vertical</property>
+ <property name="spacing">3</property>
+ <property name="hexpand">1</property>
+ <property name="vexpand">1</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="margin-start">10</property>
+ <property name="margin-end">10</property>
+ <property name="margin-top">10</property>
+ <property name="margin-bottom">10</property>
+ <child>
+ <object class="GtkCalendar">
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel">
+ <property name="label">Calendar</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/docs/reference/gtk/images/centerbox.ui b/docs/reference/gtk/images/centerbox.ui
new file mode 100644
index 0000000000..9d5973f70e
--- /dev/null
+++ b/docs/reference/gtk/images/centerbox.ui
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <object class="GtkWindow">
+ <property name="decorated">0</property>
+ <property name="resizable">0</property>
+ <property name="default-width">280</property>
+ <property name="default-height">120</property>
+ <style>
+ <class name="nobackground"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <style>
+ <class name="shadow"/>
+ <class name="background"/>
+ <class name="frame"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <property name="margin-top">10</property>
+ <property name="margin-bottom">10</property>
+ <property name="margin-start">20</property>
+ <property name="margin-end">20</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">3</property>
+ <child>
+ <object class="GtkCenterBox">
+ <property name="orientation">horizontal</property>
+ <property name="hexpand">1</property>
+ <property name="vexpand">1</property>
+ <property name="halign">fill</property>
+ <child type="start">
+ <object class="GtkButton">
+ <style><class name="small-button"/></style>
+ <property name="valign">center</property>
+ </object>
+ </child>
+ <child type="center">
+ <object class="GtkButton">
+ <style><class name="small-button"/></style>
+ <property name="valign">center</property>
+ </object>
+ </child>
+ <child type="end">
+ <object class="GtkButton">
+ <style><class name="small-button"/></style>
+ <property name="valign">center</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel">
+ <property name="justify">center</property>
+ <property name="label">Center Box</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/docs/reference/gtk/images/check-button.ui b/docs/reference/gtk/images/check-button.ui
new file mode 100644
index 0000000000..5a1ad6dfc7
--- /dev/null
+++ b/docs/reference/gtk/images/check-button.ui
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <object class="GtkWindow">
+ <property name="decorated">0</property>
+ <property name="resizable">0</property>
+ <property name="default-width">280</property>
+ <property name="default-height">120</property>
+ <style>
+ <class name="nobackground"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <style>
+ <class name="shadow"/>
+ <class name="background"/>
+ <class name="frame"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <property name="orientation">vertical</property>
+ <property name="spacing">3</property>
+ <property name="hexpand">1</property>
+ <property name="vexpand">1</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <child>
+ <object class="GtkCheckButton">
+ <property name="active">1</property>
+ <property name="label">Check Button</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkCheckButton">
+ <property name="active">0</property>
+ <property name="label">Check Button</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/docs/reference/gtk/images/color-button.ui b/docs/reference/gtk/images/color-button.ui
new file mode 100644
index 0000000000..a3894ece10
--- /dev/null
+++ b/docs/reference/gtk/images/color-button.ui
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <object class="GtkWindow">
+ <property name="decorated">0</property>
+ <property name="resizable">0</property>
+ <property name="default-width">280</property>
+ <property name="default-height">120</property>
+ <style>
+ <class name="nobackground"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <style>
+ <class name="shadow"/>
+ <class name="background"/>
+ <class name="frame"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <property name="orientation">vertical</property>
+ <property name="spacing">3</property>
+ <property name="hexpand">1</property>
+ <property name="vexpand">1</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <child>
+ <object class="GtkColorButton">
+ <property name="rgba">#1e90ff</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel">
+ <property name="label">Color Button</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/docs/reference/gtk/images/colorchooser.ui b/docs/reference/gtk/images/colorchooser.ui
new file mode 100644
index 0000000000..9e7cbeb2d6
--- /dev/null
+++ b/docs/reference/gtk/images/colorchooser.ui
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <object class="GtkColorChooserDialog">
+ <property name="title">Color Chooser Dialog</property>
+ </object>
+</interface>
diff --git a/docs/reference/gtk/images/combo-box-entry.ui b/docs/reference/gtk/images/combo-box-entry.ui
new file mode 100644
index 0000000000..102f6a5c83
--- /dev/null
+++ b/docs/reference/gtk/images/combo-box-entry.ui
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <object class="GtkWindow">
+ <property name="decorated">0</property>
+ <property name="resizable">0</property>
+ <property name="default-width">280</property>
+ <property name="default-height">120</property>
+ <style>
+ <class name="nobackground"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <style>
+ <class name="shadow"/>
+ <class name="background"/>
+ <class name="frame"/>
+ </style>
+ <child>
+ <object class="GtkComboBox">
+ <property name="hexpand">1</property>
+ <property name="vexpand">1</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="has-entry">1</property>
+ <child internal-child="entry">
+ <object class="GtkEntry">
+ <property name="text">Combo Box Entry</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/docs/reference/gtk/images/combo-box-text.ui b/docs/reference/gtk/images/combo-box-text.ui
new file mode 100644
index 0000000000..f2fff64fe7
--- /dev/null
+++ b/docs/reference/gtk/images/combo-box-text.ui
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <object class="GtkWindow">
+ <property name="decorated">0</property>
+ <property name="resizable">0</property>
+ <property name="default-width">280</property>
+ <property name="default-height">120</property>
+ <style>
+ <class name="nobackground"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <style>
+ <class name="shadow"/>
+ <class name="background"/>
+ <class name="frame"/>
+ </style>
+ <child>
+ <object class="GtkComboBoxText">
+ <property name="hexpand">1</property>
+ <property name="vexpand">1</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <items>
+ <item>Combo Box Text</item>
+ </items>
+ <property name="active">0</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/docs/reference/gtk/images/combo-box.ui b/docs/reference/gtk/images/combo-box.ui
new file mode 100644
index 0000000000..173ae3ecbd
--- /dev/null
+++ b/docs/reference/gtk/images/combo-box.ui
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <object class="GtkWindow">
+ <property name="decorated">0</property>
+ <property name="resizable">0</property>
+ <property name="default-width">280</property>
+ <property name="default-height">120</property>
+ <style>
+ <class name="nobackground"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <style>
+ <class name="shadow"/>
+ <class name="background"/>
+ <class name="frame"/>
+ </style>
+ <child>
+ <object class="GtkComboBox">
+ <property name="hexpand">1</property>
+ <property name="vexpand">1</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="model">
+ <object class="GtkListStore">
+ <columns>
+ <column type="gchararray"/>
+ </columns>
+ <data>
+ <row>
+ <col id="0">Combo Box</col>
+ </row>
+ </data>
+ </object>
+ </property>
+ <child>
+ <object class="GtkCellRendererText">
+ </object>
+ <attributes>
+ <attribute name="text">0</attribute>
+ </attributes>
+ </child>
+ <property name="active">0</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/docs/reference/gtk/images/dialog.ui b/docs/reference/gtk/images/dialog.ui
new file mode 100644
index 0000000000..9477b6960a
--- /dev/null
+++ b/docs/reference/gtk/images/dialog.ui
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <object class="GtkDialog">
+ <property name="resizable">0</property>
+ <property name="default-width">280</property>
+ <property name="default-height">120</property>
+ <property name="title">Dialog</property>
+ <child type="action">
+ <object class="GtkButton" id="button_cancel">
+ <property name="label">Cancel</property>
+ </object>
+ </child>
+ <child type="action">
+ <object class="GtkButton" id="button_ok">
+ <property name="label">Accept</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel">
+ <property name="label">Content</property>
+ <property name="hexpand">1</property>
+ <property name="halign">center</property>
+ </object>
+ </child>
+ <action-widgets>
+ <action-widget response="ok" default="true">button_ok</action-widget>
+ <action-widget response="cancel" default="true">button_cancel</action-widget>
+ </action-widgets>
+ </object>
+</interface>
diff --git a/docs/reference/gtk/images/drawingarea-content.png
b/docs/reference/gtk/images/drawingarea-content.png
new file mode 100644
index 0000000000..b9265681e9
Binary files /dev/null and b/docs/reference/gtk/images/drawingarea-content.png differ
diff --git a/docs/reference/gtk/images/drawingarea.ui b/docs/reference/gtk/images/drawingarea.ui
new file mode 100644
index 0000000000..e41ba3f7e4
--- /dev/null
+++ b/docs/reference/gtk/images/drawingarea.ui
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <object class="GtkWindow">
+ <property name="decorated">0</property>
+ <property name="resizable">0</property>
+ <style>
+ <class name="nobackground"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <style>
+ <class name="shadow"/>
+ <class name="background"/>
+ <class name="frame"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <property name="orientation">vertical</property>
+ <property name="spacing">3</property>
+ <property name="hexpand">1</property>
+ <property name="vexpand">1</property>
+ <property name="halign">fill</property>
+ <property name="valign">center</property>
+ <property name="margin-top">10</property>
+ <property name="margin-bottom">10</property>
+ <child>
+ <object class="GtkFrame">
+ <property name="margin-start">10</property>
+ <property name="margin-end">10</property>
+ <child>
+ <object class="GtkPicture">
+ <property name="paintable">drawingarea-content.png</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel">
+ <property name="label">Drawing Area</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/docs/reference/gtk/images/drop-down.ui b/docs/reference/gtk/images/drop-down.ui
new file mode 100644
index 0000000000..9590ca353a
--- /dev/null
+++ b/docs/reference/gtk/images/drop-down.ui
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <object class="GtkWindow">
+ <property name="decorated">0</property>
+ <property name="resizable">0</property>
+ <property name="default-width">280</property>
+ <property name="default-height">120</property>
+ <style>
+ <class name="nobackground"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <style>
+ <class name="shadow"/>
+ <class name="background"/>
+ <class name="frame"/>
+ </style>
+ <child>
+ <object class="GtkDropDown">
+ <property name="hexpand">1</property>
+ <property name="vexpand">1</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="model">
+ <object class="GtkStringList">
+ <items>
+ <item>Drop Down</item>
+ <item>Almost a combo</item>
+ </items>
+ </object>
+ </property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/docs/reference/gtk/images/emojichooser.ui b/docs/reference/gtk/images/emojichooser.ui
new file mode 100644
index 0000000000..044a6d510f
--- /dev/null
+++ b/docs/reference/gtk/images/emojichooser.ui
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <object class="GtkEmojiChooser">
+ <property name="autohide">0</property>
+ </object>
+</interface>
diff --git a/docs/reference/gtk/images/entry.ui b/docs/reference/gtk/images/entry.ui
new file mode 100644
index 0000000000..db7c22ecb6
--- /dev/null
+++ b/docs/reference/gtk/images/entry.ui
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <object class="GtkWindow">
+ <property name="decorated">0</property>
+ <property name="resizable">0</property>
+ <property name="default-width">280</property>
+ <property name="default-height">120</property>
+ <style>
+ <class name="nobackground"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <style>
+ <class name="shadow"/>
+ <class name="background"/>
+ <class name="frame"/>
+ </style>
+ <child>
+ <object class="GtkEntry">
+ <property name="hexpand">1</property>
+ <property name="vexpand">1</property>
+ <property name="halign">fill</property>
+ <property name="valign">center</property>
+ <property name="text">Entry</property>
+ <property name="margin-start">10</property>
+ <property name="margin-end">10</property>
+ <property name="margin-top">10</property>
+ <property name="margin-bottom">10</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/docs/reference/gtk/images/expander.ui b/docs/reference/gtk/images/expander.ui
new file mode 100644
index 0000000000..1bb45c5799
--- /dev/null
+++ b/docs/reference/gtk/images/expander.ui
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <object class="GtkWindow">
+ <property name="decorated">0</property>
+ <property name="resizable">0</property>
+ <property name="default-width">280</property>
+ <property name="default-height">120</property>
+ <style>
+ <class name="nobackground"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <style>
+ <class name="shadow"/>
+ <class name="background"/>
+ <class name="frame"/>
+ </style>
+ <child>
+ <object class="GtkExpander">
+ <property name="label">Expander</property>
+ <property name="hexpand">1</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <child>
+ <object class="GtkLabel">
+ <property name="label">Hidden Content</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/docs/reference/gtk/images/flow-box.ui b/docs/reference/gtk/images/flow-box.ui
new file mode 100644
index 0000000000..9968897635
--- /dev/null
+++ b/docs/reference/gtk/images/flow-box.ui
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <object class="GtkWindow">
+ <property name="decorated">0</property>
+ <property name="resizable">0</property>
+ <property name="default-width">280</property>
+ <style>
+ <class name="nobackground"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <style>
+ <class name="frame"/>
+ <class name="shadow"/>
+ <class name="background"/>
+ </style>
+ <property name="orientation">vertical</property>
+ <property name="spacing">3</property>
+ <property name="hexpand">1</property>
+ <property name="vexpand">1</property>
+ <child>
+ <object class="GtkFlowBox">
+ <property name="min-children-per-line">2</property>
+ <property name="max-children-per-line">2</property>
+ <property name="selection-mode">browse</property>
+ <child>
+ <object class="GtkLabel">
+ <property name="label">Child One</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkButton">
+ <property name="label">Child Two</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkFlowBoxChild">
+ <child>
+ <object class="GtkBox">
+ <property name="orientation">horizontal</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkLabel">
+ <property name="label">Child Three</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkCheckButton">
+ <property name="active">1</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel">
+ <property name="label">Flow Box</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/docs/reference/gtk/images/folder.png b/docs/reference/gtk/images/folder.png
new file mode 100644
index 0000000000..444d906d2b
Binary files /dev/null and b/docs/reference/gtk/images/folder.png differ
diff --git a/docs/reference/gtk/images/font-button.ui b/docs/reference/gtk/images/font-button.ui
new file mode 100644
index 0000000000..03a5234e75
--- /dev/null
+++ b/docs/reference/gtk/images/font-button.ui
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <object class="GtkWindow">
+ <property name="decorated">0</property>
+ <property name="resizable">0</property>
+ <property name="default-width">280</property>
+ <property name="default-height">120</property>
+ <style>
+ <class name="nobackground"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <style>
+ <class name="shadow"/>
+ <class name="background"/>
+ <class name="frame"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <property name="orientation">vertical</property>
+ <property name="spacing">3</property>
+ <property name="hexpand">1</property>
+ <property name="vexpand">1</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <child>
+ <object class="GtkFontButton">
+ <property name="font-desc">Sans Serif 10</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel">
+ <property name="label">Font Button</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/docs/reference/gtk/images/fontchooser.ui b/docs/reference/gtk/images/fontchooser.ui
new file mode 100644
index 0000000000..9ffdd8009b
--- /dev/null
+++ b/docs/reference/gtk/images/fontchooser.ui
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <object class="GtkFontChooserDialog">
+ <property name="default-width">200</property>
+ <property name="default-height">300</property>
+ <property name="title">Font Chooser Dialog</property>
+ </object>
+</interface>
diff --git a/docs/reference/gtk/images/frame.ui b/docs/reference/gtk/images/frame.ui
new file mode 100644
index 0000000000..9591db2dbd
--- /dev/null
+++ b/docs/reference/gtk/images/frame.ui
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <object class="GtkWindow">
+ <property name="decorated">0</property>
+ <property name="resizable">0</property>
+ <property name="default-width">280</property>
+ <property name="default-height">120</property>
+ <style>
+ <class name="nobackground"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <style>
+ <class name="shadow"/>
+ <class name="background"/>
+ <class name="frame"/>
+ </style>
+ <child>
+ <object class="GtkFrame">
+ <property name="margin-top">10</property>
+ <property name="margin-bottom">10</property>
+ <property name="margin-start">10</property>
+ <property name="margin-end">10</property>
+ <property name="hexpand">1</property>
+ <property name="vexpand">1</property>
+ <property name="halign">fill</property>
+ <property name="valign">fill</property>
+ <property name="label">Frame</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/docs/reference/gtk/images/glarea-content.png b/docs/reference/gtk/images/glarea-content.png
new file mode 100644
index 0000000000..dc6367fe5c
Binary files /dev/null and b/docs/reference/gtk/images/glarea-content.png differ
diff --git a/docs/reference/gtk/images/glarea.ui b/docs/reference/gtk/images/glarea.ui
new file mode 100644
index 0000000000..aa9b40dcd5
--- /dev/null
+++ b/docs/reference/gtk/images/glarea.ui
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <object class="GtkWindow">
+ <property name="decorated">0</property>
+ <property name="resizable">0</property>
+ <property name="default-width">280</property>
+ <property name="default-width">150</property>
+ <style>
+ <class name="nobackground"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <style>
+ <class name="shadow"/>
+ <class name="background"/>
+ <class name="frame"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <property name="orientation">vertical</property>
+ <property name="spacing">3</property>
+ <property name="hexpand">1</property>
+ <property name="vexpand">1</property>
+ <property name="halign">fill</property>
+ <property name="valign">center</property>
+ <property name="margin-top">10</property>
+ <property name="margin-bottom">10</property>
+ <child>
+ <object class="GtkFrame">
+ <property name="margin-start">10</property>
+ <property name="margin-end">10</property>
+ <style>
+ <class name="black"/>
+ </style>
+ <child>
+ <object class="GtkPicture">
+ <property name="paintable">glarea-content.png</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel">
+ <property name="label">GL Area</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/docs/reference/gtk/images/gnome.png b/docs/reference/gtk/images/gnome.png
new file mode 100644
index 0000000000..fbe2a21215
Binary files /dev/null and b/docs/reference/gtk/images/gnome.png differ
diff --git a/docs/reference/gtk/images/grid.ui b/docs/reference/gtk/images/grid.ui
new file mode 100644
index 0000000000..113f1a4bb4
--- /dev/null
+++ b/docs/reference/gtk/images/grid.ui
@@ -0,0 +1,101 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <object class="GtkWindow">
+ <property name="decorated">0</property>
+ <property name="resizable">0</property>
+ <style>
+ <class name="nobackground"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <style>
+ <class name="shadow"/>
+ <class name="background"/>
+ <class name="frame"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <property name="margin-top">10</property>
+ <property name="margin-bottom">10</property>
+ <property name="margin-start">20</property>
+ <property name="margin-end">20</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">3</property>
+ <child>
+ <object class="GtkGrid">
+ <property name="row-spacing">4</property>
+ <property name="column-spacing">4</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <child>
+ <object class="GtkButton">
+ <style><class name="small-button"/></style>
+ <property name="valign">center</property>
+ <layout>
+ <property name="column">0</property>
+ <property name="row">0</property>
+ </layout>
+ </object>
+ </child>
+ <child>
+ <object class="GtkButton">
+ <style><class name="small-button"/></style>
+ <property name="valign">center</property>
+ <layout>
+ <property name="column">1</property>
+ <property name="row">0</property>
+ </layout>
+ </object>
+ </child>
+ <child>
+ <object class="GtkButton">
+ <style><class name="small-button"/></style>
+ <property name="valign">center</property>
+ <layout>
+ <property name="column">0</property>
+ <property name="row">1</property>
+ </layout>
+ </object>
+ </child>
+ <child>
+ <object class="GtkButton">
+ <style><class name="small-button"/></style>
+ <property name="valign">center</property>
+ <layout>
+ <property name="column">1</property>
+ <property name="row">1</property>
+ </layout>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel">
+ <property name="label">⋯</property>
+ <layout>
+ <property name="column">2</property>
+ <property name="row">0</property>
+ </layout>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel">
+ <property name="label">⋮</property>
+ <layout>
+ <property name="column">0</property>
+ <property name="row">2</property>
+ </layout>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel">
+ <property name="justify">center</property>
+ <property name="label">Grid</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/docs/reference/gtk/images/headerbar.ui b/docs/reference/gtk/images/headerbar.ui
new file mode 100644
index 0000000000..66e7048c7e
--- /dev/null
+++ b/docs/reference/gtk/images/headerbar.ui
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <object class="GtkWindow">
+ <property name="resizable">0</property>
+ <property name="default-width">220</property>
+ <property name="default-height">150</property>
+ <property name="title">Header Bar</property>
+ <child type='titlebar'>
+ <object class="GtkHeaderBar">
+ <child type='end'>
+ <object class="GtkButton">
+ <property name="icon-name">bookmark-new-symbolic</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkTextView">
+ <property name="cursor-visible">0</property>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/docs/reference/gtk/images/icon-view.ui b/docs/reference/gtk/images/icon-view.ui
new file mode 100644
index 0000000000..5d19025104
--- /dev/null
+++ b/docs/reference/gtk/images/icon-view.ui
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <object class="GtkListStore" id="store">
+ <columns>
+ <column type="gchararray"/>
+ <column type="GdkPixbuf"/>
+ </columns>
+ <data>
+ <row>
+ <col id="0">One</col>
+ <col id="1">folder.png</col>
+ </row>
+ <row>
+ <col id="0">Two</col>
+ <col id="1">gnome.png</col>
+ </row>
+ </data>
+ </object>
+ <object class="GtkWindow">
+ <property name="decorated">0</property>
+ <property name="resizable">0</property>
+ <style>
+ <class name="nobackground"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <style>
+ <class name="shadow"/>
+ <class name="background"/>
+ <class name="frame"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <property name="margin-top">10</property>
+ <property name="margin-bottom">10</property>
+ <property name="margin-start">10</property>
+ <property name="margin-end">10</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">3</property>
+ <child>
+ <object class="GtkScrolledWindow">
+ <style>
+ <class name="frame"/>
+ </style>
+ <property name="hscrollbar-policy">never</property>
+ <property name="vscrollbar-policy">never</property>
+ <property name="propagate-natural-height">1</property>
+ <child>
+ <object class="GtkIconView">
+ <property name="hexpand">1</property>
+ <property name="vexpand">1</property>
+ <property name="model">store</property>
+ <property name="text-column">0</property>
+ <property name="pixbuf-column">1</property>
+ <property name="item-orientation">horizontal</property>
+ <property name="row-spacing">0</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel">
+ <property name="label">Icon View</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/docs/reference/gtk/images/image.ui b/docs/reference/gtk/images/image.ui
new file mode 100644
index 0000000000..1c8793be90
--- /dev/null
+++ b/docs/reference/gtk/images/image.ui
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <object class="GtkWindow">
+ <property name="decorated">0</property>
+ <property name="resizable">0</property>
+ <property name="default-width">280</property>
+ <property name="default-height">120</property>
+ <style>
+ <class name="nobackground"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <style>
+ <class name="shadow"/>
+ <class name="background"/>
+ <class name="frame"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <property name="orientation">vertical</property>
+ <property name="spacing">3</property>
+ <property name="hexpand">1</property>
+ <property name="vexpand">1</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <child>
+ <object class="GtkImage">
+ <property name="icon-name">applications-graphics</property>
+ <property name="icon-size">large</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel">
+ <property name="label">Image</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/docs/reference/gtk/images/info-bar.ui b/docs/reference/gtk/images/info-bar.ui
new file mode 100644
index 0000000000..b4a784798e
--- /dev/null
+++ b/docs/reference/gtk/images/info-bar.ui
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <object class="GtkWindow">
+ <property name="decorated">0</property>
+ <property name="resizable">0</property>
+ <property name="default-width">280</property>
+ <property name="default-height">120</property>
+ <style>
+ <class name="nobackground"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <style>
+ <class name="shadow"/>
+ <class name="background"/>
+ <class name="frame"/>
+ </style>
+ <child>
+ <object class="GtkInfoBar">
+ <property name="hexpand">1</property>
+ <property name="vexpand">1</property>
+ <property name="halign">fill</property>
+ <property name="valign">center</property>
+ <property name="margin-start">10</property>
+ <property name="margin-end">10</property>
+ <property name="margin-top">10</property>
+ <property name="margin-bottom">10</property>
+ <property name="show-close-button">1</property>
+ <property name="message-type">info</property>
+ <child>
+ <object class="GtkLabel">
+ <property name="label">Info Bar</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/docs/reference/gtk/images/label.ui b/docs/reference/gtk/images/label.ui
new file mode 100644
index 0000000000..a1822964d9
--- /dev/null
+++ b/docs/reference/gtk/images/label.ui
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <object class="GtkWindow">
+ <property name="decorated">0</property>
+ <property name="resizable">0</property>
+ <property name="default-width">280</property>
+ <property name="default-height">120</property>
+ <style>
+ <class name="nobackground"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <style>
+ <class name="shadow"/>
+ <class name="background"/>
+ <class name="frame"/>
+ </style>
+ <child>
+ <object class="GtkLabel">
+ <property name="hexpand">1</property>
+ <property name="vexpand">1</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="label">Label</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/docs/reference/gtk/images/levelbar.ui b/docs/reference/gtk/images/levelbar.ui
new file mode 100644
index 0000000000..469e76034a
--- /dev/null
+++ b/docs/reference/gtk/images/levelbar.ui
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <object class="GtkWindow">
+ <property name="decorated">0</property>
+ <property name="resizable">0</property>
+ <property name="default-width">280</property>
+ <property name="default-height">120</property>
+ <style>
+ <class name="nobackground"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <style>
+ <class name="shadow"/>
+ <class name="background"/>
+ <class name="frame"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <property name="orientation">vertical</property>
+ <property name="spacing">3</property>
+ <property name="hexpand">1</property>
+ <property name="vexpand">1</property>
+ <property name="margin-start">10</property>
+ <property name="margin-end">10</property>
+ <property name="halign">fill</property>
+ <property name="valign">center</property>
+ <child>
+ <object class="GtkLevelBar">
+ <property name="value">0.3333</property>
+ <property name="hexpand">1</property>
+ <property name="halign">fill</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel">
+ <property name="label">Level Bar</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/docs/reference/gtk/images/link-button.ui b/docs/reference/gtk/images/link-button.ui
new file mode 100644
index 0000000000..3dce360662
--- /dev/null
+++ b/docs/reference/gtk/images/link-button.ui
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <object class="GtkWindow">
+ <property name="decorated">0</property>
+ <property name="resizable">0</property>
+ <property name="default-width">280</property>
+ <property name="default-height">120</property>
+ <style>
+ <class name="nobackground"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <style>
+ <class name="shadow"/>
+ <class name="background"/>
+ <class name="frame"/>
+ </style>
+ <child>
+ <object class="GtkLinkButton">
+ <property name="hexpand">1</property>
+ <property name="vexpand">1</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="label">Link Button</property>
+ <property name="uri">http://www.gtk.org</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/docs/reference/gtk/images/list-and-tree.ui b/docs/reference/gtk/images/list-and-tree.ui
new file mode 100644
index 0000000000..aa290bb7bb
--- /dev/null
+++ b/docs/reference/gtk/images/list-and-tree.ui
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <object class="GtkTreeStore" id="store">
+ <columns>
+ <column type="gchararray"/>
+ <column type="gboolean"/>
+ <column type="gchararray"/>
+ </columns>
+ <data>
+ <row>
+ <col id="0">Line One</col>
+ <col id="1">False</col>
+ <col id="2">A</col>
+ </row>
+ <row>
+ <col id="0">Line Two</col>
+ <col id="1">True</col>
+ <col id="2">B</col>
+ <row>
+ <col id="0">Line Three</col>
+ <col id="1">False</col>
+ <col id="2">C</col>
+ </row>
+ </row>
+ </data>
+ </object>
+ <object class="GtkWindow">
+ <property name="decorated">0</property>
+ <property name="resizable">0</property>
+ <property name="default-width">280</property>
+ <property name="default-height">120</property>
+ <style>
+ <class name="nobackground"/>
+ </style>
+ <child>
+ <object class="GtkTreeView">
+ <style>
+ <class name="frame"/>
+ </style>
+ <property name="hexpand">1</property>
+ <property name="vexpand">1</property>
+ <property name="model">store</property>
+ <child>
+ <object class="GtkTreeViewColumn">
+ <property name="title">List</property>
+ <child>
+ <object class="GtkCellRendererText"/>
+ <attributes>
+ <attribute name="text">0</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkTreeViewColumn">
+ <property name="title">and</property>
+ <child>
+ <object class="GtkCellRendererToggle"/>
+ <attributes>
+ <attribute name="active">1</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkTreeViewColumn">
+ <property name="title">Tree</property>
+ <child>
+ <object class="GtkCellRendererText"/>
+ <attributes>
+ <attribute name="text">2</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ <property name="enable-tree-lines">0</property>
+ <property name="enable-grid-lines">0</property>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/docs/reference/gtk/images/list-box.ui b/docs/reference/gtk/images/list-box.ui
new file mode 100644
index 0000000000..18b3983207
--- /dev/null
+++ b/docs/reference/gtk/images/list-box.ui
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <object class="GtkWindow">
+ <property name="decorated">0</property>
+ <property name="resizable">0</property>
+ <property name="default-width">280</property>
+ <property name="default-height">120</property>
+ <style>
+ <class name="nobackground"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <style>
+ <class name="frame"/>
+ <class name="shadow"/>
+ <class name="background"/>
+ </style>
+ <property name="orientation">vertical</property>
+ <property name="spacing">3</property>
+ <property name="hexpand">1</property>
+ <property name="vexpand">1</property>
+ <child>
+ <object class="GtkListBox">
+ <property name="selection-mode">single</property>
+ <child>
+ <object class="GtkListBoxRow">
+ <property name="selectable">0</property>
+ <child>
+ <object class="GtkLabel">
+ <property name="hexpand">1</property>
+ <property name="halign">center</property>
+ <property name="label">List Box</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkBox">
+ <property name="orientation">horizontal</property>
+ <property name="spacing">10</property>
+ <child>
+ <object class="GtkLabel">
+ <property name="hexpand">1</property>
+ <property name="label">Line One</property>
+ <property name="xalign">0</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkCheckButton">
+ <property name="active">1</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkBox">
+ <property name="orientation">horizontal</property>
+ <property name="spacing">10</property>
+ <child>
+ <object class="GtkLabel">
+ <property name="hexpand">1</property>
+ <property name="label">Line Two</property>
+ <property name="xalign">0</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkButton">
+ <property name="label">2</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkBox">
+ <property name="orientation">horizontal</property>
+ <property name="spacing">10</property>
+ <child>
+ <object class="GtkLabel">
+ <property name="label">Line Three</property>
+ <property name="xalign">0</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkEntry">
+ <property name="hexpand">1</property>
+ <property name="halign">end</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/docs/reference/gtk/images/media-controls.ui b/docs/reference/gtk/images/media-controls.ui
new file mode 100644
index 0000000000..480012231c
--- /dev/null
+++ b/docs/reference/gtk/images/media-controls.ui
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <object class="GtkWindow">
+ <property name="decorated">0</property>
+ <property name="resizable">0</property>
+ <property name="default-width">280</property>
+ <property name="default-height">120</property>
+ <style>
+ <class name="nobackground"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <style>
+ <class name="shadow"/>
+ <class name="background"/>
+ <class name="frame"/>
+ </style>
+ <child>
+ <object class="GtkVideo" id="video">
+ <property name="visible">0</property>
+ <property
name="file">file:///home/mclasen/Sources/gtk-master/docs/reference/gtk/images/gtk-logo.webm</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkBox">
+ <property name="orientation">vertical</property>
+ <property name="spacing">3</property>
+ <property name="hexpand">1</property>
+ <property name="vexpand">1</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <child>
+ <object class="GtkMediaControls">
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <binding name="media-stream">
+ <lookup type="GtkVideo" name="media-stream">video</lookup>
+ </binding>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel">
+ <property name="label">Media Controls</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/docs/reference/gtk/images/menu-button.ui b/docs/reference/gtk/images/menu-button.ui
new file mode 100644
index 0000000000..8039dfc85c
--- /dev/null
+++ b/docs/reference/gtk/images/menu-button.ui
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <object class="GtkWindow">
+ <property name="decorated">0</property>
+ <property name="resizable">0</property>
+ <property name="default-width">280</property>
+ <property name="default-height">120</property>
+ <style>
+ <class name="nobackground"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <style>
+ <class name="shadow"/>
+ <class name="background"/>
+ <class name="frame"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <property name="orientation">vertical</property>
+ <property name="spacing">3</property>
+ <property name="hexpand">1</property>
+ <property name="vexpand">1</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <child>
+ <object class="GtkMenuButton">
+ <property name="icon-name">emblem-system-symbolic</property>
+ <property name="popover"><object class="GtkPopover"></object></property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel">
+ <property name="label">Menu Button</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/docs/reference/gtk/images/menu.ui b/docs/reference/gtk/images/menu.ui
new file mode 100644
index 0000000000..12bc173a60
--- /dev/null
+++ b/docs/reference/gtk/images/menu.ui
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <menu id="model">
+ <section>
+ <submenu>
+ <attribute name="label">Style</attribute>
+ <section>
+ <item>
+ <attribute name="label">Item</attribute>
+ </item>
+ </section>
+ </submenu>
+ <item>
+ <attribute name="label">Transition</attribute>
+ <attribute name="action">misc.toggle-visibility</attribute>
+ </item>
+ </section>
+ <section>
+ <item>
+ <attribute name="label">Inspector</attribute>
+ </item>
+ <item>
+ <attribute name="label">About</attribute>
+ <attribute name="action">text.redo</attribute>
+ </item>
+ </section>
+ </menu>
+ <object class="GtkText">
+ <child>
+ <object class="GtkPopoverMenu">
+ <property name="autohide">0</property>
+ <property name="menu-model">model</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/docs/reference/gtk/images/menubar.ui b/docs/reference/gtk/images/menubar.ui
new file mode 100644
index 0000000000..7c42da8237
--- /dev/null
+++ b/docs/reference/gtk/images/menubar.ui
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <menu id="model">
+ <submenu>
+ <attribute name="label">File</attribute>
+ </submenu>
+ <submenu>
+ <attribute name="label">Edit</attribute>
+ </submenu>
+ <submenu>
+ <attribute name="label">View</attribute>
+ </submenu>
+ </menu>
+ <object class="GtkWindow">
+ <property name="decorated">0</property>
+ <property name="resizable">0</property>
+ <property name="default-width">280</property>
+ <property name="default-height">120</property>
+ <style>
+ <class name="nobackground"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <style>
+ <class name="shadow"/>
+ <class name="background"/>
+ <class name="frame"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <property name="orientation">vertical</property>
+ <property name="spacing">3</property>
+ <property name="hexpand">1</property>
+ <property name="vexpand">1</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <child>
+ <object class="GtkPopoverMenuBar">
+ <property name="menu-model">model</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel">
+ <property name="label">Menu Bar</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/docs/reference/gtk/images/meson.build b/docs/reference/gtk/images/meson.build
new file mode 100644
index 0000000000..fc9c10299e
--- /dev/null
+++ b/docs/reference/gtk/images/meson.build
@@ -0,0 +1,91 @@
+# commented-out ui files need more work
+
+ui_files = [
+ 'aboutdialog.ui',
+ 'action-bar.ui',
+ 'appchooserbutton.ui',
+ 'appchooserdialog.ui',
+ 'assistant.ui',
+ 'box.ui',
+ 'button.ui',
+ 'calendar.ui',
+ 'centerbox.ui',
+ 'check-button.ui',
+ 'colorchooser.ui',
+ 'color-button.ui',
+ 'combo-box.ui',
+ 'combo-box-entry.ui',
+ 'combo-box-text.ui',
+ 'dialog.ui',
+ 'drawingarea.ui',
+ 'drop-down.ui',
+ 'editable-label.ui',
+ #'emojichooser.ui'
+ 'entry.ui',
+ 'expander.ui',
+ 'flow-box.ui',
+ 'fontchooser.ui',
+ 'font-button.ui',
+ 'frame.ui',
+ 'glarea.ui',
+ 'grid.ui',
+ 'headerbar.ui',
+ 'icon-view.ui',
+ 'image.ui',
+ 'info-bar.ui',
+ 'label.ui',
+ 'levelbar.ui',
+ 'link-button.ui',
+ 'list-box.ui',
+ 'list-and-tree.ui',
+ #'media-controls.ui',
+ #'menu.ui',
+ 'menubar.ui',
+ 'menu-button.ui',
+ 'messagedialog.ui',
+ 'multiline-text.ui',
+ 'notebook.ui',
+ 'overlay.ui',
+ 'pagesetupdialog.ui',
+ 'panes.ui',
+ 'password-entry.ui',
+ 'picture.ui',
+ #'popover.ui',
+ 'printdialog.ui',
+ 'progressbar.ui',
+ 'radio-button.ui',
+ 'scales.ui',
+ 'scrollbar.ui',
+ 'scrolledwindow.ui',
+ 'search-bar.ui',
+ 'search-entry.ui',
+ 'separator.ui',
+ 'shortcuts-window.ui',
+ 'sidebar.ui',
+ 'spinbutton.ui',
+ 'spinner.ui',
+ 'stack.ui',
+ 'stackswitcher.ui',
+ 'statusbar.ui',
+ 'switch.ui',
+ 'toggle-button.ui',
+ #'video.ui',
+ 'volumebutton.ui',
+ 'window.ui',
+ 'windowcontrols.ui',
+]
+
+gtk_builder_tool = find_program('gtk4-builder-tool')
+
+if get_option('update_screenshots')
+ foreach ui_file: ui_files
+ png_file = ui_file.replace('.ui', '.png')
+ gtk_images += custom_target('@0@ from @1@'.format(png_file, ui_file),
+ input: [ui_file, 'style.css'],
+ output: png_file,
+ command: [ gtk_builder_tool, 'screenshot',
+ '--force',
+ '--css', '@INPUT1@',
+ '@INPUT0@', '@OUTPUT@' ])
+ endforeach
+endif
diff --git a/docs/reference/gtk/images/messagedialog.ui b/docs/reference/gtk/images/messagedialog.ui
new file mode 100644
index 0000000000..3637d2be3d
--- /dev/null
+++ b/docs/reference/gtk/images/messagedialog.ui
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <object class="GtkMessageDialog">
+ <property name="resizable">0</property>
+ <property name="default-width">280</property>
+ <property name="default-height">120</property>
+ <property name="icon-name">edit-copy</property>
+ <property name="text">Message Dialog</property>
+ <property name="secondary-text">With secondary text</property>
+ <child type="action">
+ <object class="GtkButton" id="button_ok">
+ <property name="label">Ok</property>
+ </object>
+ </child>
+ <action-widgets>
+ <action-widget response="ok" default="true">button_ok</action-widget>
+ </action-widgets>
+ </object>
+</interface>
diff --git a/docs/reference/gtk/images/multiline-text.ui b/docs/reference/gtk/images/multiline-text.ui
new file mode 100644
index 0000000000..8a40f395d7
--- /dev/null
+++ b/docs/reference/gtk/images/multiline-text.ui
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <object class="GtkWindow">
+ <property name="decorated">0</property>
+ <property name="resizable">0</property>
+ <property name="default-width">280</property>
+ <property name="default-height">120</property>
+ <style>
+ <class name="nobackground"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <style>
+ <class name="shadow"/>
+ <class name="background"/>
+ <class name="frame"/>
+ </style>
+ <child>
+ <object class="GtkFrame">
+ <property name="margin-start">10</property>
+ <property name="margin-end">10</property>
+ <property name="margin-top">10</property>
+ <property name="margin-bottom">10</property>
+ <child>
+ <object class="GtkTextView">
+ <property name="hexpand">1</property>
+ <property name="vexpand">1</property>
+ <property name="buffer">
+ <object class="GtkTextBuffer">
+ <property name="text">Multiline
+Text
+
+ </property>
+ </object>
+ </property>
+ <property name="cursor-visible">0</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/docs/reference/gtk/images/notebook.ui b/docs/reference/gtk/images/notebook.ui
new file mode 100644
index 0000000000..22c4d51a2d
--- /dev/null
+++ b/docs/reference/gtk/images/notebook.ui
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <object class="GtkWindow">
+ <property name="decorated">0</property>
+ <property name="resizable">0</property>
+ <property name="default-width">280</property>
+ <property name="default-height">120</property>
+ <style>
+ <class name="nobackground"/>
+ </style>
+ <child>
+ <object class="GtkNotebook">
+ <style>
+ <class name="frame"/>
+ <class name="shadow"/>
+ </style>
+ <property name="hexpand">1</property>
+ <property name="vexpand">1</property>
+ <child>
+ <object class="GtkLabel">
+ <property name="label">Content</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ </object>
+ </child>
+ <child type="tab">
+ <object class="GtkLabel">
+ <property name="label">Tab</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel">
+ <property name="label">Content</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ </object>
+ </child>
+ <child type="tab">
+ <object class="GtkLabel">
+ <property name="label">Tab</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel">
+ <property name="label">Content</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ </object>
+ </child>
+ <child type="tab">
+ <object class="GtkLabel">
+ <property name="label">Tab</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/docs/reference/gtk/images/overlay.ui b/docs/reference/gtk/images/overlay.ui
new file mode 100644
index 0000000000..f6717eeb7a
--- /dev/null
+++ b/docs/reference/gtk/images/overlay.ui
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <object class="GtkWindow">
+ <property name="decorated">0</property>
+ <property name="resizable">0</property>
+ <property name="default-width">280</property>
+ <property name="default-height">200</property>
+ <style>
+ <class name="nobackground"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <style>
+ <class name="shadow"/>
+ <class name="background"/>
+ <class name="frame"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <property name="orientation">vertical</property>
+ <property name="spacing">3</property>
+ <property name="margin-start">10</property>
+ <property name="margin-end">10</property>
+ <property name="margin-top">10</property>
+ <property name="margin-bottom">10</property>
+ <child>
+ <object class="GtkFrame">
+ <style>
+ <class name="view"/>
+ </style>
+ <child>
+ <object class="GtkOverlay">
+ <child type="overlay">
+ <object class="GtkFrame">
+ <style>
+ <class name="app-notification"/>
+ </style>
+ <property name="valign">start</property>
+ <property name="halign">center</property>
+ <child>
+ <object class="GtkLabel">
+ <property name="label">Overlay</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel">
+ <property name="hexpand">1</property>
+ <property name="vexpand">1</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="label">Content</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel">
+ <property name="label">Overlay</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/docs/reference/gtk/images/pagesetupdialog.ui b/docs/reference/gtk/images/pagesetupdialog.ui
new file mode 100644
index 0000000000..fc8999a69a
--- /dev/null
+++ b/docs/reference/gtk/images/pagesetupdialog.ui
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <object class="GtkPageSetupUnixDialog">
+ <property name="title">Page Setup Dialog</property>
+ </object>
+</interface>
diff --git a/docs/reference/gtk/images/panes.ui b/docs/reference/gtk/images/panes.ui
new file mode 100644
index 0000000000..e6bc172acc
--- /dev/null
+++ b/docs/reference/gtk/images/panes.ui
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <object class="GtkWindow">
+ <property name="decorated">0</property>
+ <property name="resizable">0</property>
+ <style>
+ <class name="nobackground"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <style>
+ <class name="shadow"/>
+ <class name="background"/>
+ <class name="frame"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <property name="margin-top">10</property>
+ <property name="margin-bottom">10</property>
+ <property name="margin-start">10</property>
+ <property name="margin-end">10</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">3</property>
+ <child>
+ <object class="GtkBox">
+ <property name="orientation">horizontal</property>
+ <property name="homogeneous">1</property>
+ <property name="spacing">12</property>
+
+ <child>
+ <object class="GtkPaned">
+ <property name="orientation">vertical</property>
+ <property name="width-request">96</property>
+ <property name="height-request">96</property>
+ <child>
+ <object class="GtkFrame">
+ </object>
+ </child>
+ <child>
+ <object class="GtkFrame">
+ </object>
+ </child>
+ <property name="resize-start-child">0</property>
+ <property name="shrink-start-child">0</property>
+ <property name="resize-end-child">0</property>
+ <property name="shrink-end-child">0</property>
+ </object>
+ </child>
+
+ <child>
+ <object class="GtkPaned">
+ <property name="orientation">horizontal</property>
+ <property name="width-request">96</property>
+ <property name="height-request">96</property>
+ <child>
+ <object class="GtkFrame">
+ </object>
+ </child>
+ <child>
+ <object class="GtkFrame">
+ </object>
+ </child>
+ <property name="resize-start-child">0</property>
+ <property name="shrink-start-child">0</property>
+ <property name="resize-end-child">0</property>
+ <property name="shrink-end-child">0</property>
+ </object>
+ </child>
+
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel">
+ <property name="justify">center</property>
+ <property name="label">Horizontal and Vertical
+Panes</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/docs/reference/gtk/images/password-entry.ui b/docs/reference/gtk/images/password-entry.ui
new file mode 100644
index 0000000000..45ce835e4b
--- /dev/null
+++ b/docs/reference/gtk/images/password-entry.ui
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <object class="GtkWindow">
+ <property name="decorated">0</property>
+ <property name="resizable">0</property>
+ <property name="default-width">280</property>
+ <property name="default-height">120</property>
+ <style>
+ <class name="nobackground"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <style>
+ <class name="shadow"/>
+ <class name="background"/>
+ <class name="frame"/>
+ </style>
+ <child>
+ <object class="GtkPasswordEntry">
+ <property name="hexpand">1</property>
+ <property name="vexpand">1</property>
+ <property name="halign">fill</property>
+ <property name="valign">center</property>
+ <property name="text">Entry</property>
+ <property name="show-peek-icon">1</property>
+ <property name="margin-start">10</property>
+ <property name="margin-end">10</property>
+ <property name="margin-top">10</property>
+ <property name="margin-bottom">10</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/docs/reference/gtk/images/picture.ui b/docs/reference/gtk/images/picture.ui
new file mode 100644
index 0000000000..de69f7a27e
--- /dev/null
+++ b/docs/reference/gtk/images/picture.ui
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <object class="GtkWindow">
+ <property name="decorated">0</property>
+ <property name="resizable">0</property>
+ <property name="default-width">280</property>
+ <property name="default-height">120</property>
+ <style>
+ <class name="nobackground"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <style>
+ <class name="shadow"/>
+ <class name="background"/>
+ <class name="frame"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <property name="orientation">vertical</property>
+ <property name="spacing">3</property>
+ <property name="hexpand">1</property>
+ <property name="vexpand">1</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="margin-top">10</property>
+ <property name="margin-bottom">10</property>
+ <child>
+ <object class="GtkPicture">
+ <property name="paintable">applications-graphics.png</property>
+ <property name="can-shrink">1</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel">
+ <property name="label">Picture</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/docs/reference/gtk/images/popover.ui b/docs/reference/gtk/images/popover.ui
new file mode 100644
index 0000000000..e0403f3e86
--- /dev/null
+++ b/docs/reference/gtk/images/popover.ui
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <object class="GtkPopover">
+ <property name="width-request">180</property>
+ <property name="height-request">180</property>
+ <property name="halign">center</property>
+ <property name="autohide">0</property>
+ <child>
+ <object class="GtkLabel">
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="label">Popover</property>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/docs/reference/gtk/images/printdialog.ui b/docs/reference/gtk/images/printdialog.ui
new file mode 100644
index 0000000000..c5d3cf3f79
--- /dev/null
+++ b/docs/reference/gtk/images/printdialog.ui
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <object class="GtkPrintUnixDialog">
+ <property name="default-width">505</property>
+ <property name="default-height">305</property>
+ <property name="title">Print Dialog</property>
+ </object>
+</interface>
diff --git a/docs/reference/gtk/images/progressbar.ui b/docs/reference/gtk/images/progressbar.ui
new file mode 100644
index 0000000000..90a858c5d2
--- /dev/null
+++ b/docs/reference/gtk/images/progressbar.ui
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <object class="GtkWindow">
+ <property name="decorated">0</property>
+ <property name="resizable">0</property>
+ <property name="default-width">280</property>
+ <property name="default-height">120</property>
+ <style>
+ <class name="nobackground"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <style>
+ <class name="shadow"/>
+ <class name="background"/>
+ <class name="frame"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <property name="orientation">vertical</property>
+ <property name="spacing">3</property>
+ <property name="hexpand">1</property>
+ <property name="vexpand">1</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <child>
+ <object class="GtkProgressBar">
+ <property name="fraction">0.5</property>
+ <property name="hexpand">1</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel">
+ <property name="label">Progress Bar</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/docs/reference/gtk/images/radio-button.ui b/docs/reference/gtk/images/radio-button.ui
new file mode 100644
index 0000000000..2c45704989
--- /dev/null
+++ b/docs/reference/gtk/images/radio-button.ui
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <object class="GtkWindow">
+ <property name="decorated">0</property>
+ <property name="resizable">0</property>
+ <property name="default-width">280</property>
+ <property name="default-height">120</property>
+ <style>
+ <class name="nobackground"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <style>
+ <class name="shadow"/>
+ <class name="background"/>
+ <class name="frame"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <property name="orientation">vertical</property>
+ <property name="spacing">3</property>
+ <property name="hexpand">1</property>
+ <property name="vexpand">1</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <child>
+ <object class="GtkCheckButton" id="radio1">
+ <property name="active">1</property>
+ <property name="label">Radio Button</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkCheckButton">
+ <property name="active">0</property>
+ <property name="label">Radio Button</property>
+ <property name="group">radio1</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/docs/reference/gtk/images/scales.ui b/docs/reference/gtk/images/scales.ui
new file mode 100644
index 0000000000..324ca4a596
--- /dev/null
+++ b/docs/reference/gtk/images/scales.ui
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <object class="GtkWindow">
+ <property name="decorated">0</property>
+ <property name="resizable">0</property>
+ <style>
+ <class name="nobackground"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <style>
+ <class name="shadow"/>
+ <class name="background"/>
+ <class name="frame"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <property name="margin-top">10</property>
+ <property name="margin-bottom">10</property>
+ <property name="margin-start">10</property>
+ <property name="margin-end">10</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">3</property>
+ <child>
+ <object class="GtkBox">
+ <property name="orientation">horizontal</property>
+ <property name="homogeneous">1</property>
+ <property name="spacing">12</property>
+
+ <child>
+ <object class="GtkScale">
+ <property name="orientation">horizontal</property>
+ <property name="width-request">96</property>
+ <property name="height-request">96</property>
+ <property name="adjustment">
+ <object class="GtkAdjustment">
+ <property name="lower">0</property>
+ <property name="upper">100</property>
+ <property name="value">50</property>
+ </object>
+ </property>
+ </object>
+ </child>
+
+ <child>
+ <object class="GtkScale">
+ <property name="orientation">vertical</property>
+ <property name="width-request">96</property>
+ <property name="height-request">96</property>
+ <property name="adjustment">
+ <object class="GtkAdjustment">
+ <property name="lower">0</property>
+ <property name="upper">100</property>
+ <property name="value">50</property>
+ </object>
+ </property>
+ </object>
+ </child>
+
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel">
+ <property name="justify">center</property>
+ <property name="label">Horizontal and Vertical
+Scales</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/docs/reference/gtk/images/scrollbar.ui b/docs/reference/gtk/images/scrollbar.ui
new file mode 100644
index 0000000000..9ee32a9520
--- /dev/null
+++ b/docs/reference/gtk/images/scrollbar.ui
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <object class="GtkWindow">
+ <property name="decorated">0</property>
+ <property name="resizable">0</property>
+ <property name="default-width">280</property>
+ <property name="default-height">120</property>
+ <style>
+ <class name="nobackground"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <style>
+ <class name="shadow"/>
+ <class name="background"/>
+ <class name="frame"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <property name="orientation">vertical</property>
+ <property name="spacing">3</property>
+ <property name="hexpand">1</property>
+ <property name="vexpand">1</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <child>
+ <object class="GtkScrollbar">
+ <property name="hexpand">1</property>
+ <property name="width-request">200</property>
+ <property name="halign">fill</property>
+ <property name="margin-start">10</property>
+ <property name="margin-end">10</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel">
+ <property name="label">Scrollbar</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/docs/reference/gtk/images/scrolledwindow.ui b/docs/reference/gtk/images/scrolledwindow.ui
new file mode 100644
index 0000000000..bf4bb5676e
--- /dev/null
+++ b/docs/reference/gtk/images/scrolledwindow.ui
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <object class="GtkWindow">
+ <property name="decorated">0</property>
+ <property name="resizable">0</property>
+ <property name="default-width">280</property>
+ <property name="default-height">120</property>
+ <style>
+ <class name="background"/>
+ </style>
+ <child>
+ <object class="GtkScrolledWindow">
+ <property name="hscrollbar-policy">never</property>
+ <property name="vscrollbar-policy">always</property>
+ <property name="overlay-scrolling">0</property>
+ <style>
+ <class name="frame"/>
+ </style>
+ <property name="hexpand">1</property>
+ <property name="vexpand">1</property>
+ <child>
+ <object class="GtkLabel">
+ <property name="label">ScrolledWindow</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/docs/reference/gtk/images/search-bar.ui b/docs/reference/gtk/images/search-bar.ui
new file mode 100644
index 0000000000..53ef6c21f0
--- /dev/null
+++ b/docs/reference/gtk/images/search-bar.ui
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <object class="GtkWindow">
+ <property name="decorated">0</property>
+ <property name="resizable">0</property>
+ <property name="default-width">280</property>
+ <property name="default-height">120</property>
+ <style>
+ <class name="nobackground"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <style>
+ <class name="shadow"/>
+ <class name="background"/>
+ <class name="frame"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <property name="orientation">vertical</property>
+ <property name="hexpand">1</property>
+ <property name="vexpand">1</property>
+ <child>
+ <object class="GtkSearchBar">
+ <property name="search-mode-enabled">1</property>
+ <property name="show-close-button">1</property>
+ <child>
+ <object class="GtkSearchEntry">
+ <property name="text">Search Bar</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkTextView">
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/docs/reference/gtk/images/search-entry.ui b/docs/reference/gtk/images/search-entry.ui
new file mode 100644
index 0000000000..07df349cf4
--- /dev/null
+++ b/docs/reference/gtk/images/search-entry.ui
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <object class="GtkWindow">
+ <property name="decorated">0</property>
+ <property name="resizable">0</property>
+ <property name="default-width">280</property>
+ <property name="default-height">120</property>
+ <style>
+ <class name="nobackground"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <style>
+ <class name="shadow"/>
+ <class name="background"/>
+ <class name="frame"/>
+ </style>
+ <child>
+ <object class="GtkSearchEntry">
+ <property name="hexpand">1</property>
+ <property name="vexpand">1</property>
+ <property name="halign">fill</property>
+ <property name="valign">center</property>
+ <property name="placeholder-text">Search…</property>
+ <property name="margin-start">10</property>
+ <property name="margin-end">10</property>
+ <property name="margin-top">10</property>
+ <property name="margin-bottom">10</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/docs/reference/gtk/images/separator.ui b/docs/reference/gtk/images/separator.ui
new file mode 100644
index 0000000000..133a1ab888
--- /dev/null
+++ b/docs/reference/gtk/images/separator.ui
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <object class="GtkWindow">
+ <property name="decorated">0</property>
+ <property name="resizable">0</property>
+ <property name="default-width">280</property>
+ <property name="default-height">120</property>
+ <style>
+ <class name="nobackground"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <style>
+ <class name="shadow"/>
+ <class name="background"/>
+ <class name="frame"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <property name="orientation">vertical</property>
+ <property name="spacing">3</property>
+ <property name="hexpand">1</property>
+ <property name="vexpand">1</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="margin-start">10</property>
+ <property name="margin-end">10</property>
+ <property name="margin-top">10</property>
+ <property name="margin-bottom">10</property>
+ <child>
+ <object class="GtkBox">
+ <property name="spacing">10</property>
+ <property name="halign">center</property>
+ <child>
+ <object class="GtkSeparator">
+ <property name="width-request">100</property>
+ <property name="orientation">horizontal</property>
+ <property name="valign">center</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkSeparator">
+ <property name="height-request">100</property>
+ <property name="orientation">vertical</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel">
+ <property name="label">Horizontal and Vertical
+Separators</property>
+ <property name="justify">center</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/docs/reference/gtk/images/shortcuts-window.ui b/docs/reference/gtk/images/shortcuts-window.ui
new file mode 100644
index 0000000000..c55037a389
--- /dev/null
+++ b/docs/reference/gtk/images/shortcuts-window.ui
@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <object class="GtkShortcutsWindow" id="shortcuts-boxes">
+ <property name="modal">1</property>
+ <child>
+ <object class="GtkShortcutsSection">
+ <property name="section-name">shortcuts</property>
+ <property name="max-height">12</property>
+ <child>
+ <object class="GtkShortcutsGroup">
+ <property name="title" translatable="yes">Overview</property>
+ <property name="view">overview</property>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="accelerator">F1</property>
+ <property name="title" translatable="yes">Help</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="accelerator"><Ctrl>n</property>
+ <property name="title" translatable="yes">Create a new box</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="accelerator"><Ctrl>f</property>
+ <property name="title" translatable="yes">Search</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="accelerator"><Ctrl>k</property>
+ <property name="title" translatable="yes">Keyboard shortcuts</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="accelerator"><Ctrl>q</property>
+ <property name="title" translatable="yes">Close Window/Quit Boxes</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsGroup">
+ <property name="title" translatable="yes">Box Creation and Properties</property>
+ <property name="view">wizard</property>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="direction">ltr</property>
+ <property name="accelerator"><Alt>Right</property>
+ <property name="title" translatable="yes">Switch to the next page</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="direction">ltr</property>
+ <property name="accelerator"><Alt>Left</property>
+ <property name="title" translatable="yes">Switch to the previous page</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="direction">rtl</property>
+ <property name="accelerator"><Alt>Left</property>
+ <property name="title" translatable="yes">Switch to the next page</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="direction">rtl</property>
+ <property name="accelerator"><Alt>Right</property>
+ <property name="title" translatable="yes">Switch to the previous page</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsGroup">
+ <property name="title" translatable="yes">Box Display</property>
+ <property name="view">display</property>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="accelerator">Control_L+Alt_L</property>
+ <property name="title" translatable="yes">Grab/Ungrab keyboard</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="direction">ltr</property>
+ <property name="accelerator"><Alt>Left</property>
+ <property name="title" translatable="yes">Back to overview</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="direction">rtl</property>
+ <property name="accelerator"><Alt>Right</property>
+ <property name="title" translatable="yes">Back to overview</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="accelerator"><Ctrl>q</property>
+ <property name="title" translatable="yes">Close window/Quit Boxes</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkShortcutsShortcut">
+ <property name="accelerator">F11</property>
+ <property name="title" translatable="yes">Fullscreen/Restore from fullscreen</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/docs/reference/gtk/images/sidebar.ui b/docs/reference/gtk/images/sidebar.ui
new file mode 100644
index 0000000000..8bb39cb00f
--- /dev/null
+++ b/docs/reference/gtk/images/sidebar.ui
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <object class="GtkWindow">
+ <property name="decorated">0</property>
+ <property name="resizable">0</property>
+ <style>
+ <class name="nobackground"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <style>
+ <class name="frame"/>
+ <class name="shadow"/>
+ <class name="background"/>
+ </style>
+ <property name="orientation">horizontal</property>
+ <property name="hexpand">1</property>
+ <property name="vexpand">1</property>
+ <child>
+ <object class="GtkStackSidebar">
+ <property name="stack">stack</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkStack" id="stack">
+ <property name="width-request">120</property>
+ <property name="height-request">120</property>
+ <child>
+ <object class="GtkStackPage">
+ <property name="name">page1</property>
+ <property name="title">Page 1</property>
+ <property name="child">
+ <object class="GtkLabel">
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="label">Sidebar</property>
+ </object>
+ </property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkStackPage">
+ <property name="name">page2</property>
+ <property name="title">Page 2</property>
+ <property name="child">
+ <object class="GtkTextView">
+ <property name="cursor-visible">0</property>
+ </object>
+ </property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/docs/reference/gtk/images/spinbutton.ui b/docs/reference/gtk/images/spinbutton.ui
new file mode 100644
index 0000000000..1e24b18176
--- /dev/null
+++ b/docs/reference/gtk/images/spinbutton.ui
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <object class="GtkWindow">
+ <property name="decorated">0</property>
+ <property name="resizable">0</property>
+ <property name="default-width">280</property>
+ <property name="default-height">120</property>
+ <style>
+ <class name="nobackground"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <style>
+ <class name="shadow"/>
+ <class name="background"/>
+ <class name="frame"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <property name="orientation">vertical</property>
+ <property name="spacing">3</property>
+ <property name="hexpand">1</property>
+ <property name="vexpand">1</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <child>
+ <object class="GtkSpinButton">
+ <property name="adjustment">
+ <object class="GtkAdjustment">
+ <property name="lower">0</property>
+ <property name="upper">100</property>
+ <property name="value">0</property>
+ </object>
+ </property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel">
+ <property name="label">Spin Button</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/docs/reference/gtk/images/spinner.ui b/docs/reference/gtk/images/spinner.ui
new file mode 100644
index 0000000000..206aa81230
--- /dev/null
+++ b/docs/reference/gtk/images/spinner.ui
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <object class="GtkWindow">
+ <property name="decorated">0</property>
+ <property name="resizable">0</property>
+ <property name="default-width">280</property>
+ <property name="default-height">120</property>
+ <style>
+ <class name="nobackground"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <style>
+ <class name="shadow"/>
+ <class name="background"/>
+ <class name="frame"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <property name="orientation">vertical</property>
+ <property name="spacing">3</property>
+ <property name="hexpand">1</property>
+ <property name="vexpand">1</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <child>
+ <object class="GtkSpinner">
+ <property name="spinning">1</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel">
+ <property name="label">Spinner</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/docs/reference/gtk/images/stack.ui b/docs/reference/gtk/images/stack.ui
new file mode 100644
index 0000000000..e81f3acf73
--- /dev/null
+++ b/docs/reference/gtk/images/stack.ui
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <object class="GtkWindow">
+ <property name="decorated">0</property>
+ <property name="resizable">0</property>
+ <property name="default-width">280</property>
+ <property name="default-height">120</property>
+ <style>
+ <class name="nobackground"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <style>
+ <class name="frame"/>
+ <class name="shadow"/>
+ <class name="background"/>
+ </style>
+ <property name="orientation">vertical</property>
+ <property name="hexpand">1</property>
+ <property name="vexpand">1</property>
+ <child>
+ <object class="GtkStackSwitcher">
+ <property name="stack">stack</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkStack" id="stack">
+ <property name="width-request">120</property>
+ <property name="height-request">120</property>
+ <child>
+ <object class="GtkStackPage">
+ <property name="name">page1</property>
+ <property name="title">Page 1</property>
+ <property name="child">
+ <object class="GtkTextView">
+ <property name="cursor-visible">0</property>
+ </object>
+ </property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkStackPage">
+ <property name="name">page2</property>
+ <property name="title">Page 2</property>
+ <property name="child">
+ <object class="GtkTextView">
+ <property name="cursor-visible">0</property>
+ </object>
+ </property>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel">
+ <property name="margin-top">3</property>
+ <property name="label">Stack</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/docs/reference/gtk/images/stackswitcher.ui b/docs/reference/gtk/images/stackswitcher.ui
new file mode 100644
index 0000000000..8ef282232b
--- /dev/null
+++ b/docs/reference/gtk/images/stackswitcher.ui
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <object class="GtkWindow">
+ <property name="decorated">0</property>
+ <property name="resizable">0</property>
+ <property name="default-width">280</property>
+ <property name="default-height">120</property>
+ <style>
+ <class name="nobackground"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <style>
+ <class name="frame"/>
+ <class name="shadow"/>
+ <class name="background"/>
+ </style>
+ <property name="orientation">vertical</property>
+ <property name="hexpand">1</property>
+ <property name="vexpand">1</property>
+ <child>
+ <object class="GtkStackSwitcher">
+ <property name="stack">stack</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkStack" id="stack">
+ <property name="width-request">120</property>
+ <property name="height-request">120</property>
+ <child>
+ <object class="GtkStackPage">
+ <property name="name">page1</property>
+ <property name="title">Page 1</property>
+ <property name="child">
+ <object class="GtkTextView">
+ <property name="cursor-visible">0</property>
+ </object>
+ </property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkStackPage">
+ <property name="name">page2</property>
+ <property name="title">Page 2</property>
+ <property name="child">
+ <object class="GtkTextView">
+ <property name="cursor-visible">0</property>
+ </object>
+ </property>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel">
+ <property name="margin-top">3</property>
+ <property name="label">Stack Switcher</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/docs/reference/gtk/images/statusbar.ui b/docs/reference/gtk/images/statusbar.ui
new file mode 100644
index 0000000000..c888303b9c
--- /dev/null
+++ b/docs/reference/gtk/images/statusbar.ui
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <object class="GtkWindow">
+ <property name="decorated">0</property>
+ <property name="resizable">0</property>
+ <property name="default-width">280</property>
+ <property name="default-height">120</property>
+ <style>
+ <class name="nobackground"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <style>
+ <class name="background"/>
+ <class name="frame"/>
+ <class name="shadow"/>
+ </style>
+ <property name="orientation">vertical</property>
+ <property name="spacing">3</property>
+ <child>
+ <object class="GtkLabel">
+ <property name="margin-top">10</property>
+ <property name="label">Status Bar</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkStatusbar">
+ <property name="hexpand">1</property>
+ <property name="vexpand">1</property>
+ <property name="valign">end</property>
+ <child>
+ <object class="GtkLabel">
+ <property name="label">Hold on…</property>
+ <property name="halign">start</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/docs/reference/gtk/images/style.css b/docs/reference/gtk/images/style.css
new file mode 100644
index 0000000000..039dd5258b
--- /dev/null
+++ b/docs/reference/gtk/images/style.css
@@ -0,0 +1,18 @@
+.nobackground {
+ background: none;
+}
+
+.shadow {
+ box-shadow: 0 3px 9px 1px rgba(0, 0, 0, 0.5);
+ margin: 20px;
+}
+
+.black {
+ background: black;
+}
+
+.small-button {
+ min-width: 16px;
+ min-height: 16px;
+ padding: 0;
+}
diff --git a/docs/reference/gtk/images/switch.ui b/docs/reference/gtk/images/switch.ui
new file mode 100644
index 0000000000..bc7136de18
--- /dev/null
+++ b/docs/reference/gtk/images/switch.ui
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <object class="GtkWindow">
+ <property name="decorated">0</property>
+ <property name="resizable">0</property>
+ <property name="default-width">280</property>
+ <property name="default-height">120</property>
+ <style>
+ <class name="nobackground"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <style>
+ <class name="shadow"/>
+ <class name="background"/>
+ <class name="frame"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <property name="orientation">vertical</property>
+ <property name="spacing">3</property>
+ <property name="hexpand">1</property>
+ <property name="vexpand">1</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <child>
+ <object class="GtkSwitch">
+ <property name="active">1</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkSwitch">
+ <property name="active">0</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/docs/reference/gtk/images/toggle-button.ui b/docs/reference/gtk/images/toggle-button.ui
new file mode 100644
index 0000000000..ff1a323aa8
--- /dev/null
+++ b/docs/reference/gtk/images/toggle-button.ui
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <object class="GtkWindow">
+ <property name="decorated">0</property>
+ <property name="resizable">0</property>
+ <property name="default-width">280</property>
+ <property name="default-height">120</property>
+ <style>
+ <class name="nobackground"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <style>
+ <class name="shadow"/>
+ <class name="background"/>
+ <class name="frame"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <property name="orientation">horizontal</property>
+ <property name="hexpand">1</property>
+ <property name="vexpand">1</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <style>
+ <class name="linked"/>
+ </style>
+ <child>
+ <object class="GtkToggleButton">
+ <property name="active">1</property>
+ <property name="label">Toggle</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkToggleButton">
+ <property name="active">0</property>
+ <property name="label">Button</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/docs/reference/gtk/images/video.ui b/docs/reference/gtk/images/video.ui
new file mode 100644
index 0000000000..8dcee64df8
--- /dev/null
+++ b/docs/reference/gtk/images/video.ui
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <object class="GtkWindow">
+ <property name="decorated">0</property>
+ <property name="resizable">0</property>
+ <property name="default-width">280</property>
+ <property name="default-height">120</property>
+ <style>
+ <class name="nobackground"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <style>
+ <class name="shadow"/>
+ <class name="background"/>
+ <class name="frame"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <property name="orientation">vertical</property>
+ <property name="spacing">3</property>
+ <property name="hexpand">1</property>
+ <property name="vexpand">1</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property name="margin-top">10</property>
+ <property name="margin-bottom">10</property>
+ <child>
+ <object class="GtkVideo">
+ <property name="autoplay">1</property>
+ <property name="height-request">128</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <property
name="file">file:///home/mclasen/Sources/gtk-master/docs/reference/gtk/images/gtk-logo.webm</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel">
+ <property name="label">Video</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/docs/reference/gtk/images/volumebutton.ui b/docs/reference/gtk/images/volumebutton.ui
new file mode 100644
index 0000000000..db46723818
--- /dev/null
+++ b/docs/reference/gtk/images/volumebutton.ui
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <object class="GtkWindow">
+ <property name="decorated">0</property>
+ <property name="resizable">0</property>
+ <property name="default-width">280</property>
+ <property name="default-height">120</property>
+ <style>
+ <class name="nobackground"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <style>
+ <class name="shadow"/>
+ <class name="background"/>
+ <class name="frame"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <property name="orientation">vertical</property>
+ <property name="spacing">3</property>
+ <property name="hexpand">1</property>
+ <property name="vexpand">1</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <child>
+ <object class="GtkVolumeButton">
+ <property name="value">33</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel">
+ <property name="label">Volume Button</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/docs/reference/gtk/images/window.ui b/docs/reference/gtk/images/window.ui
new file mode 100644
index 0000000000..31db76ddab
--- /dev/null
+++ b/docs/reference/gtk/images/window.ui
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <object class="GtkWindow">
+ <property name="resizable">0</property>
+ <property name="default-width">280</property>
+ <property name="default-height">120</property>
+ <property name="title">Window</property>
+ </object>
+</interface>
diff --git a/docs/reference/gtk/images/windowcontrols.ui b/docs/reference/gtk/images/windowcontrols.ui
new file mode 100644
index 0000000000..45986e70c3
--- /dev/null
+++ b/docs/reference/gtk/images/windowcontrols.ui
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+ <object class="GtkWindow">
+ <property name="decorated">0</property>
+ <property name="resizable">1</property>
+ <property name="default-width">280</property>
+ <property name="default-height">120</property>
+ <style>
+ <class name="nobackground"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <style>
+ <class name="shadow"/>
+ <class name="background"/>
+ <class name="frame"/>
+ </style>
+ <child>
+ <object class="GtkBox">
+ <property name="orientation">vertical</property>
+ <property name="spacing">3</property>
+ <property name="hexpand">1</property>
+ <property name="vexpand">1</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ <child>
+ <object class="GtkWindowControls">
+ <property name="side">end</property>
+ <property name="decoration-layout">:minimize,maximize,close</property>
+ <property name="halign">center</property>
+ <property name="valign">center</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel">
+ <property name="label">Window Controls</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+</interface>
diff --git a/docs/reference/gtk/meson.build b/docs/reference/gtk/meson.build
index a7af607b91..f0b0882e44 100644
--- a/docs/reference/gtk/meson.build
+++ b/docs/reference/gtk/meson.build
@@ -27,6 +27,10 @@ expand_content_md_files = [
'visual_index.md'
]
+gtk_images = []
+
+subdir('images')
+
if get_option('gtk_doc')
gtk4_toml = configure_file(
input: 'gtk4.toml.in',
@@ -46,10 +50,11 @@ if get_option('gtk_doc')
'--add-include-path=@0@'.format(meson.current_build_dir() / '../../../gtk'),
'--config=@INPUT0@',
'--output-dir=@OUTPUT@',
+ '--content-dir=@0@'.format(meson.current_build_dir()),
'--content-dir=@0@'.format(meson.current_source_dir()),
'@INPUT1@',
],
- depends: [ gdk_gir[0], gsk_gir[0] ],
+ depends: [ gdk_gir[0], gsk_gir[0] ] + gtk_images,
depend_files: [ expand_content_md_files ],
build_by_default: true,
install: true,
diff --git a/meson_options.txt b/meson_options.txt
index bb2530d00a..2084ab86e1 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -85,6 +85,11 @@ option('gtk_doc',
value: false,
description : 'Build API reference and tools documentation')
+option('update_screenshots',
+ type: 'boolean',
+ value: false,
+ description : 'Regenerate screenshots for the documentation')
+
option('man-pages',
type: 'boolean',
value: false,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]