summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Pirotte <david@altosw.be>2023-09-13 02:03:58 -0300
committerDavid Pirotte <david@altosw.be>2023-09-13 02:03:58 -0300
commite2ee88590d32b7b6418516581fdb9b82c383abee (patch)
tree434c9a043f5887085be86235a954e5d81652bc97
parent9fe24520b46cdf007c226fc42140f67608a76e4d (diff)
parentdacba11a8f070188696fa4a6e80c6d065663a6dd (diff)
Prepare 0.8.0-alpha-6v0.8.0-alpha-6
* Merge branch 'devel'.
-rw-r--r--INSTALL25
-rw-r--r--NEWS72
-rw-r--r--README6
-rw-r--r--configure.ac9
-rw-r--r--doc/cr-gobject-params-vals.texi16
-rw-r--r--doc/cr-gobject-signals.texi15
-rw-r--r--doc/introduction.texi32
-rw-r--r--examples/adw-1/adw1-demo-1.pngbin0 -> 24208 bytes
-rw-r--r--examples/adw-1/adw1-demo-2.pngbin0 -> 20174 bytes
-rwxr-xr-xexamples/adw-1/adw1-demo.scm11
-rw-r--r--examples/adw-1/adw1-demo/icons/hicolor/scalable/actions/gesture-touchpad-swipe-back-symbolic-rtl.svg179
-rw-r--r--examples/adw-1/adw1-demo/icons/hicolor/scalable/actions/gesture-touchpad-swipe-back-symbolic.svg179
-rw-r--r--examples/adw-1/adw1-demo/icons/hicolor/scalable/actions/gesture-touchscreen-swipe-back-symbolic-rtl.svg187
-rw-r--r--examples/adw-1/adw1-demo/icons/hicolor/scalable/actions/gesture-touchscreen-swipe-back-symbolic.svg187
-rw-r--r--examples/adw-1/adw1-demo/icons/hicolor/scalable/actions/row-copy-symbolic.svg7
-rw-r--r--examples/adw-1/adw1-demo/icons/hicolor/scalable/actions/widget-flap-symbolic.svg7
-rw-r--r--examples/adw-1/adw1-demo/icons/hicolor/scalable/actions/widget-leaflet-symbolic.svg46
-rw-r--r--examples/adw-1/adw1-demo/icons/hicolor/scalable/actions/widget-navigation-view-symbolic.svg2
-rw-r--r--examples/adw-1/adw1-demo/icons/hicolor/scalable/actions/widget-split-views-symbolic-rtl.svg8
-rw-r--r--examples/adw-1/adw1-demo/icons/hicolor/scalable/actions/widget-split-views-symbolic.svg8
-rw-r--r--examples/adw-1/adw1-demo/leaflet.scm132
-rw-r--r--examples/adw-1/adw1-demo/navigation-view-demo-window.scm56
-rw-r--r--examples/adw-1/adw1-demo/navigation-view.scm78
-rw-r--r--examples/adw-1/adw1-demo/ui/leaflet.scm87
-rw-r--r--examples/adw-1/adw1-demo/ui/leaflet.ui2
-rw-r--r--examples/adw-1/adw1-demo/ui/navigation-view-demo-window.scm150
-rw-r--r--examples/adw-1/adw1-demo/ui/navigation-view-demo-window.ui2
-rw-r--r--examples/adw-1/adw1-demo/ui/navigation-view.scm55
-rw-r--r--examples/adw-1/adw1-demo/ui/navigation-view.ui2
-rw-r--r--examples/adw-1/adw1-demo/ui/window.scm173
-rw-r--r--examples/adw-1/adw1-demo/ui/window.ui2
-rw-r--r--examples/adw-1/adw1-demo/window.scm66
-rw-r--r--g-golf/gi/common-types.scm38
-rw-r--r--g-golf/gobject/params-vals.scm91
-rw-r--r--g-golf/gobject/signals.scm11
-rw-r--r--g-golf/hl-api/callable.scm47
-rw-r--r--g-golf/hl-api/gparam.scm20
-rw-r--r--g-golf/hl-api/gtype.scm49
-rw-r--r--g-golf/hl-api/signal.scm7
-rw-r--r--test-suite/tests/gobject.scm62
-rw-r--r--test-suite/tests/hl-api.scm79
-rw-r--r--test-suite/tests/support.scm10
42 files changed, 808 insertions, 1407 deletions
diff --git a/INSTALL b/INSTALL
index b2491a8..286c69f 100644
--- a/INSTALL
+++ b/INSTALL
@@ -32,7 +32,6 @@ G-Golf needs the following software to run:
Makeinfo >= 6.6
[[http://www.gnu.org/software/guile][Guile]] >= 2.0.14
[allows 2.2, 3.0 (>= 3.0.7)]
- [[http://www.nongnu.org/guile-lib/][Guile-Lib]] >= 0.2.5
Glib-2.0 >= 2.73.0
Gobject-2.0 >= 2.73.0
GObject-Introspection-1.0 >= 1.72.0
@@ -42,13 +41,15 @@ G-Golf needs the following software to run:
G-Golf currently needs the following additional
software to run its test-suite:
- Clutter-1.0 >= 1.24.0
+ [[http://www.nongnu.org/guile-lib/][Guile-Lib]] >= 0.2.5
Gtk-3.0 >= 3.10.0
*** Examples Dependencies
-Gtk-4.0 examples: G-Golf currently needs the following additional
-software to run its Gtk-4.0 examples:
+- Gtk-4.0 examples -
+
+G-Golf currently needs the following additional software to run its
+Gtk-4.0 examples:
Gtk-4.0 >= 4.10.0
Guile-Cairo > 1.11.2
@@ -57,17 +58,19 @@ software to run its Gtk-4.0 examples:
contains the following new interface (which is not in guile-cairo
1.11.2): cairo-pointer->context
-Adwaita examples: G-Golf currently needs the following additional
-software to run its Adw-1 examples:
+- Adwaita examples -
+
+G-Golf currently needs the following additional software to run its
+Adw-1 examples:
- Adw-1 >= 1.2.2
+ Adw-1 >= 1.4.0
** Install from the tarball
G-Golf release are [[http://ftp.gnu.org/gnu/g-golf/][here]]. The latest tarballs are:
- g-golf-0.8.0-a.5.tar.gz
- g-golf-0.8.0-a.5.tar.gz.sig
+ g-golf-0.8.0-alpha-6.tar.gz
+ g-golf-0.8.0-alpha-6.tar.gz.sig
[ GPG Key: A3057AD7
[ gpg --keyserver keys.gnupg.net --recv-keys A3057AD7
@@ -76,8 +79,8 @@ Assuming you have satisfied the dependencies, open a terminal and
proceed with the following steps:
cd <download-path>
- tar zxf g-golf-0.8.0-a.5.tar.gz
- cd g-golf-0.8.0-a.5
+ tar zxf g-golf-0.8.0-alpha-6.tar.gz
+ cd g-golf-0.8.0-alpha-6
./configure [--prefix=/your/prefix] [--with-guile-site=yes]
make
make install
diff --git a/NEWS b/NEWS
index 3178b9d..453000a 100644
--- a/NEWS
+++ b/NEWS
@@ -26,6 +26,76 @@ warranty.
* Latest News
+** September 2023
+
+[[http://www.gnu.org/software/g-golf][GNU G-Golf]] version 0.8.0-alpha-6 is released.
+
+This is the sixth release of the upcoming 0.8.0 release, now available
+for testing.
+
+*** Noteworthy changes in 0.8.0-alpha-6
+
+Here is a summary of the noteworthy changes in this release. See G-Golf
+[[http://git.savannah.gnu.org/cgit/g-golf.git][git summary]] and [[http://git.savannah.gnu.org/cgit/g-golf.git/log/][git log]] for a complete list and description.
+
+**** Dependencies
+
+- Core dependencies
+
+The guile-lib dependency has been removed from the core dependencies, as
+it effectively is only required to run the test-suite.
+
+- Test suite
+
+The test-suite requires guile-lib >= 0.2.5
+The test-suite no longer requires Clutter.
+
+- Adwaita examples
+
+ Adw-1 >= 1.4.0
+
+The adw1-demo - which currently implements the main window, primary menu
+and first two pages (wip) - has been updated to correspond to the latest
+upstream version, which no longer uses the deprecated AdwLeaflet*
+classes. Instead, it uses the AdwNavigationSplitView, AdwNavigationView
+and AdwNavigationPage classes, available since 1.4.0.
+
+**** New features
+
+Derived class
+GObject properties
+
+ Derived classes slot exposed as a gobject property now also support
+ the object type - Wip (supported type are now int, enum and object).
+
+disconnect
+
+New method, which calls the newly added g-signal-handler-disconnect
+binding.
+
+**** Examples
+
+Adwaita Demo
+
+The adw1-demo - which currently implements the main window, primary menu
+and first two pages (wip) - has been updated to correspond to the latest
+upstream version, which no longer uses the deprecated AdwLeaflet*
+classes. Instead, it uses the AdwNavigationSplitView, AdwNavigationView
+and AdwNavigationPage classes, available since 1.4.0.
+
+**** Bug fixing
+
+g-value-set-boxed
+
+Was silently setting the g-value to #f for opaque boxed type, fixed.
+
+connect
+signal-connect
+
+Now return the handler-id, needed to call disconnect.
+
+* Older News
+
** August 2023
[[http://www.gnu.org/software/g-golf][GNU G-Golf]] version 0.8.0-a.5 is released.
@@ -108,8 +178,6 @@ longer defined as an array, but a utf8, and hence g-golf would fail,
when using Gtk 4.10.0, to detect, compute and supply the third argument,
which is the css string length - fixed.
-* Older News
-
** April 2023
[[http://www.gnu.org/software/g-golf][GNU G-Golf]] version 0.8.0-a.4 is released.
diff --git a/README b/README
index ab8482c..49af78f 100644
--- a/README
+++ b/README
@@ -81,12 +81,12 @@ points to its source code, in the G-Golf sources [[http://git.savannah.gnu.org/c
** Latest News
-August 2023
+September 2023
-GNU G-Golf version 0.8.0-a.5 is released.
+GNU G-Golf version 0.8.0-alpha-6 is released.
Visit the NEWS file or see the [[http://git.savannah.gnu.org/cgit/g-golf.git/tree/NEWS][News]] page for the list of visible changes
-since the last release, as well as older news.
+in this release, as well as older news.
** Savannah
diff --git a/configure.ac b/configure.ac
index 7f59f8d..f1d0ca5 100644
--- a/configure.ac
+++ b/configure.ac
@@ -31,7 +31,7 @@ AC_PREREQ(2.69)
AC_INIT(
[g-golf],
- [0.8.0-a.5],
+ [0.8.0-alpha-6],
[bug-g-golf@gnu.org])
AC_CONFIG_AUX_DIR([build-aux])
@@ -101,11 +101,16 @@ PKG_CHECK_MODULES(GOBJECT, gobject-2.0 >= 2.73.0)
AC_SUBST(GOBJECT_CFLAGS)
AC_SUBST(GOBJECT_LIBS)
+# Only needed to run the test-suite
# PKG_CHECK_MODULES(GTK, gtk+-3.0 >= 3.24.0)
# AC_SUBST(GTK_CFLAGS)
# AC_SUBST(GTK_LIBS)
-PKG_CHECK_MODULES(GUILE_LIB, guile-lib-1.0 >= 0.2.5)
+# Only needed to run the test-suite
+# PKG_CHECK_MODULES(GUILE_LIB, guile-lib-1.0 >= 0.2.5)
+
+# Although guile itself depends on libffi, we make this call to get
+# FFI_CFLAGS and FFI_LIBS to be defined, used by libg-golf.
PKG_CHECK_MODULES(FFI, libffi >= 3.3.0)
diff --git a/doc/cr-gobject-params-vals.texi b/doc/cr-gobject-params-vals.texi
index ba1abae..2fa361e 100644
--- a/doc/cr-gobject-params-vals.texi
+++ b/doc/cr-gobject-params-vals.texi
@@ -44,6 +44,7 @@ Parameters and Values — Standard Parameter and Value Types
@item @ref{g-value-set-boxed}
@item @ref{g-value-get-pointer}
@item @ref{g-value-set-pointer}
+@item @ref{g-param-spec-object}
@item @ref{g-value-get-object}
@item @ref{g-value-set-object}
@item @ref{g-value-get-variant}
@@ -399,6 +400,21 @@ Sets the content of @var{g-value} to @var{pointer}.
@end deffn
+@anchor{g-param-spec-object}
+@deffn Procedure g-param-spec-object name nick blurb type flags
+
+Returns a pointer.
+
+Creates and returns a pointer to a new @code{GParamSpecBoxed} instance
+specifying a @code{G_TYPE_OBJECT} derived property.
+
+The @var{name} is the canonical name of the property specified,
+@var{nick} its nick name, @var{blurb} its description, @var{type} a
+@code{<gobject>} derived type of this property and @var{flags} the flags
+- for the property specified.
+@end deffn
+
+
@anchor{g-value-get-object}
@deffn Procedure g-value-get-object g-value
diff --git a/doc/cr-gobject-signals.texi b/doc/cr-gobject-signals.texi
index 013d8fd..1ea490f 100644
--- a/doc/cr-gobject-signals.texi
+++ b/doc/cr-gobject-signals.texi
@@ -23,6 +23,7 @@ purpose notification mechanism
@item @ref{g-signal-list-ids}
@item @ref{g-signal-emitv}
@item @ref{g-signal-connect-closure-by-id}
+@item @ref{g-signal-handler-disconnect}
@item @ref{g-signal-parse-name}
@end table
@end indentedblock
@@ -208,6 +209,20 @@ be called before or after the default handler of the signal.
@end deffn
+@anchor{g-signal-handler-disconnect}
+@deffn Procedure g-signal-handler-disconnect instance handler-id
+
+Returns nothing.
+
+Disconnects a handler from an instance so it will not be called during
+any future or currently ongoing emissions of the signal it has been
+connected to. The @var{handler-id} becomes invalid and may be reused.
+
+The @var{handler-id} has to be a valid signal handler id, connected to a
+signal of instance .
+@end deffn
+
+
@anchor{g-signal-parse-name}
@deffn Procedure g-signal-parse-name detailed-signal g-type @
[force-detail-quark #t]
diff --git a/doc/introduction.texi b/doc/introduction.texi
index c176735..e91bb5d 100644
--- a/doc/introduction.texi
+++ b/doc/introduction.texi
@@ -103,7 +103,7 @@ file you should grab is:
@subheading Dependencies
-@strong{-- Main Dependencies}
+@strong{* Main Dependencies}
G-Golf needs the following software to run:
@@ -118,12 +118,7 @@ Automake @geq{} 1.14
Makeinfo @geq{} 6.6
@item
-@uref{@value{UGUILE}, Guile} @geq{} 2.0.14
-
-[allows 2.2 and 3.0 (@geq{} 3.0.7)]
-
-@item
-@uref{@value{UGUILE-LIB}, Guile-Lib} @geq{} 0.2.5
+@uref{@value{UGUILE}, Guile} 2.0 (@geq{} 2.0.14), 2.2 or 3.0 (@geq{} 3.0.7)
@item
@uref{@value{UGLIB}, Glib-2.0} @geq{} 2.73.0
@@ -136,24 +131,29 @@ Makeinfo @geq{} 6.6
@end itemize
-@strong{-- Test-Suite Dependencies}
+@strong{* Test-Suite Dependencies}
G-Golf currently needs the following additional software to run its
test-suite:
@itemize @bullet
+@c @item
+@c @uref{@value{UCLUTTER}, Clutter-1.0} @geq{} 1.24.0
+
@item
-@uref{@value{UCLUTTER}, Clutter-1.0} @geq{} 1.24.0
+@uref{@value{UGUILE-LIB}, Guile-Lib} @geq{} 0.2.5
@item
@uref{@value{UGTK3}, Gtk-3.0} @geq{} 3.10.0
@end itemize
-@strong{-- Examples Dependencies}
+@strong{* Examples Dependencies}
+
+@emph{ -- Gtk-4.0 examples -- }
-@emph{Gtk-4.0 examples:} G-Golf currently needs the following additional
-software to run its Gtk-4.0 examples:
+G-Golf currently needs the following additional software to run its
+Gtk-4.0 examples:
@itemize @bullet
@item
@@ -167,12 +167,14 @@ the following new interface (which is not in guile-cairo 1.11.2):
@code{cairo-pointer->context}.
@end itemize
-@emph{Adwaita examples:} G-Golf currently needs the following additional
-software to run its Adw-1 examples:
+@emph{ -- Adwaita examples -- }
+
+G-Golf currently needs the following additional software to run its
+Adw-1 examples:
@itemize @bullet
@item
-@uref{@value{UADW1}, Adw-1} @geq{} 1.2.2
+@uref{@value{UADW1}, Adw-1} @geq{} 1.4.0
@end itemize
diff --git a/examples/adw-1/adw1-demo-1.png b/examples/adw-1/adw1-demo-1.png
new file mode 100644
index 0000000..b5bb003
--- /dev/null
+++ b/examples/adw-1/adw1-demo-1.png
Binary files differ
diff --git a/examples/adw-1/adw1-demo-2.png b/examples/adw-1/adw1-demo-2.png
new file mode 100644
index 0000000..4fe51c4
--- /dev/null
+++ b/examples/adw-1/adw1-demo-2.png
Binary files differ
diff --git a/examples/adw-1/adw1-demo.scm b/examples/adw-1/adw1-demo.scm
index 279aa4d..4f3577b 100755
--- a/examples/adw-1/adw1-demo.scm
+++ b/examples/adw-1/adw1-demo.scm
@@ -38,14 +38,6 @@ exec guile -e main -s "$0" "$@"
(use-modules (g-golf))
- (for-each (lambda (name)
- (gi-import-by-name "Gio" name))
- '("Action"
- "SimpleAction"
- "ActionMap"
- "Settings"
- "SettingsSchemaSource"))
-
(g-irepository-require "Adw" #:version "1")
(for-each (lambda (name)
(gi-import-by-name "Adw" name))
@@ -63,4 +55,5 @@ exec guile -e main -s "$0" "$@"
#:application-id "org.gnu.g-golf.adw1.demo")))
(connect app 'activate show-window)
(let ((status (g-application-run app args)))
- (exit status))))
+ #;(exit status)
+ 'done)))
diff --git a/examples/adw-1/adw1-demo/icons/hicolor/scalable/actions/gesture-touchpad-swipe-back-symbolic-rtl.svg b/examples/adw-1/adw1-demo/icons/hicolor/scalable/actions/gesture-touchpad-swipe-back-symbolic-rtl.svg
deleted file mode 100644
index e25947c..0000000
--- a/examples/adw-1/adw1-demo/icons/hicolor/scalable/actions/gesture-touchpad-swipe-back-symbolic-rtl.svg
+++ /dev/null
@@ -1,179 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:cc="http://creativecommons.org/ns#"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns="http://www.w3.org/2000/svg"
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- width="64"
- height="64"
- viewBox="0 0 64 64.000001"
- id="svg6535"
- version="1.1"
- inkscape:version="0.91 r13725"
- sodipodi:docname="two-finger-swipe-left.svg">
- <defs
- id="defs6537" />
- <sodipodi:namedview
- id="base"
- pagecolor="#ffffff"
- bordercolor="#666666"
- borderopacity="1.0"
- inkscape:pageopacity="0.0"
- inkscape:pageshadow="2"
- inkscape:zoom="1"
- inkscape:cx="0.8190337"
- inkscape:cy="13.44962"
- inkscape:document-units="px"
- inkscape:current-layer="layer1"
- showgrid="false"
- units="px"
- inkscape:showpageshadow="false"
- fit-margin-top="0"
- fit-margin-left="0"
- fit-margin-right="0"
- fit-margin-bottom="0"
- inkscape:window-width="2560"
- inkscape:window-height="1376"
- inkscape:window-x="0"
- inkscape:window-y="27"
- inkscape:window-maximized="1">
- <inkscape:grid
- type="xygrid"
- id="grid7931" />
- </sodipodi:namedview>
- <metadata
- id="metadata6540">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <dc:title></dc:title>
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <g
- inkscape:label="Layer 1"
- inkscape:groupmode="layer"
- id="layer1"
- transform="translate(180,-470.14793)">
- <path
- style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#4a90d9;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
- d="M 38.271484 6.0039062 C 37.981892 5.9956378 37.692703 6.0019094 37.40625 6.0214844 C 34.246377 6.2374271 31.332975 8.1249345 29.902344 11.082031 C 29.173793 10.990041 28.447857 10.978702 27.738281 11.0625 C 24.36672 11.460668 21.373919 13.762084 20.242188 17.148438 L 12 17.148438 L 12 10.148438 L 2 19.648438 L 12 29.148438 L 12 22.148438 L 20.048828 22.148438 C 20.694441 24.742195 22.473591 26.994506 25 28.162109 L 25 47 L 24 47 L 24 39.185547 C 24 36.866788 22.215997 35 20 35 C 17.784003 35 16 36.866788 16 39.185547 L 16 47 L 16 55.814453 L 16 60 L 20 60 L 45 60 L 56 60 C 58.215997 60 60 58.133212 60 55.814453 L 60 43.185547 L 60 34.185547 C 60 31.866788 58.215997 30 56 30 C 53.784003 30 52 31.866788 52 34.185547 L 52 39 L 51 39 L 51 28.185547 C 51 25.866788 49.215997 24 47 24 C 44.784003 24 43 25.866788 43 28.185547 L 43 39 L 42 39 L 42 23.042969 C 44.136586 21.978813 45.853243 20.084457 46.603516 17.640625 C 48.028796 12.998095 45.481769 8.0270562 40.880859 6.4726562 C 40.018187 6.1812063 39.140263 6.0287116 38.271484 6.0039062 z M 38.171875 8.9980469 C 38.752124 9.0164906 39.339992 9.1204781 39.919922 9.3164062 C 43.012882 10.361346 44.694478 13.640769 43.736328 16.761719 C 43.402083 17.85044 42.787396 18.769252 42 19.474609 L 42 15.185547 C 42 12.866788 40.215997 11 38 11 C 35.784003 11 34 12.866788 34 15.185547 L 34 22.945312 C 33.72503 23.436938 33.386634 23.876948 33 24.261719 L 33 20.185547 C 33 17.866788 31.215997 16 29 16 C 26.784003 16 25 17.866788 25 20.185547 L 25 24.666016 C 23.150282 23.179661 22.297135 20.683826 23.027344 18.265625 C 23.981604 15.105485 27.261604 13.320305 30.433594 14.234375 A 1.50015 1.50015 0 0 0 32.361328 12.945312 A 1.50015 1.50015 0 0 0 32.371094 12.921875 C 33.289974 10.433529 35.657461 8.9181241 38.171875 8.9980469 z M 34 27.302734 L 34 39 L 33 39 L 33 27.925781 C 33.346618 27.7409 33.679606 27.531269 34 27.302734 z "
- transform="translate(-180,470.14793)"
- id="rect7308" />
- <g
- style="display:inline"
- transform="translate(80,114.14791)"
- id="g7391">
- <g
- id="g7393">
- <rect
- rx="3.999995"
- ry="4.1854858"
- y="391"
- x="-324"
- height="24.999994"
- width="7.99999"
- id="rect7395"
- style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#4a90d9;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
- <rect
- style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#4a90d9;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
- id="rect7397"
- width="7.99999"
- height="43.999989"
- x="-315"
- y="372.00003"
- ry="4.1854858"
- rx="3.999995" />
- <rect
- rx="3.999995"
- ry="4.1854858"
- y="367"
- x="-306"
- height="49.000015"
- width="7.99999"
- id="rect7399"
- style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#4a90d9;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
- <rect
- style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#4a90d9;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
- id="rect7401"
- width="7.99999"
- height="36.000011"
- x="-297"
- y="380"
- ry="4.1854858"
- rx="3.999995" />
- <rect
- rx="3.999995"
- ry="4.1854858"
- y="386"
- x="-288"
- height="30.000006"
- width="7.99999"
- id="rect7403"
- style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#4a90d9;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
- <rect
- style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#4a90d9;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
- id="rect7405"
- width="28.999994"
- height="12.99999"
- x="-324"
- y="403" />
- <rect
- style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#4a90d9;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
- id="rect7407"
- width="34.999985"
- height="21"
- x="-315"
- y="395"
- ry="4.1854858"
- rx="3.999995" />
- <path
- sodipodi:open="true"
- d="m -309.03562,368.40192 a 7.4999938,7.5000024 0 0 1 9.43617,-4.50737 7.4999938,7.5000024 0 0 1 4.76917,9.30661 7.4999938,7.5000024 0 0 1 -9.16976,5.02725"
- sodipodi:end="1.8407347"
- sodipodi:start="3.4953343"
- sodipodi:ry="7.5000024"
- sodipodi:rx="7.4999938"
- sodipodi:cy="371"
- sodipodi:cx="-302"
- sodipodi:type="arc"
- id="path7409"
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#000000;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
- <path
- sodipodi:open="true"
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#000000;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
- id="path7411"
- sodipodi:type="arc"
- sodipodi:cx="-311.22797"
- sodipodi:cy="375.99963"
- sodipodi:rx="7.4999938"
- sodipodi:ry="7.5000024"
- sodipodi:start="0.31864739"
- sodipodi:end="4.9929531"
- d="m -304.10552,378.34925 a 7.4999938,7.5000024 0 0 1 -9.38146,4.80209 7.4999938,7.5000024 0 0 1 -4.92078,-9.31976 7.4999938,7.5000024 0 0 1 9.25653,-5.03869" />
- </g>
- </g>
- <path
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:6;marker:none;enable-background:accumulate"
- d="m -248,499.29695 -10,-9.5 10,-9.5 z"
- id="path7413"
- inkscape:connector-curvature="0"
- sodipodi:nodetypes="cccc" />
- <rect
- transform="scale(-1,-1)"
- style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#4a90d9;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
- id="rect7415"
- width="13.061281"
- height="4.9999938"
- x="238.62494"
- y="-492.29697" />
- </g>
-</svg>
diff --git a/examples/adw-1/adw1-demo/icons/hicolor/scalable/actions/gesture-touchpad-swipe-back-symbolic.svg b/examples/adw-1/adw1-demo/icons/hicolor/scalable/actions/gesture-touchpad-swipe-back-symbolic.svg
deleted file mode 100644
index e27b4b1..0000000
--- a/examples/adw-1/adw1-demo/icons/hicolor/scalable/actions/gesture-touchpad-swipe-back-symbolic.svg
+++ /dev/null
@@ -1,179 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:cc="http://creativecommons.org/ns#"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns="http://www.w3.org/2000/svg"
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- width="64"
- height="64"
- viewBox="0 0 64 64.000001"
- id="svg6535"
- version="1.1"
- inkscape:version="0.91 r13725"
- sodipodi:docname="two-finger-swipe-right.svg">
- <defs
- id="defs6537" />
- <sodipodi:namedview
- id="base"
- pagecolor="#ffffff"
- bordercolor="#666666"
- borderopacity="1.0"
- inkscape:pageopacity="0.0"
- inkscape:pageshadow="2"
- inkscape:zoom="1"
- inkscape:cx="15.562966"
- inkscape:cy="0.15090121"
- inkscape:document-units="px"
- inkscape:current-layer="layer1"
- showgrid="false"
- units="px"
- inkscape:showpageshadow="false"
- fit-margin-top="0"
- fit-margin-left="0"
- fit-margin-right="0"
- fit-margin-bottom="0"
- inkscape:window-width="2560"
- inkscape:window-height="1376"
- inkscape:window-x="0"
- inkscape:window-y="27"
- inkscape:window-maximized="1">
- <inkscape:grid
- type="xygrid"
- id="grid7931" />
- </sodipodi:namedview>
- <metadata
- id="metadata6540">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <dc:title></dc:title>
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <g
- inkscape:label="Layer 1"
- inkscape:groupmode="layer"
- id="layer1"
- transform="translate(180,-470.14793)">
- <path
- style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#4a90d9;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
- d="m -129,475.29637 0,7 -14.48047,0 c -0.8685,-2.58098 -2.88029,-4.74387 -5.63867,-5.67578 -1.15023,-0.3886 -2.3288,-0.52948 -3.47461,-0.45118 -3.16004,0.21596 -6.07335,2.10345 -7.50391,5.06055 -0.72859,-0.0926 -1.45444,-0.10529 -2.16406,-0.0215 -3.45482,0.40801 -6.51775,2.81143 -7.58203,6.33594 -1.30748,4.32992 0.83762,8.91584 4.84375,10.76757 l 0,18.83594 -1,0 0,-7.81445 c 0,-2.31876 -1.784,-4.18555 -4,-4.18555 -2.216,0 -4,1.86679 -4,4.18555 l 0,7.81445 0,8.81445 0,4.18555 4,0 25,0 11,0 c 2.216,0 4,-1.86679 4,-4.18555 l 0,-12.6289 0,-9 c 0,-2.31876 -1.784,-4.18555 -4,-4.18555 -2.216,0 -4,1.86679 -4,4.18555 l 0,4.81445 -1,0 0,-10.81445 c 0,-2.31876 -1.784,-4.18555 -4,-4.18555 -2.216,0 -4,1.86679 -4,4.18555 l 0,10.81445 -1,0 0,-15.95703 c 2.13659,-1.06416 3.85324,-2.95852 4.60352,-5.40235 0.0502,-0.16362 0.0846,-0.32791 0.125,-0.49218 l 14.27148,0 0,7 10,-9.5 -10,-9.5 z m -22.82812,3.84961 c 0.58024,0.0183 1.16811,0.12047 1.74804,0.3164 2.47175,0.83508 4.03799,3.09857 4.08008,5.56641 l 0,0.23242 c -0.012,0.54544 -0.0952,1.09784 -0.26367,1.64649 -0.33419,1.08853 -0.94913,2.00757 -1.73633,2.71289 l 0,-4.28711 c 0,-2.31876 -1.784,-4.18555 -4,-4.18555 -2.216,0 -4,1.86679 -4,4.18555 l 0,7.75976 c -0.27497,0.49163 -0.61337,0.93164 -1,1.31641 l 0,-4.07617 c 0,-2.31876 -1.784,-4.18555 -4,-4.18555 -2.216,0 -4,1.86679 -4,4.18555 l 0,4.48242 c -1.84972,-1.48636 -2.70286,-3.98414 -1.97266,-6.40235 0.95426,-3.16014 4.23426,-4.94531 7.40625,-4.03125 a 1.50015,1.50015 0 0 0 1.92774,-1.28906 1.5004025,1.5004025 0 0 0 0.01,-0.0234 c 0.91888,-2.48834 3.28636,-4.00326 5.80078,-3.92383 z M -156,497.45066 l 0,11.69727 -1,0 0,-11.07227 c 0.34667,-0.1849 0.67956,-0.39643 1,-0.625 z"
- id="rect6513"
- inkscape:connector-curvature="0" />
- <g
- id="g7304"
- transform="translate(18,114.14791)"
- style="display:inline">
- <g
- id="g7306">
- <rect
- style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#4a90d9;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
- id="rect7308"
- width="7.99999"
- height="24.999994"
- x="-324"
- y="391"
- ry="4.1854858"
- rx="3.999995" />
- <rect
- rx="3.999995"
- ry="4.1854858"
- y="372.00003"
- x="-315"
- height="43.999989"
- width="7.99999"
- id="rect7310"
- style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#4a90d9;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
- <rect
- style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#4a90d9;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
- id="rect7312"
- width="7.99999"
- height="49.000015"
- x="-306"
- y="367"
- ry="4.1854858"
- rx="3.999995" />
- <rect
- rx="3.999995"
- ry="4.1854858"
- y="380"
- x="-297"
- height="36.000011"
- width="7.99999"
- id="rect7314"
- style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#4a90d9;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
- <rect
- style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#4a90d9;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
- id="rect7316"
- width="7.99999"
- height="30.000006"
- x="-288"
- y="386"
- ry="4.1854858"
- rx="3.999995" />
- <rect
- y="403"
- x="-324"
- height="12.99999"
- width="28.999994"
- id="rect7318"
- style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#4a90d9;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
- <rect
- rx="3.999995"
- ry="4.1854858"
- y="395"
- x="-315"
- height="21"
- width="34.999985"
- id="rect7320"
- style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#4a90d9;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
- <path
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#000000;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
- id="path7322"
- sodipodi:type="arc"
- sodipodi:cx="-302"
- sodipodi:cy="371"
- sodipodi:rx="7.4999938"
- sodipodi:ry="7.5000024"
- sodipodi:start="3.4953343"
- sodipodi:end="1.8407347"
- d="m -309.03562,368.40192 a 7.4999938,7.5000024 0 0 1 9.43617,-4.50737 7.4999938,7.5000024 0 0 1 4.76917,9.30661 7.4999938,7.5000024 0 0 1 -9.16976,5.02725"
- sodipodi:open="true" />
- <path
- d="m -304.10552,378.34925 a 7.4999938,7.5000024 0 0 1 -9.38146,4.80209 7.4999938,7.5000024 0 0 1 -4.92078,-9.31976 7.4999938,7.5000024 0 0 1 9.25653,-5.03869"
- sodipodi:end="4.9929531"
- sodipodi:start="0.31864739"
- sodipodi:ry="7.5000024"
- sodipodi:rx="7.4999938"
- sodipodi:cy="375.99963"
- sodipodi:cx="-311.22797"
- sodipodi:type="arc"
- id="path7324"
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;stroke:#000000;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
- sodipodi:open="true" />
- </g>
- </g>
- <path
- sodipodi:nodetypes="cccc"
- inkscape:connector-curvature="0"
- id="path7326"
- d="m -260.99992,494.29695 10,-9.5 -10,-9.5 z"
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:6;marker:none;enable-background:accumulate" />
- <rect
- y="-487.29697"
- x="-278"
- height="4.9999919"
- width="20.686279"
- id="rect7328"
- style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#4a90d9;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
- transform="scale(1,-1)" />
- </g>
-</svg>
diff --git a/examples/adw-1/adw1-demo/icons/hicolor/scalable/actions/gesture-touchscreen-swipe-back-symbolic-rtl.svg b/examples/adw-1/adw1-demo/icons/hicolor/scalable/actions/gesture-touchscreen-swipe-back-symbolic-rtl.svg
deleted file mode 100644
index a395bf5..0000000
--- a/examples/adw-1/adw1-demo/icons/hicolor/scalable/actions/gesture-touchscreen-swipe-back-symbolic-rtl.svg
+++ /dev/null
@@ -1,187 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:cc="http://creativecommons.org/ns#"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns="http://www.w3.org/2000/svg"
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- width="64"
- height="64"
- viewBox="0 0 64 64.000001"
- id="svg6535"
- version="1.1"
- inkscape:version="0.92.4 5da689c313, 2019-01-14"
- sodipodi:docname="gesture-palm-swipe-right-rtl-symbolic.svg">
- <defs
- id="defs6537" />
- <sodipodi:namedview
- id="base"
- pagecolor="#ffffff"
- bordercolor="#666666"
- borderopacity="1.0"
- inkscape:pageopacity="0.0"
- inkscape:pageshadow="2"
- inkscape:zoom="6.7670154"
- inkscape:cx="32.723254"
- inkscape:cy="14.119354"
- inkscape:document-units="px"
- inkscape:current-layer="layer1"
- showgrid="false"
- units="px"
- inkscape:showpageshadow="false"
- fit-margin-top="0"
- fit-margin-left="0"
- fit-margin-right="0"
- fit-margin-bottom="0"
- inkscape:window-width="1280"
- inkscape:window-height="1376"
- inkscape:window-x="1280"
- inkscape:window-y="27"
- inkscape:window-maximized="0"
- inkscape:object-paths="true"
- inkscape:snap-intersection-paths="true"
- inkscape:object-nodes="true"
- inkscape:snap-nodes="true"
- inkscape:snap-bbox="false"
- inkscape:bbox-paths="true"
- inkscape:bbox-nodes="true">
- <inkscape:grid
- type="xygrid"
- id="grid4193" />
- </sodipodi:namedview>
- <metadata
- id="metadata6540">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <dc:title></dc:title>
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <g
- inkscape:label="Layer 1"
- inkscape:groupmode="layer"
- id="layer1"
- transform="translate(180,-470.14793)">
- <path
- style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#4a90d9;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
- d="M 9.6542969 6.9921875 C 8.6081142 6.96848 7.5705827 7.347386 6.7871094 8.1308594 C 5.2201627 9.697806 5.2783584 12.278358 6.9179688 13.917969 L 10 17 L 10 7.0332031 C 9.8847052 7.0208034 9.7697279 6.9948033 9.6542969 6.9921875 z M 6.1171875 16.185547 C 5.0710043 16.16184 4.0354273 16.538791 3.2519531 17.322266 C 1.6850047 18.889214 1.7432022 21.471718 3.3828125 23.111328 L 10 29.728516 L 10 18.414062 L 9.0390625 17.453125 C 8.2192573 16.63332 7.1633707 16.209254 6.1171875 16.185547 z M 6.8242188 29.621094 C 5.778036 29.597386 4.7424577 29.974339 3.9589844 30.757812 C 2.3920377 32.324759 2.4502333 34.905312 4.0898438 36.544922 L 10 42.455078 L 10 31.142578 L 9.7460938 30.888672 C 8.9262885 30.068867 7.8704014 29.644801 6.8242188 29.621094 z "
- transform="translate(-180,470.14793)"
- id="rect7306" />
- <path
- style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.00000656px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- d="M 54 10 L 54 49 L 62 49 L 62 34 L 54 10 z "
- transform="translate(-180,470.14793)"
- id="path838" />
- <path
- style="opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.95433986;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:normal"
- d="M 10 7 L 10 57 L 12 57 L 12 7 L 10 7 z M 52 7 L 52 57 L 54 57 L 54 7 L 52 7 z "
- transform="translate(-180,470.14793)"
- id="rect869" />
- <path
- style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;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:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
- d="m -148,493.14844 c -4.95279,0 -9,4.0472 -9,9 0,4.95279 4.04721,9 9,9 4.95279,0 9,-4.04721 9,-9 0,-4.9528 -4.04721,-9 -9,-9 z m 0,3 c 3.33147,0 6,2.66852 6,6 0,3.33148 -2.66853,6 -6,6 -3.33147,0 -6,-2.66852 -6,-6 0,-3.33148 2.66853,-6 6,-6 z"
- id="ellipse7314"
- inkscape:connector-curvature="0" />
- <path
- style="opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:normal"
- d="m -148,498.14793 c -2.20914,0 -4,1.79086 -4,4 0.001,1.06041 0.42341,2.07695 1.17383,2.82617 l -0.002,0.002 22.17192,22.17183 H -122 c 2.216,0 4,-1.784 4,-4 v -8 c 0,-2.216 -1.784,-4 -4,-4 h -11.34375 l -11.78711,-11.78711 -0.041,-0.041 -0.002,0.002 c -0.74917,-0.75046 -1.76571,-1.17267 -2.82612,-1.17387 z"
- id="path831"
- inkscape:connector-curvature="0"
- sodipodi:nodetypes="ccccccsscccccc" />
- <path
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:6;marker:none;enable-background:accumulate"
- d="m -159,494.64792 -8,7.5 8,7.5 v -5 h 3.5 v -5 h -3.5 z"
- id="path7413"
- inkscape:connector-curvature="0"
- sodipodi:nodetypes="cccccccc" />
- <g
- id="g1107"
- transform="translate(-64)">
- <g
- id="g1080"
- transform="rotate(-45,-191.43501,474.81355)"
- style="fill:#000000;fill-opacity:1">
- <rect
- rx="3.999995"
- ry="4.1854858"
- y="490.14792"
- x="-185"
- height="34"
- width="7.99999"
- id="rect1074"
- style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#4a90d9;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
- <rect
- style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#4a90d9;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
- id="rect1076"
- width="7.999999"
- height="30"
- x="-194"
- y="494.14792"
- ry="4.1854858"
- rx="3.9999995" />
- <rect
- rx="3.999995"
- ry="4.1854858"
- y="504.14792"
- x="-203"
- height="20"
- width="7.99999"
- id="rect1078"
- style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#4a90d9;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
- </g>
- <path
- style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.00000656px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- d="m -134,480.14793 v 39 h 16.00021 v -15 l -8.00013,-24 z"
- id="path1082"
- inkscape:connector-curvature="0"
- sodipodi:nodetypes="cccccc" />
- <rect
- style="opacity:1;fill:#1a5fb4;fill-opacity:1;stroke:none;stroke-width:1.95433986;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:normal"
- id="rect1084"
- width="44"
- height="50"
- x="-170"
- y="477.14792" />
- <rect
- y="477.14792"
- x="-168"
- height="50"
- width="40"
- id="rect1086"
- style="opacity:1;fill:#26a269;fill-opacity:1;stroke:none;stroke-width:1.86338997;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:normal" />
- <ellipse
- cx="-148"
- cy="502.14792"
- rx="7.4999938"
- ry="7.5000024"
- id="ellipse1088"
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-opacity:1;stroke:#000000;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
- <path
- style="opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:normal"
- d="m -148,498.14793 c -2.20914,0 -4,1.79086 -4,4 0.001,1.06041 0.42341,2.07695 1.17383,2.82617 l -0.002,0.002 22.17192,22.17183 H -122 c 2.216,0 4,-1.784 4,-4 v -8 c 0,-2.216 -1.784,-4 -4,-4 h -11.34375 l -11.78711,-11.78711 -0.041,-0.041 -0.002,0.002 c -0.74917,-0.75046 -1.76571,-1.17267 -2.82612,-1.17387 z"
- id="path1090"
- inkscape:connector-curvature="0"
- sodipodi:nodetypes="ccccccsscccccc" />
- <path
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:6;marker:none;enable-background:accumulate"
- d="m -159,494.64792 -8,7.5 8,7.5 v -5 h 3.5 v -5 h -3.5 z"
- id="path1092"
- inkscape:connector-curvature="0"
- sodipodi:nodetypes="cccccccc" />
- <path
- inkscape:connector-curvature="0"
- id="path1094"
- d="m -137,494.64792 8,7.5 -8,7.5 v -5 h -3.5 v -5 h 3.5 z"
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:6;marker:none;enable-background:accumulate"
- sodipodi:nodetypes="cccccccc" />
- </g>
- </g>
-</svg>
diff --git a/examples/adw-1/adw1-demo/icons/hicolor/scalable/actions/gesture-touchscreen-swipe-back-symbolic.svg b/examples/adw-1/adw1-demo/icons/hicolor/scalable/actions/gesture-touchscreen-swipe-back-symbolic.svg
deleted file mode 100644
index 74b3e39..0000000
--- a/examples/adw-1/adw1-demo/icons/hicolor/scalable/actions/gesture-touchscreen-swipe-back-symbolic.svg
+++ /dev/null
@@ -1,187 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
- xmlns:dc="http://purl.org/dc/elements/1.1/"
- xmlns:cc="http://creativecommons.org/ns#"
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:svg="http://www.w3.org/2000/svg"
- xmlns="http://www.w3.org/2000/svg"
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- width="64"
- height="64"
- viewBox="0 0 64 64.000001"
- id="svg6535"
- version="1.1"
- inkscape:version="0.92.4 5da689c313, 2019-01-14"
- sodipodi:docname="gesture-palm-swipe-right-symbolic.svg">
- <defs
- id="defs6537" />
- <sodipodi:namedview
- id="base"
- pagecolor="#ffffff"
- bordercolor="#666666"
- borderopacity="1.0"
- inkscape:pageopacity="0.0"
- inkscape:pageshadow="2"
- inkscape:zoom="6.7670154"
- inkscape:cx="32.723254"
- inkscape:cy="14.119354"
- inkscape:document-units="px"
- inkscape:current-layer="layer1"
- showgrid="false"
- units="px"
- inkscape:showpageshadow="false"
- fit-margin-top="0"
- fit-margin-left="0"
- fit-margin-right="0"
- fit-margin-bottom="0"
- inkscape:window-width="1280"
- inkscape:window-height="1376"
- inkscape:window-x="1280"
- inkscape:window-y="27"
- inkscape:window-maximized="0"
- inkscape:object-paths="true"
- inkscape:snap-intersection-paths="true"
- inkscape:object-nodes="true"
- inkscape:snap-nodes="true"
- inkscape:snap-bbox="false"
- inkscape:bbox-paths="true"
- inkscape:bbox-nodes="true">
- <inkscape:grid
- type="xygrid"
- id="grid4193" />
- </sodipodi:namedview>
- <metadata
- id="metadata6540">
- <rdf:RDF>
- <cc:Work
- rdf:about="">
- <dc:format>image/svg+xml</dc:format>
- <dc:type
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
- <dc:title />
- </cc:Work>
- </rdf:RDF>
- </metadata>
- <g
- inkscape:label="Layer 1"
- inkscape:groupmode="layer"
- id="layer1"
- transform="translate(180,-470.14793)">
- <path
- style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#4a90d9;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
- d="M 9.6542969 6.9921875 C 8.6081142 6.96848 7.5705827 7.347386 6.7871094 8.1308594 C 5.2201627 9.697806 5.2783584 12.278358 6.9179688 13.917969 L 10 17 L 10 7.0332031 C 9.8847052 7.0208034 9.7697279 6.9948033 9.6542969 6.9921875 z M 6.1171875 16.185547 C 5.0710043 16.16184 4.0354273 16.538791 3.2519531 17.322266 C 1.6850047 18.889214 1.7432022 21.471718 3.3828125 23.111328 L 10 29.728516 L 10 18.414062 L 9.0390625 17.453125 C 8.2192573 16.63332 7.1633707 16.209254 6.1171875 16.185547 z M 6.8242188 29.621094 C 5.778036 29.597386 4.7424577 29.974339 3.9589844 30.757812 C 2.3920377 32.324759 2.4502333 34.905312 4.0898438 36.544922 L 10 42.455078 L 10 31.142578 L 9.7460938 30.888672 C 8.9262885 30.068867 7.8704014 29.644801 6.8242188 29.621094 z "
- transform="translate(-180,470.14793)"
- id="rect7306" />
- <path
- style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.00000656px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- d="M 54 10 L 54 49 L 62 49 L 62 34 L 54 10 z "
- transform="translate(-180,470.14793)"
- id="path838" />
- <path
- style="opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.95433986;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:normal"
- d="M 10 7 L 10 57 L 12 57 L 12 7 L 10 7 z M 52 7 L 52 57 L 54 57 L 54 7 L 52 7 z "
- transform="translate(-180,470.14793)"
- id="rect869" />
- <path
- style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;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:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
- d="m -148,493.14844 c -4.95279,0 -9,4.0472 -9,9 0,4.95279 4.04721,9 9,9 4.95279,0 9,-4.04721 9,-9 0,-4.9528 -4.04721,-9 -9,-9 z m 0,3 c 3.33147,0 6,2.66852 6,6 0,3.33148 -2.66853,6 -6,6 -3.33147,0 -6,-2.66852 -6,-6 0,-3.33148 2.66853,-6 6,-6 z"
- id="ellipse7314"
- inkscape:connector-curvature="0" />
- <path
- style="opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:normal"
- d="m -148,498.14793 c -2.20914,0 -4,1.79086 -4,4 0.001,1.06041 0.42341,2.07695 1.17383,2.82617 l -0.002,0.002 22.17192,22.17183 H -122 c 2.216,0 4,-1.784 4,-4 v -8 c 0,-2.216 -1.784,-4 -4,-4 h -11.34375 l -11.78711,-11.78711 -0.041,-0.041 -0.002,0.002 c -0.74917,-0.75046 -1.76571,-1.17267 -2.82612,-1.17387 z"
- id="path831"
- inkscape:connector-curvature="0"
- sodipodi:nodetypes="ccccccsscccccc" />
- <path
- inkscape:connector-curvature="0"
- id="path906"
- d="m -137,494.64792 8,7.5 -8,7.5 v -5 h -3.5 v -5 h 3.5 z"
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:6;marker:none;enable-background:accumulate"
- sodipodi:nodetypes="cccccccc" />
- <g
- id="g1107"
- transform="translate(-64)">
- <g
- id="g1080"
- transform="rotate(-45,-191.43501,474.81355)"
- style="fill:#000000;fill-opacity:1">
- <rect
- rx="3.999995"
- ry="4.1854858"
- y="490.14792"
- x="-185"
- height="34"
- width="7.99999"
- id="rect1074"
- style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#4a90d9;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
- <rect
- style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#4a90d9;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
- id="rect1076"
- width="7.999999"
- height="30"
- x="-194"
- y="494.14792"
- ry="4.1854858"
- rx="3.9999995" />
- <rect
- rx="3.999995"
- ry="4.1854858"
- y="504.14792"
- x="-203"
- height="20"
- width="7.99999"
- id="rect1078"
- style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#4a90d9;stroke-width:0;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
- </g>
- <path
- style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.00000656px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
- d="m -134,480.14793 v 39 h 16.00021 v -15 l -8.00013,-24 z"
- id="path1082"
- inkscape:connector-curvature="0"
- sodipodi:nodetypes="cccccc" />
- <rect
- style="opacity:1;fill:#1a5fb4;fill-opacity:1;stroke:none;stroke-width:1.95433986;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:normal"
- id="rect1084"
- width="44"
- height="50"
- x="-170"
- y="477.14792" />
- <rect
- y="477.14792"
- x="-168"
- height="50"
- width="40"
- id="rect1086"
- style="opacity:1;fill:#26a269;fill-opacity:1;stroke:none;stroke-width:1.86338997;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:normal" />
- <ellipse
- cx="-148"
- cy="502.14792"
- rx="7.4999938"
- ry="7.5000024"
- id="ellipse1088"
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:none;fill-opacity:1;stroke:#000000;stroke-width:3;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate" />
- <path
- style="opacity:1;fill:#000000;fill-opacity:1;stroke:none;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:normal"
- d="m -148,498.14793 c -2.20914,0 -4,1.79086 -4,4 0.001,1.06041 0.42341,2.07695 1.17383,2.82617 l -0.002,0.002 22.17192,22.17183 H -122 c 2.216,0 4,-1.784 4,-4 v -8 c 0,-2.216 -1.784,-4 -4,-4 h -11.34375 l -11.78711,-11.78711 -0.041,-0.041 -0.002,0.002 c -0.74917,-0.75046 -1.76571,-1.17267 -2.82612,-1.17387 z"
- id="path1090"
- inkscape:connector-curvature="0"
- sodipodi:nodetypes="ccccccsscccccc" />
- <path
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:6;marker:none;enable-background:accumulate"
- d="m -159,494.64792 -8,7.5 8,7.5 v -5 h 3.5 v -5 h -3.5 z"
- id="path1092"
- inkscape:connector-curvature="0"
- sodipodi:nodetypes="cccccccc" />
- <path
- inkscape:connector-curvature="0"
- id="path1094"
- d="m -137,494.64792 8,7.5 -8,7.5 v -5 h -3.5 v -5 h 3.5 z"
- style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:6;marker:none;enable-background:accumulate"
- sodipodi:nodetypes="cccccccc" />
- </g>
- </g>
-</svg>
diff --git a/examples/adw-1/adw1-demo/icons/hicolor/scalable/actions/row-copy-symbolic.svg b/examples/adw-1/adw1-demo/icons/hicolor/scalable/actions/row-copy-symbolic.svg
deleted file mode 100644
index de2f772..0000000
--- a/examples/adw-1/adw1-demo/icons/hicolor/scalable/actions/row-copy-symbolic.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<svg height="16px" viewBox="0 0 16 16" width="16px" xmlns="http://www.w3.org/2000/svg">
- <g fill="#2e3436">
- <path d="m 6 16 h 6 l 3 -3 v -7 c 0 -0.550781 -0.449219 -1 -1 -1 h -8 c -0.550781 0 -1 0.449219 -1 1 v 9 c 0 0.550781 0.449219 1 1 1 z m 0 0"/>
- <path d="m 2 12 h 2 v -6 c 0 -1.105469 0.894531 -2 2 -2 h 5 v -2 c 0 -0.550781 -0.449219 -1 -1 -1 h -8 c -0.550781 0 -0.996094 0.445312 -0.996094 0.996094 l -0.003906 9.003906 c 0 0.550781 0.449219 1 1 1 z m 0 0"/>
- </g>
-</svg>
diff --git a/examples/adw-1/adw1-demo/icons/hicolor/scalable/actions/widget-flap-symbolic.svg b/examples/adw-1/adw1-demo/icons/hicolor/scalable/actions/widget-flap-symbolic.svg
deleted file mode 100644
index 08600fa..0000000
--- a/examples/adw-1/adw1-demo/icons/hicolor/scalable/actions/widget-flap-symbolic.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16px" height="16px" viewBox="0 0 16 16" version="1.1">
-<g id="surface390549">
-<path style=" stroke:none;fill-rule:nonzero;fill:rgb(18.039216%,20.392157%,21.176471%);fill-opacity:0.35;" d="M 6 11.972656 L 6 3.972656 L 3 3.972656 L 3 11.972656 Z M 6 11.972656 "/>
-<path style=" stroke:none;fill-rule:nonzero;fill:rgb(18.039216%,20.392157%,21.176471%);fill-opacity:1;" d="M 8 2 L 9 2 L 9 14 L 8 14 Z M 3 1.996094 C 1.910156 1.996094 1 2.90625 1 3.996094 L 1 11.972656 C 1 13.0625 1.910156 13.972656 3 13.972656 L 7 13.972656 L 7 1.996094 Z M 10 1.996094 L 10 13.972656 L 11 13.972656 L 11 1.996094 Z M 11.96875 1.996094 L 11.96875 3.996094 L 13 3.996094 L 13 11.972656 L 11.96875 11.972656 L 11.96875 13.972656 L 13 13.972656 C 13.96875 13.972656 15 13.046875 15 11.972656 L 15 3.996094 C 15 2.90625 14.089844 1.996094 13 1.996094 Z M 3 3.996094 L 6 3.996094 L 6 11.972656 L 3 11.972656 Z M 3 3.996094 "/>
-</g>
-</svg>
diff --git a/examples/adw-1/adw1-demo/icons/hicolor/scalable/actions/widget-leaflet-symbolic.svg b/examples/adw-1/adw1-demo/icons/hicolor/scalable/actions/widget-leaflet-symbolic.svg
deleted file mode 100644
index fdd9935..0000000
--- a/examples/adw-1/adw1-demo/icons/hicolor/scalable/actions/widget-leaflet-symbolic.svg
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<svg
- width="16px"
- height="16px"
- viewBox="0 0 16 16"
- version="1.1"
- id="svg7"
- sodipodi:docname="widget-leaflet-symbolic.svg"
- inkscape:version="1.1 (c68e22c387, 2021-05-23)"
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
- xmlns="http://www.w3.org/2000/svg"
- xmlns:svg="http://www.w3.org/2000/svg">
- <defs
- id="defs11" />
- <sodipodi:namedview
- id="namedview9"
- pagecolor="#ffffff"
- bordercolor="#666666"
- borderopacity="1.0"
- inkscape:pageshadow="2"
- inkscape:pageopacity="0.0"
- inkscape:pagecheckerboard="0"
- showgrid="false"
- inkscape:zoom="54.5625"
- inkscape:cx="8"
- inkscape:cy="8.0091638"
- inkscape:window-width="1920"
- inkscape:window-height="1011"
- inkscape:window-x="0"
- inkscape:window-y="0"
- inkscape:window-maximized="1"
- inkscape:current-layer="svg7" />
- <g
- id="surface390556">
- <path
- style=" stroke:none;fill-rule:nonzero;fill:rgb(18.039216%,20.392157%,21.176471%);fill-opacity:1;"
- d="M 3 1.996094 C 1.910156 1.996094 1 2.90625 1 3.996094 L 1 11.972656 C 1 13.0625 1.910156 13.972656 3 13.972656 L 9 13.972656 L 9 1.996094 Z M 10 1.996094 L 10 3.996094 L 13 3.996094 L 13 11.972656 L 10 11.972656 L 10 13.972656 L 13 13.972656 C 13.96875 13.972656 15 13.046875 15 11.972656 L 15 3.996094 C 15 2.90625 14.089844 1.996094 13 1.996094 Z M 3 3.996094 L 8 3.996094 L 8 11.972656 L 3 11.972656 Z M 3 3.996094 "
- id="path2" />
- <path
- style="color:#000000;fill:#2e3335;stroke-linecap:round;-inkscape-stroke:none"
- d="m 25.638672,304.95898 a 0.5,0.5 0 0 0 0,0.70704 l 2.353515,2.35351 2.353516,-2.35351 a 0.5,0.5 0 0 0 0,-0.70704 0.5,0.5 0 0 0 -0.707031,0 l -1.646485,1.64649 -1.646484,-1.64649 a 0.5,0.5 0 0 0 -0.707031,0 z"
- id="path4"
- transform="matrix(0.000000000000000061,1,-1,0.000000000000000061,311.999939,-19.992126)" />
- </g>
-</svg>
diff --git a/examples/adw-1/adw1-demo/icons/hicolor/scalable/actions/widget-navigation-view-symbolic.svg b/examples/adw-1/adw1-demo/icons/hicolor/scalable/actions/widget-navigation-view-symbolic.svg
new file mode 100644
index 0000000..c6149af
--- /dev/null
+++ b/examples/adw-1/adw1-demo/icons/hicolor/scalable/actions/widget-navigation-view-symbolic.svg
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" height="16px" viewBox="0 0 16 16" width="16px"><path d="m 11.964844 1.011719 c 1.664062 0 3.035156 1.371093 3.035156 3.035156 v 7.917969 c 0 1.664062 -1.371094 3.03125 -3.035156 3.03125 h -7.933594 v -2 h 7.933594 c 0.589844 0 1.035156 -0.441406 1.035156 -1.03125 v -7.917969 c 0 -0.589844 -0.445312 -1.035156 -1.035156 -1.035156 h -7.933594 v -2 z m -4.964844 2.996093 v 1 c 0 0.257813 -0.128906 0.527344 -0.3125 0.71875 l -1.28125 1.28125 h 4.59375 v 2 h -4.59375 l 1.28125 1.28125 c 0.183594 0.191407 0.3125 0.410157 0.3125 0.71875 v 1 h -1 c -0.308594 0 -0.550781 -0.089843 -0.75 -0.28125 l -3.65625 -3.71875 l 3.65625 -3.71875 c 0.199219 -0.191406 0.441406 -0.28125 0.75 -0.28125 z m 0 0"/></svg>
diff --git a/examples/adw-1/adw1-demo/icons/hicolor/scalable/actions/widget-split-views-symbolic-rtl.svg b/examples/adw-1/adw1-demo/icons/hicolor/scalable/actions/widget-split-views-symbolic-rtl.svg
new file mode 100644
index 0000000..3b6b6d4
--- /dev/null
+++ b/examples/adw-1/adw1-demo/icons/hicolor/scalable/actions/widget-split-views-symbolic-rtl.svg
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg height="16px" viewBox="0 0 16 16" width="16px" xmlns="http://www.w3.org/2000/svg">
+ <g fill="#2e3436">
+ <path d="m 9.5 14 v -12 h 5 v 12 z m 0 0" fill-opacity="0.35"/>
+ <path d="m 13 1 c 1.644531 0 3 1.355469 3 3 v 8 c 0 1.644531 -1.355469 3 -3 3 h -10 c -1.644531 0 -3 -1.355469 -3 -3 v -8 c 0 -1.644531 1.355469 -3 3 -3 z m 0 2 h -10 c -0.570312 0 -1 0.429688 -1 1 v 8 c 0 0.570312 0.429688 1 1 1 h 10 c 0.570312 0 1 -0.429688 1 -1 v -8 c 0 -0.570312 -0.429688 -1 -1 -1 z m 0 0"/>
+ <path d="m 10 2 h -1 v 12 h 1 z m 0 0"/>
+ </g>
+</svg>
diff --git a/examples/adw-1/adw1-demo/icons/hicolor/scalable/actions/widget-split-views-symbolic.svg b/examples/adw-1/adw1-demo/icons/hicolor/scalable/actions/widget-split-views-symbolic.svg
new file mode 100644
index 0000000..2d8bbec
--- /dev/null
+++ b/examples/adw-1/adw1-demo/icons/hicolor/scalable/actions/widget-split-views-symbolic.svg
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg height="16px" viewBox="0 0 16 16" width="16px" xmlns="http://www.w3.org/2000/svg">
+ <g fill="#2e3436">
+ <path d="m 6.5 14 v -12 h -5 v 12 z m 0 0" fill-opacity="0.35"/>
+ <path d="m 3 1 c -1.644531 0 -3 1.355469 -3 3 v 8 c 0 1.644531 1.355469 3 3 3 h 10 c 1.644531 0 3 -1.355469 3 -3 v -8 c 0 -1.644531 -1.355469 -3 -3 -3 z m 0 2 h 10 c 0.570312 0 1 0.429688 1 1 v 8 c 0 0.570312 -0.429688 1 -1 1 h -10 c -0.570312 0 -1 -0.429688 -1 -1 v -8 c 0 -0.570312 0.429688 -1 1 -1 z m 0 0"/>
+ <path d="m 6 2 h 1 v 12 h -1 z m 0 0"/>
+ </g>
+</svg>
diff --git a/examples/adw-1/adw1-demo/leaflet.scm b/examples/adw-1/adw1-demo/leaflet.scm
deleted file mode 100644
index 8827a7d..0000000
--- a/examples/adw-1/adw1-demo/leaflet.scm
+++ /dev/null
@@ -1,132 +0,0 @@
-;; -*- mode: scheme; coding: utf-8 -*-
-
-;;;;
-;;;; Copyright (C) 2023
-;;;; Free Software Foundation, Inc.
-
-;;;; This file is part of GNU G-Golf
-
-;;;; GNU G-Golf is free software; you can redistribute it and/or modify
-;;;; it under the terms of the GNU Lesser General Public License as
-;;;; published by the Free Software Foundation; either version 3 of the
-;;;; License, or (at your option) any later version.
-
-;;;; GNU G-Golf is distributed in the hope that it will be useful, but
-;;;; WITHOUT ANY WARRANTY; without even the implied warranty of
-;;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-;;;; Lesser General Public License for more details.
-
-;;;; You should have received a copy of the GNU Lesser General Public
-;;;; License along with GNU G-Golf. If not, see
-;;;; <https://www.gnu.org/licenses/lgpl.html>.
-;;;;
-
-;;; Commentary:
-
-;;; Code:
-
-
-(define-module (adw1-demo leaflet)
- #:use-module (oop goops)
- #:use-module (g-golf)
-
- #:duplicates (merge-generics
- replace
- warn-override-core
- warn
- last)
-
- #:export (<adw-demo-page-leaflet>
- %adw-leaflet-transition-type))
-
-
-(g-export !transition-type
- !transition-row
- !action-row)
-
-
-(eval-when (expand load eval)
- (g-irepository-require "Gtk" #:version "4.0")
- (for-each (lambda (name)
- (gi-import-by-name "Gtk" name))
- '("ClosureExpression"))
- (g-irepository-require "Adw" #:version "1")
- (for-each (lambda (name)
- (gi-import-by-name "Adw" name))
- '("Bin"
- "Clamp"
- "PreferencesGroup"
- "StatusPage"
- "ComboRow"
- "ActionRow"
- "EnumListModel"
- "EnumListItem"
- "LeafletTransitionType")))
-
-
-(define %adw-leaflet-transition-type #f)
-
-(eval-when (expand load eval)
- (set! %adw-leaflet-transition-type
- (gi-cache-ref 'enum 'adw-leaflet-transition-type)))
-
-
-(define-class <adw-demo-page-leaflet> (<adw-bin>)
- ;; slots
- (transition-type #:g-param `(enum
- #:type ,%adw-leaflet-transition-type)
- #:accessor !transition-type)
- (transition-row #:child-id "transition-row" #:accessor !transition-row)
- (action-row #:child-id "action-row" #:accessor !action-row)
- ;; class options
- #:template (string-append (dirname (current-filename))
- "/ui/leaflet.ui")
- #:child-ids '("transition-row"
- "action-row")
- #:g-signal '(next-page ;; name
- none ;; return-type
- () ;; param-types
- (run-first))) ;; signal flags
-
-(define-method (initialize (self <adw-demo-page-leaflet>) initargs)
- (next-method)
- ;; AdwComboRow requires their expression property to be set, it is
- ;; used to bind strings to the labels produced by the default factory
- ;; (if AdwComboRow:factory is not set).
- (let ((transition-row (!transition-row self))
- (action-row (!action-row self))
- (closure (transition-name-closure)))
-
- (set! (!expression transition-row)
- (make-expression 'string closure '()))
-
- (bind-property transition-row
- "selected"
- self
- "transition-type"
- '(sync-create bidirectional))
-
- (connect action-row
- "activated"
- (lambda (r)
- (emit self 'next-page)))))
-
-(define (make-expression type closure flags)
- (gtk-closure-expression-new (symbol->g-type type)
- (!g-closure closure)
- flags))
-
-(define (get-transition-name adw-enum-list-item)
- (case (!value adw-enum-list-item)
- ((0) "Over") ;; later (G_ "Over")
- ((1) "Under") ;; ...
- ((2) "Slide")
- (else
- (scm-error 'unlikely #f "This instance is a ghost: ~S"
- (list adw-enum-list-item) #f))))
-
-(define (transition-name-closure)
- (make <closure>
- #:function get-transition-name
- #:return-type 'string
- #:param-types (list <adw-enum-list-item>)))
diff --git a/examples/adw-1/adw1-demo/navigation-view-demo-window.scm b/examples/adw-1/adw1-demo/navigation-view-demo-window.scm
new file mode 100644
index 0000000..05303f5
--- /dev/null
+++ b/examples/adw-1/adw1-demo/navigation-view-demo-window.scm
@@ -0,0 +1,56 @@
+;; -*- mode: scheme; coding: utf-8 -*-
+
+;;;;
+;;;; Copyright (C) 2023
+;;;; Free Software Foundation, Inc.
+
+;;;; This file is part of GNU G-Golf
+
+;;;; GNU G-Golf is free software; you can redistribute it and/or modify
+;;;; it under the terms of the GNU Lesser General Public License as
+;;;; published by the Free Software Foundation; either version 3 of the
+;;;; License, or (at your option) any later version.
+
+;;;; GNU G-Golf is distributed in the hope that it will be useful, but
+;;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+;;;; Lesser General Public License for more details.
+
+;;;; You should have received a copy of the GNU Lesser General Public
+;;;; License along with GNU G-Golf. If not, see
+;;;; <https://www.gnu.org/licenses/lgpl.html>.
+;;;;
+
+;;; Commentary:
+
+;;; Code:
+
+
+(define-module (adw1-demo navigation-view-demo-window)
+ #:use-module (oop goops)
+ #:use-module (g-golf)
+
+ #:duplicates (merge-generics
+ replace
+ warn-override-core
+ warn
+ last)
+
+ #:export (<adw-navigation-view-demo-window>))
+
+
+#;(g-export )
+
+
+(eval-when (expand load eval)
+ (g-irepository-require "Adw" #:version "1")
+ (for-each (lambda (name)
+ (gi-import-by-name "Adw" name))
+ '("Window")))
+
+
+(define-class <adw-navigation-view-demo-window> (<adw-window>)
+ ;; slots
+ ;; class options
+ #:template (string-append (dirname (current-filename))
+ "/ui/navigation-view-demo-window.ui"))
diff --git a/examples/adw-1/adw1-demo/navigation-view.scm b/examples/adw-1/adw1-demo/navigation-view.scm
new file mode 100644
index 0000000..0e1f04f
--- /dev/null
+++ b/examples/adw-1/adw1-demo/navigation-view.scm
@@ -0,0 +1,78 @@
+;; -*- mode: scheme; coding: utf-8 -*-
+
+;;;;
+;;;; Copyright (C) 2023
+;;;; Free Software Foundation, Inc.
+
+;;;; This file is part of GNU G-Golf
+
+;;;; GNU G-Golf is free software; you can redistribute it and/or modify
+;;;; it under the terms of the GNU Lesser General Public License as
+;;;; published by the Free Software Foundation; either version 3 of the
+;;;; License, or (at your option) any later version.
+
+;;;; GNU G-Golf is distributed in the hope that it will be useful, but
+;;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+;;;; Lesser General Public License for more details.
+
+;;;; You should have received a copy of the GNU Lesser General Public
+;;;; License along with GNU G-Golf. If not, see
+;;;; <https://www.gnu.org/licenses/lgpl.html>.
+;;;;
+
+;;; Commentary:
+
+;;; Code:
+
+
+(define-module (adw1-demo navigation-view)
+ #:use-module (oop goops)
+ #:use-module (g-golf)
+ #:use-module (adw1-demo navigation-view-demo-window)
+
+ #:duplicates (merge-generics
+ replace
+ warn-override-core
+ warn
+ last)
+
+ #:export (<adw-demo-page-navigation-view>))
+
+
+#;(g-export )
+
+
+(eval-when (expand load eval)
+ (g-irepository-require "Gtk" #:version "4.0")
+ (for-each (lambda (name)
+ (gi-import-by-name "Gtk" name))
+ '("Root"
+ "Button"))
+ (g-irepository-require "Adw" #:version "1")
+ (for-each (lambda (name)
+ (gi-import-by-name "Adw" name))
+ '("Bin")))
+
+
+(define-class <adw-demo-page-navigation-view> (<adw-bin>)
+ ;; slots
+ (navigation-view-button #:child-id "navigation-view-button"
+ #:accessor !navigation-view-button)
+ ;; class options
+ #:template (string-append (dirname (current-filename))
+ "/ui/navigation-view.ui")
+ #:child-ids '("navigation-view-button"))
+
+
+(define-method (initialize (self <adw-demo-page-navigation-view>) initargs)
+ (next-method)
+
+ (connect (!navigation-view-button self)
+ "clicked"
+ (lambda (b)
+ (let ((adw-navigation-view-demo-window
+ (make <adw-navigation-view-demo-window>)))
+ (set-transient-for adw-navigation-view-demo-window
+ (get-root self))
+ (present adw-navigation-view-demo-window)))))
diff --git a/examples/adw-1/adw1-demo/ui/leaflet.scm b/examples/adw-1/adw1-demo/ui/leaflet.scm
deleted file mode 100644
index 4e00860..0000000
--- a/examples/adw-1/adw1-demo/ui/leaflet.scm
+++ /dev/null
@@ -1,87 +0,0 @@
-;; -*- mode: sxml-ui; coding: utf-8 -*-
-
-;;;;
-;;;; Copyright (C) 2023
-;;;; Free Software Foundation, Inc.
-
-;;;; This file is part of GNU G-Golf
-
-;;;; GNU G-Golf is free software; you can redistribute it and/or modify
-;;;; it under the terms of the GNU Lesser General Public License as
-;;;; published by the Free Software Foundation; either version 3 of the
-;;;; License, or (at your option) any later version.
-
-;;;; GNU G-Golf is distributed in the hope that it will be useful, but
-;;;; WITHOUT ANY WARRANTY; without even the implied warranty of
-;;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-;;;; Lesser General Public License for more details.
-
-;;;; You should have received a copy of the GNU Lesser General Public
-;;;; License along with GNU G-Golf. If not, see
-;;;; <https://www.gnu.org/licenses/lgpl.html>.
-;;;;
-
-;;; Commentary:
-
-;;; Code:
-
-
-(use-modules (g-golf support sxml))
-
-
-(define %adw-combo-row
- '(object (@ (class "AdwComboRow")
- (id "transition-row"))
- (property (@ (name "title")
- (translatable "yes")) "Transition Type")
- (property (@ (name "subtitle")
- (translatable "yes")) "The type of transition to use when the leaflet adapts its size or when changing the visible child")
- ;; the binding is done in scheme, see (adw1-demo leaflet), as part
- ;; of the <adw-demo-page-leaflet>) initialize method
- #;(property (@ (name "selected")
- (bind-source "AdwDemoPageLeaflet")
- (bind-property "transition-type")
- (bind-flags "sync-create|bidirectional")))
- (property (@ (name "model"))
- (object (@ (class "AdwEnumListModel"))
- (property (@ (name "enum-type")) AdwLeafletTransitionType)))))
-
-
-(define %adw-action-row
- '(object (@ (class "AdwActionRow")
- (id "action-row"))
- (property (@ (name "title")
- (translatable "yes")) "Go to the next page of the leaflet")
- (property (@ (name "use-underline")) True)
- (property (@ (name "activatable")) True)
- ;; signal - activated - swapped
- (child
- (object (@ (class "GtkImage"))
- (property (@ (name "icon-name")) go-next-symbolic)))))
-
-
-(define %leaflet
- `(interface
- (requires (@ (version "4.0") (lib "gtk")))
- (requires (@ (version "1.0") (lib "libadwaita")))
- (template (@ (class "AdwDemoPageLeaflet")
- (parent "AdwBin"))
- (property (@ (name "child"))
- (object (@ (class "AdwStatusPage"))
- (property (@ (name "icon-name")) widget-leaflet-symbolic)
- (property (@ (name "title")
- (translatable "yes")) Leaflet)
- (property (@ (name "description")
- (translatable "yes")) "A widget showing either all its children or only one, depending on the available space. This window is using a leaflet, you can control it with the settings below.")
- (property (@ (name "child"))
- (object (@ (class "AdwClamp"))
- (property (@ (name "child"))
- (object (@ (class "AdwPreferencesGroup"))
- (child ,%adw-combo-row)
- (child ,%adw-action-row))))))))))
-
-
-(define (make-ui)
- (sxml->ui %leaflet))
-
-
diff --git a/examples/adw-1/adw1-demo/ui/leaflet.ui b/examples/adw-1/adw1-demo/ui/leaflet.ui
deleted file mode 100644
index c90044c..0000000
--- a/examples/adw-1/adw1-demo/ui/leaflet.ui
+++ /dev/null
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<interface><requires version="4.0" lib="gtk" /><requires version="1.0" lib="libadwaita" /><template class="AdwDemoPageLeaflet" parent="AdwBin"><property name="child"><object class="AdwStatusPage"><property name="icon-name">widget-leaflet-symbolic</property><property name="title" translatable="yes">Leaflet</property><property name="description" translatable="yes">A widget showing either all its children or only one, depending on the available space. This window is using a leaflet, you can control it with the settings below.</property><property name="child"><object class="AdwClamp"><property name="child"><object class="AdwPreferencesGroup"><child><object class="AdwComboRow" id="transition-row"><property name="title" translatable="yes">Transition Type</property><property name="subtitle" translatable="yes">The type of transition to use when the leaflet adapts its size or when changing the visible child</property><property name="model"><object class="AdwEnumListModel"><property name="enum-type">AdwLeafletTransitionType</property></object></property></object></child><child><object class="AdwActionRow" id="action-row"><property name="title" translatable="yes">Go to the next page of the leaflet</property><property name="use-underline">True</property><property name="activatable">True</property><child><object class="GtkImage"><property name="icon-name">go-next-symbolic</property></object></child></object></child></object></property></object></property></object></property></template></interface>
diff --git a/examples/adw-1/adw1-demo/ui/navigation-view-demo-window.scm b/examples/adw-1/adw1-demo/ui/navigation-view-demo-window.scm
new file mode 100644
index 0000000..dc48e60
--- /dev/null
+++ b/examples/adw-1/adw1-demo/ui/navigation-view-demo-window.scm
@@ -0,0 +1,150 @@
+;; -*- mode: sxml-ui; coding: utf-8 -*-
+
+;;;;
+;;;; Copyright (C) 2023
+;;;; Free Software Foundation, Inc.
+
+;;;; This file is part of GNU G-Golf
+
+;;;; GNU G-Golf is free software; you can redistribute it and/or modify
+;;;; it under the terms of the GNU Lesser General Public License as
+;;;; published by the Free Software Foundation; either version 3 of the
+;;;; License, or (at your option) any later version.
+
+;;;; GNU G-Golf is distributed in the hope that it will be useful, but
+;;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+;;;; Lesser General Public License for more details.
+
+;;;; You should have received a copy of the GNU Lesser General Public
+;;;; License along with GNU G-Golf. If not, see
+;;;; <https://www.gnu.org/licenses/lgpl.html>.
+;;;;
+
+;;; Commentary:
+
+;;; Code:
+
+
+(use-modules (g-golf support sxml))
+
+
+(define %page-1
+ '(object (@ (class "AdwNavigationPage"))
+ (property (@ (name "title")
+ (translatable "yes")) "Page 1")
+ (property (@ (name "tag")) page-1)
+ (property (@ (name "child"))
+ (object (@ (class "AdwToolbarView"))
+ (child (@ (type "top"))
+ (object (@ (class "AdwHeaderBar"))))
+ (property (@ (name "content"))
+ (object (@ (class "GtkBox"))
+ (property (@ (name "halign")) center)
+ (property (@ (name "valign")) center)
+ (property (@ (name "orientation")) vertical)
+ (property (@ (name "spacing")) 18)
+ (child
+ (object (@ (class "GtkButton")
+ (id "page-1-button-1"))
+ (property (@ (name "label")
+ (translatable "yes")) "Open Page 2")
+ (property (@ (name "can-shrink")) True)
+ (property (@ (name "action-name")) navigation.push)
+ (property (@ (name "action-target")) "'page-2'")
+ (style (class (@ (name "pill"))))))
+ (child
+ (object (@ (class "GtkButton")
+ (id "page-1-button-2"))
+ (property (@ (name "label")
+ (translatable "yes")) "Open Page 3")
+ (property (@ (name "can-shrink")) True)
+ (property (@ (name "action-name")) navigation.push)
+ (property (@ (name "action-target")) "'page-3'")
+ (style (class (@ (name "pill"))))))))))))
+
+
+(define %page-2
+ '(object (@ (class "AdwNavigationPage"))
+ (property (@ (name "title")
+ (translatable "yes")) "Page 2")
+ (property (@ (name "tag")) page-2)
+ (property (@ (name "child"))
+ (object (@ (class "AdwToolbarView"))
+ (child (@ (type "top"))
+ (object (@ (class "AdwHeaderBar"))))
+ (property (@ (name "content"))
+ (object (@ (class "GtkButton")
+ (id "page-2-button"))
+ (property (@ (name "label")
+ (translatable "yes")) "Open Page 4")
+ (property (@ (name "halign")) center)
+ (property (@ (name "valign")) center)
+ (property (@ (name "can-shrink")) True)
+ (property (@ (name "action-name")) navigation.push)
+ (property (@ (name "action-target")) "'page-4'")
+ (style (class (@ (name "pill"))))))))))
+
+
+(define %page-3
+ '(object (@ (class "AdwNavigationPage"))
+ (property (@ (name "title")
+ (translatable "yes")) "Page 3")
+ (property (@ (name "tag")) page-3)
+ (property (@ (name "child"))
+ (object (@ (class "AdwToolbarView"))
+ (child (@ (type "top"))
+ (object (@ (class "AdwHeaderBar"))))
+ (property (@ (name "content"))
+ (object (@ (class "GtkLabel"))
+ (property (@ (name "label")
+ (translatable "yes")) "Page 3")
+ (property (@ (name "valign")) center)
+ (property (@ (name "ellipsize")) end)
+ (style (class (@ (name "title-1"))))))))))
+
+
+(define %page-4
+ '(object (@ (class "AdwNavigationPage"))
+ (property (@ (name "title")
+ (translatable "yes")) "Page 4")
+ (property (@ (name "tag")) page-4)
+ (property (@ (name "child"))
+ (object (@ (class "AdwToolbarView"))
+ (child (@ (type "top"))
+ (object (@ (class "AdwHeaderBar"))))
+ (property (@ (name "content"))
+ (object (@ (class "GtkButton")
+ (id "page-4-button"))
+ (property (@ (name "label")
+ (translatable "yes")) "Open Page 3")
+ (property (@ (name "halign")) center)
+ (property (@ (name "valign")) center)
+ (property (@ (name "can-shrink")) True)
+ (property (@ (name "action-name")) navigation.push)
+ (property (@ (name "action-target")) "'page-3'")
+ (style (class (@ (name "pill"))))))))))
+
+
+(define %navigation-view-demo-window
+ `(interface
+ (requires (@ (version "4.0") (lib "gtk")))
+ (requires (@ (version "1.0") (lib "libadwaita")))
+ (template (@ (class "AdwNavigationViewDemoWindow")
+ (parent "AdwWindow"))
+ (property (@ (name "modal")) True)
+ (property (@ (name "default-width")) 360)
+ (property (@ (name "default-height")) 360)
+ (property (@ (name "width-request")) 360)
+ (property (@ (name "title")
+ (translatable "yes")) "AdwNavigationView Demo")
+ (property (@ (name "content"))
+ (object (@ (class "AdwNavigationView"))
+ (child ,%page-1)
+ (child ,%page-2)
+ (child ,%page-3)
+ (child ,%page-4))))))
+
+
+(define (make-ui)
+ (sxml->ui %navigation-view-demo-window))
diff --git a/examples/adw-1/adw1-demo/ui/navigation-view-demo-window.ui b/examples/adw-1/adw1-demo/ui/navigation-view-demo-window.ui
new file mode 100644
index 0000000..23e10d0
--- /dev/null
+++ b/examples/adw-1/adw1-demo/ui/navigation-view-demo-window.ui
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface><requires version="4.0" lib="gtk" /><requires version="1.0" lib="libadwaita" /><template class="AdwNavigationViewDemoWindow" parent="AdwWindow"><property name="modal">True</property><property name="default-width">360</property><property name="default-height">360</property><property name="width-request">360</property><property name="title" translatable="yes">AdwNavigationView Demo</property><property name="content"><object class="AdwNavigationView"><child><object class="AdwNavigationPage"><property name="title" translatable="yes">Page 1</property><property name="tag">page-1</property><property name="child"><object class="AdwToolbarView"><child type="top"><object class="AdwHeaderBar" /></child><property name="content"><object class="GtkBox"><property name="halign">center</property><property name="valign">center</property><property name="orientation">vertical</property><property name="spacing">18</property><child><object class="GtkButton" id="page-1-button-1"><property name="label" translatable="yes">Open Page 2</property><property name="can-shrink">True</property><property name="action-name">navigation.push</property><property name="action-target">'page-2'</property><style><class name="pill" /></style></object></child><child><object class="GtkButton" id="page-1-button-2"><property name="label" translatable="yes">Open Page 3</property><property name="can-shrink">True</property><property name="action-name">navigation.push</property><property name="action-target">'page-3'</property><style><class name="pill" /></style></object></child></object></property></object></property></object></child><child><object class="AdwNavigationPage"><property name="title" translatable="yes">Page 2</property><property name="tag">page-2</property><property name="child"><object class="AdwToolbarView"><child type="top"><object class="AdwHeaderBar" /></child><property name="content"><object class="GtkButton" id="page-2-button"><property name="label" translatable="yes">Open Page 4</property><property name="halign">center</property><property name="valign">center</property><property name="can-shrink">True</property><property name="action-name">navigation.push</property><property name="action-target">'page-4'</property><style><class name="pill" /></style></object></property></object></property></object></child><child><object class="AdwNavigationPage"><property name="title" translatable="yes">Page 3</property><property name="tag">page-3</property><property name="child"><object class="AdwToolbarView"><child type="top"><object class="AdwHeaderBar" /></child><property name="content"><object class="GtkLabel"><property name="label" translatable="yes">Page 3</property><property name="valign">center</property><property name="ellipsize">end</property><style><class name="title-1" /></style></object></property></object></property></object></child><child><object class="AdwNavigationPage"><property name="title" translatable="yes">Page 4</property><property name="tag">page-4</property><property name="child"><object class="AdwToolbarView"><child type="top"><object class="AdwHeaderBar" /></child><property name="content"><object class="GtkButton" id="page-4-button"><property name="label" translatable="yes">Open Page 3</property><property name="halign">center</property><property name="valign">center</property><property name="can-shrink">True</property><property name="action-name">navigation.push</property><property name="action-target">'page-3'</property><style><class name="pill" /></style></object></property></object></property></object></child></object></property></template></interface>
diff --git a/examples/adw-1/adw1-demo/ui/navigation-view.scm b/examples/adw-1/adw1-demo/ui/navigation-view.scm
new file mode 100644
index 0000000..3a22d7b
--- /dev/null
+++ b/examples/adw-1/adw1-demo/ui/navigation-view.scm
@@ -0,0 +1,55 @@
+;; -*- mode: sxml-ui; coding: utf-8 -*-
+
+;;;;
+;;;; Copyright (C) 2023
+;;;; Free Software Foundation, Inc.
+
+;;;; This file is part of GNU G-Golf
+
+;;;; GNU G-Golf is free software; you can redistribute it and/or modify
+;;;; it under the terms of the GNU Lesser General Public License as
+;;;; published by the Free Software Foundation; either version 3 of the
+;;;; License, or (at your option) any later version.
+
+;;;; GNU G-Golf is distributed in the hope that it will be useful, but
+;;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+;;;; Lesser General Public License for more details.
+
+;;;; You should have received a copy of the GNU Lesser General Public
+;;;; License along with GNU G-Golf. If not, see
+;;;; <https://www.gnu.org/licenses/lgpl.html>.
+;;;;
+
+;;; Commentary:
+
+;;; Code:
+
+
+(use-modules (g-golf support sxml))
+
+
+(define %navigation-view
+ `(interface
+ (requires (@ (version "4.0") (lib "gtk")))
+ (requires (@ (version "1.0") (lib "libadwaita")))
+ (template (@ (class "AdwDemoPageNavigationView")
+ (parent "AdwBin"))
+ (property (@ (name "child"))
+ (object (@ (class "AdwStatusPage"))
+ (property (@ (name "icon-name")) widget-navigation-view-symbolic)
+ (property (@ (name "title")
+ (translatable "yes")) "Navigation View")
+ (property (@ (name "description")
+ (translatable "yes")) "A page-based navigation container.")
+ (property (@ (name "child"))
+ (object (@ (class "GtkButton")
+ (id navigation-view-button))
+ (property (@ (name "label")
+ (translatable "yes")) "Run the Demo")
+ (property (@ (name "halign")) center)
+ (style (class (@ (name "pill")))))))))))
+
+
+(define (make-ui)
+ (sxml->ui %navigation-view))
diff --git a/examples/adw-1/adw1-demo/ui/navigation-view.ui b/examples/adw-1/adw1-demo/ui/navigation-view.ui
new file mode 100644
index 0000000..2337759
--- /dev/null
+++ b/examples/adw-1/adw1-demo/ui/navigation-view.ui
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface><requires version="4.0" lib="gtk" /><requires version="1.0" lib="libadwaita" /><template class="AdwDemoPageNavigationView" parent="AdwBin"><property name="child"><object class="AdwStatusPage"><property name="icon-name">widget-navigation-view-symbolic</property><property name="title" translatable="yes">Navigation View</property><property name="description" translatable="yes">A page-based navigation container.</property><property name="child"><object class="GtkButton" id="navigation-view-button"><property name="label" translatable="yes">Run the Demo</property><property name="halign">center</property><style><class name="pill" /></style></object></property></object></property></template></interface>
diff --git a/examples/adw-1/adw1-demo/ui/window.scm b/examples/adw-1/adw1-demo/ui/window.scm
index 78d4508..b224a1f 100644
--- a/examples/adw-1/adw1-demo/ui/window.scm
+++ b/examples/adw-1/adw1-demo/ui/window.scm
@@ -46,47 +46,19 @@
(translatable "yes")) _"About Adwaita Demo")
(attribute (@ (name "action")) app.about)))))
-(define %header-bar-1
+(define %sidebar-headerbar
'(object (@ (class "AdwHeaderBar"))
- (property (@ (name "show-end-title-buttons")
- (bind-source "main-leaflet")
- (bind-property "folded")
- (bind-flags "sync-create")))
(child (@ (type "start"))
(object (@ (class "GtkButton")
(id "color-scheme-button"))))
(child (@ (type "end"))
(object (@ (class "GtkMenuButton"))
+ (property (@ (name "tooltip-text")
+ (translatable "yes")) "Main Menu")
(property (@ (name "menu-model")) primary-menu)
(property (@ (name "icon-name")) open-menu-symbolic)
(property (@ (name "primary")) True)))))
-(define %stack-sidebar
- '(object (@ (class "GtkStackSidebar"))
- (property (@ (name "width-request")) 270)
- (property (@ (name "vexpand")) True)
- (property (@ (name "stack")) stack)))
-
-(define %header-bar-2
- '(object (@ (class "AdwHeaderBar"))
- (property (@ (name "show-start-title-buttons")
- (bind-source "main-leaflet")
- (bind-property "folded")
- (bind-flags "sync-create")))
- (property (@ (name "title-widget"))
- (object (@ (class "GtkBox"))))
- (child (@ (type "start"))
- (object (@ (class "GtkButton")
- (id "main-go-previous"))
- (property (@ (name "valign")) center)
- (property (@ (name "tooltip-text")
- (translatable "yes")) Back)
- (property (@ (name "icon-name")) go-previous-symbolic)
- (property (@ (name "visible")
- (bind-source "main-leaflet")
- (bind-property "folded")
- (bind-flags "sync-create")))))))
-
(define %welcome-page
'(object (@ (class "GtkStackPage"))
(property (@ (name "title")
@@ -94,88 +66,44 @@
(property (@ (name "child"))
(object (@ (class "AdwDemoPageWelcome"))))))
-(define %leaflet-page
+(define %navigation-view
'(object (@ (class "GtkStackPage"))
(property (@ (name "title")
- (translatable "yes")) Leaflet)
+ (translatable "yes")) "Navigation View")
(property (@ (name "child"))
- (object (@ (class "AdwDemoPageLeaflet")
- (id "leaflet-page"))
- ;; signal - next-page ...
- ))))
-
-(define %stack
- `(object (@ (class "GtkStack")
- (id "stack"))
- (property (@ (name "vexpand")) True)
- (property (@ (name "vhomogeneous")) False)
- ;; signal - notify::visible-child ...
- (child ,%welcome-page)
- (child ,%leaflet-page)))
-
-(define %main-leaflet
- `(object (@ (class "AdwLeaflet")
- (id "main-leaflet"))
- (property (@ (name "can-navigate-back")) True)
- (property (@ (name "transition-type")
- (bind-source "leaflet-page")
- (bind-property "transition-type")
- (bind-flags "sync-create|bidirectional")))
- (child
- (object (@ (class "GtkBox"))
- (property (@ (name "orientation")) vertical)
- (child ,%header-bar-1)
- (child ,%stack-sidebar)))
- (child
- (object (@ (class "AdwLeafletPage"))
- (property (@ (name "navigatable")) False)
- (property (@ (name "child"))
- (object (@ (class "GtkSeparator"))))))
- (child
- (object (@ (class "GtkBox"))
- (property (@ (name "orientation")) vertical)
- (property (@ (name "hexpand")) True)
- (child ,%header-bar-2)
- (child ,%stack)))))
-
-(define %header-bar-3
- '(object (@ (class "AdwHeaderBar"))
- (property (@ (name "title-widget"))
- (object (@ (class "GtkBox"))))
- (child (@ (type "start"))
- (object (@ (class "GtkButton")
- (id "subpage-go-previous"))
- (property (@ (name "valign")) center)
- (property (@ (name "tooltip-text")
- (translatable "yes")) Back)
- (property (@ (name "icon-name")) go-previous-symbolic)
- #;(property (@ (name "visible")
- (bind-source "main-leaflet")
- (bind-property "folded")
- (bind-flags "sync-create")))))))
-
-(define %status-page
- '(object (@ (class "AdwStatusPage"))
- (property (@ (name "vexpand")) True)
+ (object (@ (class "AdwDemoPageNavigationView"))))))
+
+(define %sidebar
+ `(object (@ (class "AdwNavigationPage"))
(property (@ (name "title")
- (translatable "yes")) Go Back)
+ (bind-source "AdwDemoWindow")
+ (bind-property "title")
+ (bind-flags "sync-create")))
+ (property (@ (name "child"))
+ (object (@ (class "AdwToolbarView"))
+ (child (@ (type "top"))
+ ,%sidebar-headerbar)
+ (property (@ (name "content"))
+ (object (@ (class "GtkStackSidebar"))
+ (property (@ (name "stack")) stack)))))))
+
+(define %content
+ `(object (@ (class "AdwNavigationPage"))
+ ;; libadwaita-1-0:amd64 1.4~rc-1 complains if none, despite
+ ;; its AdwHeaderBar show-title property set to false ...
+ (property (@ (name "title")) "Bluefox") ;; fake title
(property (@ (name "child"))
- (object (@ (class "GtkBox"))
- (property (@ (name "orientation")) vertical)
- (property (@ (name "halign")) center)
- (property (@ (name "spacing")) 12)
- (child
- (object (@ (class "GtkImage"))
- (property (@ (name "icon-name"))
- gesture-touchscreen-swipe-back-symbolic)
- (property (@ (name "pixel-size")) 128)
- (style (class (@ (name "dim-label"))))))
- (child
- (object (@ (class "GtkImage"))
- (property (@ (name "icon-name"))
- gesture-touchpad-swipe-back-symbolic)
- (property (@ (name "pixel-size")) 128)
- (style (class (@ (name "dim-label"))))))))))
+ (object (@ (class "AdwToolbarView"))
+ (child (@ (type "top"))
+ (object (@ (class "AdwHeaderBar"))
+ (property (@ (name "show-title")) False)))
+ (property (@ (name "content"))
+ (object (@ (class "GtkStack")
+ (id "stack"))
+ (property (@ (name "vhomogeneous")) False)
+ ;; signal - notify::visible-child ...
+ (child ,%welcome-page)
+ (child ,%navigation-view)))))))
(define %window
`(interface
@@ -188,25 +116,24 @@
(translatable "yes")) "Adwaita Demo")
(property (@ (name "default-width")) 800)
(property (@ (name "default-height")) 576)
+ (property (@ (name "width-request")) 360)
+ (property (@ (name "height-request")) 200)
+ (child
+ (object (@ (class "AdwBreakpoint"))
+ (condition "max-width: 500sp")
+ (setter (@ (object "split-view")
+ (property "collapsed")) True)))
(property (@ (name "content"))
(object (@ (class "AdwToastOverlay")
(id "toast-overlay"))
(property (@ (name "child"))
- (object (@ (class "AdwLeaflet")
- (id "subpage-leaflet"))
- (property (@ (name "can-navigate-back")) True)
- (property (@ (name "width-request")) 360)
- (property (@ (name "can-unfold")) False)
- (property (@ (name "transition-type")
- (bind-source "leaflet-page")
- (bind-property "transition-type")
- (bind-flags "sync-create|bidirectional")))
- (child ,%main-leaflet)
- (child
- (object (@ (class "GtkBox"))
- (property (@ (name "orientation")) vertical)
- (child ,%header-bar-3)
- (child ,%status-page))))))))))
+ (object (@ (class "AdwNavigationSplitView")
+ (id "split-view"))
+ (property (@ (name "min-sidebar-width")) 240)
+ (property (@ (name "sidebar"))
+ ,%sidebar)
+ (property (@ (name "content"))
+ ,%content))))))))
(define (make-ui)
diff --git a/examples/adw-1/adw1-demo/ui/window.ui b/examples/adw-1/adw1-demo/ui/window.ui
index 34eec8c..735cde8 100644
--- a/examples/adw-1/adw1-demo/ui/window.ui
+++ b/examples/adw-1/adw1-demo/ui/window.ui
@@ -1,2 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
-<interface><requires version="4.0" lib="gtk" /><requires version="1.0" lib="libadwaita" /><menu id="primary-menu"><section><item><attribute name="label" translatable="yes">_Inspector</attribute><attribute name="action">app.inspector</attribute></item></section><section><item><attribute name="label" translatable="yes">_Preferences</attribute><attribute name="action">app.preferences</attribute></item><item><attribute name="label" translatable="yes">_About Adwaita Demo</attribute><attribute name="action">app.about</attribute></item></section></menu><template class="AdwDemoWindow" parent="AdwApplicationWindow"><property name="title" translatable="yes">Adwaita Demo</property><property name="default-width">800</property><property name="default-height">576</property><property name="content"><object class="AdwToastOverlay" id="toast-overlay"><property name="child"><object class="AdwLeaflet" id="subpage-leaflet"><property name="can-navigate-back">True</property><property name="width-request">360</property><property name="can-unfold">False</property><property name="transition-type" bind-source="leaflet-page" bind-property="transition-type" bind-flags="sync-create|bidirectional" /><child><object class="AdwLeaflet" id="main-leaflet"><property name="can-navigate-back">True</property><property name="transition-type" bind-source="leaflet-page" bind-property="transition-type" bind-flags="sync-create|bidirectional" /><child><object class="GtkBox"><property name="orientation">vertical</property><child><object class="AdwHeaderBar"><property name="show-end-title-buttons" bind-source="main-leaflet" bind-property="folded" bind-flags="sync-create" /><child type="start"><object class="GtkButton" id="color-scheme-button" /></child><child type="end"><object class="GtkMenuButton"><property name="menu-model">primary-menu</property><property name="icon-name">open-menu-symbolic</property><property name="primary">True</property></object></child></object></child><child><object class="GtkStackSidebar"><property name="width-request">270</property><property name="vexpand">True</property><property name="stack">stack</property></object></child></object></child><child><object class="AdwLeafletPage"><property name="navigatable">False</property><property name="child"><object class="GtkSeparator" /></property></object></child><child><object class="GtkBox"><property name="orientation">vertical</property><property name="hexpand">True</property><child><object class="AdwHeaderBar"><property name="show-start-title-buttons" bind-source="main-leaflet" bind-property="folded" bind-flags="sync-create" /><property name="title-widget"><object class="GtkBox" /></property><child type="start"><object class="GtkButton" id="main-go-previous"><property name="valign">center</property><property name="tooltip-text" translatable="yes">Back</property><property name="icon-name">go-previous-symbolic</property><property name="visible" bind-source="main-leaflet" bind-property="folded" bind-flags="sync-create" /></object></child></object></child><child><object class="GtkStack" id="stack"><property name="vexpand">True</property><property name="vhomogeneous">False</property><child><object class="GtkStackPage"><property name="title" translatable="yes">Welcome</property><property name="child"><object class="AdwDemoPageWelcome" /></property></object></child><child><object class="GtkStackPage"><property name="title" translatable="yes">Leaflet</property><property name="child"><object class="AdwDemoPageLeaflet" id="leaflet-page" /></property></object></child></object></child></object></child></object></child><child><object class="GtkBox"><property name="orientation">vertical</property><child><object class="AdwHeaderBar"><property name="title-widget"><object class="GtkBox" /></property><child type="start"><object class="GtkButton" id="subpage-go-previous"><property name="valign">center</property><property name="tooltip-text" translatable="yes">Back</property><property name="icon-name">go-previous-symbolic</property></object></child></object></child><child><object class="AdwStatusPage"><property name="vexpand">True</property><property name="title" translatable="yes">GoBack</property><property name="child"><object class="GtkBox"><property name="orientation">vertical</property><property name="halign">center</property><property name="spacing">12</property><child><object class="GtkImage"><property name="icon-name">gesture-touchscreen-swipe-back-symbolic</property><property name="pixel-size">128</property><style><class name="dim-label" /></style></object></child><child><object class="GtkImage"><property name="icon-name">gesture-touchpad-swipe-back-symbolic</property><property name="pixel-size">128</property><style><class name="dim-label" /></style></object></child></object></property></object></child></object></child></object></property></object></property></template></interface>
+<interface><requires version="4.0" lib="gtk" /><requires version="1.0" lib="libadwaita" /><menu id="primary-menu"><section><item><attribute name="label" translatable="yes">_Inspector</attribute><attribute name="action">app.inspector</attribute></item></section><section><item><attribute name="label" translatable="yes">_Preferences</attribute><attribute name="action">app.preferences</attribute></item><item><attribute name="label" translatable="yes">_About Adwaita Demo</attribute><attribute name="action">app.about</attribute></item></section></menu><template class="AdwDemoWindow" parent="AdwApplicationWindow"><property name="title" translatable="yes">Adwaita Demo</property><property name="default-width">800</property><property name="default-height">576</property><property name="width-request">360</property><property name="height-request">200</property><child><object class="AdwBreakpoint"><condition>max-width: 500sp</condition><setter object="split-view" property="collapsed">True</setter></object></child><property name="content"><object class="AdwToastOverlay" id="toast-overlay"><property name="child"><object class="AdwNavigationSplitView" id="split-view"><property name="min-sidebar-width">240</property><property name="sidebar"><object class="AdwNavigationPage"><property name="title" bind-source="AdwDemoWindow" bind-property="title" bind-flags="sync-create" /><property name="child"><object class="AdwToolbarView"><child type="top"><object class="AdwHeaderBar"><child type="start"><object class="GtkButton" id="color-scheme-button" /></child><child type="end"><object class="GtkMenuButton"><property name="tooltip-text" translatable="yes">Main Menu</property><property name="menu-model">primary-menu</property><property name="icon-name">open-menu-symbolic</property><property name="primary">True</property></object></child></object></child><property name="content"><object class="GtkStackSidebar"><property name="stack">stack</property></object></property></object></property></object></property><property name="content"><object class="AdwNavigationPage"><property name="title">Bluefox</property><property name="child"><object class="AdwToolbarView"><child type="top"><object class="AdwHeaderBar"><property name="show-title">False</property></object></child><property name="content"><object class="GtkStack" id="stack"><property name="vhomogeneous">False</property><child><object class="GtkStackPage"><property name="title" translatable="yes">Welcome</property><property name="child"><object class="AdwDemoPageWelcome" /></property></object></child><child><object class="GtkStackPage"><property name="title" translatable="yes">Navigation View</property><property name="child"><object class="AdwDemoPageNavigationView" /></property></object></child></object></property></object></property></object></property></object></property></object></property></template></interface>
diff --git a/examples/adw-1/adw1-demo/window.scm b/examples/adw-1/adw1-demo/window.scm
index c293dd0..7d36a61 100644
--- a/examples/adw-1/adw1-demo/window.scm
+++ b/examples/adw-1/adw1-demo/window.scm
@@ -29,7 +29,11 @@
(define-module (adw1-demo window)
#:use-module (oop goops)
#:use-module (g-golf)
-
+ #:use-module (adw1-demo debug-info)
+ #:use-module (adw1-demo preferences)
+ #:use-module (adw1-demo welcome)
+ #:use-module (adw1-demo navigation-view)
+
#:duplicates (merge-generics
replace
warn-override-core
@@ -40,22 +44,15 @@
show-window))
-(g-export !main-leaflet
- !main-go-previous
+(g-export !split-view
!color-scheme-button
- !stack
- !leaflet-page
- !subpage-leaflet
- !subpage-go-previous)
-
-
-(use-modules (adw1-demo debug-info)
- (adw1-demo preferences)
- (adw1-demo welcome)
- (adw1-demo leaflet))
+ !stack)
(eval-when (expand load eval)
+ (for-each (lambda (name)
+ (gi-import-by-name "Gio" name))
+ '("SimpleAction"))
(g-irepository-require "Gtk" #:version "4.0")
(for-each (lambda (name)
(gi-import-by-name "Gdk" name))
@@ -76,29 +73,20 @@
"AboutWindow"
"StyleManager"
"ColorScheme"
- "Leaflet"
- "NavigationDirection")))
+ "NavigationSplitView")))
(define-class <adw-demo-window> (<adw-application-window>)
;; slots
- (main-leaflet #:accessor !main-leaflet #:child-id "main-leaflet")
- (main-go-previous #:accessor !main-go-previous #:child-id "main-go-previous")
+ (split-view #:accessor !split-view #:child-id "split-view")
(color-scheme-button #:accessor !color-scheme-button #:child-id "color-scheme-button")
(stack #:accessor !stack #:child-id "stack")
- (leaflet-page #:accessor !leaflet-page #:child-id "leaflet-page")
- (subpage-leaflet #:accessor !subpage-leaflet #:child-id "subpage-leaflet")
- (subpage-go-previous #:accessor !subpage-go-previous #:child-id "subpage-go-previous")
;; class options
#:template (string-append (dirname (current-filename))
"/ui/window.ui")
- #:child-ids '("main-leaflet"
- "main-go-previous"
+ #:child-ids '("split-view"
"color-scheme-button"
- "stack"
- "leaflet-page"
- "subpage-leaflet"
- "subpage-go-previous"))
+ "stack"))
(define (install-actions app)
(let ((a-inspector (make <g-simple-action> #:name "inspector"))
@@ -124,8 +112,7 @@
(connect a-about
'activate
(lambda (s-action g-variant)
- (show-about app)))
- ))
+ (show-about app)))))
(define %developers
'("Adrien Plazas"
@@ -202,21 +189,6 @@
;; (dimfi s c (g-object-type-name c)
(notify-visible-child-cb window)))
- (connect (!main-go-previous window)
- 'clicked
- (lambda (b)
- (main-go-previous-cb window)))
-
- (connect (!subpage-go-previous window)
- 'clicked
- (lambda (b)
- (subpage-go-previous-cb window)))
-
- (connect (!leaflet-page window)
- 'next-page
- (lambda (l)
- (navigate (!subpage-leaflet window) 'forward)))
-
(present window))))
(define (make-expression type closure flags)
@@ -247,10 +219,4 @@
(set-color-scheme manager 'default))))
(define (notify-visible-child-cb window)
- (navigate (!main-leaflet window) 'forward))
-
-(define (main-go-previous-cb window)
- (navigate (!main-leaflet window) 'back))
-
-(define (subpage-go-previous-cb window)
- (navigate (!subpage-leaflet window) 'back))
+ (set-show-content (!split-view window) #t))
diff --git a/g-golf/gi/common-types.scm b/g-golf/gi/common-types.scm
index 58385aa..37b5587 100644
--- a/g-golf/gi/common-types.scm
+++ b/g-golf/gi/common-types.scm
@@ -1,7 +1,7 @@
;; -*- mode: scheme; coding: utf-8 -*-
;;;;
-;;;; Copyright (C) 2016 - 2022
+;;;; Copyright (C) 2016 - 2023
;;;; Free Software Foundation, Inc.
;;;; This file is part of GNU G-Golf
@@ -227,20 +227,32 @@ add as a comment)."
(error "No such GI type tag: " type-tag))))
(define (gi-type-tag->bv-acc type-tag)
- "Returns the srfi-4 bytevector accessor for type-tag."
+ "Returns the srfi-4 bytevector constructor, getter and setter for
+type-tag."
(case type-tag
- ((int8) s8vector-ref)
- ((uint8) u8vector-ref)
- ((int16) s16vector-ref)
- ((uint16) u16vector-ref)
+ ((int8)
+ (values make-s8vector s8vector-ref s8vector-set!))
+ ((uint8)
+ (values make-u8vector u8vector-ref u8vector-set!))
+ ((int16)
+ (values make-s16vector s16vector-ref s16vector-set!))
+ ((uint16)
+ (values make-u16vector u16vector-ref u16vector-set!))
((boolean
- int32) s32vector-ref)
- ((uint32) u32vector-ref)
- ((int64) s64vector-ref)
- ((uint64) u64vector-ref)
- ((gtype) gtypevector-ref)
- ((float) f32vector-ref)
- ((double) f64vector-ref)
+ int32)
+ (values make-s32vector s32vector-ref s32vector-set!))
+ ((uint32)
+ (values make-u32vector u32vector-ref u32vector-set!))
+ ((int64)
+ (values make-s64vector s64vector-ref s64vector-set!))
+ ((uint64)
+ (values make-u64vector u64vector-ref u64vector-set!))
+ ((float)
+ (values make-f32vector f32vector-ref f32vector-set!))
+ ((double)
+ (values make-f64vector f64vector-ref f64vector-set!))
+ ((gtype)
+ (values make-gtypevector gtypevector-ref gtypevector-set!))
(else
(error "No such GI type tag: " type-tag))))
diff --git a/g-golf/gobject/params-vals.scm b/g-golf/gobject/params-vals.scm
index 2fdf6cd..2777f0b 100644
--- a/g-golf/gobject/params-vals.scm
+++ b/g-golf/gobject/params-vals.scm
@@ -78,6 +78,7 @@
g-value-set-boxed
g-value-get-pointer
g-value-set-pointer
+ g-param-spec-object
g-value-get-object
g-value-set-object
g-value-get-variant
@@ -343,48 +344,40 @@
(name (g-name->name g-name))
(gi-boxed (gi-cache-ref 'boxed name))
(value (g_value_get_boxed g-value)))
- (case name
- ((g-value) value)
- (else
- (if gi-boxed
- (cond ((is-a? gi-boxed <gi-union>)
- (if (eq? (!name gi-boxed) 'gdk-event)
- ;; This means that we are in gdk3/gtk3 environment, where
- ;; the <gdk-event> class and accessors are (must be)
- ;; defined dynamically - hence (gdk-event-class)
- (make (%gdk-event-class) #:event value)
- value))
- ((or (!is-opaque? gi-boxed)
- (!is-semi-opaque? gi-boxed))
- value)
- (else
- (parse-c-struct value
- (!scm-types gi-boxed))))
- (case name
- ((g-strv)
- (gi-strings->scm value))
- (else
- (error "Unimplemented boxed type: " name))))))))
+ (if gi-boxed
+ (cond ((is-a? gi-boxed <gi-union>)
+ (if (eq? (!name gi-boxed) 'gdk-event)
+ ;; This means that we are in gdk3/gtk3 environment, where
+ ;; the <gdk-event> class and accessors are (must be)
+ ;; defined dynamically - hence (gdk-event-class)
+ (make (%gdk-event-class) #:event value)
+ value))
+ ((or (!is-opaque? gi-boxed)
+ (!is-semi-opaque? gi-boxed))
+ value)
+ (else
+ (parse-c-struct value
+ (!scm-types gi-boxed))))
+ (case name
+ ((g-value) value)
+ ((g-strv) (gi-strings->scm value))
+ (else
+ (error "Unimplemented boxed type: " name))))))
(define (g-value-set-boxed g-value boxed)
(let* ((g-name (g-value-type-name g-value))
(name (g-name->name g-name))
(gi-boxed (gi-cache-ref 'boxed name))
- (value (case name
- ((g-value) boxed)
- (else
- (if gi-boxed
- (cond ((!is-opaque? gi-boxed)
- %null-pointer)
- ((!is-semi-opaque? gi-boxed)
- boxed)
- (else
- (make-c-struct (!scm-types gi-boxed) boxed)))
- (case name
- ((g-strv)
- (scm->gi-strings boxed))
- (else
- (error "Unimplemented boxed type: " name))))))))
+ (value (if gi-boxed
+ (if (or (!is-opaque? gi-boxed)
+ (!is-semi-opaque? gi-boxed))
+ boxed
+ (make-c-struct (!scm-types gi-boxed) boxed))
+ (case name
+ ((g-value) boxed)
+ ((g-strv) (scm->gi-strings boxed))
+ (else
+ (error "Unimplemented boxed type: " name))))))
(g_value_set_boxed g-value value)))
(define (g-value-get-pointer g-value)
@@ -397,6 +390,20 @@
(g_value_set_pointer g-value
(if pointer pointer %null-pointer)))
+(define (g-param-spec-object name nick blurb type flags)
+ (let* ((nick (or nick name))
+ (blurb (or blurb nick))
+ (g-type (!g-type type))
+ (flags (or flags '(readable writable)))
+ (g-param-flags
+ (@ (g-golf gobject param-spec) %g-param-flags)))
+ (gi->scm (g_param_spec_object (string->pointer name)
+ (string->pointer nick)
+ (string->pointer blurb)
+ g-type
+ (flags->integer g-param-flags flags))
+ 'pointer)))
+
(define (g-value-get-object g-value)
(let ((object (g_value_get_object g-value)))
(if (null-pointer? object)
@@ -584,6 +591,16 @@
(list '*
'*)))
+(define g_param_spec_object
+ (pointer->procedure '*
+ (dynamic-func "g_param_spec_object"
+ %libgobject)
+ (list '* ;; name
+ '* ;; nick
+ '* ;; blurb
+ size_t ;; g-type
+ unsigned-int))) ;; flags
+
(define g_value_get_object
(pointer->procedure '*
(dynamic-func "g_value_get_object"
diff --git a/g-golf/gobject/signals.scm b/g-golf/gobject/signals.scm
index 7249963..2a3f787 100644
--- a/g-golf/gobject/signals.scm
+++ b/g-golf/gobject/signals.scm
@@ -55,6 +55,7 @@
g-signal-list-ids
g-signal-emitv
g-signal-connect-closure-by-id
+ g-signal-handler-disconnect
g-signal-parse-name
%g-signal-flags))
@@ -217,6 +218,9 @@
closure
(scm->gi after? 'boolean)))
+(define (g-signal-handler-disconnect g-inst handler-id)
+ (g_signal_handler_disconnect g-inst handler-id))
+
(define* (g-signal-parse-name detailed-signal g-type
#:optional (force-detail-quark #t))
(let* ((d-signal (if (symbol? detailed-signal)
@@ -309,6 +313,13 @@
'* ;; closure
int))) ;; after (boolean)
+(define g_signal_handler_disconnect
+ (pointer->procedure void
+ (dynamic-func "g_signal_handler_disconnect"
+ %libgobject)
+ (list '* ;; g-inst
+ unsigned-long))) ;; handler-id
+
(define g_signal_parse_name
(pointer->procedure int
(dynamic-func "g_signal_parse_name"
diff --git a/g-golf/hl-api/callable.scm b/g-golf/hl-api/callable.scm
index b58003a..eabf44c 100644
--- a/g-golf/hl-api/callable.scm
+++ b/g-golf/hl-api/callable.scm
@@ -561,18 +561,26 @@
(gi-argument-set! gi-argument 'v-pointer #f)
(error "Invalid (pointer to) " type-tag " argument: " value))
(case type-tag
- ((int32)
+ ((boolean
+ int8 uint8
+ int16 uint16
+ int32 uint32
+ int64 uint64
+ float double
+ gtype)
+ (receive (make-bv bv-ref bv-set!)
+ (gi-type-tag->bv-acc type-tag)
(let* ((bv-cache (!bv-cache clb/arg))
- (s32 (or bv-cache
- (make-s32vector 1 0)))
- (s32-ptr (or (!bv-cache-ptr clb/arg)
- (bytevector->pointer s32))))
+ (bv-cache-ptr (!bv-cache-ptr clb/arg))
+ (bv (or bv-cache (make-bv 1 0)))
+ (bv-ptr (or bv-cache-ptr
+ (bytevector->pointer bv))))
(unless bv-cache
(mslot-set! clb/arg
- 'bv-cache s32
- 'bv-cache-ptr s32-ptr))
- (s32vector-set! s32 0 value)
- (gi-argument-set! gi-argument 'v-pointer s32-ptr)))
+ 'bv-cache bv
+ 'bv-cache-ptr bv-ptr))
+ (bv-set! bv 0 value)
+ (gi-argument-set! gi-argument 'v-pointer bv-ptr))))
((void)
;; Till proved wrong, we'll consider those opaque
;; pointers.
@@ -892,16 +900,17 @@
int64 uint64
float double
gtype)
- (let* ((field (gi-type-tag->field type-tag))
- (type (assq-ref %gi-argument-desc field))
- (bv (pointer->bytevector foreign (sizeof type)))
- (acc (gi-type-tag->bv-acc type-tag))
- (val (acc bv 0)))
- (case type-tag
- ((boolean)
- (gi->scm val 'boolean))
- (else
- val))))
+ (receive (make-bv bv-ref bv-set!)
+ (gi-type-tag->bv-acc type-tag)
+ (let* ((field (gi-type-tag->field type-tag))
+ (type (assq-ref %gi-argument-desc field))
+ (bv (pointer->bytevector foreign (sizeof type)))
+ (val (bv-ref bv 0)))
+ (case type-tag
+ ((boolean)
+ (gi->scm val 'boolean))
+ (else
+ val)))))
((void)
;; Till proved wrong, we'll consider those opaque
;; pointers.
diff --git a/g-golf/hl-api/gparam.scm b/g-golf/hl-api/gparam.scm
index 40a2d3b..e4417b3 100644
--- a/g-golf/hl-api/gparam.scm
+++ b/g-golf/hl-api/gparam.scm
@@ -43,7 +43,8 @@
#:export (g-param-construct
g-param-construct-int
- g-param-construct-enum))
+ g-param-construct-enum
+ g-param-construct-object))
#;(g-export )
@@ -61,6 +62,8 @@
(g-param-construct-int name param-desc))
((enum)
(g-param-construct-enum name param-desc))
+ ((object)
+ (g-param-construct-object name param-desc))
(else
(scm-error 'g-param-construct #f
"Unimplemented g-param-construct type: ~S"
@@ -94,3 +97,18 @@
type
default
flags)))
+
+(define (g-param-construct-object name param-desc)
+ (let ((nick (get-keyword #:nick param-desc #f))
+ (blurb (get-keyword #:blurb param-desc #f))
+ (type (get-keyword #:type param-desc #f))
+ (flags (get-keyword #:flags param-desc #f)))
+ (if type
+ (g-param-spec-object (symbol->string name)
+ nick
+ blurb
+ type
+ flags)
+ (scm-error 'g-param-construct-object #f
+ "Invalid g-param-construct-object type: ~S"
+ (list type) #f))))
diff --git a/g-golf/hl-api/gtype.scm b/g-golf/hl-api/gtype.scm
index e08d3c3..6a3db5e 100644
--- a/g-golf/hl-api/gtype.scm
+++ b/g-golf/hl-api/gtype.scm
@@ -287,20 +287,24 @@
initargs)
(let* ((g-inst? (get-keyword #:g-inst initargs #f))
(g-inst (or g-inst?
- (g-inst-construct self split-kw))))
- (next-method self split-rest)
- (set! (!g-inst self) g-inst)
- (g-inst-cache-set! g-inst self)
- (case g-type-name
- ((object) ;; [not when interface]
- (when (g-object-is-floating g-inst)
- (g-object-ref-sink g-inst))
- (g-object-add-toggle-ref g-inst %g-toggle-notify #f)))
- (initialize-g-param-slots self)
- (unless (null? (class-child-id-slots class))
- (initialize-child-id-slots self))))))
-
-(define (initialize-g-param-slots inst)
+ (g-inst-construct self split-kw))))
+ (receive (split-g-param-kw split-next-method-kw)
+ (split-keyword-args (map slot-definition-init-keyword
+ (class-g-param-slots class))
+ split-rest)
+ (next-method self split-next-method-kw)
+ (set! (!g-inst self) g-inst)
+ (g-inst-cache-set! g-inst self)
+ (case g-type-name
+ ((object) ;; [not when interface]
+ (when (g-object-is-floating g-inst)
+ (g-object-ref-sink g-inst))
+ (g-object-add-toggle-ref g-inst %g-toggle-notify #f)))
+ (initialize-g-param-slots self split-g-param-kw)
+ (unless (null? (class-child-id-slots class))
+ (initialize-child-id-slots self)))))))
+
+(define (initialize-g-param-slots inst g-param-kw)
(let* ((class (class-of inst))
(g-class (!g-class class)))
(for-each (lambda (item)
@@ -309,12 +313,17 @@
(for-each
(lambda (slot)
(let* ((name (slot-definition-name slot))
- (p-name (symbol->string name))
- (p-spec (g-object-class-find-property g-class p-name))
- (p-spec-default (g-param-spec-get-default-value p-spec))
- (default (g-value-ref p-spec-default))
- (name_ (symbol-append name '_)))
- (slot-set! inst name_ default)))
+ (name_ (symbol-append name '_))
+ (init-kw? (slot-definition-init-keyword slot))
+ (init-value? (and init-kw?
+ (get-keyword init-kw? g-param-kw #f))))
+ (if init-value?
+ (slot-set! inst name_ init-value?)
+ (let* ((p-name (symbol->string name))
+ (p-spec (g-object-class-find-property g-class p-name))
+ (p-spec-default (g-param-spec-get-default-value p-spec))
+ (default (g-value-ref p-spec-default)))
+ (slot-set! inst name_ default)))))
g-param-slots))))
(g-class-g-param-slots class))))
diff --git a/g-golf/hl-api/signal.scm b/g-golf/hl-api/signal.scm
index 107cffe..e21f826 100644
--- a/g-golf/hl-api/signal.scm
+++ b/g-golf/hl-api/signal.scm
@@ -78,6 +78,7 @@
connect
connect-after
+ disconnect
emit)
@@ -115,8 +116,10 @@
(!id signal)
detail
(!g-closure closure)
- after?)
- (values)))))))
+ after?)))))))
+
+(define-method (disconnect (inst <gtype-instance>) handler-id)
+ (g-signal-handler-disconnect (!g-inst inst) handler-id))
(define (make-signal id s-name name iface-type iface-name
flags return-type n-param param-types)
diff --git a/test-suite/tests/gobject.scm b/test-suite/tests/gobject.scm
index b492495..a56e866 100644
--- a/test-suite/tests/gobject.scm
+++ b/test-suite/tests/gobject.scm
@@ -39,25 +39,6 @@
last))
-(g-irepository-require "Clutter")
-
-(define %align-info
- (g-irepository-find-by-name "Clutter" "ActorAlign"))
-
-(define %align-info-g-type
- (g-registered-type-info-get-g-type %align-info))
-
-(gi-import-enum %align-info)
-
-(define %flags-info
- (g-irepository-find-by-name "Clutter" "ActorFlags"))
-
-(define %flags-info-g-type
- (g-registered-type-info-get-g-type %flags-info))
-
-(gi-import-flags %flags-info)
-
-
(define-class <g-golf-test-gobject> (<test-case>))
@@ -66,7 +47,7 @@
;;;
(define-method (test-g-type-name (self <g-golf-test-gobject>))
- (assert-equal "ClutterActorAlign" (g-type-name %align-info-g-type))
+ (assert-equal "GObject" (g-type-name (!g-type <gobject>)))
(assert-equal "gfloat" (g-type-name 56)))
(define-method (test-g-type-from-name (self <g-golf-test-gobject>))
@@ -120,11 +101,12 @@
(g-value-init (symbol->g-type 'float)))))
(define-method (test-g-value-type* (self <g-golf-test-gobject>))
- (let ((g-value (g-value-init %align-info-g-type)))
- (assert-true (= (g-value-type g-value) %align-info-g-type))
+ (let* ((g-type (!g-type <gobject>))
+ (g-value (g-value-init g-type)))
+ (assert-true (= (g-value-type g-value) g-type))
(assert-true (string=? (g-value-type-name g-value)
- "ClutterActorAlign"))
- (assert-true (eq? (g-value-type-tag g-value) 'enum))))
+ "GObject"))
+ (assert-true (eq? (g-value-type-tag g-value) 'object))))
(define-method (test-g-value-get-boolean (self <g-golf-test-gobject>))
(let ((g-value (g-value-init (symbol->g-type 'boolean))))
@@ -170,22 +152,32 @@
(let ((g-value (g-value-init (symbol->g-type 'double))))
(assert (g-value-set! g-value 5.0))))
+#!
+
+;; Can't find a registered enum (that has a GType) in GObject so,
+;; temporarily comment those two tests -
+
(define-method (test-g-value-get-enum (self <g-golf-test-gobject>))
(let ((g-value (g-value-init %align-info-g-type)))
(assert (g-value-ref g-value))))
+
(define-method (test-g-value-set-enum (self <g-golf-test-gobject>))
(let ((g-value (g-value-init %align-info-g-type)))
(assert (g-value-set! g-value 1))
(assert (g-value-set! g-value 'start))))
+!#
+
(define-method (test-g-value-get-flags (self <g-golf-test-gobject>))
- (let ((g-value (g-value-init %flags-info-g-type)))
+ (let* ((binding-flags (gi-cache-ref 'flags 'g-binding-flags))
+ (g-value (g-value-init (!g-type binding-flags))))
(assert (g-value-ref g-value))))
(define-method (test-g-value-set-flags (self <g-golf-test-gobject>))
- (let ((g-value (g-value-init %flags-info-g-type)))
- (assert (g-value-set! g-value '(mapped)))))
+ (let* ((binding-flags (gi-cache-ref 'flags 'g-binding-flags))
+ (g-value (g-value-init (!g-type binding-flags))))
+ (assert (g-value-set! g-value '(sync-create)))))
(define-method (test-g-value-get-string (self <g-golf-test-gobject>))
(let ((g-value (g-value-init (symbol->g-type 'string))))
@@ -241,12 +233,16 @@
(let ((g-value (g-value-init (symbol->g-type 'pointer))))
(assert (g-value-set! g-value g-value))))
-;; I can't test g-value-get-object and g-value-set-object using G-Golf,
-;; till it is able to build an interface. I did manually test these two
-;; procedures though, by making a manual binding to clutter-init and
-;; clutter-actor-new, which requires "libclutter-1.0", something G-Golf
-;; does not need to depend upon. As soon as G-Golf can make instances,
-;; we will add a proper test here.
+(define-method (test-g-value-get-object (self <g-golf-test-gobject>))
+ (let* ((g-type (symbol->g-type 'object))
+ (g-value (g-value-init g-type)))
+ (assert (g-value-ref g-value))))
+
+(define-method (test-g-value-set-object (self <g-golf-test-gobject>))
+ (let* ((g-type (symbol->g-type 'object))
+ (inst (make <gobject>))
+ (g-value (g-value-init g-type)))
+ (assert (g-value-set! g-value (!g-inst inst)))))
;;;
diff --git a/test-suite/tests/hl-api.scm b/test-suite/tests/hl-api.scm
index d7cc7b7..87d9465 100644
--- a/test-suite/tests/hl-api.scm
+++ b/test-suite/tests/hl-api.scm
@@ -1,7 +1,7 @@
;; -*- mode: scheme; coding: utf-8 -*-
;;;;
-;;;; Copyright (C) 2019 - 2022
+;;;; Copyright (C) 2019 - 2023
;;;; Free Software Foundation, Inc.
;;;; This file is part of GNU G-Golf
@@ -39,30 +39,6 @@
last))
-(g-irepository-require "Clutter")
-
-(define %grid-layout-info
- (g-irepository-find-by-name "Clutter" "GridLayout"))
-
-(gi-import-object %grid-layout-info)
-
-(define %actor-info
- (g-irepository-find-by-name "Clutter" "Actor"))
-
-(gi-import-object %actor-info)
-
-
-(define %actor-align-info
- (g-irepository-find-by-name "Clutter" "ActorAlign"))
-
-(gi-import-enum %actor-align-info)
-
-(define %actor-flags-info
- (g-irepository-find-by-name "Clutter" "ActorFlags"))
-
-(gi-import-flags %actor-flags-info)
-
-
(define-class <g-golf-test-hl-api> (<test-case>))
@@ -177,11 +153,22 @@
;;;
;;;
+
+(define-class <foo> (<gobject>)
+ (bar #:g-param `(int
+ #:minimum -100 #:maximum 100 #:default 42)
+ #:accessor !bar))
+
+(define-class <baz> (<foo>)
+ (zap #:g-param `(int
+ #:minimum -10 #:maximum 10 #:default 3)
+ #:accessor !zap))
+
(define-method (test-g-property-accessor (self <g-golf-test-hl-api>))
- (let ((a-grid (make <clutter-grid-layout>)))
- (assert-true (eq? (!orientation a-grid) 'horizontal))
- (assert (set! (!orientation a-grid) 'vertical))
- (assert-true (eq? (!orientation a-grid) 'vertical))))
+ (let ((a-foo (make <foo>)))
+ (assert-true (= (!bar a-foo) 42))
+ (assert (set! (!bar a-foo) -3))
+ (assert-true (= (!bar a-foo) -3))))
(define-method (test-g-property-object (self <g-golf-test-hl-api>))
@@ -196,14 +183,10 @@
(define-method (test-accessor-inheritance (self <g-golf-test-hl-api>))
- (let* ((c-name '<foo>)
- (c-inst (make-class (list <clutter-grid-layout>)
- '()
- #:name c-name))
- (a-foo (make c-inst)))
- (assert-true (eq? (!orientation a-foo) 'horizontal))
- (assert (set! (!orientation a-foo) 'vertical))
- (assert-true (eq? (!orientation a-foo) 'vertical))))
+ (let* ((a-baz (make <baz>)))
+ (assert-true (= (!bar a-baz) 42))
+ (assert (set! (!bar a-baz) -3))
+ (assert-true (= (!bar a-baz) -3))))
(define-method (test-closure-enum (self <g-golf-test-hl-api>))
@@ -218,13 +201,13 @@
(define-method (test-closure-gi-enum (self <g-golf-test-hl-api>))
- (let* ((enum (gi-cache-ref 'enum 'clutter-actor-align))
+ (let* ((enum %gi-type-tag)
(closure (make <closure>
#:function (lambda (a) a)
#:return-type enum
#:param-types (list enum))))
- (assert-true (eq? (invoke closure 'start)
- 'start))
+ (assert-true (eq? (invoke closure 'uint8)
+ 'uint8))
(assert (free closure))))
@@ -240,24 +223,24 @@
(define-method (test-closure-gi-flags (self <g-golf-test-hl-api>))
- (let* ((flags (gi-cache-ref 'flags 'clutter-actor-flags))
+ (let* ((flags (gi-cache-ref 'flags 'g-binding-flags))
(closure (make <closure>
#:function (lambda (a) a)
#:return-type flags
#:param-types (list flags))))
- (assert-true (let ((result (invoke closure '(realized))))
- (eq? (car result) 'realized)))
+ (assert-true (let ((result (invoke closure '(sync-create))))
+ (eq? (car result) 'sync-create)))
(assert (free closure))))
(define-method (test-closure-gobject (self <g-golf-test-hl-api>))
- (let* ((actor (make <clutter-actor>))
+ (let* ((object (make <gobject>))
(closure (make <closure>
#:function (lambda (a) a)
- #:return-type <clutter-actor>
- #:param-types (list <clutter-actor>))))
- (assert-true (eq? (invoke closure actor)
- actor))
+ #:return-type <gobject>
+ #:param-types (list <gobject>))))
+ (assert-true (eq? (invoke closure object)
+ object))
(assert (free closure))))
diff --git a/test-suite/tests/support.scm b/test-suite/tests/support.scm
index c10f92a..b800267 100644
--- a/test-suite/tests/support.scm
+++ b/test-suite/tests/support.scm
@@ -1,7 +1,7 @@
;; -*- mode: scheme; coding: utf-8 -*-
;;;;
-;;;; Copyright (C) 2016 - 2022
+;;;; Copyright (C) 2016 - 2023
;;;; Free Software Foundation, Inc.
;;;; This file is part of GNU G-Golf
@@ -154,10 +154,10 @@
(g-name->name "webkit_network_proxy_settings_new"))
(assert-equal "gobject"
(g-name->name "GObject" 'as-string))
- (assert-equal "clutter-actor"
- (g-name->name "ClutterActor" 'as-string))
- (assert-equal '<clutter-actor>
- (g-name->class-name "ClutterActor"))
+ (assert-equal "adw-application-window"
+ (g-name->name "AdwApplicationWindow" 'as-string))
+ (assert-equal '<adw-application-window>
+ (g-name->class-name "AdwApplicationWindow"))
(assert-equal 'g-variant-type-checked-
(g-name->name "g_variant_type_checked_"))
(assert-equal 'get-event-type