[gtk/redo-doc-images] Generate screenshots on the fly




commit 97ce2677bc8e292589e3dc36753819d4ec95315b
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     |  17 +++++
 docs/reference/gtk/images/action-bar.ui      |  47 +++++++++++++
 docs/reference/gtk/images/button.ui          |  30 ++++++++
 docs/reference/gtk/images/check-button.ui    |  43 ++++++++++++
 docs/reference/gtk/images/color-button.ui    |  43 ++++++++++++
 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/drop-down.ui       |  37 ++++++++++
 docs/reference/gtk/images/entry.ui           |  34 +++++++++
 docs/reference/gtk/images/expander.ui        |  34 +++++++++
 docs/reference/gtk/images/folder.png         | Bin 0 -> 1270 bytes
 docs/reference/gtk/images/font-button.ui     |  43 ++++++++++++
 docs/reference/gtk/images/frame.ui           |  34 +++++++++
 docs/reference/gtk/images/gnome.png          | Bin 0 -> 1210 bytes
 docs/reference/gtk/images/icon-view.ui       |  71 +++++++++++++++++++
 docs/reference/gtk/images/info-bar.ui        |  40 +++++++++++
 docs/reference/gtk/images/label.ui           |  30 ++++++++
 docs/reference/gtk/images/link-button.ui     |  31 +++++++++
 docs/reference/gtk/images/list-and-tree.ui   |  62 +++++++++++++++++
 docs/reference/gtk/images/menu-button.ui     |  44 ++++++++++++
 docs/reference/gtk/images/meson.build        |  50 ++++++++++++++
 docs/reference/gtk/images/messagedialog.ui   |  19 +++++
 docs/reference/gtk/images/multiline-text.ui  |  44 ++++++++++++
 docs/reference/gtk/images/pagesetupdialog.ui |   6 ++
 docs/reference/gtk/images/panes.ui           | 100 +++++++++++++++++++++++++++
 docs/reference/gtk/images/password-entry.ui  |  35 ++++++++++
 docs/reference/gtk/images/printdialog.ui     |   8 +++
 docs/reference/gtk/images/radio-button.ui    |  44 ++++++++++++
 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/style.css          |   8 +++
 docs/reference/gtk/images/switch.ui          |  41 +++++++++++
 docs/reference/gtk/images/toggle-button.ui   |  45 ++++++++++++
 docs/reference/gtk/images/window.ui          |   9 +++
 docs/reference/gtk/meson.build               |   7 +-
 meson_options.txt                            |   5 ++
 38 files changed, 1315 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..00815af070
--- /dev/null
+++ b/docs/reference/gtk/images/aboutdialog.ui
@@ -0,0 +1,17 @@
+<?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="website">http://www.gtk.org</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/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/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/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/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/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/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/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/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/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/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/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..1e3cbe5186
--- /dev/null
+++ b/docs/reference/gtk/images/list-and-tree.ui
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+  <object class="GtkTreeStore" id="store">
+    <columns>
+      <column type="gchararray"/>
+      <column type="gboolean"/>
+      <column type="gchararray"/>
+    </columns>
+  </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>
+      </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/meson.build b/docs/reference/gtk/images/meson.build
new file mode 100644
index 0000000000..fd238ea28c
--- /dev/null
+++ b/docs/reference/gtk/images/meson.build
@@ -0,0 +1,50 @@
+ui_files = [
+  'aboutdialog.ui',
+  'action-bar.ui',
+  'button.ui',
+  'check-button.ui',
+  'color-button.ui',
+  'combo-box.ui',
+  'combo-box-entry.ui',
+  'combo-box-text.ui',
+  'drop-down.ui',
+  #'editable-label.ui',
+  'entry.ui',
+  'expander.ui',
+  'font-button.ui',
+  'frame.ui',
+  'icon-view.ui',
+  'info-bar.ui',
+  'label.ui',
+  'link-button.ui',
+  #'list-and-tree.ui',
+  'menu-button.ui',
+  #'messagedialog.ui',
+  'multiline-text.ui',
+  #'pagesetupdialog.ui',
+  'panes.ui',
+  'password-entry.ui',
+  #'printdialog.ui',
+  'radio-button.ui',
+  'search-bar.ui',
+  'search-entry.ui',
+  'separator.ui',
+  'switch.ui',
+  'toggle-button.ui',
+  #'window.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/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..7e9cc13035
--- /dev/null
+++ b/docs/reference/gtk/images/panes.ui
@@ -0,0 +1,100 @@
+<?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="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/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/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/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/style.css b/docs/reference/gtk/images/style.css
new file mode 100644
index 0000000000..148a682240
--- /dev/null
+++ b/docs/reference/gtk/images/style.css
@@ -0,0 +1,8 @@
+.nobackground {
+  background: none;
+}
+
+.shadow {
+  box-shadow: 0 3px 9px 1px rgba(0, 0, 0, 0.5);
+  margin: 20px;
+}
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/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/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]