summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2021-03-26 19:33:13 +0000
committerMatthias Clasen <mclasen@redhat.com>2021-03-26 19:33:13 +0000
commitf6f07ba238b4f734d9134c5e3a5e726ce8cb5fea (patch)
tree08a24008d50858419e2630524edea33307f589e1
parent922b2683b3e21e7d9473becd07f86ac51a1665ed (diff)
parent3ab07203ce76d1f20d85dce8c0135c80716b920b (diff)
downloadgtk+-f6f07ba238b4f734d9134c5e3a5e726ce8cb5fea.tar.gz
Merge branch 'icon-fallback' into 'master'
Icon fallback See merge request GNOME/gtk!3353
-rw-r--r--demos/widget-factory/icons/16x16/actions/call-start-symbolic.symbolic.pngbin0 -> 234 bytes
-rw-r--r--demos/widget-factory/icons/16x16/actions/call-stop-symbolic.symbolic.pngbin0 -> 231 bytes
-rw-r--r--demos/widget-factory/icons/16x16/actions/document-new-symbolic.symbolic.pngbin0 -> 184 bytes
-rw-r--r--demos/widget-factory/icons/16x16/actions/format-indent-less-symbolic-rtl.symbolic.pngbin0 -> 159 bytes
-rw-r--r--demos/widget-factory/icons/16x16/actions/format-indent-less-symbolic.symbolic.pngbin0 -> 165 bytes
-rw-r--r--demos/widget-factory/icons/16x16/actions/format-indent-more-symbolic-rtl.symbolic.pngbin0 -> 165 bytes
-rw-r--r--demos/widget-factory/icons/16x16/actions/format-indent-more-symbolic.symbolic.pngbin0 -> 159 bytes
-rw-r--r--demos/widget-factory/icons/16x16/actions/format-justify-center-symbolic.symbolic.pngbin0 -> 119 bytes
-rw-r--r--demos/widget-factory/icons/16x16/actions/format-justify-fill-symbolic.symbolic.pngbin0 -> 104 bytes
-rw-r--r--demos/widget-factory/icons/16x16/actions/format-justify-left-symbolic.symbolic.pngbin0 -> 115 bytes
-rw-r--r--demos/widget-factory/icons/16x16/actions/format-justify-right-symbolic.symbolic.pngbin0 -> 117 bytes
-rw-r--r--demos/widget-factory/icons/16x16/actions/insert-link-symbolic.symbolic.pngbin0 -> 266 bytes
-rw-r--r--demos/widget-factory/icons/16x16/actions/view-continuous-symbolic.symbolic.pngbin0 -> 129 bytes
-rw-r--r--demos/widget-factory/icons/16x16/actions/view-dual-symbolic.symbolic.pngbin0 -> 200 bytes
-rw-r--r--demos/widget-factory/icons/16x16/actions/view-paged-symbolic.symbolic.pngbin0 -> 160 bytes
-rw-r--r--demos/widget-factory/icons/16x16/devices/audio-headphones-symbolic.symbolic.pngbin0 -> 319 bytes
-rw-r--r--demos/widget-factory/icons/16x16/devices/audio-input-microphone-symbolic.symbolic.pngbin0 -> 263 bytes
-rw-r--r--demos/widget-factory/icons/16x16/devices/audio-speakers-symbolic.symbolic.pngbin0 -> 265 bytes
-rw-r--r--demos/widget-factory/icons/16x16/devices/camera-photo-symbolic.symbolic.pngbin0 -> 226 bytes
-rw-r--r--demos/widget-factory/icons/16x16/devices/camera-web-symbolic.symbolic.pngbin0 -> 157 bytes
-rw-r--r--demos/widget-factory/icons/16x16/devices/drive-optical-symbolic.symbolic.pngbin0 -> 262 bytes
-rw-r--r--demos/widget-factory/icons/16x16/devices/network-wired-symbolic.symbolic.pngbin0 -> 144 bytes
-rw-r--r--demos/widget-factory/icons/16x16/devices/network-wireless-symbolic.symbolic.pngbin0 -> 283 bytes
-rw-r--r--demos/widget-factory/icons/16x16/devices/phone-symbolic.symbolic.pngbin0 -> 187 bytes
-rw-r--r--demos/widget-factory/icons/16x16/emblems/emblem-shared-symbolic.symbolic.pngbin0 -> 287 bytes
-rw-r--r--demos/widget-factory/icons/16x16/status/weather-few-clouds-night-symbolic.symbolic.pngbin0 -> 358 bytes
-rw-r--r--demos/widget-factory/icons/16x16/status/weather-fog-symbolic.symbolic.pngbin0 -> 298 bytes
-rw-r--r--demos/widget-factory/icons/16x16/status/weather-overcast-symbolic.symbolic.pngbin0 -> 284 bytes
-rw-r--r--demos/widget-factory/icons/16x16/status/weather-severe-alert-symbolic.symbolic.pngbin0 -> 223 bytes
-rw-r--r--demos/widget-factory/icons/16x16/status/weather-showers-symbolic.symbolic.pngbin0 -> 296 bytes
-rw-r--r--demos/widget-factory/icons/16x16/status/weather-snow-symbolic.symbolic.pngbin0 -> 306 bytes
-rw-r--r--demos/widget-factory/icons/scalable/actions/call-start-symbolic.svg1
-rw-r--r--demos/widget-factory/icons/scalable/actions/call-stop-symbolic.svg1
-rw-r--r--demos/widget-factory/icons/scalable/actions/document-new-symbolic.svg1
-rw-r--r--demos/widget-factory/icons/scalable/actions/format-indent-less-symbolic-rtl.svg1
-rw-r--r--demos/widget-factory/icons/scalable/actions/format-indent-less-symbolic.svg1
-rw-r--r--demos/widget-factory/icons/scalable/actions/format-indent-more-symbolic-rtl.svg1
-rw-r--r--demos/widget-factory/icons/scalable/actions/format-indent-more-symbolic.svg1
-rw-r--r--demos/widget-factory/icons/scalable/actions/format-justify-center-symbolic.svg1
-rw-r--r--demos/widget-factory/icons/scalable/actions/format-justify-fill-symbolic.svg1
-rw-r--r--demos/widget-factory/icons/scalable/actions/format-justify-left-symbolic.svg1
-rw-r--r--demos/widget-factory/icons/scalable/actions/format-justify-right-symbolic.svg1
-rw-r--r--demos/widget-factory/icons/scalable/actions/insert-link-symbolic.svg1
-rw-r--r--demos/widget-factory/icons/scalable/actions/view-continuous-symbolic.svg1
-rw-r--r--demos/widget-factory/icons/scalable/actions/view-dual-symbolic.svg1
-rw-r--r--demos/widget-factory/icons/scalable/actions/view-fullscreen-symbolic.svg1
-rw-r--r--demos/widget-factory/icons/scalable/actions/view-grid-symbolic.svg1
-rw-r--r--demos/widget-factory/icons/scalable/actions/view-paged-symbolic.svg1
-rw-r--r--demos/widget-factory/icons/scalable/devices/audio-headphones-symbolic.svg1
-rw-r--r--demos/widget-factory/icons/scalable/devices/audio-input-microphone-symbolic.svg3
-rw-r--r--demos/widget-factory/icons/scalable/devices/audio-speakers-symbolic.svg1
-rw-r--r--demos/widget-factory/icons/scalable/devices/camera-photo-symbolic.svg1
-rw-r--r--demos/widget-factory/icons/scalable/devices/camera-web-symbolic.svg1
-rw-r--r--demos/widget-factory/icons/scalable/devices/drive-optical-symbolic.svg1
-rw-r--r--demos/widget-factory/icons/scalable/devices/network-wired-symbolic.svg1
-rw-r--r--demos/widget-factory/icons/scalable/devices/network-wireless-symbolic.svg1
-rw-r--r--demos/widget-factory/icons/scalable/devices/phone-symbolic.svg1
-rw-r--r--demos/widget-factory/icons/scalable/status/weather-clear-night-symbolic.svg1
-rw-r--r--demos/widget-factory/icons/scalable/status/weather-few-clouds-night-symbolic.svg1
-rw-r--r--demos/widget-factory/icons/scalable/status/weather-fog-symbolic.svg1
-rw-r--r--demos/widget-factory/icons/scalable/status/weather-overcast-symbolic.svg1
-rw-r--r--demos/widget-factory/icons/scalable/status/weather-severe-alert-symbolic.svg1
-rw-r--r--demos/widget-factory/icons/scalable/status/weather-showers-symbolic.svg1
-rw-r--r--demos/widget-factory/icons/scalable/status/weather-snow-symbolic.svg1
-rw-r--r--demos/widget-factory/widget-factory.gresource.xml95
-rw-r--r--demos/widget-factory/widget-factory.ui6
-rw-r--r--gtk/gtkdebug.h1
-rw-r--r--gtk/gtkfilechooserutils.c9
-rw-r--r--gtk/gtkfilechooserutils.h8
-rw-r--r--gtk/gtkfilechooserwidget.c8
-rw-r--r--gtk/gtkicontheme.c49
-rw-r--r--gtk/gtkicontheme.h3
-rw-r--r--gtk/gtkmain.c1
-rw-r--r--gtk/icons/16x16/actions/color-select-symbolic.symbolic.pngbin272 -> 220 bytes
-rw-r--r--gtk/icons/16x16/actions/go-next-symbolic-rtl.symbolic.pngbin0 -> 147 bytes
-rw-r--r--gtk/icons/16x16/actions/go-next-symbolic.symbolic.pngbin0 -> 140 bytes
-rw-r--r--gtk/icons/16x16/actions/go-previous-symbolic-rtl.symbolic.pngbin0 -> 140 bytes
-rw-r--r--gtk/icons/16x16/actions/go-previous-symbolic.symbolic.pngbin0 -> 147 bytes
-rw-r--r--gtk/icons/16x16/actions/system-run-symbolic.symbolic.pngbin0 -> 380 bytes
-rw-r--r--gtk/icons/16x16/actions/system-search-symbolic.symbolic.pngbin0 -> 284 bytes
-rw-r--r--gtk/icons/16x16/devices/printer-symbolic.symbolic.pngbin0 -> 147 bytes
-rw-r--r--gtk/icons/16x16/mimetypes/text-x-generic-symbolic.symbolic.pngbin0 -> 176 bytes
-rw-r--r--gtk/icons/16x16/status/display-brightness-symbolic.symbolic.pngbin0 -> 290 bytes
-rw-r--r--gtk/icons/scalable/actions/color-select-symbolic.svg4
-rw-r--r--gtk/icons/scalable/actions/go-next-symbolic-rtl.svg1
-rw-r--r--gtk/icons/scalable/actions/go-next-symbolic.svg1
-rw-r--r--gtk/icons/scalable/actions/go-previous-symbolic-rtl.svg1
-rw-r--r--gtk/icons/scalable/actions/go-previous-symbolic.svg1
-rw-r--r--gtk/icons/scalable/actions/system-run-symbolic.svg1
-rw-r--r--gtk/icons/scalable/actions/system-search-symbolic.svg1
-rw-r--r--gtk/icons/scalable/devices/printer-symbolic.svg1
-rw-r--r--gtk/icons/scalable/mimetypes/text-x-generic-symbolic.svg1
-rw-r--r--gtk/icons/scalable/status/display-brightness-symbolic.svg1
93 files changed, 202 insertions, 26 deletions
diff --git a/demos/widget-factory/icons/16x16/actions/call-start-symbolic.symbolic.png b/demos/widget-factory/icons/16x16/actions/call-start-symbolic.symbolic.png
new file mode 100644
index 0000000000..11a0507300
--- /dev/null
+++ b/demos/widget-factory/icons/16x16/actions/call-start-symbolic.symbolic.png
Binary files differ
diff --git a/demos/widget-factory/icons/16x16/actions/call-stop-symbolic.symbolic.png b/demos/widget-factory/icons/16x16/actions/call-stop-symbolic.symbolic.png
new file mode 100644
index 0000000000..912709a6c4
--- /dev/null
+++ b/demos/widget-factory/icons/16x16/actions/call-stop-symbolic.symbolic.png
Binary files differ
diff --git a/demos/widget-factory/icons/16x16/actions/document-new-symbolic.symbolic.png b/demos/widget-factory/icons/16x16/actions/document-new-symbolic.symbolic.png
new file mode 100644
index 0000000000..2592f5b6a2
--- /dev/null
+++ b/demos/widget-factory/icons/16x16/actions/document-new-symbolic.symbolic.png
Binary files differ
diff --git a/demos/widget-factory/icons/16x16/actions/format-indent-less-symbolic-rtl.symbolic.png b/demos/widget-factory/icons/16x16/actions/format-indent-less-symbolic-rtl.symbolic.png
new file mode 100644
index 0000000000..3f69c87568
--- /dev/null
+++ b/demos/widget-factory/icons/16x16/actions/format-indent-less-symbolic-rtl.symbolic.png
Binary files differ
diff --git a/demos/widget-factory/icons/16x16/actions/format-indent-less-symbolic.symbolic.png b/demos/widget-factory/icons/16x16/actions/format-indent-less-symbolic.symbolic.png
new file mode 100644
index 0000000000..50f3a709b5
--- /dev/null
+++ b/demos/widget-factory/icons/16x16/actions/format-indent-less-symbolic.symbolic.png
Binary files differ
diff --git a/demos/widget-factory/icons/16x16/actions/format-indent-more-symbolic-rtl.symbolic.png b/demos/widget-factory/icons/16x16/actions/format-indent-more-symbolic-rtl.symbolic.png
new file mode 100644
index 0000000000..50f3a709b5
--- /dev/null
+++ b/demos/widget-factory/icons/16x16/actions/format-indent-more-symbolic-rtl.symbolic.png
Binary files differ
diff --git a/demos/widget-factory/icons/16x16/actions/format-indent-more-symbolic.symbolic.png b/demos/widget-factory/icons/16x16/actions/format-indent-more-symbolic.symbolic.png
new file mode 100644
index 0000000000..3f69c87568
--- /dev/null
+++ b/demos/widget-factory/icons/16x16/actions/format-indent-more-symbolic.symbolic.png
Binary files differ
diff --git a/demos/widget-factory/icons/16x16/actions/format-justify-center-symbolic.symbolic.png b/demos/widget-factory/icons/16x16/actions/format-justify-center-symbolic.symbolic.png
new file mode 100644
index 0000000000..eeaf1084bf
--- /dev/null
+++ b/demos/widget-factory/icons/16x16/actions/format-justify-center-symbolic.symbolic.png
Binary files differ
diff --git a/demos/widget-factory/icons/16x16/actions/format-justify-fill-symbolic.symbolic.png b/demos/widget-factory/icons/16x16/actions/format-justify-fill-symbolic.symbolic.png
new file mode 100644
index 0000000000..eddf63e91a
--- /dev/null
+++ b/demos/widget-factory/icons/16x16/actions/format-justify-fill-symbolic.symbolic.png
Binary files differ
diff --git a/demos/widget-factory/icons/16x16/actions/format-justify-left-symbolic.symbolic.png b/demos/widget-factory/icons/16x16/actions/format-justify-left-symbolic.symbolic.png
new file mode 100644
index 0000000000..97c17f690f
--- /dev/null
+++ b/demos/widget-factory/icons/16x16/actions/format-justify-left-symbolic.symbolic.png
Binary files differ
diff --git a/demos/widget-factory/icons/16x16/actions/format-justify-right-symbolic.symbolic.png b/demos/widget-factory/icons/16x16/actions/format-justify-right-symbolic.symbolic.png
new file mode 100644
index 0000000000..ea948903d5
--- /dev/null
+++ b/demos/widget-factory/icons/16x16/actions/format-justify-right-symbolic.symbolic.png
Binary files differ
diff --git a/demos/widget-factory/icons/16x16/actions/insert-link-symbolic.symbolic.png b/demos/widget-factory/icons/16x16/actions/insert-link-symbolic.symbolic.png
new file mode 100644
index 0000000000..3893602923
--- /dev/null
+++ b/demos/widget-factory/icons/16x16/actions/insert-link-symbolic.symbolic.png
Binary files differ
diff --git a/demos/widget-factory/icons/16x16/actions/view-continuous-symbolic.symbolic.png b/demos/widget-factory/icons/16x16/actions/view-continuous-symbolic.symbolic.png
new file mode 100644
index 0000000000..3e78d91da0
--- /dev/null
+++ b/demos/widget-factory/icons/16x16/actions/view-continuous-symbolic.symbolic.png
Binary files differ
diff --git a/demos/widget-factory/icons/16x16/actions/view-dual-symbolic.symbolic.png b/demos/widget-factory/icons/16x16/actions/view-dual-symbolic.symbolic.png
new file mode 100644
index 0000000000..63e7d480af
--- /dev/null
+++ b/demos/widget-factory/icons/16x16/actions/view-dual-symbolic.symbolic.png
Binary files differ
diff --git a/demos/widget-factory/icons/16x16/actions/view-paged-symbolic.symbolic.png b/demos/widget-factory/icons/16x16/actions/view-paged-symbolic.symbolic.png
new file mode 100644
index 0000000000..52bd2f561e
--- /dev/null
+++ b/demos/widget-factory/icons/16x16/actions/view-paged-symbolic.symbolic.png
Binary files differ
diff --git a/demos/widget-factory/icons/16x16/devices/audio-headphones-symbolic.symbolic.png b/demos/widget-factory/icons/16x16/devices/audio-headphones-symbolic.symbolic.png
new file mode 100644
index 0000000000..787570dfb8
--- /dev/null
+++ b/demos/widget-factory/icons/16x16/devices/audio-headphones-symbolic.symbolic.png
Binary files differ
diff --git a/demos/widget-factory/icons/16x16/devices/audio-input-microphone-symbolic.symbolic.png b/demos/widget-factory/icons/16x16/devices/audio-input-microphone-symbolic.symbolic.png
new file mode 100644
index 0000000000..2f61d6458e
--- /dev/null
+++ b/demos/widget-factory/icons/16x16/devices/audio-input-microphone-symbolic.symbolic.png
Binary files differ
diff --git a/demos/widget-factory/icons/16x16/devices/audio-speakers-symbolic.symbolic.png b/demos/widget-factory/icons/16x16/devices/audio-speakers-symbolic.symbolic.png
new file mode 100644
index 0000000000..67dddb5636
--- /dev/null
+++ b/demos/widget-factory/icons/16x16/devices/audio-speakers-symbolic.symbolic.png
Binary files differ
diff --git a/demos/widget-factory/icons/16x16/devices/camera-photo-symbolic.symbolic.png b/demos/widget-factory/icons/16x16/devices/camera-photo-symbolic.symbolic.png
new file mode 100644
index 0000000000..2efa18b5c4
--- /dev/null
+++ b/demos/widget-factory/icons/16x16/devices/camera-photo-symbolic.symbolic.png
Binary files differ
diff --git a/demos/widget-factory/icons/16x16/devices/camera-web-symbolic.symbolic.png b/demos/widget-factory/icons/16x16/devices/camera-web-symbolic.symbolic.png
new file mode 100644
index 0000000000..4c633b7661
--- /dev/null
+++ b/demos/widget-factory/icons/16x16/devices/camera-web-symbolic.symbolic.png
Binary files differ
diff --git a/demos/widget-factory/icons/16x16/devices/drive-optical-symbolic.symbolic.png b/demos/widget-factory/icons/16x16/devices/drive-optical-symbolic.symbolic.png
new file mode 100644
index 0000000000..654a86bc19
--- /dev/null
+++ b/demos/widget-factory/icons/16x16/devices/drive-optical-symbolic.symbolic.png
Binary files differ
diff --git a/demos/widget-factory/icons/16x16/devices/network-wired-symbolic.symbolic.png b/demos/widget-factory/icons/16x16/devices/network-wired-symbolic.symbolic.png
new file mode 100644
index 0000000000..32c1ab9510
--- /dev/null
+++ b/demos/widget-factory/icons/16x16/devices/network-wired-symbolic.symbolic.png
Binary files differ
diff --git a/demos/widget-factory/icons/16x16/devices/network-wireless-symbolic.symbolic.png b/demos/widget-factory/icons/16x16/devices/network-wireless-symbolic.symbolic.png
new file mode 100644
index 0000000000..972ee3bdfa
--- /dev/null
+++ b/demos/widget-factory/icons/16x16/devices/network-wireless-symbolic.symbolic.png
Binary files differ
diff --git a/demos/widget-factory/icons/16x16/devices/phone-symbolic.symbolic.png b/demos/widget-factory/icons/16x16/devices/phone-symbolic.symbolic.png
new file mode 100644
index 0000000000..586e1e9d7e
--- /dev/null
+++ b/demos/widget-factory/icons/16x16/devices/phone-symbolic.symbolic.png
Binary files differ
diff --git a/demos/widget-factory/icons/16x16/emblems/emblem-shared-symbolic.symbolic.png b/demos/widget-factory/icons/16x16/emblems/emblem-shared-symbolic.symbolic.png
new file mode 100644
index 0000000000..3200dabef4
--- /dev/null
+++ b/demos/widget-factory/icons/16x16/emblems/emblem-shared-symbolic.symbolic.png
Binary files differ
diff --git a/demos/widget-factory/icons/16x16/status/weather-few-clouds-night-symbolic.symbolic.png b/demos/widget-factory/icons/16x16/status/weather-few-clouds-night-symbolic.symbolic.png
new file mode 100644
index 0000000000..40b6e6143d
--- /dev/null
+++ b/demos/widget-factory/icons/16x16/status/weather-few-clouds-night-symbolic.symbolic.png
Binary files differ
diff --git a/demos/widget-factory/icons/16x16/status/weather-fog-symbolic.symbolic.png b/demos/widget-factory/icons/16x16/status/weather-fog-symbolic.symbolic.png
new file mode 100644
index 0000000000..64573ebef7
--- /dev/null
+++ b/demos/widget-factory/icons/16x16/status/weather-fog-symbolic.symbolic.png
Binary files differ
diff --git a/demos/widget-factory/icons/16x16/status/weather-overcast-symbolic.symbolic.png b/demos/widget-factory/icons/16x16/status/weather-overcast-symbolic.symbolic.png
new file mode 100644
index 0000000000..57612bbb71
--- /dev/null
+++ b/demos/widget-factory/icons/16x16/status/weather-overcast-symbolic.symbolic.png
Binary files differ
diff --git a/demos/widget-factory/icons/16x16/status/weather-severe-alert-symbolic.symbolic.png b/demos/widget-factory/icons/16x16/status/weather-severe-alert-symbolic.symbolic.png
new file mode 100644
index 0000000000..4571dedc5c
--- /dev/null
+++ b/demos/widget-factory/icons/16x16/status/weather-severe-alert-symbolic.symbolic.png
Binary files differ
diff --git a/demos/widget-factory/icons/16x16/status/weather-showers-symbolic.symbolic.png b/demos/widget-factory/icons/16x16/status/weather-showers-symbolic.symbolic.png
new file mode 100644
index 0000000000..693217e495
--- /dev/null
+++ b/demos/widget-factory/icons/16x16/status/weather-showers-symbolic.symbolic.png
Binary files differ
diff --git a/demos/widget-factory/icons/16x16/status/weather-snow-symbolic.symbolic.png b/demos/widget-factory/icons/16x16/status/weather-snow-symbolic.symbolic.png
new file mode 100644
index 0000000000..4e876d02d1
--- /dev/null
+++ b/demos/widget-factory/icons/16x16/status/weather-snow-symbolic.symbolic.png
Binary files differ
diff --git a/demos/widget-factory/icons/scalable/actions/call-start-symbolic.svg b/demos/widget-factory/icons/scalable/actions/call-start-symbolic.svg
new file mode 100644
index 0000000000..59bc9cf521
--- /dev/null
+++ b/demos/widget-factory/icons/scalable/actions/call-start-symbolic.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path d="M10.994 2c-.554 0-1 .446-1 1v3c0 .554.446 1 1 1h.711a6.972 6.972 0 01-4.71 4.71V11c0-.554-.447-1-1-1h-3c-.555 0-1 .446-1 1v1.5a2.5 2.5 0 002.5 2.5h.5c5.504 0 10-4.495 10-10v-.5a2.5 2.5 0 00-2.5-2.5z" style="line-height:normal;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000;text-transform:none;text-orientation:mixed;shape-padding:0;isolation:auto;mix-blend-mode:normal;marker:none" color="#000" font-weight="400" font-family="sans-serif" overflow="visible" fill="#2e3436"/></svg> \ No newline at end of file
diff --git a/demos/widget-factory/icons/scalable/actions/call-stop-symbolic.svg b/demos/widget-factory/icons/scalable/actions/call-stop-symbolic.svg
new file mode 100644
index 0000000000..5c80d8bf85
--- /dev/null
+++ b/demos/widget-factory/icons/scalable/actions/call-stop-symbolic.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="16.006" height="16"><path d="M14.242 11.715a.979.979 0 01-1.387 0l-1.04-1.04-1.041-1.04a.979.979 0 010-1.388l.493-.493a6.838 6.838 0 00-6.534 0l.493.493a.979.979 0 010 1.387l-1.04 1.04-1.04 1.04a.979.979 0 01-1.388 0l-1.04-1.04a2.452 2.452 0 010-3.467l.347-.347c3.818-3.818 10.052-3.818 13.87 0l.347.347c.957.958.957 2.51 0 3.468z" style="line-height:normal;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000;text-transform:none;text-orientation:mixed;shape-padding:0;isolation:auto;mix-blend-mode:normal;marker:none" color="#000" font-weight="400" font-family="sans-serif" overflow="visible" fill="#2e3436"/></svg> \ No newline at end of file
diff --git a/demos/widget-factory/icons/scalable/actions/document-new-symbolic.svg b/demos/widget-factory/icons/scalable/actions/document-new-symbolic.svg
new file mode 100644
index 0000000000..ce0cf327c0
--- /dev/null
+++ b/demos/widget-factory/icons/scalable/actions/document-new-symbolic.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><g color="#000" font-weight="400" font-family="sans-serif" fill="#2e3436"><path d="M9 12v2h6v-2h-5z" style="line-height:normal;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000;text-transform:none;text-orientation:mixed;white-space:normal;shape-padding:0;isolation:auto;mix-blend-mode:normal;solid-color:#000;solid-opacity:1;marker:none" overflow="visible"/><path d="M3 1a1 1 0 00-1 1v13a1 1 0 001 1h5v-2H4V3h5.586L12 5.414V9h2V5a1 1 0 00-.293-.707l-3-3A1 1 0 0010 1z" style="line-height:normal;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000;text-transform:none;text-orientation:mixed;white-space:normal;shape-padding:0;isolation:auto;mix-blend-mode:normal;solid-color:#000;solid-opacity:1" overflow="visible" fill-rule="evenodd"/><path d="M11 10v6h2v-6z" style="line-height:normal;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000;text-transform:none;text-orientation:mixed;white-space:normal;shape-padding:0;isolation:auto;mix-blend-mode:normal;solid-color:#000;solid-opacity:1;marker:none" overflow="visible"/></g></svg> \ No newline at end of file
diff --git a/demos/widget-factory/icons/scalable/actions/format-indent-less-symbolic-rtl.svg b/demos/widget-factory/icons/scalable/actions/format-indent-less-symbolic-rtl.svg
new file mode 100644
index 0000000000..2ced313ee2
--- /dev/null
+++ b/demos/widget-factory/icons/scalable/actions/format-indent-less-symbolic-rtl.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><g color="#bebebe" fill="#474747"><path d="M8 3h5v2H8zm0 4h6v2H8zm-6 4h7v2H2z" style="marker:none" overflow="visible"/><path d="M2 3v1c0 .257.13.528.312.719L3.594 6 2.312 7.281C2.13 7.471 2 7.743 2 8v1h1c.31 0 .552-.09.75-.281L6.406 6 3.75 3.281C3.552 3.091 3.31 3 3 3z" style="line-height:normal;-inkscape-font-specification:'Bitstream Vera Sans';text-indent:0;text-align:start;text-decoration-line:none;text-transform:none;marker:none" font-weight="400" font-family="Bitstream Vera Sans" overflow="visible"/></g></svg> \ No newline at end of file
diff --git a/demos/widget-factory/icons/scalable/actions/format-indent-less-symbolic.svg b/demos/widget-factory/icons/scalable/actions/format-indent-less-symbolic.svg
new file mode 100644
index 0000000000..0491f68d22
--- /dev/null
+++ b/demos/widget-factory/icons/scalable/actions/format-indent-less-symbolic.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><g color="#bebebe" fill="#474747"><path d="M7 3H2v2h5zm1 4H2v2h6zm6 4H7v2h7z" style="marker:none" overflow="visible"/><path d="M14 3v1c0 .257-.13.528-.312.719L12.406 6l1.282 1.281c.182.19.312.462.312.719v1h-1c-.31 0-.552-.09-.75-.281L9.594 6l2.656-2.719c.198-.19.44-.281.75-.281z" style="line-height:normal;-inkscape-font-specification:'Bitstream Vera Sans';text-indent:0;text-align:start;text-decoration-line:none;text-transform:none;marker:none" font-weight="400" font-family="Bitstream Vera Sans" overflow="visible"/></g></svg> \ No newline at end of file
diff --git a/demos/widget-factory/icons/scalable/actions/format-indent-more-symbolic-rtl.svg b/demos/widget-factory/icons/scalable/actions/format-indent-more-symbolic-rtl.svg
new file mode 100644
index 0000000000..0491f68d22
--- /dev/null
+++ b/demos/widget-factory/icons/scalable/actions/format-indent-more-symbolic-rtl.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><g color="#bebebe" fill="#474747"><path d="M7 3H2v2h5zm1 4H2v2h6zm6 4H7v2h7z" style="marker:none" overflow="visible"/><path d="M14 3v1c0 .257-.13.528-.312.719L12.406 6l1.282 1.281c.182.19.312.462.312.719v1h-1c-.31 0-.552-.09-.75-.281L9.594 6l2.656-2.719c.198-.19.44-.281.75-.281z" style="line-height:normal;-inkscape-font-specification:'Bitstream Vera Sans';text-indent:0;text-align:start;text-decoration-line:none;text-transform:none;marker:none" font-weight="400" font-family="Bitstream Vera Sans" overflow="visible"/></g></svg> \ No newline at end of file
diff --git a/demos/widget-factory/icons/scalable/actions/format-indent-more-symbolic.svg b/demos/widget-factory/icons/scalable/actions/format-indent-more-symbolic.svg
new file mode 100644
index 0000000000..2ced313ee2
--- /dev/null
+++ b/demos/widget-factory/icons/scalable/actions/format-indent-more-symbolic.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><g color="#bebebe" fill="#474747"><path d="M8 3h5v2H8zm0 4h6v2H8zm-6 4h7v2H2z" style="marker:none" overflow="visible"/><path d="M2 3v1c0 .257.13.528.312.719L3.594 6 2.312 7.281C2.13 7.471 2 7.743 2 8v1h1c.31 0 .552-.09.75-.281L6.406 6 3.75 3.281C3.552 3.091 3.31 3 3 3z" style="line-height:normal;-inkscape-font-specification:'Bitstream Vera Sans';text-indent:0;text-align:start;text-decoration-line:none;text-transform:none;marker:none" font-weight="400" font-family="Bitstream Vera Sans" overflow="visible"/></g></svg> \ No newline at end of file
diff --git a/demos/widget-factory/icons/scalable/actions/format-justify-center-symbolic.svg b/demos/widget-factory/icons/scalable/actions/format-justify-center-symbolic.svg
new file mode 100644
index 0000000000..aae7303350
--- /dev/null
+++ b/demos/widget-factory/icons/scalable/actions/format-justify-center-symbolic.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path d="M4 3h8v2H4zM3 7h10v2H3zm3 4h4v2H6z" style="marker:none" overflow="visible" color="#bebebe" fill="#474747"/></svg> \ No newline at end of file
diff --git a/demos/widget-factory/icons/scalable/actions/format-justify-fill-symbolic.svg b/demos/widget-factory/icons/scalable/actions/format-justify-fill-symbolic.svg
new file mode 100644
index 0000000000..c9fec6a2ae
--- /dev/null
+++ b/demos/widget-factory/icons/scalable/actions/format-justify-fill-symbolic.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path d="M3 3h10v2H3zm0 4h10v2H3zm0 4h10v2H3z" style="marker:none" overflow="visible" color="#bebebe" fill="#474747"/></svg> \ No newline at end of file
diff --git a/demos/widget-factory/icons/scalable/actions/format-justify-left-symbolic.svg b/demos/widget-factory/icons/scalable/actions/format-justify-left-symbolic.svg
new file mode 100644
index 0000000000..df50268a99
--- /dev/null
+++ b/demos/widget-factory/icons/scalable/actions/format-justify-left-symbolic.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path d="M3 3h8v2H3zm0 4h10v2H3zm0 4h4v2H3z" style="marker:none" overflow="visible" color="#bebebe" fill="#474747"/></svg> \ No newline at end of file
diff --git a/demos/widget-factory/icons/scalable/actions/format-justify-right-symbolic.svg b/demos/widget-factory/icons/scalable/actions/format-justify-right-symbolic.svg
new file mode 100644
index 0000000000..6ddefc2c84
--- /dev/null
+++ b/demos/widget-factory/icons/scalable/actions/format-justify-right-symbolic.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path d="M5 3h8v2H5zM3 7h10v2H3zm6 4h4v2H9z" style="marker:none" overflow="visible" color="#bebebe" fill="#474747"/></svg> \ No newline at end of file
diff --git a/demos/widget-factory/icons/scalable/actions/insert-link-symbolic.svg b/demos/widget-factory/icons/scalable/actions/insert-link-symbolic.svg
new file mode 100644
index 0000000000..098e40a5e4
--- /dev/null
+++ b/demos/widget-factory/icons/scalable/actions/insert-link-symbolic.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="16" height="15.982"><g font-weight="400" fill="#474747"><path d="M11.001 11.986h-1a1.21 1.21 0 00-.719.261l-1.281 1.07-1.281-1.07a1.202 1.202 0 00-.72-.26H5v.835c0 .258.09.461.282.626l2.741 2.534 2.697-2.534a.78.78 0 00.281-.626v-.836z" style="line-height:normal;-inkscape-font-specification:'Bitstream Vera Sans';text-indent:0;text-align:start;text-decoration-line:none;text-transform:none;marker:none" color="#bebebe" font-family="Bitstream Vera Sans" overflow="visible"/><path d="M9.804 4.04a.936 1.01 0 00.185 1.997h4.937a.936 1.01 0 100-1.997H9.989a.936 1.01 0 00-.185 0zm-8.991 0c-.45.102-.789.599-.743 1.088.046.49.47.904.93.91h4.916c.535.085 1.084-.42 1.084-1 0-.578-.549-1.084-1.084-.998H1a.834.834 0 00-.187 0zM6.059.964a2.492 2.492 0 00-1.907 1.468 2.686 2.686 0 00-.156.532H12c-.026-.126-.054-.263-.094-.375A2.467 2.467 0 009.563.964h-3.13c-.126 0-.252-.019-.374 0zm-2.063 6c.236 1.132 1.24 2 2.438 2h3.129c1.197 0 2.202-.868 2.437-2z" style="line-height:normal;-inkscape-font-specification:Sans;text-indent:0;text-align:start;text-decoration-line:none;text-transform:none;marker:none" color="#000" font-family="Sans" overflow="visible"/></g></svg> \ No newline at end of file
diff --git a/demos/widget-factory/icons/scalable/actions/view-continuous-symbolic.svg b/demos/widget-factory/icons/scalable/actions/view-continuous-symbolic.svg
new file mode 100644
index 0000000000..8893caf2e9
--- /dev/null
+++ b/demos/widget-factory/icons/scalable/actions/view-continuous-symbolic.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><g color="#bebebe" fill="#474747"><path d="M9.625 11h-3.25a.374.374 0 00-.375.375v1.25c0 .208.167.375.375.375h3.25a.374.374 0 00.375-.375v-1.25A.374.374 0 009.625 11zm0-11h-3.25A.374.374 0 006 .375v1.25c0 .208.167.375.375.375h3.25A.374.374 0 0010 1.625V.375A.374.374 0 009.625 0zm0 14h-3.25a.374.374 0 00-.375.375v1.25c0 .208.167.375.375.375h3.25a.374.374 0 00.375-.375v-1.25A.374.374 0 009.625 14zm0-11h-3.25A.374.374 0 006 3.375v1.25c0 .208.167.375.375.375h3.25A.374.374 0 0010 4.625v-1.25A.374.374 0 009.625 3z" style="marker:none" overflow="visible" opacity=".35"/><path d="M14 7H2v2h12z" style="marker:none" overflow="visible"/></g></svg> \ No newline at end of file
diff --git a/demos/widget-factory/icons/scalable/actions/view-dual-symbolic.svg b/demos/widget-factory/icons/scalable/actions/view-dual-symbolic.svg
new file mode 100644
index 0000000000..5763db7f11
--- /dev/null
+++ b/demos/widget-factory/icons/scalable/actions/view-dual-symbolic.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><g color="#bebebe" fill="#474747"><path d="M0 1v13h6c.176 0 .535.14.822.332.288.192.467.371.467.371l.719.727.711-.735S9.615 14 10 14h6V1h-6c-.901 0-1.572.353-2.043.701-.025-.017-.018-.018-.045-.035C7.452 1.362 6.828 1 6 1zm2 2h4c.138 0 .515.138.813.334.297.196.492.385.492.385l.717.693.695-.715S9.619 3 10 3h4v9h-4c-.89 0-1.562.348-2.033.693-.018-.012-.013-.013-.031-.025C7.476 12.36 6.836 12 6 12H2z" style="line-height:normal;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000;text-transform:none;text-orientation:mixed;shape-padding:0;isolation:auto;mix-blend-mode:normal;marker:none" font-weight="400" font-family="sans-serif" overflow="visible"/><path d="M5.625 5h-2.25A.374.374 0 003 5.375v1.25c0 .207.167.375.375.375h2.25A.374.374 0 006 6.625v-1.25A.374.374 0 005.625 5zm0 3h-2.25A.374.374 0 003 8.375v1.25c0 .208.167.375.375.375h2.25A.374.374 0 006 9.625v-1.25A.374.374 0 005.625 8zm7-3h-2.25a.374.374 0 00-.375.375v1.25c0 .208.167.375.375.375h2.25A.374.374 0 0013 6.625v-1.25A.374.374 0 0012.625 5zm0 3h-2.25a.374.374 0 00-.375.375v1.25c0 .208.167.375.375.375h2.25A.374.374 0 0013 9.625v-1.25A.374.374 0 0012.625 8z" style="marker:none" overflow="visible" opacity=".35"/></g></svg> \ No newline at end of file
diff --git a/demos/widget-factory/icons/scalable/actions/view-fullscreen-symbolic.svg b/demos/widget-factory/icons/scalable/actions/view-fullscreen-symbolic.svg
new file mode 100644
index 0000000000..d2755bf207
--- /dev/null
+++ b/demos/widget-factory/icons/scalable/actions/view-fullscreen-symbolic.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><g color="#000" fill="#474747"><path d="M1.984 8.986A1 1 0 001 10v4a1 1 0 001 1h4a1 1 0 100-2H3v-3a1 1 0 00-1.016-1.014z" style="line-height:normal;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000;text-transform:none;text-orientation:mixed;shape-padding:0;isolation:auto;mix-blend-mode:normal;marker:none" font-weight="400" font-family="sans-serif" overflow="visible"/><path d="M6.48 8.49a1 1 0 00-.687.303l-4.5 4.5a1 1 0 101.414 1.414l4.5-4.5A1 1 0 006.48 8.49z" style="line-height:normal;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000;text-transform:none;text-orientation:mixed;shape-padding:0;isolation:auto;mix-blend-mode:normal;marker:none" font-weight="400" font-family="sans-serif" overflow="visible"/><path d="M1 14h1v1H1z" style="marker:none" overflow="visible"/><path d="M10 1a1 1 0 100 2h3v3a1 1 0 102 0V2a1 1 0 00-1-1z" style="line-height:normal;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000;text-transform:none;text-orientation:mixed;shape-padding:0;isolation:auto;mix-blend-mode:normal;marker:none" font-weight="400" font-family="sans-serif" overflow="visible"/><path d="M14 1h1v1h-1z" style="marker:none" overflow="visible"/><path d="M13.984.99a1 1 0 00-.69.301l-4.5 4.469a1 1 0 101.411 1.418l4.5-4.469a1 1 0 00-.72-1.719z" style="line-height:normal;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000;text-transform:none;text-orientation:mixed;shape-padding:0;isolation:auto;mix-blend-mode:normal;marker:none" font-weight="400" font-family="sans-serif" overflow="visible"/><path d="M1 9h1v1H1zm5 5h1v1H6zm8-8h1v1h-1zM9 1h1v1H9z" style="marker:none" overflow="visible"/></g></svg> \ No newline at end of file
diff --git a/demos/widget-factory/icons/scalable/actions/view-grid-symbolic.svg b/demos/widget-factory/icons/scalable/actions/view-grid-symbolic.svg
new file mode 100644
index 0000000000..33e199f6a3
--- /dev/null
+++ b/demos/widget-factory/icons/scalable/actions/view-grid-symbolic.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path d="M3.384 3h3.231c.213 0 .385.224.385.502v2.996C7 6.776 6.828 7 6.615 7h-3.23C3.17 7 3 6.776 3 6.498V3.502C3 3.224 3.17 3 3.384 3zm6 0h3.231c.213 0 .385.224.385.502v2.996c0 .278-.172.502-.385.502h-3.23C9.17 7 9 6.776 9 6.498V3.502C9 3.224 9.17 3 9.384 3zm-6 6h3.231c.213 0 .385.224.385.502v2.996c0 .278-.172.502-.385.502h-3.23C3.17 13 3 12.776 3 12.498V9.502C3 9.224 3.17 9 3.384 9zm6 0h3.231c.213 0 .385.224.385.502v2.996c0 .278-.172.502-.385.502h-3.23C9.17 13 9 12.776 9 12.498V9.502C9 9.224 9.17 9 9.384 9z" style="marker:none" overflow="visible" color="#000" fill="#474747"/></svg> \ No newline at end of file
diff --git a/demos/widget-factory/icons/scalable/actions/view-paged-symbolic.svg b/demos/widget-factory/icons/scalable/actions/view-paged-symbolic.svg
new file mode 100644
index 0000000000..3fe8afa63b
--- /dev/null
+++ b/demos/widget-factory/icons/scalable/actions/view-paged-symbolic.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><g color="#bebebe" fill="#474747"><path d="M1 0v13h12V0zm2 2h8v9H3z" style="line-height:normal;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000;text-transform:none;text-orientation:mixed;shape-padding:0;isolation:auto;mix-blend-mode:normal;marker:none" font-weight="400" font-family="sans-serif" overflow="visible"/><path d="M14 3v11H4v2h12V3z" style="line-height:normal;-inkscape-font-specification:Sans;text-indent:0;text-align:start;text-decoration-line:none;text-transform:none;marker:none" font-weight="400" font-family="Sans" overflow="visible"/><path d="M8.625 4h-3.25A.374.374 0 005 4.375v1.25c0 .208.167.375.375.375h3.25A.374.374 0 009 5.625v-1.25A.374.374 0 008.625 4zm0 3h-3.25A.374.374 0 005 7.375v1.25c0 .208.167.375.375.375h3.25A.374.374 0 009 8.625v-1.25A.374.374 0 008.625 7z" style="marker:none" overflow="visible" opacity=".35"/></g></svg> \ No newline at end of file
diff --git a/demos/widget-factory/icons/scalable/devices/audio-headphones-symbolic.svg b/demos/widget-factory/icons/scalable/devices/audio-headphones-symbolic.svg
new file mode 100644
index 0000000000..63dad8f228
--- /dev/null
+++ b/demos/widget-factory/icons/scalable/devices/audio-headphones-symbolic.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><g fill="#474747"><path d="M3.988 9.106c.948-.277 1.953.294 2.253 1.282l.675 2.226c.3.988-.224 2.006-1.172 2.283-.949.278-1.954-.294-2.253-1.282l-.675-2.226c-.3-.987.223-2.006 1.172-2.283z"/><path d="M7.969 1C4.663 1 1.945 4.008 2 6.719c.048 2.365.809 4.695 1 5.281h1.526c-1.162-2.292-1.05-5.156-1.05-5.156 0-2.373 2.007-4.313 4.493-4.313 2.485 0 4.5 1.827 4.492 4.282-.024 1.674-.172 2.658-1.006 5.187h1.571c.225-.645.974-3.19.974-5.281C14 3.889 11.274 1 7.969 1z"/><path d="M12.012 9.139c-.948-.278-1.953.294-2.253 1.282l-.675 2.226c-.3.987.224 2.006 1.172 2.283.949.277 1.954-.294 2.253-1.282l.675-2.226c.3-.988-.223-2.006-1.172-2.283z"/></g></svg> \ No newline at end of file
diff --git a/demos/widget-factory/icons/scalable/devices/audio-input-microphone-symbolic.svg b/demos/widget-factory/icons/scalable/devices/audio-input-microphone-symbolic.svg
new file mode 100644
index 0000000000..cd7afe8af2
--- /dev/null
+++ b/demos/widget-factory/icons/scalable/devices/audio-input-microphone-symbolic.svg
@@ -0,0 +1,3 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16">
+ <path d="m 40,328 c -1.662,0 -3,1.338 -3,3 v 5 c 0,1.662 1.338,3 3,3 1.662,0 3,-1.338 3,-3 v -5 c 0,-1.662 -1.338,-3 -3,-3 z m -6,6 v 2.00977 c 0,2.96574 2.165383,5.4238 5,5.90039 V 344 h 2 v -2.08984 c 2.834617,-0.47659 5,-2.93465 5,-5.90039 V 334 h -1.5 v 2.00977 c 0,2.50009 -1.993312,4.49023 -4.5,4.49023 -2.506688,0 -4.5,-1.99014 -4.5,-4.49023 V 334 Z" style="line-height:normal;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000;text-transform:none;text-orientation:mixed;white-space:normal;shape-padding:0;isolation:auto;mix-blend-mode:normal;solid-color:#000;solid-opacity:1" color="#000" font-weight="400" font-family="sans-serif" overflow="visible" fill="#2e3436" transform="translate(-32 -328)"/>
+</svg>
diff --git a/demos/widget-factory/icons/scalable/devices/audio-speakers-symbolic.svg b/demos/widget-factory/icons/scalable/devices/audio-speakers-symbolic.svg
new file mode 100644
index 0000000000..370d115c76
--- /dev/null
+++ b/demos/widget-factory/icons/scalable/devices/audio-speakers-symbolic.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16.063"><g fill="#2e3436"><path d="M1 5.063h2.484l2.97-3L7 2.078v12l-.475.001-3.04-3.016H1z" style="marker:none" color="#bebebe" overflow="visible"/><path d="M8 5.063V3.64L11.367.282c.404-.41 1.063-.346 1.412.023.332.351.375.988-.03 1.392L9.392 5.063zM8 11v1.422l3.367 3.358c.404.412 1.063.347 1.412-.022a1.016 1.016 0 00-.03-1.392L9.392 11zm0-3.937v2h6c.75 0 .999-.501 1-1.002 0-.5-.25-.998-1-.998z"/></g></svg> \ No newline at end of file
diff --git a/demos/widget-factory/icons/scalable/devices/camera-photo-symbolic.svg b/demos/widget-factory/icons/scalable/devices/camera-photo-symbolic.svg
new file mode 100644
index 0000000000..5bf4f1e0dd
--- /dev/null
+++ b/demos/widget-factory/icons/scalable/devices/camera-photo-symbolic.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path d="M6 2c-.55 0-1 .45-1 1v1H2c-.552 0-1 .45-1 1v8c0 .55.448 1 1 1h12c.552 0 1-.45 1-1V5c0-.55-.448-1-1-1h-3V3c0-.55-.45-1-1-1zm2 3a4 4 0 110 8 4 4 0 010-8zm0 2a2 2 0 100 4 2 2 0 000-4z" style="marker:none" color="#bebebe" overflow="visible" fill="#474747"/></svg> \ No newline at end of file
diff --git a/demos/widget-factory/icons/scalable/devices/camera-web-symbolic.svg b/demos/widget-factory/icons/scalable/devices/camera-web-symbolic.svg
new file mode 100644
index 0000000000..155201d98d
--- /dev/null
+++ b/demos/widget-factory/icons/scalable/devices/camera-web-symbolic.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path d="M6 4h8c.554 0 1 .446 1 1v7c0 .554-.446 1-1 1H6c-.554 0-1-.446-1-1V5c0-.554.446-1 1-1zM5 8.47L1.53 5H1v7h.5z" style="marker:none" overflow="visible" color="#bebebe" fill="#474747"/></svg> \ No newline at end of file
diff --git a/demos/widget-factory/icons/scalable/devices/drive-optical-symbolic.svg b/demos/widget-factory/icons/scalable/devices/drive-optical-symbolic.svg
new file mode 100644
index 0000000000..49ac11f830
--- /dev/null
+++ b/demos/widget-factory/icons/scalable/devices/drive-optical-symbolic.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><g fill="#474747"><path d="M2.5 1A2.495 2.495 0 000 3.5v8C0 12.885 1.115 14 2.5 14v-2a.499.499 0 01-.5-.5V10h12v1.5c0 .277-.223.5-.5.5v2c1.385 0 2.5-1.115 2.5-2.5v-8C16 2.115 14.885 1 13.5 1z"/><path d="M2.875 11.039c0 2.69 2.299 4.904 5.116 4.904 2.817 0 5.134-2.213 5.134-4.904h-2.017c0 1.652-1.387 2.977-3.117 2.977s-3.099-1.325-3.099-2.977z" style="line-height:normal;-inkscape-font-specification:Sans;text-indent:0;text-align:start;text-decoration-line:none;text-transform:none;marker:none" color="#bebebe" font-weight="400" font-family="Sans" overflow="visible"/><path d="M6 11c0 1.099.902 2 2 2 1.099 0 2-.901 2-2H9c0 .558-.442 1-1 1s-1-.442-1-1z" style="line-height:normal;-inkscape-font-specification:Sans;text-indent:0;text-align:start;text-decoration-line:none;text-transform:none;marker:none" color="#bebebe" font-weight="400" font-family="Sans" overflow="visible"/></g></svg> \ No newline at end of file
diff --git a/demos/widget-factory/icons/scalable/devices/network-wired-symbolic.svg b/demos/widget-factory/icons/scalable/devices/network-wired-symbolic.svg
new file mode 100644
index 0000000000..af37126f4f
--- /dev/null
+++ b/demos/widget-factory/icons/scalable/devices/network-wired-symbolic.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><g fill="#474747"><path d="M0 11h5v4.938H0zm10 0h5v5h-5z" style="marker:none" color="#bebebe" overflow="visible"/><path d="M2.03 8v3.531h1V9H12v2.531h1V8z" style="line-height:normal;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000;text-transform:none;text-orientation:mixed;shape-padding:0;isolation:auto;mix-blend-mode:normal" color="#000" font-weight="400" font-family="sans-serif" overflow="visible"/><path d="M7 5v3.5h1V5z" style="line-height:normal;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000;text-transform:none;text-orientation:mixed;shape-padding:0;isolation:auto;mix-blend-mode:normal" color="#000" font-weight="400" font-family="sans-serif" overflow="visible"/><path d="M5 1h5v5H5z" style="marker:none" color="#bebebe" overflow="visible"/></g></svg> \ No newline at end of file
diff --git a/demos/widget-factory/icons/scalable/devices/network-wireless-symbolic.svg b/demos/widget-factory/icons/scalable/devices/network-wireless-symbolic.svg
new file mode 100644
index 0000000000..1f5cfa750b
--- /dev/null
+++ b/demos/widget-factory/icons/scalable/devices/network-wireless-symbolic.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><defs><clipPath id="a"><path style="marker:none" color="#bebebe" overflow="visible" fill="#bebebe" stroke-width="2" d="M26.85 220.75h3.825v6.375H26.85z"/></clipPath><clipPath id="b"><path style="marker:none" color="#bebebe" overflow="visible" fill="#bebebe" stroke-width="2" d="M26.966 221.282h2.898v5.313h-2.898z"/></clipPath><clipPath id="c"><path style="marker:none" color="#bebebe" overflow="visible" fill="#bebebe" stroke-width="2" d="M26.999 221.502h1.876v4.878h-1.876z"/></clipPath></defs><g fill="#474747"><path transform="matrix(0 -.78431 .94118 0 -202.765 31.059)" clip-path="url(#a)" d="M27.18 220.508a1.164 1.164 0 00-.81 1.998c.379.38.59.894.59 1.432 0 .537-.211 1.051-.59 1.431a1.164 1.164 0 101.644 1.645 4.352 4.352 0 001.275-3.077c0-1.153-.46-2.26-1.275-3.076a1.164 1.164 0 00-.834-.353z" style="line-height:normal;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000;text-transform:none;text-orientation:mixed;shape-padding:0;isolation:auto;mix-blend-mode:normal" color="#000" font-weight="400" font-family="sans-serif" overflow="visible"/><path transform="matrix(0 -1.72549 1.88219 0 -413.493 54.529)" clip-path="url(#b)" d="M27.186 221.123a.555.555 0 00-.387.953 2.632 2.632 0 010 3.723.555.555 0 10.785.785 3.743 3.743 0 000-5.293.555.555 0 00-.398-.168z" style="line-height:normal;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000;text-transform:none;text-orientation:mixed;shape-padding:0;isolation:auto;mix-blend-mode:normal" color="#000" font-weight="400" font-family="sans-serif" overflow="visible"/><path transform="matrix(0 -2.66667 2.86852 0 -634.374 78)" clip-path="url(#c)" d="M27.188 221.318a.362.362 0 00-.252.621 2.825 2.825 0 010 3.997.362.362 0 10.511.511 3.55 3.55 0 000-5.02.362.362 0 00-.26-.109z" style="line-height:normal;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000;text-transform:none;text-orientation:mixed;shape-padding:0;isolation:auto;mix-blend-mode:normal" color="#000" font-weight="400" font-family="sans-serif" overflow="visible"/><path d="M10 13a2 2 0 01-2 2 2 2 0 01-2-2 2 2 0 012-2 2 2 0 012 2z"/></g></svg> \ No newline at end of file
diff --git a/demos/widget-factory/icons/scalable/devices/phone-symbolic.svg b/demos/widget-factory/icons/scalable/devices/phone-symbolic.svg
new file mode 100644
index 0000000000..c43f462a4a
--- /dev/null
+++ b/demos/widget-factory/icons/scalable/devices/phone-symbolic.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><g color="#000" fill="#2e3436"><path d="M4 0C2.993.005 3 1 3 1v13c0 2 2.003 2 2.003 2h7c2 0 2-2 2-2V4s0-2-2-2h-6.75c-.25 0-.25-.25-.25-.25L5 1S4.99.006 4 0zm1.003 4.25c0-.25.25-.25.25-.25h6.5s.25 0 .25.25v9.5c0 .25-.25.25-.25.25h-6.5c-.25 0-.252-.277-.252-.277z" style="marker:none" overflow="visible"/><path d="M6.003 5.25c0-.25.25-.25.25-.25h4.5s.25 0 .25.25v2.5c0 .25-.25.25-.25.25h-4.5C6.003 8 6 7.723 6 7.723zM6.253 9h1.5a.25.25 0 01.25.25v.5a.25.25 0 01-.25.25h-1.5a.25.25 0 01-.25-.25v-.5a.25.25 0 01.25-.25zm3 0h1.5a.25.25 0 01.25.25v.5a.25.25 0 01-.25.25h-1.5a.25.25 0 01-.25-.25v-.5a.25.25 0 01.25-.25zm-3 2h1.5a.25.25 0 01.25.25v.5a.25.25 0 01-.25.25h-1.5a.25.25 0 01-.25-.25v-.5a.25.25 0 01.25-.25zm3 0h1.5a.25.25 0 01.25.25v.5a.25.25 0 01-.25.25h-1.5a.25.25 0 01-.25-.25v-.5a.25.25 0 01.25-.25z" style="marker:none" overflow="visible"/></g></svg> \ No newline at end of file
diff --git a/demos/widget-factory/icons/scalable/status/weather-clear-night-symbolic.svg b/demos/widget-factory/icons/scalable/status/weather-clear-night-symbolic.svg
new file mode 100644
index 0000000000..1cf10b2aab
--- /dev/null
+++ b/demos/widget-factory/icons/scalable/status/weather-clear-night-symbolic.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><g color="#bebebe" font-weight="400" font-family="Sans" fill="#474747"><path d="M6.815 1.107C3.519 1.672.992 4.548.992 8c0 3.854 3.148 7 7.002 7a6.96 6.96 0 004.58-1.723C8.8 12.295 5.992 8.86 5.992 4.785a8.69 8.69 0 01.823-3.678z" style="line-height:normal;-inkscape-font-specification:Sans;text-indent:0;text-align:start;text-decoration-line:none;text-transform:none;marker:none" overflow="visible"/><path d="M7.994 1c-.402 0-.795.042-1.18.107a8.69 8.69 0 00-.822 3.678c0 4.075 2.807 7.51 6.582 8.492A6.983 6.983 0 0014.994 8c0-3.854-3.146-7-7-7z" style="line-height:normal;-inkscape-font-specification:Sans;text-indent:0;text-align:start;text-decoration-line:none;text-transform:none;marker:none" overflow="visible" opacity=".35"/></g></svg> \ No newline at end of file
diff --git a/demos/widget-factory/icons/scalable/status/weather-few-clouds-night-symbolic.svg b/demos/widget-factory/icons/scalable/status/weather-few-clouds-night-symbolic.svg
new file mode 100644
index 0000000000..58acf0cacb
--- /dev/null
+++ b/demos/widget-factory/icons/scalable/status/weather-few-clouds-night-symbolic.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><g fill="#474747"><path d="M9.5 10A2.5 2.5 0 007 12.5c0 .218.041.423.094.625A1.549 1.549 0 006.5 13a1.5 1.5 0 100 3h8a1.5 1.5 0 100-3 2 2 0 00-2-2c-.316 0-.61.088-.875.219A2.47 2.47 0 009.5 10z" style="marker:none" color="#000" overflow="visible"/><path d="M6.82 1.107C3.526 1.672.999 4.548.999 8c0 2.33 1.155 4.394 2.916 5.668.311-.813 1.064-1.394 1.942-1.639A3.806 3.806 0 017.37 9.475a8.69 8.69 0 01-1.373-4.69c0-1.314.3-2.556.823-3.678z" style="line-height:normal;-inkscape-font-specification:Sans;text-indent:0;text-align:start;text-decoration-line:none;text-transform:none;marker:none" color="#bebebe" font-weight="400" font-family="Sans" overflow="visible"/><path d="M8 1c-.402 0-.795.042-1.18.107a8.69 8.69 0 00-.822 3.678 8.69 8.69 0 001.373 4.69 3.567 3.567 0 012.13-.715c.997 0 1.82.484 2.486 1.125.18-.035.315-.125.513-.125.775 0 1.474.288 2.02.756.305-.782.48-1.628.48-2.516 0-3.854-3.146-7-7-7z" style="line-height:normal;-inkscape-font-specification:Sans;text-indent:0;text-align:start;text-decoration-line:none;text-transform:none;marker:none" color="#bebebe" font-weight="400" font-family="Sans" overflow="visible" opacity=".35"/></g></svg> \ No newline at end of file
diff --git a/demos/widget-factory/icons/scalable/status/weather-fog-symbolic.svg b/demos/widget-factory/icons/scalable/status/weather-fog-symbolic.svg
new file mode 100644
index 0000000000..12050948c1
--- /dev/null
+++ b/demos/widget-factory/icons/scalable/status/weather-fog-symbolic.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="16.014" height="16"><path d="M3.33.994c-.623 0-1 .33-1.273.594-.273.265-.482.543-.676.793a6.48 6.48 0 01-.484.582c-.114.11-.122.031.115.031a.997.997 0 10-.002 1.994c.624 0 1.003-.329 1.276-.593.272-.265.48-.543.673-.793a7.56 7.56 0 01.372-.444c.108.121.223.253.37.444.194.25.402.53.674.794.273.265.652.594 1.276.594.623 0 1-.329 1.273-.594.273-.264.483-.542.676-.792a7.64 7.64 0 01.37-.444c.107.121.223.253.37.444.194.25.401.53.674.794.273.265.652.594 1.276.594.623 0 1-.329 1.273-.594.273-.264.482-.543.676-.793.147-.19.26-.324.369-.445.108.121.223.254.371.445.193.25.401.53.674.795s.652.594 1.275.594a.997.997 0 100-1.994c.237 0 .23.08.115-.031a6.55 6.55 0 01-.486-.582c-.193-.25-.401-.53-.674-.795-.272-.265-.65-.594-1.273-.594-.624 0-1.003.33-1.276.594-.272.264-.48.543-.673.793a8.56 8.56 0 01-.371.443 7.546 7.546 0 01-.372-.443c-.193-.25-.4-.53-.673-.795S8.595.996 7.97.996c-.623 0-1.002.33-1.275.594-.273.265-.48.543-.674.793a7.56 7.56 0 01-.371.443 7.55 7.55 0 01-.371-.443c-.194-.25-.401-.53-.674-.795S3.954.994 3.331.994zm0 5.002c-.623 0-1 .33-1.273.594-.273.265-.482.543-.676.793a6.48 6.48 0 01-.484.582c-.114.11-.122.031.115.031A.997.997 0 101.01 9.99c.624 0 1.003-.329 1.276-.594.272-.264.48-.542.673-.792.148-.191.264-.323.372-.444.108.121.223.253.37.444.194.25.402.53.674.794.273.265.652.594 1.276.594.623 0 1-.329 1.273-.594.273-.264.483-.543.676-.793a7.64 7.64 0 01.37-.443c.107.121.223.253.37.443.194.25.401.53.674.795s.652.594 1.276.594c.623 0 1-.329 1.273-.594.273-.264.482-.543.676-.793.147-.19.26-.324.369-.445.108.121.223.254.371.445.193.25.401.53.674.795s.652.594 1.275.594a.997.997 0 100-1.994c.237 0 .23.08.115-.031a6.55 6.55 0 01-.486-.582c-.193-.25-.401-.53-.674-.795-.272-.265-.65-.594-1.273-.594-.624 0-1.003.33-1.276.594-.272.264-.48.543-.673.793a8.56 8.56 0 01-.371.443 7.546 7.546 0 01-.372-.443c-.193-.25-.4-.53-.673-.795s-.65-.594-1.274-.594c-.623 0-1.002.33-1.275.594-.273.264-.48.543-.674.793a7.56 7.56 0 01-.371.443 7.55 7.55 0 01-.371-.443c-.194-.25-.401-.53-.674-.795s-.652-.594-1.275-.594zm0 5.002c-.623 0-1 .33-1.273.594-.273.264-.482.543-.676.793-.193.25-.37.471-.484.582-.114.11-.122.03.115.031a.997.997 0 10-.002 1.994c.624 0 1.003-.329 1.276-.594.272-.264.48-.543.673-.793.148-.19.264-.322.372-.443.108.121.223.253.37.443.194.25.402.53.674.795.273.265.652.594 1.276.594.623 0 1-.329 1.273-.594.273-.264.483-.543.676-.793a7.3 7.3 0 01.37-.443c.107.12.223.253.37.443.194.25.401.53.674.795s.652.594 1.276.594c.623 0 1-.33 1.273-.594.273-.264.482-.543.676-.793.147-.19.26-.324.369-.445.108.121.223.254.371.445.193.25.401.53.674.795s.652.594 1.275.594a.997.997 0 100-1.994c.237 0 .23.08.115-.031a6.55 6.55 0 01-.486-.582c-.193-.25-.401-.529-.674-.793-.272-.265-.65-.596-1.273-.596-.624 0-1.003.329-1.276.594-.272.264-.48.543-.673.793a8.56 8.56 0 01-.371.443 7.545 7.545 0 01-.372-.443c-.193-.25-.4-.53-.673-.795S8.595 11 7.97 11c-.623 0-1.002.33-1.275.594-.273.264-.48.543-.674.793-.147.19-.263.322-.371.443a7.549 7.549 0 01-.371-.443c-.194-.25-.401-.53-.674-.795s-.652-.594-1.275-.594z" style="line-height:normal;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000;text-transform:none;text-orientation:mixed;shape-padding:0;isolation:auto;mix-blend-mode:normal" overflow="visible" opacity=".5" color="#000" font-weight="400" font-family="sans-serif" fill="#474747"/></svg> \ No newline at end of file
diff --git a/demos/widget-factory/icons/scalable/status/weather-overcast-symbolic.svg b/demos/widget-factory/icons/scalable/status/weather-overcast-symbolic.svg
new file mode 100644
index 0000000000..778b2ee4c1
--- /dev/null
+++ b/demos/widget-factory/icons/scalable/status/weather-overcast-symbolic.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><g color="#000" fill="#2e3436"><path d="M8.5 9A2.5 2.5 0 006 11.5c0 .218.041.423.094.625A1.549 1.549 0 005.5 12a1.5 1.5 0 100 3h8a1.5 1.5 0 100-3 2 2 0 00-2-2c-.316 0-.61.088-.875.219A2.47 2.47 0 008.5 9z" style="marker:none" overflow="visible"/><path d="M9.5 2a2.49 2.49 0 00-2.469 2.219C6.705 4.097 6.37 4 6.001 4a3 3 0 00-3 3c0 .098.021.185.03.281A2.013 2.013 0 002.001 7a2 2 0 100 4H5.1c.25-1.68 1.655-3 3.4-3 .98 0 1.786.49 2.416 1.143.199-.047.361-.143.584-.143 1.262 0 2.19.874 2.604 2h.396a1.5 1.5 0 100-3c-.207 0-.414.05-.594.125A2.44 2.44 0 0014 7.5c0-1.23-.893-2.228-2.062-2.437A2.5 2.5 0 009.5 2zm-1 8c-.663 0-1.207.414-1.41 1h2.838l-.16-.266C9.498 10.285 9.052 10 8.5 10z" style="marker:none" overflow="visible"/></g></svg> \ No newline at end of file
diff --git a/demos/widget-factory/icons/scalable/status/weather-severe-alert-symbolic.svg b/demos/widget-factory/icons/scalable/status/weather-severe-alert-symbolic.svg
new file mode 100644
index 0000000000..17790dfc26
--- /dev/null
+++ b/demos/widget-factory/icons/scalable/status/weather-severe-alert-symbolic.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path d="M9.5 2a2.49 2.49 0 00-2.469 2.219C6.704 4.097 6.37 4 6 4a3 3 0 00-3 3c0 .098.022.185.031.281A2.014 2.014 0 002 7a2 2 0 100 4h5V8.875C7 7.865 7.865 7 8.875 7h5.062a2.499 2.499 0 00-2-1.938A2.5 2.5 0 009.5 2z" style="marker:none" color="#000" overflow="visible" fill="#2e3436"/><path class="warning" d="M8.875 8A.863.863 0 008 8.875v6.25c0 .492.383.875.875.875h6.25a.863.863 0 00.875-.875v-6.25A.863.863 0 0015.125 8zM11 9h2v2.5s0 .5-.5.5h-1c-.5 0-.5-.5-.5-.5zm.5 4h1c.277 0 .5.223.5.5v1c0 .277-.223.5-.5.5h-1a.499.499 0 01-.5-.5v-1c0-.277.223-.5.5-.5z" style="marker:none" color="#bebebe" overflow="visible" fill="#f57900"/></svg> \ No newline at end of file
diff --git a/demos/widget-factory/icons/scalable/status/weather-showers-symbolic.svg b/demos/widget-factory/icons/scalable/status/weather-showers-symbolic.svg
new file mode 100644
index 0000000000..19fedf0f28
--- /dev/null
+++ b/demos/widget-factory/icons/scalable/status/weather-showers-symbolic.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><g color="#000" fill="#474747"><path d="M9.465 0C8.192 0 7.158.973 7.017 2.219 6.693 2.097 6.361 2 5.994 2 4.351 2 3.02 3.343 3.02 5c0 .098.022.185.031.281A1.983 1.983 0 002.028 5 1.992 1.992 0 00.044 7c0 1.105.888 2 1.984 2h12.396c.821 0 1.487-.672 1.487-1.5S15.245 6 14.424 6c-.206 0-.411.05-.589.125.052-.202.093-.407.093-.625 0-1.23-.886-2.228-2.045-2.438.041-.18.062-.368.062-.562 0-1.38-1.11-2.5-2.48-2.5z" style="marker:none" overflow="visible"/><path d="M2.49 9.992a.496.496 0 00-.48.404l-1 4.92a.496.496 0 10.973.198l1-4.918a.496.496 0 00-.493-.604zm2.004.004a.496.496 0 00-.48.404l-1.002 4.916a.496.496 0 10.973.198L4.987 10.6a.496.496 0 00-.493-.604zm2-.004a.496.496 0 00-.48.404l-1.002 4.92a.496.496 0 10.973.198l1.002-4.918a.496.496 0 00-.493-.604zm2.002 0a.496.496 0 00-.48.404l-1.002 4.92a.496.496 0 10.973.198l1-4.918a.496.496 0 00-.49-.604zm2 0a.496.496 0 00-.48.404l-1 4.92a.496.496 0 10.972.198l1-4.918a.496.496 0 00-.492-.604zm2.002 0a.496.496 0 00-.48.404l-1 4.92a.496.496 0 10.97.198l1.002-4.918a.496.496 0 00-.492-.604z" style="line-height:normal;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000;text-transform:none;text-orientation:mixed;shape-padding:0;isolation:auto;mix-blend-mode:normal" font-weight="400" font-family="sans-serif" overflow="visible"/></g></svg> \ No newline at end of file
diff --git a/demos/widget-factory/icons/scalable/status/weather-snow-symbolic.svg b/demos/widget-factory/icons/scalable/status/weather-snow-symbolic.svg
new file mode 100644
index 0000000000..e1e9c7f0a2
--- /dev/null
+++ b/demos/widget-factory/icons/scalable/status/weather-snow-symbolic.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16"><g transform="translate(-332 -88)"><path id="a" d="M339.492 88.492A.5.5 0 00339 89v1.533l-1.252-.717a.5.5 0 10-.496.868l1.748 1v8.683l-1.746.987a.5.5 0 10.492.87l1.254-.708V103a.5.5 0 101 0v-1.484l1.254.709a.5.5 0 10.492-.871l-1.746-.987v-8.683l1.748-1a.5.5 0 10-.496-.868l-1.252.717V89a.5.5 0 00-.508-.508z" style="line-height:normal;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000;text-transform:none;text-orientation:mixed;shape-padding:0;isolation:auto;mix-blend-mode:normal;marker:none" color="#000" font-weight="400" font-family="sans-serif" overflow="visible" fill="#2e3436" stroke-linecap="round"/><use height="100%" xlink:href="#a" transform="rotate(-60 339.5 96)" width="100%"/><use height="100%" xlink:href="#a" transform="rotate(-120 339.5 96)" width="100%"/></g></svg> \ No newline at end of file
diff --git a/demos/widget-factory/widget-factory.gresource.xml b/demos/widget-factory/widget-factory.gresource.xml
index 660fd69f7a..8996428068 100644
--- a/demos/widget-factory/widget-factory.gresource.xml
+++ b/demos/widget-factory/widget-factory.gresource.xml
@@ -10,30 +10,107 @@
<file preprocess="xml-stripblanks">help-overlay.ui</file>
</gresource>
<gresource prefix="/org/gtk/WidgetFactory4">
+ <file>icons/16x16/actions/call-start-symbolic.symbolic.png</file>
+ <file>icons/16x16/actions/call-stop-symbolic.symbolic.png</file>
+ <file>icons/16x16/actions/document-new-symbolic.symbolic.png</file>
<file>icons/16x16/actions/document-new.png</file>
<file>icons/16x16/actions/document-save.png</file>
+ <file>icons/16x16/actions/document-send-symbolic.symbolic.png</file>
<file>icons/16x16/actions/edit-find.png</file>
+ <file>icons/16x16/actions/format-indent-less-symbolic-rtl.symbolic.png</file>
+ <file>icons/16x16/actions/format-indent-less-symbolic.symbolic.png</file>
+ <file>icons/16x16/actions/format-indent-more-symbolic-rtl.symbolic.png</file>
+ <file>icons/16x16/actions/format-indent-more-symbolic.symbolic.png</file>
+ <file>icons/16x16/actions/format-justify-center-symbolic.symbolic.png</file>
+ <file>icons/16x16/actions/format-justify-fill-symbolic.symbolic.png</file>
+ <file>icons/16x16/actions/format-justify-left-symbolic.symbolic.png</file>
+ <file>icons/16x16/actions/format-justify-right-symbolic.symbolic.png</file>
<file>icons/16x16/actions/insert-image.png</file>
+ <file>icons/16x16/actions/insert-link-symbolic.symbolic.png</file>
<file>icons/16x16/actions/send-to-symbolic.symbolic.png</file>
- <file>icons/16x16/actions/view-fullscreen-symbolic.symbolic.png</file>
- <file>icons/16x16/actions/document-send-symbolic.symbolic.png</file>
<file>icons/16x16/actions/star-new-symbolic.symbolic.png</file>
+ <file>icons/16x16/actions/view-continuous-symbolic.symbolic.png</file>
+ <file>icons/16x16/actions/view-dual-symbolic.symbolic.png</file>
+ <file>icons/16x16/actions/view-fullscreen-symbolic.symbolic.png</file>
<file>icons/16x16/actions/view-grid-symbolic.symbolic.png</file>
- <file>icons/16x16/actions/zoom-in.png</file>
+ <file>icons/16x16/actions/view-paged-symbolic.symbolic.png</file>
<file>icons/16x16/actions/zoom-in-symbolic.symbolic.png</file>
- <file>icons/16x16/actions/zoom-original.png</file>
+ <file>icons/16x16/actions/zoom-in.png</file>
<file>icons/16x16/actions/zoom-original-symbolic.symbolic.png</file>
- <file>icons/16x16/actions/zoom-out.png</file>
+ <file>icons/16x16/actions/zoom-original.png</file>
<file>icons/16x16/actions/zoom-out-symbolic.symbolic.png</file>
+ <file>icons/16x16/actions/zoom-out.png</file>
+
+ <file>icons/16x16/apps/preferences-desktop-locale-symbolic.symbolic.png</file>
+
+ <file>icons/16x16/devices/audio-headphones-symbolic.symbolic.png</file>
+ <file>icons/16x16/devices/audio-input-microphone-symbolic.symbolic.png</file>
+ <file>icons/16x16/devices/audio-speakers-symbolic.symbolic.png</file>
+ <file>icons/16x16/devices/camera-photo-symbolic.symbolic.png</file>
+ <file>icons/16x16/devices/camera-web-symbolic.symbolic.png</file>
+ <file>icons/16x16/devices/drive-optical-symbolic.symbolic.png</file>
+ <file>icons/16x16/devices/network-wired-symbolic.symbolic.png</file>
+ <file>icons/16x16/devices/network-wireless-symbolic.symbolic.png</file>
+ <file>icons/16x16/devices/phone-symbolic.symbolic.png</file>
+
<file>icons/16x16/emblems/emblem-default-symbolic.symbolic.png</file>
+ <file>icons/16x16/emblems/emblem-shared-symbolic.symbolic.png</file>
+
+ <file>icons/16x16/emotes/face-monkey-symbolic.symbolic.png</file>
+
<file>icons/16x16/status/appointment-soon-symbolic.symbolic.png</file>
- <file>icons/16x16/status/microphone-sensitivity-muted-symbolic.symbolic.png</file>
+ <file>icons/16x16/status/microphone-sensitivity-high-symbolic.symbolic.png</file>
<file>icons/16x16/status/microphone-sensitivity-low-symbolic.symbolic.png</file>
<file>icons/16x16/status/microphone-sensitivity-medium-symbolic.symbolic.png</file>
- <file>icons/16x16/status/microphone-sensitivity-high-symbolic.symbolic.png</file>
+ <file>icons/16x16/status/microphone-sensitivity-muted-symbolic.symbolic.png</file>
<file>icons/16x16/status/weather-clear-night-symbolic.symbolic.png</file>
- <file>icons/16x16/emotes/face-monkey-symbolic.symbolic.png</file>
- <file>icons/16x16/apps/preferences-desktop-locale-symbolic.symbolic.png</file>
+ <file>icons/16x16/status/weather-few-clouds-night-symbolic.symbolic.png</file>
+ <file>icons/16x16/status/weather-fog-symbolic.symbolic.png</file>
+ <file>icons/16x16/status/weather-overcast-symbolic.symbolic.png</file>
+ <file>icons/16x16/status/weather-severe-alert-symbolic.symbolic.png</file>
+ <file>icons/16x16/status/weather-showers-symbolic.symbolic.png</file>
+ <file>icons/16x16/status/weather-snow-symbolic.symbolic.png</file>
+
+ <file>icons/scalable/actions/call-start-symbolic.svg</file>
+ <file>icons/scalable/actions/call-stop-symbolic.svg</file>
+ <file>icons/scalable/actions/document-new-symbolic.svg</file>
+ <file>icons/scalable/actions/format-indent-less-symbolic-rtl.svg</file>
+ <file>icons/scalable/actions/format-indent-less-symbolic.svg</file>
+ <file>icons/scalable/actions/format-indent-more-symbolic-rtl.svg</file>
+ <file>icons/scalable/actions/format-indent-more-symbolic.svg</file>
+ <file>icons/scalable/actions/format-justify-center-symbolic.svg</file>
+ <file>icons/scalable/actions/format-justify-fill-symbolic.svg</file>
+ <file>icons/scalable/actions/format-justify-left-symbolic.svg</file>
+ <file>icons/scalable/actions/format-justify-right-symbolic.svg</file>
+ <file>icons/scalable/actions/insert-link-symbolic.svg</file>
+ <file>icons/scalable/actions/star-new-symbolic.svg</file>
+ <file>icons/scalable/actions/view-continuous-symbolic.svg</file>
+ <file>icons/scalable/actions/view-dual-symbolic.svg</file>
+ <file>icons/scalable/actions/view-paged-symbolic.svg</file>
+ <file>icons/scalable/actions/view-fullscreen-symbolic.svg</file>
+ <file>icons/scalable/actions/view-grid-symbolic.svg</file>
+ <file>icons/scalable/actions/zoom-in-symbolic.svg</file>
+ <file>icons/scalable/actions/zoom-original-symbolic.svg</file>
+ <file>icons/scalable/actions/zoom-out-symbolic.svg</file>
+
+ <file>icons/scalable/devices/audio-headphones-symbolic.svg</file>
+ <file>icons/scalable/devices/audio-speakers-symbolic.svg</file>
+ <file>icons/scalable/devices/audio-input-microphone-symbolic.svg</file>
+ <file>icons/scalable/devices/camera-photo-symbolic.svg</file>
+ <file>icons/scalable/devices/camera-web-symbolic.svg</file>
+ <file>icons/scalable/devices/drive-optical-symbolic.svg</file>
+ <file>icons/scalable/devices/network-wired-symbolic.svg</file>
+ <file>icons/scalable/devices/network-wireless-symbolic.svg</file>
+ <file>icons/scalable/devices/phone-symbolic.svg</file>
+
+ <file>icons/scalable/status/weather-clear-night-symbolic.svg</file>
+ <file>icons/scalable/status/weather-few-clouds-night-symbolic.svg</file>
+ <file>icons/scalable/status/weather-fog-symbolic.svg</file>
+ <file>icons/scalable/status/weather-overcast-symbolic.svg</file>
+ <file>icons/scalable/status/weather-severe-alert-symbolic.svg</file>
+ <file>icons/scalable/status/weather-showers-symbolic.svg</file>
+ <file>icons/scalable/status/weather-snow-symbolic.svg</file>
+
</gresource>
<gresource prefix="/org/gtk/WidgetFactory4">
<file>gtk-logo.webm</file>
diff --git a/demos/widget-factory/widget-factory.ui b/demos/widget-factory/widget-factory.ui
index 306cbbac42..2153591e30 100644
--- a/demos/widget-factory/widget-factory.ui
+++ b/demos/widget-factory/widget-factory.ui
@@ -312,9 +312,6 @@ Suspendisse feugiat quam quis dolor accumsan cursus.</property>
<col id="0">camera-photo-symbolic</col>
</row>
<row>
- <col id="0">camera-video-symbolic</col>
- </row>
- <row>
<col id="0">camera-web-symbolic</col>
</row>
<row>
@@ -330,9 +327,6 @@ Suspendisse feugiat quam quis dolor accumsan cursus.</property>
<col id="0">drive-harddisk-symbolic</col>
</row>
<row>
- <col id="0">drive-multidisk-symbolic</col>
- </row>
- <row>
<col id="0">drive-optical-symbolic</col>
</row>
<row>
diff --git a/gtk/gtkdebug.h b/gtk/gtkdebug.h
index ac85014d74..4a10c96cff 100644
--- a/gtk/gtkdebug.h
+++ b/gtk/gtkdebug.h
@@ -53,6 +53,7 @@ typedef enum {
GTK_DEBUG_CONSTRAINTS = 1 << 15,
GTK_DEBUG_BUILDER_OBJECTS = 1 << 16,
GTK_DEBUG_A11Y = 1 << 17,
+ GTK_DEBUG_ICONFALLBACK = 1 << 18,
} GtkDebugFlags;
#ifdef G_ENABLE_DEBUG
diff --git a/gtk/gtkfilechooserutils.c b/gtk/gtkfilechooserutils.c
index de3ffa15d5..af319303a0 100644
--- a/gtk/gtkfilechooserutils.c
+++ b/gtk/gtkfilechooserutils.c
@@ -447,9 +447,10 @@ _gtk_file_consider_as_remote (GFile *file)
}
GIcon *
-_gtk_file_info_get_icon (GFileInfo *info,
- int icon_size,
- int scale)
+_gtk_file_info_get_icon (GFileInfo *info,
+ int icon_size,
+ int scale,
+ GtkIconTheme *icon_theme)
{
GIcon *icon;
GdkPixbuf *pixbuf;
@@ -468,7 +469,7 @@ _gtk_file_info_get_icon (GFileInfo *info,
}
icon = g_file_info_get_icon (info);
- if (icon)
+ if (icon && gtk_icon_theme_has_gicon (icon_theme, icon))
return g_object_ref (icon);
/* Use general fallback for all files without icon */
diff --git a/gtk/gtkfilechooserutils.h b/gtk/gtkfilechooserutils.h
index 46625b6c86..9481704ad9 100644
--- a/gtk/gtkfilechooserutils.h
+++ b/gtk/gtkfilechooserutils.h
@@ -21,6 +21,7 @@
#define __GTK_FILE_CHOOSER_UTILS_H__
#include "gtkfilechooserprivate.h"
+#include "gtkicontheme.h"
G_BEGIN_DECLS
@@ -52,9 +53,10 @@ char * _gtk_file_chooser_label_for_file (GFile *file);
gboolean _gtk_file_info_consider_as_directory (GFileInfo *info);
gboolean _gtk_file_has_native_path (GFile *file);
gboolean _gtk_file_consider_as_remote (GFile *file);
-GIcon * _gtk_file_info_get_icon (GFileInfo *info,
- int icon_size,
- int scale);
+GIcon * _gtk_file_info_get_icon (GFileInfo *info,
+ int icon_size,
+ int scale,
+ GtkIconTheme *icon_theme);
G_END_DECLS
diff --git a/gtk/gtkfilechooserwidget.c b/gtk/gtkfilechooserwidget.c
index f6a58f3218..6f612c1c63 100644
--- a/gtk/gtkfilechooserwidget.c
+++ b/gtk/gtkfilechooserwidget.c
@@ -4448,7 +4448,13 @@ file_system_model_set (GtkFileSystemModel *model,
{
if (g_file_info_has_attribute (info, G_FILE_ATTRIBUTE_STANDARD_ICON))
{
- g_value_take_object (value, _gtk_file_info_get_icon (info, ICON_SIZE, gtk_widget_get_scale_factor (GTK_WIDGET (impl))));
+ int scale;
+ GtkIconTheme *icon_theme;
+
+ scale = gtk_widget_get_scale_factor (GTK_WIDGET (impl));
+ icon_theme = gtk_icon_theme_get_for_display (gtk_widget_get_display (GTK_WIDGET (impl)));
+
+ g_value_take_object (value, _gtk_file_info_get_icon (info, ICON_SIZE, scale, icon_theme));
}
else
{
diff --git a/gtk/gtkicontheme.c b/gtk/gtkicontheme.c
index ef1e70a0b2..45623c44d4 100644
--- a/gtk/gtkicontheme.c
+++ b/gtk/gtkicontheme.c
@@ -2269,6 +2269,11 @@ real_choose_icon (GtkIconTheme *self,
/* Fall back to missing icon */
if (icon == NULL)
{
+ GTK_NOTE(ICONFALLBACK, {
+ char *s = g_strjoinv (", ", (char **)icon_names);
+ g_message ("No icon found for: %s", s);
+ g_free (s);
+ });
icon = icon_paintable_new ("image-missing", size, scale);
icon->filename = g_strdup (IMAGE_MISSING_RESOURCE_PATH);
icon->is_resource = TRUE;
@@ -2610,6 +2615,50 @@ gtk_icon_theme_has_icon (GtkIconTheme *self,
return res;
}
+/**
+ * gtk_icon_theme_has_gicon:
+ * @self: a `GtkIconTheme`
+ * @gicon: a `GIcon`
+ *
+ * Checks whether an icon theme includes an icon
+ * for a particular `GIcon`.
+ *
+ * Returns: %TRUE if @self includes an icon for @gicon
+ */
+gboolean
+gtk_icon_theme_has_gicon (GtkIconTheme *self,
+ GIcon *gicon)
+{
+ const char * const *names;
+ gboolean res = FALSE;
+
+ if (!G_IS_THEMED_ICON (gicon))
+ return TRUE;
+
+ names = g_themed_icon_get_names (G_THEMED_ICON (gicon));
+
+ gtk_icon_theme_lock (self);
+
+ ensure_valid_themes (self, FALSE);
+
+ for (int i = 0; names[i]; i++)
+ {
+ for (GList *l = self->themes; l; l = l->next)
+ {
+ if (theme_has_icon (l->data, names[i]))
+ {
+ res = TRUE;
+ goto out;
+ }
+ }
+ }
+
+ out:
+ gtk_icon_theme_unlock (self);
+
+ return res;
+}
+
static void
add_size (gpointer key,
gpointer value,
diff --git a/gtk/gtkicontheme.h b/gtk/gtkicontheme.h
index 1db2d1766f..183c7249aa 100644
--- a/gtk/gtkicontheme.h
+++ b/gtk/gtkicontheme.h
@@ -116,6 +116,9 @@ char * gtk_icon_theme_get_theme_name (GtkIconTheme
GDK_AVAILABLE_IN_ALL
gboolean gtk_icon_theme_has_icon (GtkIconTheme *self,
const char *icon_name);
+GDK_AVAILABLE_IN_4_2
+gboolean gtk_icon_theme_has_gicon (GtkIconTheme *self,
+ GIcon *gicon);
GDK_AVAILABLE_IN_ALL
int *gtk_icon_theme_get_icon_sizes (GtkIconTheme *self,
const char *icon_name);
diff --git a/gtk/gtkmain.c b/gtk/gtkmain.c
index 02c37b045e..27dea0f007 100644
--- a/gtk/gtkmain.c
+++ b/gtk/gtkmain.c
@@ -197,6 +197,7 @@ static const GdkDebugKey gtk_debug_keys[] = {
{ "touchscreen", GTK_DEBUG_TOUCHSCREEN, "Pretend the pointer is a touchscreen" },
{ "snapshot", GTK_DEBUG_SNAPSHOT, "Generate debug render nodes" },
{ "accessibility", GTK_DEBUG_A11Y, "Information about accessibility state changes" },
+ { "iconfallback", GTK_DEBUG_ICONFALLBACK, "Information about icon fallback" },
};
/* This checks to see if the process is running suid or sgid
diff --git a/gtk/icons/16x16/actions/color-select-symbolic.symbolic.png b/gtk/icons/16x16/actions/color-select-symbolic.symbolic.png
index a8968c9063..5031599c1b 100644
--- a/gtk/icons/16x16/actions/color-select-symbolic.symbolic.png
+++ b/gtk/icons/16x16/actions/color-select-symbolic.symbolic.png
Binary files differ
diff --git a/gtk/icons/16x16/actions/go-next-symbolic-rtl.symbolic.png b/gtk/icons/16x16/actions/go-next-symbolic-rtl.symbolic.png
new file mode 100644
index 0000000000..f688c3ce72
--- /dev/null
+++ b/gtk/icons/16x16/actions/go-next-symbolic-rtl.symbolic.png
Binary files differ
diff --git a/gtk/icons/16x16/actions/go-next-symbolic.symbolic.png b/gtk/icons/16x16/actions/go-next-symbolic.symbolic.png
new file mode 100644
index 0000000000..f2aa968ce8
--- /dev/null
+++ b/gtk/icons/16x16/actions/go-next-symbolic.symbolic.png
Binary files differ
diff --git a/gtk/icons/16x16/actions/go-previous-symbolic-rtl.symbolic.png b/gtk/icons/16x16/actions/go-previous-symbolic-rtl.symbolic.png
new file mode 100644
index 0000000000..f2aa968ce8
--- /dev/null
+++ b/gtk/icons/16x16/actions/go-previous-symbolic-rtl.symbolic.png
Binary files differ
diff --git a/gtk/icons/16x16/actions/go-previous-symbolic.symbolic.png b/gtk/icons/16x16/actions/go-previous-symbolic.symbolic.png
new file mode 100644
index 0000000000..f688c3ce72
--- /dev/null
+++ b/gtk/icons/16x16/actions/go-previous-symbolic.symbolic.png
Binary files differ
diff --git a/gtk/icons/16x16/actions/system-run-symbolic.symbolic.png b/gtk/icons/16x16/actions/system-run-symbolic.symbolic.png
new file mode 100644
index 0000000000..020523464e
--- /dev/null
+++ b/gtk/icons/16x16/actions/system-run-symbolic.symbolic.png
Binary files differ
diff --git a/gtk/icons/16x16/actions/system-search-symbolic.symbolic.png b/gtk/icons/16x16/actions/system-search-symbolic.symbolic.png
new file mode 100644
index 0000000000..c1bc0acc1c
--- /dev/null
+++ b/gtk/icons/16x16/actions/system-search-symbolic.symbolic.png
Binary files differ
diff --git a/gtk/icons/16x16/devices/printer-symbolic.symbolic.png b/gtk/icons/16x16/devices/printer-symbolic.symbolic.png
new file mode 100644
index 0000000000..b8286c7049
--- /dev/null
+++ b/gtk/icons/16x16/devices/printer-symbolic.symbolic.png
Binary files differ
diff --git a/gtk/icons/16x16/mimetypes/text-x-generic-symbolic.symbolic.png b/gtk/icons/16x16/mimetypes/text-x-generic-symbolic.symbolic.png
new file mode 100644
index 0000000000..202ce49c96
--- /dev/null
+++ b/gtk/icons/16x16/mimetypes/text-x-generic-symbolic.symbolic.png
Binary files differ
diff --git a/gtk/icons/16x16/status/display-brightness-symbolic.symbolic.png b/gtk/icons/16x16/status/display-brightness-symbolic.symbolic.png
new file mode 100644
index 0000000000..bf9840308b
--- /dev/null
+++ b/gtk/icons/16x16/status/display-brightness-symbolic.symbolic.png
Binary files differ
diff --git a/gtk/icons/scalable/actions/color-select-symbolic.svg b/gtk/icons/scalable/actions/color-select-symbolic.svg
index 6184e876b6..dc934ac77a 100644
--- a/gtk/icons/scalable/actions/color-select-symbolic.svg
+++ b/gtk/icons/scalable/actions/color-select-symbolic.svg
@@ -1,3 +1 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16">
- <path d="M11.25 0c-1.034 0-1.905.594-2.375 1.438l-.156-.157-1.156-.25-.97.969.688.719 1 1L4 8l-1 2.438.5.562L6 10l4.281-4.281 1 1 .719.687 1.125-1.125-.406-1-.156-.156C13.405 4.655 14 3.784 14 2.75A2.75 2.75 0 0 0 11.25 0zM8.781 4.219l1 1L7 8H5zm-6.125 6.875S.844 13.57.844 14.438c0 .867.726 1.562 1.594 1.562C3.304 16 4 15.305 4 14.437c0-.867-1.344-3.343-1.344-3.343z" style="marker:none" color="#000" overflow="visible" fill="#474747"/>
-</svg>
+<svg xmlns="http://www.w3.org/2000/svg" width="16.006" height="16"><path d="M12.96.98a2 2 0 00-1.374.606L10 3.172 8.914 2.086a.5.5 0 00-.707 0L6.086 4.207a.5.5 0 000 .707l.646.647-5.586 5.585A.5.5 0 001 11.5v1.793l-.854.853a.5.5 0 000 .708l1 1a.5.5 0 00.707 0L2.707 15H4.5a.5.5 0 00.353-.146l5.586-5.586.647.646a.5.5 0 00.707 0l2.121-2.121a.5.5 0 000-.707L12.828 6l1.586-1.586c1.308-1.272.37-3.487-1.453-3.434zM7.94 6.768L9.231 8.06 6.292 11H3.708z" style="line-height:normal;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000;text-transform:none;text-orientation:mixed;shape-padding:0;isolation:auto;mix-blend-mode:normal" color="#000" font-weight="400" font-family="sans-serif" overflow="visible" fill="#2e3436" fill-rule="evenodd"/></svg> \ No newline at end of file
diff --git a/gtk/icons/scalable/actions/go-next-symbolic-rtl.svg b/gtk/icons/scalable/actions/go-next-symbolic-rtl.svg
new file mode 100644
index 0000000000..3e8479b70f
--- /dev/null
+++ b/gtk/icons/scalable/actions/go-next-symbolic-rtl.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><g color="#000" fill="#2e3436"><path d="M9.293 2.293L3.586 8l5.707 5.707 1.414-1.414L6.414 8l4.293-4.293z" style="line-height:normal;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000;text-transform:none;text-orientation:mixed;white-space:normal;shape-padding:0;isolation:auto;mix-blend-mode:normal;solid-color:#000;solid-opacity:1;marker:none" font-weight="400" font-family="sans-serif" overflow="visible"/><path d="M10 13h1v1h-1zm0-11h1v1h-1z" style="marker:none" overflow="visible"/><path d="M10 2c.554 0 1 .446 1 1s-.446 1-1 1-1-.446-1-1 .446-1 1-1zm0 10c.554 0 1 .446 1 1s-.446 1-1 1-1-.446-1-1 .446-1 1-1z" style="marker:none" overflow="visible"/></g></svg> \ No newline at end of file
diff --git a/gtk/icons/scalable/actions/go-next-symbolic.svg b/gtk/icons/scalable/actions/go-next-symbolic.svg
new file mode 100644
index 0000000000..2ba1b74d95
--- /dev/null
+++ b/gtk/icons/scalable/actions/go-next-symbolic.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><g color="#000" fill="#2e3436"><path d="M6.707 2.293L5.293 3.707 9.586 8l-4.293 4.293 1.414 1.414L12.414 8z" style="line-height:normal;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000;text-transform:none;text-orientation:mixed;white-space:normal;shape-padding:0;isolation:auto;mix-blend-mode:normal;solid-color:#000;solid-opacity:1;marker:none" font-weight="400" font-family="sans-serif" overflow="visible"/><path d="M6 13H5v1h1zM6 2H5v1h1z" style="marker:none" overflow="visible"/><path d="M6 2c-.554 0-1 .446-1 1s.446 1 1 1 1-.446 1-1-.446-1-1-1zm0 10c-.554 0-1 .446-1 1s.446 1 1 1 1-.446 1-1-.446-1-1-1z" style="marker:none" overflow="visible"/></g></svg> \ No newline at end of file
diff --git a/gtk/icons/scalable/actions/go-previous-symbolic-rtl.svg b/gtk/icons/scalable/actions/go-previous-symbolic-rtl.svg
new file mode 100644
index 0000000000..2ba1b74d95
--- /dev/null
+++ b/gtk/icons/scalable/actions/go-previous-symbolic-rtl.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><g color="#000" fill="#2e3436"><path d="M6.707 2.293L5.293 3.707 9.586 8l-4.293 4.293 1.414 1.414L12.414 8z" style="line-height:normal;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000;text-transform:none;text-orientation:mixed;white-space:normal;shape-padding:0;isolation:auto;mix-blend-mode:normal;solid-color:#000;solid-opacity:1;marker:none" font-weight="400" font-family="sans-serif" overflow="visible"/><path d="M6 13H5v1h1zM6 2H5v1h1z" style="marker:none" overflow="visible"/><path d="M6 2c-.554 0-1 .446-1 1s.446 1 1 1 1-.446 1-1-.446-1-1-1zm0 10c-.554 0-1 .446-1 1s.446 1 1 1 1-.446 1-1-.446-1-1-1z" style="marker:none" overflow="visible"/></g></svg> \ No newline at end of file
diff --git a/gtk/icons/scalable/actions/go-previous-symbolic.svg b/gtk/icons/scalable/actions/go-previous-symbolic.svg
new file mode 100644
index 0000000000..3e8479b70f
--- /dev/null
+++ b/gtk/icons/scalable/actions/go-previous-symbolic.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><g color="#000" fill="#2e3436"><path d="M9.293 2.293L3.586 8l5.707 5.707 1.414-1.414L6.414 8l4.293-4.293z" style="line-height:normal;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000;text-transform:none;text-orientation:mixed;white-space:normal;shape-padding:0;isolation:auto;mix-blend-mode:normal;solid-color:#000;solid-opacity:1;marker:none" font-weight="400" font-family="sans-serif" overflow="visible"/><path d="M10 13h1v1h-1zm0-11h1v1h-1z" style="marker:none" overflow="visible"/><path d="M10 2c.554 0 1 .446 1 1s-.446 1-1 1-1-.446-1-1 .446-1 1-1zm0 10c.554 0 1 .446 1 1s-.446 1-1 1-1-.446-1-1 .446-1 1-1z" style="marker:none" overflow="visible"/></g></svg> \ No newline at end of file
diff --git a/gtk/icons/scalable/actions/system-run-symbolic.svg b/gtk/icons/scalable/actions/system-run-symbolic.svg
new file mode 100644
index 0000000000..122b0bd3f4
--- /dev/null
+++ b/gtk/icons/scalable/actions/system-run-symbolic.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><g color="#000" fill="#474747"><path d="M11.375.25c-.24.435-.468 1.006-.719 1.438-.094-.007-.186-.032-.281-.032-.332 0-.66.049-.969.125C9.101 1.398 8.776.883 8.47.5a5.381 5.381 0 00-.813.375c.096.483.277 1.071.375 1.562a3.857 3.857 0 00-.875.875c-.491-.098-1.08-.279-1.562-.375a5.38 5.38 0 00-.375.813c.383.307.898.632 1.28.937a4.053 4.053 0 00-.124.97c0 .095.024.187.031.28-.432.252-1.002.48-1.437.72.05.274.128.553.218.812.492-.01 1.1-.095 1.594-.094.187.392.42.754.719 1.063-.172.467-.448 1.008-.625 1.468.213.176.45.326.687.469.37-.32.776-.771 1.157-1.094a3.93 3.93 0 001.218.313c.165.477.305 1.088.47 1.562a5.44 5.44 0 00.874-.062c.08-.493.11-1.119.188-1.625.41-.117.81-.267 1.156-.5.424.264.899.629 1.312.875.224-.19.435-.402.625-.625-.246-.414-.61-.888-.875-1.313.233-.345.383-.746.5-1.156.507-.077 1.132-.107 1.625-.188a5.41 5.41 0 00.063-.875c-.475-.164-1.086-.304-1.563-.468A3.963 3.963 0 0014.001 4c.322-.38.773-.787 1.094-1.156a5.562 5.562 0 00-.47-.688c-.46.177-1 .453-1.468.625a3.984 3.984 0 00-1.062-.719c-.001-.494.084-1.102.093-1.593a5.63 5.63 0 00-.812-.219zm-1 3.406a2 2 0 110 4 2 2 0 010-4z" style="marker:none" overflow="visible"/><path d="M3.687 7.75c-.23.047-.444.131-.656.219-.017.624.087 1.442-.156 1.656-.24.21-1.039.034-1.656-.031a3.627 3.627 0 00-.313.75c.478.396 1.14.839 1.156 1.156.016.321-.626.805-1.062 1.25.103.258.25.493.406.719.608-.127 1.366-.374 1.625-.188.263.19.265 1.006.344 1.625.25.075.512.105.781.125.281-.554.567-1.32.875-1.406.316-.089.964.458 1.5.781.219-.151.413-.337.594-.531-.254-.572-.721-1.292-.594-1.594.128-.302.975-.47 1.563-.687.004-.074.03-.144.03-.219 0-.191-.034-.379-.062-.563-.606-.16-1.467-.24-1.625-.53-.156-.289.242-1.062.438-1.657a3.687 3.687 0 00-.656-.469c-.501.375-1.085.995-1.407.938-.317-.056-.663-.82-1-1.344-.04.007-.085-.008-.125 0zm.625 1.875a1.688 1.688 0 110 3.375 1.688 1.688 0 010-3.375z" style="marker:none" overflow="visible"/></g></svg> \ No newline at end of file
diff --git a/gtk/icons/scalable/actions/system-search-symbolic.svg b/gtk/icons/scalable/actions/system-search-symbolic.svg
new file mode 100644
index 0000000000..912fe3ff02
--- /dev/null
+++ b/gtk/icons/scalable/actions/system-search-symbolic.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><g color="#000" font-weight="400" font-family="sans-serif" fill="#474747"><path d="M6.508 1C3.48 1 1.002 3.473 1.002 6.5c0 3.026 2.478 5.5 5.506 5.5s5.504-2.474 5.504-5.5c0-3.027-2.476-5.5-5.504-5.5zm0 2a3.486 3.486 0 013.504 3.5c0 1.944-1.556 3.5-3.504 3.5a3.488 3.488 0 01-3.506-3.5C3.002 4.555 4.56 3 6.508 3z" style="line-height:normal;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000;text-transform:none;text-orientation:mixed;shape-padding:0;isolation:auto;mix-blend-mode:normal;marker:none" overflow="visible"/><path d="M10 8.99a1 1 0 00-.695 1.717l4.004 4a1 1 0 101.414-1.414l-4.004-4A1 1 0 0010 8.99z" style="line-height:normal;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000;text-transform:none;text-orientation:mixed;shape-padding:0;isolation:auto;mix-blend-mode:normal;marker:none" overflow="visible"/></g></svg> \ No newline at end of file
diff --git a/gtk/icons/scalable/devices/printer-symbolic.svg b/gtk/icons/scalable/devices/printer-symbolic.svg
new file mode 100644
index 0000000000..ebeba53bdc
--- /dev/null
+++ b/gtk/icons/scalable/devices/printer-symbolic.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><g fill="#474747"><path d="M2 4c-.5 0-1 .5-1 1v4c0 .5.5 1 1 1h1V8h10v2h1c.5 0 1-.5 1-1V5c0-.5-.5-1-1-1zm2-3v2h8V1z"/><path d="M4 9v5h8V9z"/></g></svg> \ No newline at end of file
diff --git a/gtk/icons/scalable/mimetypes/text-x-generic-symbolic.svg b/gtk/icons/scalable/mimetypes/text-x-generic-symbolic.svg
new file mode 100644
index 0000000000..2f24242bb2
--- /dev/null
+++ b/gtk/icons/scalable/mimetypes/text-x-generic-symbolic.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="16.014" height="16.014"><g fill="#474747" fill-rule="evenodd"><path d="M3.014 1.014a1 1 0 00-1 1v13a1 1 0 001 1h10a1 1 0 001-1v-9.5a1 1 0 00-.293-.707l-3.5-3.5a1 1 0 00-.707-.293zm1 2H9.1l2.914 2.914v8.086h-8z" style="line-height:normal;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000;text-transform:none;text-orientation:mixed;shape-padding:0;isolation:auto;mix-blend-mode:normal" color="#000" font-weight="400" font-family="sans-serif" overflow="visible"/><path d="M9.014 2.014v4h4z"/></g></svg> \ No newline at end of file
diff --git a/gtk/icons/scalable/status/display-brightness-symbolic.svg b/gtk/icons/scalable/status/display-brightness-symbolic.svg
new file mode 100644
index 0000000000..4cb4ddc4f4
--- /dev/null
+++ b/gtk/icons/scalable/status/display-brightness-symbolic.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><g fill="#474747"><path d="M.5 7h2c.277 0 .5.223.5.5v1c0 .277-.223.5-.5.5h-2a.499.499 0 01-.5-.5v-1c0-.277.223-.5.5-.5zm13 0h2c.277 0 .5.223.5.5v1c0 .277-.223.5-.5.5h-2a.499.499 0 01-.5-.5v-1c0-.277.223-.5.5-.5zM1.99 12.596l1.414-1.414a.499.499 0 01.707 0l.707.707a.499.499 0 010 .707L3.404 14.01a.499.499 0 01-.707 0l-.707-.707a.499.499 0 010-.707zm9.192-9.192l1.414-1.415a.499.499 0 01.707 0l.707.708a.499.499 0 010 .707l-1.414 1.414a.499.499 0 01-.707 0l-.707-.707a.499.499 0 010-.707zM7 15.5v-2c0-.277.223-.5.5-.5h1c.277 0 .5.223.5.5v2c0 .277-.223.5-.5.5h-1a.499.499 0 01-.5-.5zm0-13v-2c0-.277.223-.5.5-.5h1c.277 0 .5.223.5.5v2c0 .277-.223.5-.5.5h-1a.499.499 0 01-.5-.5zm5.596 11.51l-1.414-1.414a.499.499 0 010-.707l.707-.707a.499.499 0 01.707 0l1.414 1.414a.499.499 0 010 .707l-.707.707a.499.499 0 01-.707 0zM3.404 4.818L1.989 3.404a.499.499 0 010-.707l.708-.707a.499.499 0 01.707 0l1.414 1.414a.499.499 0 010 .707l-.707.707a.499.499 0 01-.707 0z" style="marker:none" color="#bebebe" overflow="visible"/><path d="M8 4C5.803 4 4 5.803 4 8s1.803 4 4 4 4-1.803 4-4-1.803-4-4-4zm0 2c1.117 0 2 .884 2 2s-.883 2-2 2c-1.116 0-2-.884-2-2s.884-2 2-2z" style="line-height:normal;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000;text-transform:none;text-orientation:mixed;shape-padding:0;isolation:auto;mix-blend-mode:normal;marker:none" color="#000" font-weight="400" font-family="sans-serif" overflow="visible"/></g></svg> \ No newline at end of file