diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 9aefa6e..0000000 --- a/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -autom4te.cache/ -src/*.o -.idea/ diff --git a/FUNDING.yml b/FUNDING.yml index f4040c5..8c28cf4 100644 --- a/FUNDING.yml +++ b/FUNDING.yml @@ -1 +1 @@ -custom: ["https://www.paypal.me/luigifab", "https://gandi.link/f/4b904048"] \ No newline at end of file +custom: ["https://www.paypal.me/luigifab", "https://gandi.link/f/4b904048", "https://ekwateur.fr/?parrain=EKW001147103"] \ No newline at end of file diff --git a/Makefile.am b/Makefile.am new file mode 100644 index 0000000..f963eff --- /dev/null +++ b/Makefile.am @@ -0,0 +1 @@ +SUBDIRS = src \ No newline at end of file diff --git a/README.md b/README.md index da09a0b..361ba63 100644 --- a/README.md +++ b/README.md @@ -1,25 +1,31 @@ -# AWF - A Widget Factory (Extended) +# AWF - A widget factory (extended) A widget factory is a theme preview application for GTK. It displays the various widget types provided by GTK in a single window allowing to see the visual effect of the applied theme. -Debian package submitted, [rfs for awf-gtk2](https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=959897) and [rfs for awf-gtk3](https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=959892). +Debian and Fedora packages submitted: [awf-gtk2.deb](https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=959897), [awf-gtk3.deb](https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=959892), [awf-gtk2.rpm](https://bugzilla.redhat.com/show_bug.cgi?id=1893321), [awf-gtk3.rpm](https://bugzilla.redhat.com/show_bug.cgi?id=1893323). Ubuntu: [PPA](https://launchpad.net/~luigifab/+archive/ubuntu/packages). ## Installation -It require *GTK 2.24+* or *GTK 3.0+ (including 3.24)* or *GTK 4.0+ (3.98+)*, and *GLIB 2.28+*. +It require *GTK 2.24+* or *GTK 3.0+ (including 3.24)* or *GTK 4.0+ (3.99+)*, and *GLIB 2.28+*. -* The *build.sh* script will compile the program with all major GTK version available: `sudo apt install dh-autoreconf libgtk2.0-dev libgtk-3-dev libgtk-4-dev` then: `bash build.sh` +* The *build.sh* script will compile the program with all major GTK versions available: `sudo apt install build-essential dh-autoreconf intltool libgtk2.0-dev libgtk-3-dev libgtk-4-dev` or `sudo dnf install autoconf automake gtk2-devel gtk3-devel gtk4-devel` then: `bash build.sh` -* The *debian-gtkx/deb.sh* script will compile the program and create debian package: `sudo apt install autotools-dev devscripts lintian dh-autoreconf libgtk2.0-dev libgtk-3-dev libgtk-4-dev` then: `bash debian-gtkx/deb.sh` +* The *debian-gtkx/deb.sh* scripts will compile the program and create debian packages: `sudo apt install dpkg-dev devscripts build-essential dh-make dh-autoreconf intltool libgtk2.0-dev libgtk-3-dev libgtk-4-dev` then: `bash debian-gtkx/deb.sh` -## Screenshots +* The *bash fedora-gtkx/rpm.sh* scripts will compile the program and create fedora packages: `sudo dnf install rpmdevtools rpm-sign autoconf automake gtk2-devel gtk3-devel gtk4-devel` then: `bash fedora-gtkx/rpm.sh` + +* Debian and Ubuntu: `sudo apt install awf-gtk2 awf-gtk3` (coming soon, or via PPA) + +* Fedora: `sudo dnf install awf-gtk2 awf-gtk3` (coming soon) + +## Screenshots and Features * Some options are available from command line (read -h). * The options menu allow to run some standard dialogs. -* The menu items keyboard shortcut can be updated on hover (GTK 2.24, 3.0-3.24, *gtk-can-change-accels*). * The plus toolbar button show/hide: arrows on notebooks, text on progress bars and scales, marks on scales. -* The refresh toolbar button and the refresh menuitem allow to reload the current theme. -* Translations: English (en), French (fr). +* The refresh toolbar button and the refresh menu item allow to reload the current theme (like the sighup signal). +* The menu items keyboard shortcut can be updated on hover (GTK 2.24 and 3.0-3.24, *gtk-can-change-accels*). +* For Ubuntu, the menu items keyboard shortcut can be updated on hover with: `export UBUNTU_MENUPROXY= && awf-gtk3` GTK 2 @@ -33,22 +39,29 @@ GTK 3 GTK 4 -Coming soon. +[![A widget factory - GTK 4 - Main window](images/thumbs/gtk4.png?raw=true)](images/gtk4.png?raw=true) +[![A widget factory - GTK 4 - Test menu](images/thumbs/gtk4-menu.png?raw=true)](images/gtk4-menu.png?raw=true) -## SIGHUP +The theme used for the screenshots is available [here](https://github.com/luigifab/human-theme). -To auto reload theme on files change, you can use [entr](https://github.com/clibs/entr). +## Dev + +To reload theme on files change, you can use [Entr](https://github.com/clibs/entr) and the *sighup* signal. ``` -sudo apt install entr +sudo apt install entr or sudo dnf install entr ls ~/.themes/yourtheme/gtk-3.0/*.css | entr killall -s SIGHUP awf-gtk3 ``` ## Copyright and Credits -This program is provided under the terms of the *GNU GPLv3* license. +- Current version: 2.2.0 (11/11/2020) +- Compatibility: GTK 2.24 / 3.0 / 3.2 / 3.4 / 3.6 / 3.8 / 3.10 / 3.12 / 3.14 / 3.16 / 3.18 / 3.20 / 3.22 / 3.24 +- Translations: English (en), French (fr) + +This program is provided under the terms of the *GNU GPLv3+* license. * Updated by Fabrice Creuzot (luigifab) * Forked from [awf](https://github.com/valr/awf) by Valère Monseur (valr) * Thanks to Ottoman Kent (for testing in ubuntu and bug report) * Thanks to Dwight Engen (for rpm specification file: awf.spec.in) -* Thanks to Josef Radinger (for sorted menus, text in progress bars, treeviews with scrollbars) \ No newline at end of file +* Thanks to Josef Radinger (for sorted menus, text in progress bars, treeviews with scrollbars) diff --git a/src/debian-gtk2/awf-gtk2.desktop b/applications/awf-gtk2.desktop similarity index 100% rename from src/debian-gtk2/awf-gtk2.desktop rename to applications/awf-gtk2.desktop diff --git a/src/debian-gtk3/awf-gtk3.desktop b/applications/awf-gtk3.desktop similarity index 100% rename from src/debian-gtk3/awf-gtk3.desktop rename to applications/awf-gtk3.desktop diff --git a/src/debian-gtk4/awf-gtk4.desktop b/applications/awf-gtk4.desktop similarity index 100% rename from src/debian-gtk4/awf-gtk4.desktop rename to applications/awf-gtk4.desktop diff --git a/src/build.sh b/build.sh similarity index 75% rename from src/build.sh rename to build.sh index f87389e..ab8b571 100644 --- a/src/build.sh +++ b/build.sh @@ -1,4 +1,6 @@ #!/bin/bash +# debian: sudo apt install build-essential dh-autoreconf intltool libgtk2.0-dev libgtk-3-dev libgtk-4-dev +# fedora: sudo dnf install autoconf automake gtk2-devel gtk3-devel gtk4-devel # remove old builds rm -f awf-gtk2 awf-gtk3 awf-gtk4 diff --git a/src/configure.ac b/configure.ac similarity index 94% rename from src/configure.ac rename to configure.ac index 2822e6c..95e058a 100644 --- a/src/configure.ac +++ b/configure.ac @@ -1,4 +1,4 @@ -AC_INIT([A widget factory], [2.1.0]) +AC_INIT([A widget factory], [2.2.0]) AC_CONFIG_SRCDIR([src/awf.c]) AM_INIT_AUTOMAKE diff --git a/debian-gtk2/changelog b/debian-gtk2/changelog new file mode 100644 index 0000000..f38a04e --- /dev/null +++ b/debian-gtk2/changelog @@ -0,0 +1,5 @@ +awf-gtk2 (2.2.0-5) unstable; urgency=low + + * Initial debian package release (Closes: #959434) + + -- Fabrice Creuzot Wed, 11 Nov 2020 12:00:00 +0000 diff --git a/src/debian-gtk2/control b/debian-gtk2/control similarity index 61% rename from src/debian-gtk2/control rename to debian-gtk2/control index 14cac49..ee19c95 100644 --- a/src/debian-gtk2/control +++ b/debian-gtk2/control @@ -12,8 +12,9 @@ Vcs-Git: https://github.com/luigifab/awf-extended.git Package: awf-gtk2 Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends} -Description: A widget factory is a theme preview application for GTK - It displays the various widget types provided by GTK in a single window - allowing to see the visual effect of the applied theme. +Description: Theme preview application for GTK + A widget factory is a theme preview application for GTK. It displays the + various widget types provided by GTK in a single window allowing to see + the visual effect of the applied theme. . - This package include the gtk2 version. + This package provides the gtk2 version. diff --git a/src/debian-gtk2/copyright b/debian-gtk2/copyright similarity index 100% rename from src/debian-gtk2/copyright rename to debian-gtk2/copyright diff --git a/debian-gtk2/deb.sh b/debian-gtk2/deb.sh new file mode 100644 index 0000000..bda9323 --- /dev/null +++ b/debian-gtk2/deb.sh @@ -0,0 +1,112 @@ +#!/bin/bash +# debian: sudo apt install dpkg-dev devscripts build-essential dh-make dh-autoreconf intltool libgtk2.0-dev + + + +cd "$(dirname "$0")" +version="2.2.0" +gtk="gtk2" + +rm -rf builder/ +mkdir builder + +# copy to a tmp directory +if [ true ]; then + cd builder + wget https://github.com/luigifab/awf-extended/archive/v${version}/awf-extended-${version}.tar.gz + tar xzf awf-extended-${version}.tar.gz + cd .. +else + temp=awf-extended-${version} + mkdir /tmp/${temp} + cp -r ../* /tmp/${temp}/ + rm -rf /tmp/${temp}/*/builder/ + + mv /tmp/${temp} builder/ + cp /usr/share/common-licenses/GPL-3 builder/${temp}/LICENSE + + cd builder/ + tar czf ${temp}.tar.gz ${temp} + cd .. +fi + + +# create packages for debian and ubuntu +for serie in unstable hirsute groovy focal bionic xenial trusty precise; do + + if [ $serie = "unstable" ]; then + # for ubuntu + cp -a builder/awf-extended-${version}/ builder/awf-extended-${version}+src/ + # debian only + cd builder/awf-extended-${version}/ + else + # ubuntu only + cp -a builder/awf-extended-${version}+src/ builder/awf-extended-${version}+${serie}/ + cd builder/awf-extended-${version}+${serie}/ + fi + + dh_make -s -y -f ../awf-extended-${version}.tar.gz -p awf-${gtk} + + rm -f debian/*ex debian/*EX debian/README* debian/*doc* + mkdir debian/upstream + cp debian-${gtk}/* debian/ + mv debian/metadata debian/upstream/metadata + + + + if [ $serie = "unstable" ]; then + dpkg-buildpackage -us -uc + else + # debhelper: unstable:13 hirsute:13 groovy:13 focal:12 bionic:9 xenial:9 trusty:9 precise:9 + if [ $serie = "focal" ]; then + sed -i 's/debhelper-compat (= 13)/debhelper-compat (= 12)/g' debian/control + fi + if [ $serie = "bionic" ]; then + sed -i 's/dh $@/dh $@ --with autoreconf/g' debian/rules + sed -i 's/debhelper-compat (= 13)/debhelper-compat (= 9), dh-autoreconf/g' debian/control + fi + if [ $serie = "xenial" ]; then + sed -i 's/dh $@/dh $@ --with autoreconf/g' debian/rules + sed -i 's/debhelper-compat (= 13)/debhelper (>= 9), dh-autoreconf/g' debian/control + sed -i ':a;N;$!ba;s/Rules-Requires-Root: no\n//g' debian/control + echo 9 > debian/compat + fi + if [ $serie = "trusty" ]; then + sed -i 's/dh $@/dh $@ --with autotools_dev,autoreconf/g' debian/rules + sed -i 's/override_dh_update_autotools_config/override_dh_autotools-dev_updateconfig/g' debian/rules + sed -i 's/debhelper-compat (= 13)/debhelper (>= 9), autotools-dev, dh-autoreconf/g' debian/control + sed -i ':a;N;$!ba;s/Rules-Requires-Root: no\n//g' debian/control + echo 9 > debian/compat + fi + if [ $serie = "precise" ]; then + sed -i 's/dh $@/dh $@ --with autotools_dev,autoreconf/g' debian/rules + sed -i 's/override_dh_update_autotools_config/override_dh_autotools-dev_updateconfig/g' debian/rules + sed -i 's/debhelper-compat (= 13)/debhelper (>= 9), autotools-dev, dh-autoreconf/g' debian/control + sed -i ':a;N;$!ba;s/Rules-Requires-Root: no\n//g' debian/control + echo 9 > debian/compat + fi + sed -i 's/unstable/'${serie}'/g' debian/changelog + sed -i 's/-5) /-5+'${serie}') /' debian/changelog + dpkg-buildpackage -us -uc -ui -d -S + fi + echo "===========================" + cd .. + + if [ $serie = "unstable" ]; then + # debian only + debsign awf-${gtk}_${version}-*.changes + echo "===========================" + lintian -EviIL +pedantic awf-${gtk}_${version}-*.deb + else + # ubuntu only + debsign awf-${gtk}_${version}*+${serie}*source.changes + fi + echo "===========================" + cd .. +done + +ls -dltrh $PWD/builder/*.deb $PWD/builder/*.changes +echo "===========================" + +# cleanup +rm -rf builder/*/ \ No newline at end of file diff --git a/debian-gtk2/install b/debian-gtk2/install new file mode 100644 index 0000000..12830e6 --- /dev/null +++ b/debian-gtk2/install @@ -0,0 +1,3 @@ +applications/awf-gtk2.desktop usr/share/applications +icons/* usr/share/icons/hicolor +locale/* usr/share/locale \ No newline at end of file diff --git a/src/debian-gtk2/upstream b/debian-gtk2/metadata similarity index 100% rename from src/debian-gtk2/upstream rename to debian-gtk2/metadata diff --git a/debian-gtk2/rules b/debian-gtk2/rules new file mode 100644 index 0000000..6e0bd49 --- /dev/null +++ b/debian-gtk2/rules @@ -0,0 +1,22 @@ +#!/usr/bin/make -f + +export DEB_BUILD_MAINT_OPTIONS = hardening=+all + +%: + dh $@ + +override_dh_update_autotools_config: + sed -i 's/ -eq 3/ -eq -1/g' configure.ac + sed -i 's/ -eq 4/ -eq -1/g' configure.ac + touch NEWS + touch AUTHORS + touch README + touch ChangeLog + mv LICENSE COPYING + for file in icons/*/*/*.png; do mv $$file `dirname $$file`/awf-gtk2.png; done + for file in icons/*/*/*.svg; do mv $$file `dirname $$file`/awf-gtk2.svg; done + for file in src/po/*.po; do \ + code=`basename "$$file" .po`; \ + mkdir -p locale/$$code/LC_MESSAGES/; \ + msgfmt src/po/$$code.po -o locale/$$code/LC_MESSAGES/awf-gtk2.mo; \ + done diff --git a/src/debian-gtk2/watch b/debian-gtk2/watch similarity index 100% rename from src/debian-gtk2/watch rename to debian-gtk2/watch diff --git a/debian-gtk3/changelog b/debian-gtk3/changelog new file mode 100644 index 0000000..1322c02 --- /dev/null +++ b/debian-gtk3/changelog @@ -0,0 +1,5 @@ +awf-gtk3 (2.2.0-5) unstable; urgency=low + + * Initial debian package release (Closes: #959436) + + -- Fabrice Creuzot Wed, 11 Nov 2020 12:00:00 +0000 diff --git a/src/debian-gtk3/control b/debian-gtk3/control similarity index 61% rename from src/debian-gtk3/control rename to debian-gtk3/control index e80d8d5..613b0a2 100644 --- a/src/debian-gtk3/control +++ b/debian-gtk3/control @@ -12,8 +12,9 @@ Vcs-Git: https://github.com/luigifab/awf-extended.git Package: awf-gtk3 Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends} -Description: A widget factory is a theme preview application for GTK - It displays the various widget types provided by GTK in a single window - allowing to see the visual effect of the applied theme. +Description: Theme preview application for GTK + A widget factory is a theme preview application for GTK. It displays the + various widget types provided by GTK in a single window allowing to see + the visual effect of the applied theme. . - This package include the gtk3 version. + This package provides the gtk3 version. diff --git a/src/debian-gtk3/copyright b/debian-gtk3/copyright similarity index 100% rename from src/debian-gtk3/copyright rename to debian-gtk3/copyright diff --git a/debian-gtk3/deb.sh b/debian-gtk3/deb.sh new file mode 100644 index 0000000..24fbb75 --- /dev/null +++ b/debian-gtk3/deb.sh @@ -0,0 +1,112 @@ +#!/bin/bash +# debian: sudo apt install dpkg-dev devscripts build-essential dh-make dh-autoreconf intltool libgtk-3-dev + + + +cd "$(dirname "$0")" +version="2.2.0" +gtk="gtk3" + +rm -rf builder/ +mkdir builder + +# copy to a tmp directory +if [ true ]; then + cd builder + wget https://github.com/luigifab/awf-extended/archive/v${version}/awf-extended-${version}.tar.gz + tar xzf awf-extended-${version}.tar.gz + cd .. +else + temp=awf-extended-${version} + mkdir /tmp/${temp} + cp -r ../* /tmp/${temp}/ + rm -rf /tmp/${temp}/*/builder/ + + mv /tmp/${temp} builder/ + cp /usr/share/common-licenses/GPL-3 builder/${temp}/LICENSE + + cd builder/ + tar czf ${temp}.tar.gz ${temp} + cd .. +fi + + +# create packages for debian and ubuntu +for serie in unstable hirsute groovy focal bionic xenial trusty precise; do + + if [ $serie = "unstable" ]; then + # for ubuntu + cp -a builder/awf-extended-${version}/ builder/awf-extended-${version}+src/ + # debian only + cd builder/awf-extended-${version}/ + else + # ubuntu only + cp -a builder/awf-extended-${version}+src/ builder/awf-extended-${version}+${serie}/ + cd builder/awf-extended-${version}+${serie}/ + fi + + dh_make -s -y -f ../awf-extended-${version}.tar.gz -p awf-${gtk} + + rm -f debian/*ex debian/*EX debian/README* debian/*doc* + mkdir debian/upstream + cp debian-${gtk}/* debian/ + mv debian/metadata debian/upstream/metadata + + + + if [ $serie = "unstable" ]; then + dpkg-buildpackage -us -uc + else + # debhelper: unstable:13 hirsute:13 groovy:13 focal:12 bionic:9 xenial:9 trusty:9 precise:9 + if [ $serie = "focal" ]; then + sed -i 's/debhelper-compat (= 13)/debhelper-compat (= 12)/g' debian/control + fi + if [ $serie = "bionic" ]; then + sed -i 's/dh $@/dh $@ --with autoreconf/g' debian/rules + sed -i 's/debhelper-compat (= 13)/debhelper-compat (= 9), dh-autoreconf/g' debian/control + fi + if [ $serie = "xenial" ]; then + sed -i 's/dh $@/dh $@ --with autoreconf/g' debian/rules + sed -i 's/debhelper-compat (= 13)/debhelper (>= 9), dh-autoreconf/g' debian/control + sed -i ':a;N;$!ba;s/Rules-Requires-Root: no\n//g' debian/control + echo 9 > debian/compat + fi + if [ $serie = "trusty" ]; then + sed -i 's/dh $@/dh $@ --with autotools_dev,autoreconf/g' debian/rules + sed -i 's/override_dh_update_autotools_config/override_dh_autotools-dev_updateconfig/g' debian/rules + sed -i 's/debhelper-compat (= 13)/debhelper (>= 9), autotools-dev, dh-autoreconf/g' debian/control + sed -i ':a;N;$!ba;s/Rules-Requires-Root: no\n//g' debian/control + echo 9 > debian/compat + fi + if [ $serie = "precise" ]; then + sed -i 's/dh $@/dh $@ --with autotools_dev,autoreconf/g' debian/rules + sed -i 's/override_dh_update_autotools_config/override_dh_autotools-dev_updateconfig/g' debian/rules + sed -i 's/debhelper-compat (= 13)/debhelper (>= 9), autotools-dev, dh-autoreconf/g' debian/control + sed -i ':a;N;$!ba;s/Rules-Requires-Root: no\n//g' debian/control + echo 9 > debian/compat + fi + sed -i 's/unstable/'${serie}'/g' debian/changelog + sed -i 's/-5) /-5+'${serie}') /' debian/changelog + dpkg-buildpackage -us -uc -ui -d -S + fi + echo "===========================" + cd .. + + if [ $serie = "unstable" ]; then + # debian only + debsign awf-${gtk}_${version}-*.changes + echo "===========================" + lintian -EviIL +pedantic awf-${gtk}_${version}-*.deb + else + # ubuntu only + debsign awf-${gtk}_${version}*+${serie}*source.changes + fi + echo "===========================" + cd .. +done + +ls -dltrh $PWD/builder/*.deb $PWD/builder/*.changes +echo "===========================" + +# cleanup +rm -rf builder/*/ \ No newline at end of file diff --git a/debian-gtk3/install b/debian-gtk3/install new file mode 100644 index 0000000..7b088da --- /dev/null +++ b/debian-gtk3/install @@ -0,0 +1,3 @@ +applications/awf-gtk3.desktop usr/share/applications +icons/* usr/share/icons/hicolor +locale/* usr/share/locale \ No newline at end of file diff --git a/src/debian-gtk3/upstream b/debian-gtk3/metadata similarity index 100% rename from src/debian-gtk3/upstream rename to debian-gtk3/metadata diff --git a/debian-gtk3/rules b/debian-gtk3/rules new file mode 100644 index 0000000..35a2cbd --- /dev/null +++ b/debian-gtk3/rules @@ -0,0 +1,22 @@ +#!/usr/bin/make -f + +export DEB_BUILD_MAINT_OPTIONS = hardening=+all + +%: + dh $@ + +override_dh_update_autotools_config: + sed -i 's/ -eq 2/ -eq -1/g' configure.ac + sed -i 's/ -eq 4/ -eq -1/g' configure.ac + touch NEWS + touch AUTHORS + touch README + touch ChangeLog + mv LICENSE COPYING + for file in icons/*/*/*.png; do mv $$file `dirname $$file`/awf-gtk3.png; done + for file in icons/*/*/*.svg; do mv $$file `dirname $$file`/awf-gtk3.svg; done + for file in src/po/*.po; do \ + code=`basename "$$file" .po`; \ + mkdir -p locale/$$code/LC_MESSAGES/; \ + msgfmt src/po/$$code.po -o locale/$$code/LC_MESSAGES/awf-gtk3.mo; \ + done diff --git a/src/debian-gtk3/watch b/debian-gtk3/watch similarity index 100% rename from src/debian-gtk3/watch rename to debian-gtk3/watch diff --git a/debian-gtk4/changelog b/debian-gtk4/changelog new file mode 100644 index 0000000..50da084 --- /dev/null +++ b/debian-gtk4/changelog @@ -0,0 +1,5 @@ +awf-gtk4 (2.2.0-5) experimental; urgency=low + + * Initial debian package release (Closes: #959433) + + -- Fabrice Creuzot Wed, 11 Nov 2020 12:00:00 +0000 diff --git a/src/debian-gtk4/control b/debian-gtk4/control similarity index 61% rename from src/debian-gtk4/control rename to debian-gtk4/control index 9397969..2092287 100644 --- a/src/debian-gtk4/control +++ b/debian-gtk4/control @@ -12,8 +12,9 @@ Vcs-Git: https://github.com/luigifab/awf-extended.git Package: awf-gtk4 Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends} -Description: A widget factory is a theme preview application for GTK - It displays the various widget types provided by GTK in a single window - allowing to see the visual effect of the applied theme. +Description: Theme preview application for GTK + A widget factory is a theme preview application for GTK. It displays the + various widget types provided by GTK in a single window allowing to see + the visual effect of the applied theme. . - This package include the gtk4 version. + This package provides the gtk4 version. diff --git a/src/debian-gtk4/copyright b/debian-gtk4/copyright similarity index 100% rename from src/debian-gtk4/copyright rename to debian-gtk4/copyright diff --git a/debian-gtk4/deb.sh b/debian-gtk4/deb.sh new file mode 100644 index 0000000..1c0e73a --- /dev/null +++ b/debian-gtk4/deb.sh @@ -0,0 +1,112 @@ +#!/bin/bash +# debian: sudo apt install dpkg-dev devscripts build-essential dh-make dh-autoreconf intltool libgtk-4-dev + + + +cd "$(dirname "$0")" +version="2.2.0" +gtk="gtk4" + +rm -rf builder/ +mkdir builder + +# copy to a tmp directory +if [ true ]; then + cd builder + wget https://github.com/luigifab/awf-extended/archive/v${version}/awf-extended-${version}.tar.gz + tar xzf awf-extended-${version}.tar.gz + cd .. +else + temp=awf-extended-${version} + mkdir /tmp/${temp} + cp -r ../* /tmp/${temp}/ + rm -rf /tmp/${temp}/*/builder/ + + mv /tmp/${temp} builder/ + cp /usr/share/common-licenses/GPL-3 builder/${temp}/LICENSE + + cd builder/ + tar czf ${temp}.tar.gz ${temp} + cd .. +fi + + +# create packages for debian and ubuntu +for serie in unstable hirsute groovy focal bionic xenial trusty precise; do + + if [ $serie = "unstable" ]; then + # for ubuntu + cp -a builder/awf-extended-${version}/ builder/awf-extended-${version}+src/ + # debian only + cd builder/awf-extended-${version}/ + else + # ubuntu only + cp -a builder/awf-extended-${version}+src/ builder/awf-extended-${version}+${serie}/ + cd builder/awf-extended-${version}+${serie}/ + fi + + dh_make -s -y -f ../awf-extended-${version}.tar.gz -p awf-${gtk} + + rm -f debian/*ex debian/*EX debian/README* debian/*doc* + mkdir debian/upstream + cp debian-${gtk}/* debian/ + mv debian/metadata debian/upstream/metadata + + + + if [ $serie = "unstable" ]; then + dpkg-buildpackage -us -uc + else + # debhelper: unstable:13 hirsute:13 groovy:13 focal:12 bionic:9 xenial:9 trusty:9 precise:9 + if [ $serie = "focal" ]; then + sed -i 's/debhelper-compat (= 13)/debhelper-compat (= 12)/g' debian/control + fi + if [ $serie = "bionic" ]; then + sed -i 's/dh $@/dh $@ --with autoreconf/g' debian/rules + sed -i 's/debhelper-compat (= 13)/debhelper-compat (= 9), dh-autoreconf/g' debian/control + fi + if [ $serie = "xenial" ]; then + sed -i 's/dh $@/dh $@ --with autoreconf/g' debian/rules + sed -i 's/debhelper-compat (= 13)/debhelper (>= 9), dh-autoreconf/g' debian/control + sed -i ':a;N;$!ba;s/Rules-Requires-Root: no\n//g' debian/control + echo 9 > debian/compat + fi + if [ $serie = "trusty" ]; then + sed -i 's/dh $@/dh $@ --with autotools_dev,autoreconf/g' debian/rules + sed -i 's/override_dh_update_autotools_config/override_dh_autotools-dev_updateconfig/g' debian/rules + sed -i 's/debhelper-compat (= 13)/debhelper (>= 9), autotools-dev, dh-autoreconf/g' debian/control + sed -i ':a;N;$!ba;s/Rules-Requires-Root: no\n//g' debian/control + echo 9 > debian/compat + fi + if [ $serie = "precise" ]; then + sed -i 's/dh $@/dh $@ --with autotools_dev,autoreconf/g' debian/rules + sed -i 's/override_dh_update_autotools_config/override_dh_autotools-dev_updateconfig/g' debian/rules + sed -i 's/debhelper-compat (= 13)/debhelper (>= 9), autotools-dev, dh-autoreconf/g' debian/control + sed -i ':a;N;$!ba;s/Rules-Requires-Root: no\n//g' debian/control + echo 9 > debian/compat + fi + sed -i 's/unstable/'${serie}'/g' debian/changelog + sed -i 's/-5) /-5+'${serie}') /' debian/changelog + dpkg-buildpackage -us -uc -ui -d -S + fi + echo "===========================" + cd .. + + if [ $serie = "unstable" ]; then + # debian only + debsign awf-${gtk}_${version}-*.changes + echo "===========================" + lintian -EviIL +pedantic awf-${gtk}_${version}-*.deb + else + # ubuntu only + debsign awf-${gtk}_${version}*+${serie}*source.changes + fi + echo "===========================" + cd .. +done + +ls -dltrh $PWD/builder/*.deb $PWD/builder/*.changes +echo "===========================" + +# cleanup +rm -rf builder/*/ \ No newline at end of file diff --git a/debian-gtk4/install b/debian-gtk4/install new file mode 100644 index 0000000..c365a99 --- /dev/null +++ b/debian-gtk4/install @@ -0,0 +1,3 @@ +applications/awf-gtk4.desktop usr/share/applications +icons/* usr/share/icons/hicolor +locale/* usr/share/locale \ No newline at end of file diff --git a/src/debian-gtk4/upstream b/debian-gtk4/metadata similarity index 100% rename from src/debian-gtk4/upstream rename to debian-gtk4/metadata diff --git a/debian-gtk4/rules b/debian-gtk4/rules new file mode 100644 index 0000000..0ae8898 --- /dev/null +++ b/debian-gtk4/rules @@ -0,0 +1,22 @@ +#!/usr/bin/make -f + +export DEB_BUILD_MAINT_OPTIONS = hardening=+all + +%: + dh $@ + +override_dh_update_autotools_config: + sed -i 's/ -eq 2/ -eq -1/g' configure.ac + sed -i 's/ -eq 3/ -eq -1/g' configure.ac + touch NEWS + touch AUTHORS + touch README + touch ChangeLog + mv LICENSE COPYING + for file in icons/*/*/*.png; do mv $$file `dirname $$file`/awf-gtk4.png; done + for file in icons/*/*/*.svg; do mv $$file `dirname $$file`/awf-gtk4.svg; done + for file in src/po/*.po; do \ + code=`basename "$$file" .po`; \ + mkdir -p locale/$$code/LC_MESSAGES/; \ + msgfmt src/po/$$code.po -o locale/$$code/LC_MESSAGES/awf-gtk4.mo; \ + done diff --git a/src/debian-gtk4/watch b/debian-gtk4/watch similarity index 100% rename from src/debian-gtk4/watch rename to debian-gtk4/watch diff --git a/fedora-gtk2/awf-gtk2.spec b/fedora-gtk2/awf-gtk2.spec new file mode 100644 index 0000000..1ea6a59 --- /dev/null +++ b/fedora-gtk2/awf-gtk2.spec @@ -0,0 +1,73 @@ +Name: awf-gtk2 +Version: 2.2.0 +Release: 1%{?dist} +Summary: Theme preview application for GTK +Summary(fr): Application d'aperçu de thème pour GTK +License: GPLv3+ +URL: https://github.com/luigifab/awf-extended +Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz + +BuildRequires: gtk2-devel +BuildRequires: gettext +BuildRequires: gcc +BuildRequires: autoconf +BuildRequires: automake +BuildRequires: desktop-file-utils +BuildRequires: hunspell-fr +Requires: gtk2 +Requires: hicolor-icon-theme + +%description %{expand: +A widget factory is a theme preview application for GTK. It displays the +various widget types provided by GTK in a single window allowing to see +the visual effect of the applied theme. + +This package provides the gtk2 version.} + +%description -l fr %{expand: +La fabrique à widgets est une application d'aperçu de thème pour GTK. Elle +affiche les différents types de widgets fournis par GTK dans une seule +fenêtre permettant de voir l'effet visuel du thème appliqué. + +Ce paquet fournit la version gtk2.} + + +%prep +%setup -q -n awf-extended-%{version} +%autosetup -n awf-extended-%{version} +sed -i 's/ -eq 3/ -eq -1/g' configure.ac +sed -i 's/ -eq 4/ -eq -1/g' configure.ac +touch {NEWS,AUTHORS,README,ChangeLog} +mv LICENSE COPYING + +%build +autoreconf -f -i +%configure +%make_build + +%install +%make_install +mkdir -p %{buildroot}%{_datadir}/applications/ +mkdir -p %{buildroot}%{_datadir}/icons/hicolor/ +for file in icons/*/*/*; do mv $file ${file/\/awf./\/%{name}.}; done +cp -a icons/* %{buildroot}%{_datadir}/icons/hicolor/ +for file in src/po/*.po; do + code=$(basename "$file" .po) + mkdir -p %{buildroot}%{_datadir}/locale/${code}/LC_MESSAGES/ + msgfmt src/po/${code}.po -o %{buildroot}%{_datadir}/locale/${code}/LC_MESSAGES/%{name}.mo +done +desktop-file-install --dir=%{buildroot}%{_datadir}/applications/ applications/%{name}.desktop +%find_lang %{name} + +%files -f %{name}.lang +%license COPYING +%doc README.md +%{_bindir}/%{name} +%{_datadir}/applications/%{name}.desktop +%{_datadir}/icons/hicolor/*/apps/%{name}.png +%{_datadir}/icons/hicolor/scalable/apps/%{name}.svg + + +%changelog +* Wed Nov 11 2020 Fabrice Creuzot - 2.2.0-1 +- Initial fedora package release (Closes: #1893321) diff --git a/fedora-gtk2/rpm.sh b/fedora-gtk2/rpm.sh new file mode 100644 index 0000000..48ab1c1 --- /dev/null +++ b/fedora-gtk2/rpm.sh @@ -0,0 +1,49 @@ +#!/bin/bash +# debian: sudo apt install dpkg-dev devscripts build-essential dh-make dh-autoreconf intltool libgtk2.0-dev rpm +# fedora: sudo dnf install rpmdevtools rpm-sign autoconf automake gtk2-devel +# fedora: configure: error: C compiler cannot create executables? remove and reinstall glibc-devel gcc + +cd "$(dirname "$0")" +version="2.2.0" +gtk="gtk2" + +rm -rf builder/ ~/rpmbuild/ +mkdir -p builder ~/rpmbuild/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS} + +# copy to a tmp directory +if [ true ]; then + chmod 644 awf-${gtk}.spec + spectool -g -R awf-${gtk}.spec +else + temp=awf-extended-${version} + mkdir /tmp/${temp} + cp -r ../* /tmp/${temp}/ + rm -rf /tmp/${temp}/*/builder/ + + mv /tmp/${temp} builder/ + cp /usr/share/common-licenses/GPL-3 builder/${temp}/LICENSE + + cd builder/ + tar czf ${temp}.tar.gz ${temp} + cd .. + + cp builder/${temp}.tar.gz ~/rpmbuild/SOURCES/awf-${gtk}-${version}.tar.gz + chmod 644 awf-${gtk}.spec +fi + +# create package (rpm sign https://access.redhat.com/articles/3359321) +rpmbuild --nodeps -ba awf-${gtk}.spec +rpm --addsign ~/rpmbuild/RPMS/*/*.rpm +rpm --addsign ~/rpmbuild/SRPMS/*.rpm +mv ~/rpmbuild/RPMS/*/*.rpm builder/ +mv ~/rpmbuild/SRPMS/*.rpm builder/ +echo "===========================" +rpm --checksig builder/*.rpm +echo "===========================" +rpmlint awf-${gtk}.spec builder/*.rpm +echo "===========================" +ls -dltrh $PWD/builder/*.rpm +echo "===========================" + +# cleanup +rm -rf builder/*/ ~/rpmbuild/ \ No newline at end of file diff --git a/fedora-gtk3/awf-gtk3.spec b/fedora-gtk3/awf-gtk3.spec new file mode 100644 index 0000000..b6c02a0 --- /dev/null +++ b/fedora-gtk3/awf-gtk3.spec @@ -0,0 +1,73 @@ +Name: awf-gtk3 +Version: 2.2.0 +Release: 1%{?dist} +Summary: Theme preview application for GTK +Summary(fr): Application d'aperçu de thème pour GTK +License: GPLv3+ +URL: https://github.com/luigifab/awf-extended +Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz + +BuildRequires: gtk3-devel +BuildRequires: gettext +BuildRequires: gcc +BuildRequires: autoconf +BuildRequires: automake +BuildRequires: desktop-file-utils +BuildRequires: hunspell-fr +Requires: gtk3 +Requires: hicolor-icon-theme + +%description %{expand: +A widget factory is a theme preview application for GTK. It displays the +various widget types provided by GTK in a single window allowing to see +the visual effect of the applied theme. + +This package provides the gtk3 version.} + +%description -l fr %{expand: +La fabrique à widgets est une application d'aperçu de thème pour GTK. Elle +affiche les différents types de widgets fournis par GTK dans une seule +fenêtre permettant de voir l'effet visuel du thème appliqué. + +Ce paquet fournit la version gtk3.} + + +%prep +%setup -q -n awf-extended-%{version} +%autosetup -n awf-extended-%{version} +sed -i 's/ -eq 2/ -eq -1/g' configure.ac +sed -i 's/ -eq 4/ -eq -1/g' configure.ac +touch {NEWS,AUTHORS,README,ChangeLog} +mv LICENSE COPYING + +%build +autoreconf -f -i +%configure +%make_build + +%install +%make_install +mkdir -p %{buildroot}%{_datadir}/applications/ +mkdir -p %{buildroot}%{_datadir}/icons/hicolor/ +for file in icons/*/*/*; do mv $file ${file/\/awf./\/%{name}.}; done +cp -a icons/* %{buildroot}%{_datadir}/icons/hicolor/ +for file in src/po/*.po; do + code=$(basename "$file" .po) + mkdir -p %{buildroot}%{_datadir}/locale/${code}/LC_MESSAGES/ + msgfmt src/po/${code}.po -o %{buildroot}%{_datadir}/locale/${code}/LC_MESSAGES/%{name}.mo +done +desktop-file-install --dir=%{buildroot}%{_datadir}/applications/ applications/%{name}.desktop +%find_lang %{name} + +%files -f %{name}.lang +%license COPYING +%doc README.md +%{_bindir}/%{name} +%{_datadir}/applications/%{name}.desktop +%{_datadir}/icons/hicolor/*/apps/%{name}.png +%{_datadir}/icons/hicolor/scalable/apps/%{name}.svg + + +%changelog +* Wed Nov 11 2020 Fabrice Creuzot - 2.2.0-1 +- Initial fedora package release (Closes: #1893323) diff --git a/fedora-gtk3/rpm.sh b/fedora-gtk3/rpm.sh new file mode 100644 index 0000000..a801070 --- /dev/null +++ b/fedora-gtk3/rpm.sh @@ -0,0 +1,49 @@ +#!/bin/bash +# debian: sudo apt install dpkg-dev devscripts build-essential dh-make dh-autoreconf intltool libgtk-3-dev rpm +# fedora: sudo dnf install rpmdevtools rpm-sign autoconf automake gtk3-devel +# fedora: configure: error: C compiler cannot create executables? remove and reinstall glibc-devel gcc + +cd "$(dirname "$0")" +version="2.2.0" +gtk="gtk3" + +rm -rf builder/ ~/rpmbuild/ +mkdir -p builder ~/rpmbuild/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS} + +# copy to a tmp directory +if [ true ]; then + chmod 644 awf-${gtk}.spec + spectool -g -R awf-${gtk}.spec +else + temp=awf-extended-${version} + mkdir /tmp/${temp} + cp -r ../* /tmp/${temp}/ + rm -rf /tmp/${temp}/*/builder/ + + mv /tmp/${temp} builder/ + cp /usr/share/common-licenses/GPL-3 builder/${temp}/LICENSE + + cd builder/ + tar czf ${temp}.tar.gz ${temp} + cd .. + + cp builder/${temp}.tar.gz ~/rpmbuild/SOURCES/awf-${gtk}-${version}.tar.gz + chmod 644 awf-${gtk}.spec +fi + +# create package (rpm sign https://access.redhat.com/articles/3359321) +rpmbuild --nodeps -ba awf-${gtk}.spec +rpm --addsign ~/rpmbuild/RPMS/*/*.rpm +rpm --addsign ~/rpmbuild/SRPMS/*.rpm +mv ~/rpmbuild/RPMS/*/*.rpm builder/ +mv ~/rpmbuild/SRPMS/*.rpm builder/ +echo "===========================" +rpm --checksig builder/*.rpm +echo "===========================" +rpmlint awf-${gtk}.spec builder/*.rpm +echo "===========================" +ls -dltrh $PWD/builder/*.rpm +echo "===========================" + +# cleanup +rm -rf builder/*/ ~/rpmbuild/ \ No newline at end of file diff --git a/fedora-gtk4/awf-gtk4.spec b/fedora-gtk4/awf-gtk4.spec new file mode 100644 index 0000000..c9099c7 --- /dev/null +++ b/fedora-gtk4/awf-gtk4.spec @@ -0,0 +1,73 @@ +Name: awf-gtk4 +Version: 2.2.0 +Release: 1%{?dist} +Summary: Theme preview application for GTK +Summary(fr): Application d'aperçu de thème pour GTK +License: GPLv3+ +URL: https://github.com/luigifab/awf-extended +Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz + +BuildRequires: gtk4-devel +BuildRequires: gettext +BuildRequires: gcc +BuildRequires: autoconf +BuildRequires: automake +BuildRequires: desktop-file-utils +BuildRequires: hunspell-fr +Requires: gtk4 +Requires: hicolor-icon-theme + +%description %{expand: +A widget factory is a theme preview application for GTK. It displays the +various widget types provided by GTK in a single window allowing to see +the visual effect of the applied theme. + +This package provides the gtk4 version.} + +%description -l fr %{expand: +La fabrique à widgets est une application d'aperçu de thème pour GTK. Elle +affiche les différents types de widgets fournis par GTK dans une seule +fenêtre permettant de voir l'effet visuel du thème appliqué. + +Ce paquet fournit la version gtk4.} + + +%prep +%setup -q -n awf-extended-%{version} +%autosetup -n awf-extended-%{version} +sed -i 's/ -eq 2/ -eq -1/g' configure.ac +sed -i 's/ -eq 3/ -eq -1/g' configure.ac +touch {NEWS,AUTHORS,README,ChangeLog} +mv LICENSE COPYING + +%build +autoreconf -f -i +%configure +%make_build + +%install +%make_install +mkdir -p %{buildroot}%{_datadir}/applications/ +mkdir -p %{buildroot}%{_datadir}/icons/hicolor/ +for file in icons/*/*/*; do mv $file ${file/\/awf./\/%{name}.}; done +cp -a icons/* %{buildroot}%{_datadir}/icons/hicolor/ +for file in src/po/*.po; do + code=$(basename "$file" .po) + mkdir -p %{buildroot}%{_datadir}/locale/${code}/LC_MESSAGES/ + msgfmt src/po/${code}.po -o %{buildroot}%{_datadir}/locale/${code}/LC_MESSAGES/%{name}.mo +done +desktop-file-install --dir=%{buildroot}%{_datadir}/applications/ applications/%{name}.desktop +%find_lang %{name} + +%files -f %{name}.lang +%license COPYING +%doc README.md +%{_bindir}/%{name} +%{_datadir}/applications/%{name}.desktop +%{_datadir}/icons/hicolor/*/apps/%{name}.png +%{_datadir}/icons/hicolor/scalable/apps/%{name}.svg + + +%changelog +* Wed Nov 11 2020 Fabrice Creuzot - 2.2.0-1 +- Initial fedora package release diff --git a/fedora-gtk4/rpm.sh b/fedora-gtk4/rpm.sh new file mode 100644 index 0000000..b9e631f --- /dev/null +++ b/fedora-gtk4/rpm.sh @@ -0,0 +1,49 @@ +#!/bin/bash +# debian: sudo apt install dpkg-dev devscripts build-essential dh-make dh-autoreconf intltool libgtk-4-dev rpm +# fedora: sudo dnf install rpmdevtools rpm-sign autoconf automake gtk4-devel +# fedora: configure: error: C compiler cannot create executables? remove and reinstall glibc-devel gcc + +cd "$(dirname "$0")" +version="2.2.0" +gtk="gtk4" + +rm -rf builder/ ~/rpmbuild/ +mkdir -p builder ~/rpmbuild/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS} + +# copy to a tmp directory +if [ true ]; then + chmod 644 awf-${gtk}.spec + spectool -g -R awf-${gtk}.spec +else + temp=awf-extended-${version} + mkdir /tmp/${temp} + cp -r ../* /tmp/${temp}/ + rm -rf /tmp/${temp}/*/builder/ + + mv /tmp/${temp} builder/ + cp /usr/share/common-licenses/GPL-3 builder/${temp}/LICENSE + + cd builder/ + tar czf ${temp}.tar.gz ${temp} + cd .. + + cp builder/${temp}.tar.gz ~/rpmbuild/SOURCES/awf-${gtk}-${version}.tar.gz + chmod 644 awf-${gtk}.spec +fi + +# create package (rpm sign https://access.redhat.com/articles/3359321) +rpmbuild --nodeps -ba awf-${gtk}.spec +rpm --addsign ~/rpmbuild/RPMS/*/*.rpm +rpm --addsign ~/rpmbuild/SRPMS/*.rpm +mv ~/rpmbuild/RPMS/*/*.rpm builder/ +mv ~/rpmbuild/SRPMS/*.rpm builder/ +echo "===========================" +rpm --checksig builder/*.rpm +echo "===========================" +rpmlint awf-${gtk}.spec builder/*.rpm +echo "===========================" +ls -dltrh $PWD/builder/*.rpm +echo "===========================" + +# cleanup +rm -rf builder/*/ ~/rpmbuild/ \ No newline at end of file diff --git a/src/icons/128x128/apps/awf.png b/icons/128x128/apps/awf.png similarity index 100% rename from src/icons/128x128/apps/awf.png rename to icons/128x128/apps/awf.png diff --git a/src/icons/16x16/apps/awf.png b/icons/16x16/apps/awf.png similarity index 100% rename from src/icons/16x16/apps/awf.png rename to icons/16x16/apps/awf.png diff --git a/src/icons/22x22/apps/awf.png b/icons/22x22/apps/awf.png similarity index 100% rename from src/icons/22x22/apps/awf.png rename to icons/22x22/apps/awf.png diff --git a/src/icons/24x24/apps/awf.png b/icons/24x24/apps/awf.png similarity index 100% rename from src/icons/24x24/apps/awf.png rename to icons/24x24/apps/awf.png diff --git a/src/icons/32x32/apps/awf.png b/icons/32x32/apps/awf.png similarity index 100% rename from src/icons/32x32/apps/awf.png rename to icons/32x32/apps/awf.png diff --git a/src/icons/48x48/apps/awf.png b/icons/48x48/apps/awf.png similarity index 100% rename from src/icons/48x48/apps/awf.png rename to icons/48x48/apps/awf.png diff --git a/src/icons/64x64/apps/awf.png b/icons/64x64/apps/awf.png similarity index 100% rename from src/icons/64x64/apps/awf.png rename to icons/64x64/apps/awf.png diff --git a/src/icons/scalable/apps/awf.svg b/icons/scalable/apps/awf.svg similarity index 100% rename from src/icons/scalable/apps/awf.svg rename to icons/scalable/apps/awf.svg diff --git a/images/gtk2-menu.png b/images/gtk2-menu.png index d2128ae..b35254e 100644 Binary files a/images/gtk2-menu.png and b/images/gtk2-menu.png differ diff --git a/images/gtk2.png b/images/gtk2.png index 25c47b3..c635a0a 100644 Binary files a/images/gtk2.png and b/images/gtk2.png differ diff --git a/images/gtk3-menu.png b/images/gtk3-menu.png index 8b599ed..f780182 100644 Binary files a/images/gtk3-menu.png and b/images/gtk3-menu.png differ diff --git a/images/gtk3.png b/images/gtk3.png index 5a00c40..870348f 100644 Binary files a/images/gtk3.png and b/images/gtk3.png differ diff --git a/images/gtk4-menu.png b/images/gtk4-menu.png new file mode 100644 index 0000000..c5d6f16 Binary files /dev/null and b/images/gtk4-menu.png differ diff --git a/images/gtk4.png b/images/gtk4.png new file mode 100644 index 0000000..3ec56ec Binary files /dev/null and b/images/gtk4.png differ diff --git a/images/thumbs/gtk2-menu.png b/images/thumbs/gtk2-menu.png index 79123b1..e8ee9e8 100644 Binary files a/images/thumbs/gtk2-menu.png and b/images/thumbs/gtk2-menu.png differ diff --git a/images/thumbs/gtk2.png b/images/thumbs/gtk2.png index 19350bc..4d656ef 100644 Binary files a/images/thumbs/gtk2.png and b/images/thumbs/gtk2.png differ diff --git a/images/thumbs/gtk3-menu.png b/images/thumbs/gtk3-menu.png index e19d27b..c3ad26b 100644 Binary files a/images/thumbs/gtk3-menu.png and b/images/thumbs/gtk3-menu.png differ diff --git a/images/thumbs/gtk3.png b/images/thumbs/gtk3.png index f20dc70..87efb8a 100644 Binary files a/images/thumbs/gtk3.png and b/images/thumbs/gtk3.png differ diff --git a/images/thumbs/gtk4-menu.png b/images/thumbs/gtk4-menu.png new file mode 100644 index 0000000..b238777 Binary files /dev/null and b/images/thumbs/gtk4-menu.png differ diff --git a/images/thumbs/gtk4.png b/images/thumbs/gtk4.png new file mode 100644 index 0000000..6ba030e Binary files /dev/null and b/images/thumbs/gtk4.png differ diff --git a/src/Makefile.am b/src/Makefile.am index f963eff..a03b2d6 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -1 +1,22 @@ -SUBDIRS = src \ No newline at end of file +bin_PROGRAMS = + +if GTK4 +bin_PROGRAMS += awf-gtk@GTK4_SUFFIX@ +awf_gtk@GTK4_SUFFIX@_SOURCES = awf.c +awf_gtk@GTK4_SUFFIX@_CPPFLAGS = $(GTK4_CFLAGS) -I/usr/include/gtk-4.0/unix-print +awf_gtk@GTK4_SUFFIX@_LDADD = $(GTK4_LIBS) +endif + +if GTK3 +bin_PROGRAMS += awf-gtk@GTK3_SUFFIX@ +awf_gtk@GTK3_SUFFIX@_SOURCES = awf.c +awf_gtk@GTK3_SUFFIX@_CPPFLAGS = $(GTK3_CFLAGS) -I/usr/include/gtk-3.0/unix-print +awf_gtk@GTK3_SUFFIX@_LDADD = $(GTK3_LIBS) +endif + +if GTK2 +bin_PROGRAMS += awf-gtk@GTK2_SUFFIX@ +awf_gtk@GTK2_SUFFIX@_SOURCES = awf.c +awf_gtk@GTK2_SUFFIX@_CPPFLAGS = $(GTK2_CFLAGS) -I/usr/include/gtk-unix-print-2.0 +awf_gtk@GTK2_SUFFIX@_LDADD = $(GTK2_LIBS) +endif \ No newline at end of file diff --git a/src/src/awf.c b/src/awf.c similarity index 78% rename from src/src/awf.c rename to src/awf.c index ef40fa8..75478b7 100644 --- a/src/src/awf.c +++ b/src/awf.c @@ -1,9 +1,10 @@ /** * Forked M/10/03/2020 - * Updated L/22/06/2020 + * Updated D/25/10/2020 * * Copyright 2020 | Fabrice Creuzot (luigifab) - * https://github.com/luigifab/awf + * https://github.com/luigifab/awf-extended + * https://www.luigifab.fr/gtk/awf-extended * * Forked from * Copyright 2011-2017 | Valère Monseur (valr) @@ -29,20 +30,23 @@ * msgmerge src/po/fr.po src/awf.pot -o src/po/fr.po * msgfmt src/po/fr.po -o src/fr/LC_MESSAGES/awf.mo * - * GTK versions tested: + * Tested with build.sh with: + * i386 * Ubuntu 11.04 (live/768 MB) GTK 3.0 + GTK 2.24 + GLIB 2.28 * Ubuntu 11.10 (live/768 MB) GTK 3.2 + GTK 2.24 + GLIB 2.30 * Ubuntu 12.04 (live/1024 MB) GTK 3.4 + GTK 2.24 + GLIB 2.32 * Ubuntu 13.04 (live/1024 MB) GTK 3.6 + GTK 2.24 + GLIB 2.36 * Ubuntu 13.10 (live/1024 MB) GTK 3.8 + GTK 2.24 + GLIB 2.38 * Ubuntu 14.04 (live/1024 MB) GTK 3.10 + GTK 2.24 + GLIB 2.40 - * Ubuntu 14.10 (live/1024 MB) GTK 3.12 - * Ubuntu 15.04 (live/1024 MB) GTK 3.14 - * Ubuntu 15.10 (live/1024 MB) GTK 3.16 - * Ubuntu 16.04 (live/1272 MB) GTK 3.18 - * Ubuntu 16.10 (live/1272 MB) GTK 3.20 - * Ubuntu 17.04 (live/1272 MB) GTK 3.22 - * Debian Testing GTK 3.98 + GTK 3.24 + GTK 2.24 + GLIB 2.64 + * Ubuntu 14.10 (live/1024 MB) GTK 3.12 + GTK 2.24 + GLIB 2.42 + * Ubuntu 15.04 (live/1024 MB) GTK 3.14 + GTK 2.24 + GLIB 2.44 + * Ubuntu 15.10 (live/1024 MB) GTK 3.16 + GTK 2.24 + GLIB 2.46 + * Ubuntu 16.04 (live/1272 MB) GTK 3.18 + GTK 2.24 + GLIB 2.48 + * Ubuntu 16.10 (live/1272 MB) GTK 3.20 + GTK 2.24 + GLIB 2.50 + * Ubuntu 17.04 (live/1272 MB) GTK 3.22 + GTK 2.24 + GLIB 2.52 + * amd64 + * Debian Testing GTK 3.99 + GTK 3.24 + GTK 2.24 + GLIB 2.66 + * Fedora 32 GTK 3.24 + GTK 2.24 + GLIB 2.64 */ // includes @@ -76,7 +80,7 @@ #define AWF_CLOS "/Test/Close" #define AWF_QUIT "/Test/Quit" -#if GTK_CHECK_VERSION (3,98,0) +#if GTK_CHECK_VERSION (3,90,0) #define TRUE_GTK_MAJOR_VERSION 4 #define GETTEXT_PACKAGE "awf-gtk4" #define gtk_major_version gtk_get_major_version () @@ -128,17 +132,19 @@ // global local variables -static gchar *current_theme = ""; +static char *current_theme = ""; static GSList *list_system_theme; static GSList *list_user_theme; static GtkWidget *window, *statusbar; static GtkWidget *spinbutton1, *spinbutton2; static GtkWidget *scale1, *scale2, *scale3, *scale4, *scale5, *scale6; static GtkWidget *progressbar1, *progressbar2, *progressbar3, *progressbar4; -static GtkWidget *levelbar1, *levelbar2, *levelbar3, *levelbar4, *levelbar5, *levelbar6, *levelbar7, *levelbar8; static GtkWidget *notebook1, *notebook2, *notebook3, *notebook4; static GtkWidget *current_menuitem; -static gchar *opt_screenshot; +#if GTK_CHECK_VERSION (3,6,0) +static GtkWidget *levelbar1, *levelbar2, *levelbar3, *levelbar4, *levelbar5, *levelbar6, *levelbar7, *levelbar8; +#endif +static char *opt_screenshot; static gboolean opt_startspinner = TRUE; static gboolean allow_update_theme = TRUE; static gboolean must_save_accels = FALSE; @@ -146,17 +152,17 @@ static gboolean must_save_accels = FALSE; // local functions static void awf2_quit (); -static GSList* awf_load_theme (gchar *directory); +static GSList* awf_load_theme (char *directory); static void awf_exclude_theme (gpointer theme, gpointer unused); -static gint awf_compare_theme (gconstpointer theme1, gconstpointer theme2); -static void awf2_set_theme (gchar *new_theme); +static int awf_compare_theme (gconstpointer theme1, gconstpointer theme2); +static void awf2_set_theme (char *new_theme); static void awf2_update_progressbars (GtkRange *range); -static void awf2_update_statusbar (gchar *text, gboolean withtime); +static void awf2_update_statusbar (char *text, gboolean withtime); static void awf2_update_widgets (); static gboolean awf2_sighup_handler (); static gboolean awf2_take_screenshot (); // widgets -static void awf2_create_window (gpointer app, gchar *theme); +static void awf2_create_window (gpointer app, char *theme); static void awf2_boxpack (GtkBox *box, GtkWidget *widget, gboolean fill, gboolean expand, guint padding, guint spacing); static void awf2_create_toolbar (GtkWidget *root); static void awf2_create_combos_entries (GtkWidget *root); @@ -170,19 +176,19 @@ static void awf2_create_spinners (GtkWidget *root); static void awf2_create_expander (GtkWidget *root); static void awf2_create_frames (GtkWidget *root1, GtkWidget *root2); static void awf2_create_notebooks (GtkWidget *root1, GtkWidget *root2); -static void awf2_create_notebook_tab (GtkWidget *notebook, gchar *text); +static void awf2_create_notebook_tab (GtkWidget *notebook, char *text); static void awf2_create_treview (GtkWidget *root); // menuitems -#if GTK_CHECK_VERSION (3,98,0) -static void awf2_create_menubar (GMenu *root); +#if GTK_CHECK_VERSION (3,90,0) +static void awf2_create_traditional_menubar (gpointer app, GMenu *root); #else -static void awf2_create_menubar (GtkWidget *root); -static GtkWidget* awf2_new_menu (GtkWidget *root, gchar *text); +static void awf2_create_traditional_menubar (GtkWidget *root); +static GtkWidget* awf2_new_menu (GtkWidget *root, char *text); static GtkWidget* awf2_new_menu_tearoff (GtkWidget *menu); static GtkWidget* awf2_new_menu_separator (GtkWidget *menu); -static GtkWidget* awf2_new_menu_check (GtkWidget *menu, gchar *text, gboolean checked, gboolean inconsistent, gboolean disabled); -static GtkWidget* awf2_new_menu_radio (GtkWidget *menu, gchar *text, gboolean checked, gboolean inconsistent, gboolean disabled, GSList *group); -static GtkWidget* awf2_new_menu_item (GtkWidget *menu, gchar *text, gchar *image, gboolean disabled); +static GtkWidget* awf2_new_menu_check (GtkWidget *menu, char *text, gboolean checked, gboolean inconsistent, gboolean disabled); +static GtkWidget* awf2_new_menu_radio (GtkWidget *menu, char *text, gboolean checked, gboolean inconsistent, gboolean disabled, GSList *group); +static GtkWidget* awf2_new_menu_item (GtkWidget *menu, char *text, char *image, gboolean disabled); // accelerators static void awf2_accels_load (); static void awf2_accels_select (GtkWidget *widget); @@ -199,9 +205,10 @@ static void awf2_show_dialog_page_setup (); static void awf2_show_dialog_print (); static void awf2_show_dialog_about (); static void awf2_show_dialog_calendar (); -// gtk3 -#if GTK_CHECK_VERSION (3,98,0) -static void awf2_gtk40_scrolltabs (GtkEventControllerScroll *event, gdouble dx, gdouble dy, GtkWidget *widget); +// gtk4/3 +#if GTK_CHECK_VERSION (3,90,0) +static void awf2_gtk40_closedialog (GtkDialog *dialog); +static void awf2_gtk40_scrolltabs (GtkEventControllerScroll *event, double dx, double dy, GtkWidget *widget); #elif GTK_CHECK_VERSION (3,4,0) static void awf2_gtk34_scrolltabs (GtkWidget *widget, GdkEventScroll *event); #endif @@ -211,11 +218,11 @@ static void awf2_gtk34_scrolltabs (GtkWidget *widget, GdkEventScroll *event); int main (int argc, char **argv) { int status = 0, opt; - gchar *directory, *theme = "auto"; + char *directory, *theme = "auto"; GSList *iterator; // load available themes - // @TODO replace GSLists? + // todo replace GSLists? list_system_theme = awf_load_theme ("/usr/share/themes"); list_system_theme = g_slist_sort (list_system_theme, (GCompareFunc)awf_compare_theme); @@ -247,7 +254,7 @@ int main (int argc, char **argv) { case 't': if (g_slist_find_custom (list_system_theme, optarg, &awf_compare_theme) || g_slist_find_custom (list_user_theme, optarg, &awf_compare_theme)) - theme = (gchar*)optarg; + theme = (char*)optarg; break; case 'l': for (iterator = list_system_theme; iterator; iterator = iterator->next) @@ -268,7 +275,7 @@ int main (int argc, char **argv) { _("Usage:"), "awf-gtk2 ", "(gtk 2.24+)", "awf-gtk3 ", "(gtk 3.00+)", - "awf-gtk4 ", "(gtk 3.98+)", + "awf-gtk4 ", "(gtk 3.99+)", _("Options:"), "-v ", _("Show version number"), "-l ", _("List available themes"), @@ -285,17 +292,18 @@ int main (int argc, char **argv) { g_unix_signal_add (SIGHUP, awf2_sighup_handler, NULL); // glib >= 2.30 #endif - #if GTK_CHECK_VERSION (3,98,0) + #if GTK_CHECK_VERSION (3,90,0) GtkApplication *app; app = gtk_application_new ("org.gtk.awf4", G_APPLICATION_FLAGS_NONE); g_signal_connect (app, "activate", G_CALLBACK (awf2_create_window), theme); - status = g_application_run (G_APPLICATION (app), 0, NULL); // @TODO (app, argc, argv) + g_application_register (G_APPLICATION (app), NULL, NULL); + status = g_application_run (G_APPLICATION (app), 0, NULL); // todo (app, argc, argv) g_object_unref (app); #elif GTK_CHECK_VERSION (3,4,0) GtkApplication *app; app = gtk_application_new ("org.gtk.awf3", G_APPLICATION_FLAGS_NONE); g_signal_connect (app, "activate", G_CALLBACK (awf2_create_window), theme); - status = g_application_run (G_APPLICATION (app), 0, NULL); // @TODO (app, argc, argv) + status = g_application_run (G_APPLICATION (app), 0, NULL); // todo (app, argc, argv) g_object_unref (app); #else gtk_init (&argc, &argv); @@ -307,14 +315,14 @@ int main (int argc, char **argv) { static void awf2_quit () { - #if !GTK_CHECK_VERSION (3,98,0) + #if !GTK_CHECK_VERSION (3,90,0) awf2_accels_save (); #endif exit (0); } -static GSList* awf_load_theme (gchar *directory) { +static GSList* awf_load_theme (char *directory) { GSList *list = NULL; @@ -326,13 +334,13 @@ static GSList* awf_load_theme (gchar *directory) { GDir *dir = g_dir_open (directory, 0, &error); if (dir) { - gchar *theme = g_strdup (g_dir_read_name (dir)); + char *theme = g_strdup (g_dir_read_name (dir)); while (theme) { - gchar *theme_path = g_build_path ("/", directory, g_strstrip (theme), NULL); + char *theme_path = g_build_path ("/", directory, g_strstrip (theme), NULL); if (g_file_test (theme_path, G_FILE_TEST_IS_DIR)) { - gchar *theme_subpath = g_build_path ("/", theme_path, g_strdup_printf ("gtk-%d.0", TRUE_GTK_MAJOR_VERSION), NULL); + char *theme_subpath = g_build_path ("/", theme_path, g_strdup_printf ("gtk-%d.0", TRUE_GTK_MAJOR_VERSION), NULL); if (g_file_test (theme_subpath, G_FILE_TEST_IS_DIR)) list = g_slist_prepend (list, theme); g_free (theme_subpath); @@ -369,20 +377,20 @@ static void awf_exclude_theme (gpointer theme, gpointer unused) { } } -static gint awf_compare_theme (gconstpointer theme1, gconstpointer theme2) { +static int awf_compare_theme (gconstpointer theme1, gconstpointer theme2) { - return g_strcmp0 ((gchar*)theme1, (gchar*)theme2); + return g_strcmp0 ((char*)theme1, (char*)theme2); } -static void awf2_set_theme (gchar *new_theme) { +static void awf2_set_theme (char *new_theme) { // we must ignore the activate signal when menubar is created if (!allow_update_theme) return; - if (new_theme == "refresh") { + if (strcmp ((char*)new_theme, "refresh") == 0) { - gchar *default_theme = NULL; + char *default_theme = NULL; if (g_slist_find_custom (list_system_theme, "Default", &awf_compare_theme)) default_theme = "Default"; else if (g_slist_find_custom (list_system_theme, "Raleigh", &awf_compare_theme)) @@ -400,10 +408,10 @@ static void awf2_set_theme (gchar *new_theme) { g_timeout_add_seconds (1, awf2_take_screenshot, NULL); } } - else if (new_theme == "auto") { + else if (strcmp ((char*)new_theme, "auto") == 0) { g_object_get (gtk_settings_get_default (), "gtk-theme-name", ¤t_theme, NULL); } - else if ((strcmp ((gchar*)current_theme, (gchar*)new_theme) != 0)) { + else if ((strcmp ((char*)current_theme, (char*)new_theme) != 0)) { g_object_set (gtk_settings_get_default (), "gtk-theme-name", new_theme, NULL); g_object_get (gtk_settings_get_default (), "gtk-theme-name", ¤t_theme, NULL); @@ -419,7 +427,7 @@ static void awf2_update_progressbars (GtkRange *range) { // https://developer.gnome.org/gtk3/stable/GtkLevelBar.html // https://developer.gnome.org/gtk3/stable/GtkScale.html - gdouble value; + double value; value = gtk_range_get_value (range); // range (0..1) @@ -452,7 +460,7 @@ static void awf2_update_progressbars (GtkRange *range) { #if !GTK_CHECK_VERSION (3,0,0) if (gtk_progress_bar_get_text (GTK_PROGRESS_BAR (progressbar1))) { - gchar *progress_text; + char *progress_text; progress_text = g_strdup_printf ("%i %%", (int)value); gtk_progress_bar_set_text (GTK_PROGRESS_BAR (progressbar1), progress_text); gtk_progress_bar_set_text (GTK_PROGRESS_BAR (progressbar3), progress_text); @@ -461,7 +469,10 @@ static void awf2_update_progressbars (GtkRange *range) { #endif } -static void awf2_update_statusbar (gchar *text, gboolean withtime) { +static void awf2_update_statusbar (char *text, gboolean withtime) { + + if (!statusbar) + return; // https://developer.gnome.org/gtk3/stable/GtkStatusbar.html @@ -533,7 +544,7 @@ static void awf2_update_widgets () { gtk_progress_bar_set_show_text (GTK_PROGRESS_BAR (progressbar1), TRUE); gtk_progress_bar_set_show_text (GTK_PROGRESS_BAR (progressbar3), TRUE); #else - gchar *progress_text; + char *progress_text; progress_text = g_strdup_printf ("%i %%", (int)gtk_range_get_value (GTK_RANGE (scale1))); gtk_progress_bar_set_text (GTK_PROGRESS_BAR (progressbar1), progress_text); gtk_progress_bar_set_text (GTK_PROGRESS_BAR (progressbar3), progress_text); @@ -574,10 +585,10 @@ static gboolean awf2_take_screenshot () { // https://developer.gnome.org/gdk4/stable/gdk4-Cairo-Interaction.html GdkPixbuf *image; - gint width, height; + int width, height; // src/cairo-surface.c:1734: cairo_surface_mark_dirty_rectangle: assertion ! _cairo_surface_has_mime_data (surface) failed - #if GTK_CHECK_VERSION (3,98,0) + #if GTK_CHECK_VERSION (3,90,0) GdkSurface *root; cairo_surface_t *cairo_st; root = gtk_native_get_surface (gtk_widget_get_native (window)); @@ -610,7 +621,7 @@ static gboolean awf2_take_screenshot () { // layout -static void awf2_create_window (gpointer app, gchar *theme) { +static void awf2_create_window (gpointer app, char *theme) { // https://developer.gnome.org/gtk3/stable/GtkContainer.html // https://developer.gnome.org/gtk3/stable/GtkApplication.html @@ -639,20 +650,26 @@ static void awf2_create_window (gpointer app, gchar *theme) { // base layout vbox_window = BOXV; - gtk_container_add (GTK_CONTAINER (window), vbox_window); + #if GTK_CHECK_VERSION (3,90,0) + gtk_window_set_child (GTK_WINDOW (window), vbox_window); + #else + gtk_container_add (GTK_CONTAINER (window), vbox_window); + #endif - #if GTK_CHECK_VERSION (3,98,0) + #if GTK_CHECK_VERSION (3,90,0) GMenu *gmm; gmm = g_menu_new (); - awf2_create_menubar (gmm); + awf2_create_traditional_menubar (app, gmm); gtk_application_set_menubar (app, G_MENU_MODEL (gmm)); + gtk_application_window_set_show_menubar (GTK_APPLICATION_WINDOW (window), TRUE); + g_object_unref (gmm); toolbar = BOXH; awf2_boxpack (GTK_BOX (vbox_window), toolbar, FALSE, FALSE, 0, 0); awf2_create_toolbar (toolbar); #else menubar = gtk_menu_bar_new (); - awf2_create_menubar (menubar); + awf2_create_traditional_menubar (menubar); awf2_boxpack (GTK_BOX (vbox_window), menubar, FALSE, FALSE, 0, 0); toolbar = gtk_toolbar_new (); @@ -713,7 +730,11 @@ static void awf2_create_window (gpointer app, gchar *theme) { // paned layout awf2_boxpack (GTK_BOX (widgets), vpane, TRUE, TRUE, 0, 0); - gtk_paned_pack1 (GTK_PANED (vpane), hpane1, TRUE, FALSE); + #if GTK_CHECK_VERSION (3,90,0) + gtk_paned_set_start_child (GTK_PANED (vpane), hpane1); + #else + gtk_paned_pack1 (GTK_PANED (vpane), hpane1, TRUE, FALSE); + #endif gtk_box_set_homogeneous (GTK_BOX (hbox_frame1), TRUE); gtk_box_set_spacing (GTK_BOX (hbox_frame1), 3); @@ -727,7 +748,11 @@ static void awf2_create_window (gpointer app, gchar *theme) { gtk_widget_set_size_request (hbox_frame1, -1, 70); gtk_container_set_border_width (GTK_CONTAINER (hbox_frame1), 10); #endif - gtk_paned_add1 (GTK_PANED (hpane1), hbox_frame1); + #if GTK_CHECK_VERSION (3,90,0) + gtk_paned_set_start_child (GTK_PANED (hpane1), hbox_frame1); + #else + gtk_paned_add1 (GTK_PANED (hpane1), hbox_frame1); + #endif gtk_box_set_homogeneous (GTK_BOX (hbox_frame2), TRUE); gtk_box_set_spacing (GTK_BOX (hbox_frame2), 3); @@ -741,11 +766,19 @@ static void awf2_create_window (gpointer app, gchar *theme) { gtk_widget_set_size_request (hbox_frame2, -1, 70); gtk_container_set_border_width (GTK_CONTAINER (hbox_frame2), 10); #endif - gtk_paned_add2 (GTK_PANED (hpane1), hbox_frame2); + #if GTK_CHECK_VERSION (3,90,0) + gtk_paned_set_end_child (GTK_PANED (hpane1), hbox_frame2); + #else + gtk_paned_add2 (GTK_PANED (hpane1), hbox_frame2); + #endif awf2_create_frames (hbox_frame1, hbox_frame2); - gtk_paned_pack2 (GTK_PANED (vpane), hpane2, TRUE, FALSE); + #if GTK_CHECK_VERSION (3,90,0) + gtk_paned_set_end_child (GTK_PANED (vpane), hpane2); + #else + gtk_paned_pack2 (GTK_PANED (vpane), hpane2, TRUE, FALSE); + #endif gtk_box_set_homogeneous (GTK_BOX (hbox_notebook1), TRUE); gtk_box_set_spacing (GTK_BOX (hbox_notebook1), 3); @@ -757,7 +790,11 @@ static void awf2_create_window (gpointer app, gchar *theme) { #else gtk_container_set_border_width (GTK_CONTAINER (hbox_notebook1), 10); #endif - gtk_paned_add1 (GTK_PANED (hpane2), hbox_notebook1); + #if GTK_CHECK_VERSION (3,90,0) + gtk_paned_set_start_child (GTK_PANED (hpane2), hbox_notebook1); + #else + gtk_paned_add1 (GTK_PANED (hpane2), hbox_notebook1); + #endif gtk_box_set_homogeneous (GTK_BOX (hbox_notebook2), TRUE); gtk_box_set_spacing (GTK_BOX (hbox_notebook2), 3); @@ -769,7 +806,11 @@ static void awf2_create_window (gpointer app, gchar *theme) { #else gtk_container_set_border_width (GTK_CONTAINER (hbox_notebook2), 10); #endif - gtk_paned_add2 (GTK_PANED (hpane2), hbox_notebook2); + #if GTK_CHECK_VERSION (3,90,0) + gtk_paned_set_end_child (GTK_PANED (hpane2), hbox_notebook2); + #else + gtk_paned_add2 (GTK_PANED (hpane2), hbox_notebook2); + #endif awf2_create_notebooks (hbox_notebook1, hbox_notebook2); @@ -778,7 +819,7 @@ static void awf2_create_window (gpointer app, gchar *theme) { // go g_signal_connect (window, "destroy", G_CALLBACK (awf2_quit), NULL); - #if GTK_CHECK_VERSION (3,98,0) + #if GTK_CHECK_VERSION (3,90,0) gtk_style_context_add_class (gtk_widget_get_style_context (toolbar), "primary-toolbar-gtk4"); gtk_widget_show (window); #elif GTK_CHECK_VERSION (3,4,0) @@ -799,7 +840,7 @@ static void awf2_boxpack (GtkBox *box, GtkWidget *widget, gboolean fill, gboolea // https://developer.gnome.org/gtk3/stable/GtkBox.html // https://developer.gnome.org/gtk4/stable/GtkBox.html - #if GTK_CHECK_VERSION (3,98,0) + #if GTK_CHECK_VERSION (3,90,0) if (fill) { gtk_widget_set_halign (widget, GTK_ALIGN_FILL); gtk_widget_set_valign (widget, GTK_ALIGN_FILL); @@ -808,7 +849,7 @@ static void awf2_boxpack (GtkBox *box, GtkWidget *widget, gboolean fill, gboolea gtk_widget_set_hexpand (widget, TRUE); gtk_widget_set_vexpand (widget, TRUE); } - if (GTK_IS_CONTAINER (widget) && (padding > 0)) { + if (GTK_IS_BOX (widget) && (padding > 0)) { // todo gtk_widget_set_margin_start (widget, padding); gtk_widget_set_margin_end (widget, padding); gtk_widget_set_margin_top (widget, padding); @@ -817,7 +858,7 @@ static void awf2_boxpack (GtkBox *box, GtkWidget *widget, gboolean fill, gboolea if (GTK_IS_BOX (widget) && (spacing > 0)) { gtk_box_set_spacing (GTK_BOX (widget), spacing); } - gtk_container_add (GTK_CONTAINER (box), widget); + gtk_box_append (box, widget); #else if (GTK_IS_INFO_BAR (box)) box = GTK_BOX (gtk_info_bar_get_content_area (GTK_INFO_BAR (box))); @@ -831,12 +872,12 @@ static void awf2_boxpack (GtkBox *box, GtkWidget *widget, gboolean fill, gboolea static void awf2_create_toolbar (GtkWidget *root) { - #if GTK_CHECK_VERSION (3,98,0) + #if GTK_CHECK_VERSION (3,90,0) // https://developer.gnome.org/gtk4/stable/GtkButton.html // https://developer.gnome.org/gtk4/stable/GtkToggleButton.html - GtkWidget *icon1, *icon2, *icon3, *icon4, *icon5, *icon6, *icon7, *icon8, *icon9, *menu; + GtkWidget *icon1, *icon2, *icon3, *icon4, *icon5, *icon6, *icon7, *menu; icon1 = gtk_button_new_from_icon_name ("gtk-open"); gtk_widget_set_size_request (icon1, 36, 36); @@ -874,15 +915,15 @@ static void awf2_create_toolbar (GtkWidget *root) { gtk_style_context_add_class (gtk_widget_get_style_context (icon7), "flat"); g_signal_connect_swapped (icon7, "clicked", G_CALLBACK (awf2_update_widgets), NULL); - gtk_container_add (GTK_CONTAINER (root), icon1); - gtk_container_add (GTK_CONTAINER (root), icon2); - gtk_container_add (GTK_CONTAINER (root), icon3); - gtk_container_add (GTK_CONTAINER (root), icon4); - gtk_container_add (GTK_CONTAINER (root), BOXVSEP); - gtk_container_add (GTK_CONTAINER (root), icon5); - gtk_container_add (GTK_CONTAINER (root), icon6); - gtk_container_add (GTK_CONTAINER (root), BOXVSEP); - gtk_container_add (GTK_CONTAINER (root), icon7); + awf2_boxpack (GTK_BOX (root), icon1, FALSE, FALSE, 0, 0); + awf2_boxpack (GTK_BOX (root), icon2, FALSE, FALSE, 0, 0); + awf2_boxpack (GTK_BOX (root), icon3, FALSE, FALSE, 0, 0); + awf2_boxpack (GTK_BOX (root), icon4, FALSE, FALSE, 0, 0); + awf2_boxpack (GTK_BOX (root), BOXVSEP, FALSE, FALSE, 0, 0); + awf2_boxpack (GTK_BOX (root), icon5, FALSE, FALSE, 0, 0); + awf2_boxpack (GTK_BOX (root), icon6, FALSE, FALSE, 0, 0); + awf2_boxpack (GTK_BOX (root), BOXVSEP, FALSE, FALSE, 0, 0); + awf2_boxpack (GTK_BOX (root), icon7, FALSE, FALSE, 0, 0); #else // https://developer.gnome.org/gtk3/stable/GtkToolbar.html // https://developer.gnome.org/gtk3/stable/GtkMenuToolButton.html @@ -892,7 +933,7 @@ static void awf2_create_toolbar (GtkWidget *root) { // https://developer.gnome.org/gtk3/stable/GtkMenu.html // https://developer.gnome.org/gtk3/stable/GtkMenuItem.html - GtkWidget *icon1, *icon2, *icon3, *icon4, *icon5, *icon6, *icon7, *icon8, *icon9, *menu; + GtkWidget *icon1, *icon2, *icon3, *icon4, *icon5, *icon6, *icon7, *menu; icon1 = GTK_WIDGET (gtk_menu_tool_button_new (NULL, NULL)); gtk_tool_button_set_icon_name (GTK_TOOL_BUTTON (icon1), "gtk-open"); @@ -979,14 +1020,14 @@ static void awf2_create_combos_entries (GtkWidget *root) { gtk_widget_set_sensitive (combo4, FALSE); entry1 = gtk_entry_new (); - #if GTK_CHECK_VERSION (3,98,0) + #if GTK_CHECK_VERSION (3,90,0) gtk_editable_set_text (GTK_EDITABLE (entry1), "Entry"); #else gtk_entry_set_text (GTK_ENTRY (entry1), "Entry"); #endif entry2 = gtk_entry_new (); - #if GTK_CHECK_VERSION (3,98,0) + #if GTK_CHECK_VERSION (3,90,0) gtk_editable_set_text (GTK_EDITABLE (entry2), "Entry (disabled)"); #else gtk_entry_set_text (GTK_ENTRY (entry2), "Entry (disabled)"); @@ -994,7 +1035,7 @@ static void awf2_create_combos_entries (GtkWidget *root) { gtk_widget_set_sensitive (entry2, FALSE); entry3 = gtk_entry_new (); - #if GTK_CHECK_VERSION (3,98,0) + #if GTK_CHECK_VERSION (3,90,0) gtk_editable_set_text (GTK_EDITABLE (entry3), "Entry"); #else gtk_entry_set_text (GTK_ENTRY (entry3), "Entry"); @@ -1005,7 +1046,7 @@ static void awf2_create_combos_entries (GtkWidget *root) { gtk_entry_set_icon_tooltip_text (GTK_ENTRY (entry3), GTK_ENTRY_ICON_SECONDARY, "gtk-find"); entry4 = gtk_entry_new (); - #if GTK_CHECK_VERSION (3,98,0) + #if GTK_CHECK_VERSION (3,90,0) gtk_editable_set_text (GTK_EDITABLE (entry4), "Entry (disabled)"); #else gtk_entry_set_text (GTK_ENTRY (entry4), "Entry (disabled)"); @@ -1021,14 +1062,14 @@ static void awf2_create_combos_entries (GtkWidget *root) { gtk_entry_set_placeholder_text (GTK_ENTRY (entry3), "Placeholder"); #endif - gtk_container_add (GTK_CONTAINER (root), combo1); - gtk_container_add (GTK_CONTAINER (root), combo2); - gtk_container_add (GTK_CONTAINER (root), combo3); - gtk_container_add (GTK_CONTAINER (root), combo4); - gtk_container_add (GTK_CONTAINER (root), entry1); - gtk_container_add (GTK_CONTAINER (root), entry2); - gtk_container_add (GTK_CONTAINER (root), entry3); - gtk_container_add (GTK_CONTAINER (root), entry4); + awf2_boxpack (GTK_BOX (root), combo1, FALSE, FALSE, 0, 0); + awf2_boxpack (GTK_BOX (root), combo2, FALSE, FALSE, 0, 0); + awf2_boxpack (GTK_BOX (root), combo3, FALSE, FALSE, 0, 0); + awf2_boxpack (GTK_BOX (root), combo4, FALSE, FALSE, 0, 0); + awf2_boxpack (GTK_BOX (root), entry1, FALSE, FALSE, 0, 0); + awf2_boxpack (GTK_BOX (root), entry2, FALSE, FALSE, 0, 0); + awf2_boxpack (GTK_BOX (root), entry3, FALSE, FALSE, 0, 0); + awf2_boxpack (GTK_BOX (root), entry4, FALSE, FALSE, 0, 0); } static void awf2_create_spinbuttons (GtkWidget *root) { @@ -1062,7 +1103,7 @@ static void awf2_create_checkbuttons (GtkWidget *root) { gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (checkbutton2), TRUE); checkbutton3 = gtk_check_button_new_with_label ("Check button 3"); - #if GTK_CHECK_VERSION (3,98,0) + #if GTK_CHECK_VERSION (3,90,0) gtk_check_button_set_inconsistent (GTK_CHECK_BUTTON (checkbutton3), TRUE); #else gtk_toggle_button_set_inconsistent (GTK_TOGGLE_BUTTON (checkbutton3), TRUE); @@ -1076,19 +1117,19 @@ static void awf2_create_checkbuttons (GtkWidget *root) { gtk_widget_set_sensitive (checkbutton5, FALSE); checkbutton6 = gtk_check_button_new_with_label ("Check button 6"); - #if GTK_CHECK_VERSION (3,98,0) + #if GTK_CHECK_VERSION (3,90,0) gtk_check_button_set_inconsistent (GTK_CHECK_BUTTON (checkbutton6), TRUE); #else gtk_toggle_button_set_inconsistent (GTK_TOGGLE_BUTTON (checkbutton6), TRUE); #endif gtk_widget_set_sensitive (checkbutton6, FALSE); - gtk_container_add (GTK_CONTAINER (root), checkbutton1); - gtk_container_add (GTK_CONTAINER (root), checkbutton2); - gtk_container_add (GTK_CONTAINER (root), checkbutton3); - gtk_container_add (GTK_CONTAINER (root), checkbutton4); - gtk_container_add (GTK_CONTAINER (root), checkbutton5); - gtk_container_add (GTK_CONTAINER (root), checkbutton6); + awf2_boxpack (GTK_BOX (root), checkbutton1, FALSE, FALSE, 0, 0); + awf2_boxpack (GTK_BOX (root), checkbutton2, FALSE, FALSE, 0, 0); + awf2_boxpack (GTK_BOX (root), checkbutton3, FALSE, FALSE, 0, 0); + awf2_boxpack (GTK_BOX (root), checkbutton4, FALSE, FALSE, 0, 0); + awf2_boxpack (GTK_BOX (root), checkbutton5, FALSE, FALSE, 0, 0); + awf2_boxpack (GTK_BOX (root), checkbutton6, FALSE, FALSE, 0, 0); } static void awf2_create_radiobuttons (GtkWidget *root) { @@ -1109,7 +1150,7 @@ static void awf2_create_radiobuttons (GtkWidget *root) { gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (radiobutton2), TRUE); radiobutton3 = gtk_radio_button_new_with_label_from_widget (GTK_RADIO_BUTTON (radio2), "Radio button 3"); - #if GTK_CHECK_VERSION (3,98,0) + #if GTK_CHECK_VERSION (3,90,0) gtk_check_button_set_inconsistent (GTK_CHECK_BUTTON (radiobutton3), TRUE); #else gtk_toggle_button_set_inconsistent (GTK_TOGGLE_BUTTON (radiobutton3), TRUE); @@ -1123,26 +1164,30 @@ static void awf2_create_radiobuttons (GtkWidget *root) { gtk_widget_set_sensitive (radiobutton5, FALSE); radiobutton6 = gtk_radio_button_new_with_label_from_widget (GTK_RADIO_BUTTON (radio4), "Radio button 6"); - #if GTK_CHECK_VERSION (3,98,0) + #if GTK_CHECK_VERSION (3,90,0) gtk_check_button_set_inconsistent (GTK_CHECK_BUTTON (radiobutton6), TRUE); #else gtk_toggle_button_set_inconsistent (GTK_TOGGLE_BUTTON (radiobutton6), TRUE); #endif gtk_widget_set_sensitive (radiobutton6, FALSE); - gtk_container_add (GTK_CONTAINER (root), radiobutton1); - gtk_container_add (GTK_CONTAINER (root), radiobutton2); - gtk_container_add (GTK_CONTAINER (root), radiobutton3); - gtk_container_add (GTK_CONTAINER (root), radiobutton4); - gtk_container_add (GTK_CONTAINER (root), radiobutton5); - gtk_container_add (GTK_CONTAINER (root), radiobutton6); + awf2_boxpack (GTK_BOX (root), radiobutton1, FALSE, FALSE, 0, 0); + awf2_boxpack (GTK_BOX (root), radiobutton2, FALSE, FALSE, 0, 0); + awf2_boxpack (GTK_BOX (root), radiobutton3, FALSE, FALSE, 0, 0); + awf2_boxpack (GTK_BOX (root), radiobutton4, FALSE, FALSE, 0, 0); + awf2_boxpack (GTK_BOX (root), radiobutton5, FALSE, FALSE, 0, 0); + awf2_boxpack (GTK_BOX (root), radiobutton6, FALSE, FALSE, 0, 0); } static void awf2_create_otherbuttons (GtkWidget *root) { - const gchar *scale_icons[] = { g_strdup_printf ("awf-gtk%d", TRUE_GTK_MAJOR_VERSION), NULL }; + const char *scale_icons[] = { g_strdup_printf ("awf-gtk%d", TRUE_GTK_MAJOR_VERSION), NULL }; GtkWidget *button1, *button2, *button3, *button4, *button5, *button6, *button7, *button8, *button9, *button10, *button11, *button12; - GtkWidget *combomenu1, *combomenu2; + #if !GTK_CHECK_VERSION (3,0,0) + GtkWidget *combomenu1, *combomenu2; + #endif + + // https://developer.gnome.org/gtk3/stable/GtkButton.html button1 = gtk_button_new_with_label ("Button 1"); @@ -1202,28 +1247,28 @@ static void awf2_create_otherbuttons (GtkWidget *root) { gtk_widget_set_sensitive (button10, FALSE); #endif - button11 = gtk_link_button_new_with_label ("https://github.com/luigifab/awf", "Link button"); + button11 = gtk_link_button_new_with_label ("https://github.com/luigifab/awf-extended", "Link button"); // https://developer.gnome.org/gtk3/stable/GtkScaleButton.html - #if GTK_CHECK_VERSION (3,98,0) + #if GTK_CHECK_VERSION (3,90,0) button12 = gtk_scale_button_new (1, 10, 1, scale_icons); #else button12 = gtk_scale_button_new (GTK_ICON_SIZE_BUTTON, 1, 10, 1, scale_icons); #endif - gtk_container_add (GTK_CONTAINER (root), button1); - gtk_container_add (GTK_CONTAINER (root), button2); - gtk_container_add (GTK_CONTAINER (root), button3); - gtk_container_add (GTK_CONTAINER (root), button4); - gtk_container_add (GTK_CONTAINER (root), button5); - gtk_container_add (GTK_CONTAINER (root), button6); - gtk_container_add (GTK_CONTAINER (root), button7); - gtk_container_add (GTK_CONTAINER (root), button8); - gtk_container_add (GTK_CONTAINER (root), button9); - gtk_container_add (GTK_CONTAINER (root), button10); - gtk_container_add (GTK_CONTAINER (root), button11); - gtk_container_add (GTK_CONTAINER (root), button12); + awf2_boxpack (GTK_BOX (root), button1, FALSE, FALSE, 0, 0); + awf2_boxpack (GTK_BOX (root), button2, FALSE, FALSE, 0, 0); + awf2_boxpack (GTK_BOX (root), button3, FALSE, FALSE, 0, 0); + awf2_boxpack (GTK_BOX (root), button4, FALSE, FALSE, 0, 0); + awf2_boxpack (GTK_BOX (root), button5, FALSE, FALSE, 0, 0); + awf2_boxpack (GTK_BOX (root), button6, FALSE, FALSE, 0, 0); + awf2_boxpack (GTK_BOX (root), button7, FALSE, FALSE, 0, 0); + awf2_boxpack (GTK_BOX (root), button8, FALSE, FALSE, 0, 0); + awf2_boxpack (GTK_BOX (root), button9, FALSE, FALSE, 0, 0); + awf2_boxpack (GTK_BOX (root), button10, FALSE, FALSE, 0, 0); + awf2_boxpack (GTK_BOX (root), button11, FALSE, FALSE, 0, 0); + awf2_boxpack (GTK_BOX (root), button12, FALSE, FALSE, 0, 0); } static void awf2_create_progressbars (GtkWidget *root1, GtkWidget *root2, GtkWidget *root3, GtkWidget *root4) { @@ -1454,10 +1499,10 @@ static void awf2_create_progressbars (GtkWidget *root1, GtkWidget *root2, GtkWid gtk_widget_set_tooltip_text (levelbar8, "level bar"); #endif - gtk_container_add (GTK_CONTAINER (root1), progressbar1); - gtk_container_add (GTK_CONTAINER (root1), progressbar2); - gtk_container_add (GTK_CONTAINER (root1), scale1); - gtk_container_add (GTK_CONTAINER (root1), scale2); + awf2_boxpack (GTK_BOX (root1), progressbar1, FALSE, FALSE, 0, 0); + awf2_boxpack (GTK_BOX (root1), progressbar2, FALSE, FALSE, 0, 0); + awf2_boxpack (GTK_BOX (root1), scale1, FALSE, FALSE, 0, 0); + awf2_boxpack (GTK_BOX (root1), scale2, FALSE, FALSE, 0, 0); awf2_boxpack (GTK_BOX (root3), progressbar3, FALSE, FALSE, 0, 0); awf2_boxpack (GTK_BOX (root3), progressbar4, FALSE, FALSE, 0, 0); #if GTK_CHECK_VERSION (3,6,0) @@ -1471,10 +1516,10 @@ static void awf2_create_progressbars (GtkWidget *root1, GtkWidget *root2, GtkWid awf2_boxpack (GTK_BOX (root4), scale5, FALSE, FALSE, 0, 0); awf2_boxpack (GTK_BOX (root4), scale6, FALSE, FALSE, 0, 0); #if GTK_CHECK_VERSION (3,6,0) - gtk_container_add (GTK_CONTAINER (root2), levelbar1); - gtk_container_add (GTK_CONTAINER (root2), levelbar2); - gtk_container_add (GTK_CONTAINER (root2), levelbar3); - gtk_container_add (GTK_CONTAINER (root2), levelbar4); + awf2_boxpack (GTK_BOX (root2), levelbar1, FALSE, FALSE, 0, 0); + awf2_boxpack (GTK_BOX (root2), levelbar2, FALSE, FALSE, 0, 0); + awf2_boxpack (GTK_BOX (root2), levelbar3, FALSE, FALSE, 0, 0); + awf2_boxpack (GTK_BOX (root2), levelbar4, FALSE, FALSE, 0, 0); #endif } @@ -1526,26 +1571,38 @@ static void awf2_create_expander (GtkWidget *root) { // https://developer.gnome.org/gtk3/stable/GtkExpander.html // https://developer.gnome.org/gtk3/stable/GtkScrolledWindow.html + // https://developer.gnome.org/gtk3/stable/GtkTextView.html GtkWidget *expander, *scrolled_window, *tv; GtkTextBuffer *buffer; expander = gtk_expander_new (_("More...")); - gtk_widget_set_size_request (expander, 200, 100); + //#if GTK_CHECK_VERSION (3,20,0) + // set label width to 100% impossible? + //#endif - scrolled_window = gtk_scrolled_window_new (NULL, NULL); - gtk_widget_set_size_request (scrolled_window, 200, 100); - gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolled_window), GTK_SHADOW_IN); - gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); + #if GTK_CHECK_VERSION (3,90,0) + scrolled_window = gtk_scrolled_window_new (); + #else + scrolled_window = gtk_scrolled_window_new (NULL, NULL); + gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolled_window), GTK_SHADOW_IN); + #endif + gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window), GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); + gtk_widget_set_size_request (scrolled_window, -1, 120); tv = gtk_text_view_new (); buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (tv)); gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (tv), GTK_WRAP_WORD); - gtk_text_buffer_set_text (GTK_TEXT_BUFFER (buffer), _("A widget factory is a theme preview application for GTK. It displays the various widget types provided by GTK in a single window allowing to see the visual effect of the applied theme."), -1); - gtk_container_add (GTK_CONTAINER (scrolled_window), tv); - gtk_container_add (GTK_CONTAINER (expander), scrolled_window); + gtk_text_buffer_set_text (GTK_TEXT_BUFFER (buffer), g_strdup_printf ("%s ~ %s", _("A widget factory is a theme preview application for GTK. It displays the various widget types provided by GTK in a single window allowing to see the visual effect of the applied theme."), _("A widget factory is a theme preview application for GTK. It displays the various widget types provided by GTK in a single window allowing to see the visual effect of the applied theme.")), -1); - gtk_container_add (GTK_CONTAINER (root), expander); + #if GTK_CHECK_VERSION (3,90,0) + gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW (scrolled_window), tv); + gtk_expander_set_child (GTK_EXPANDER (expander), scrolled_window); + #else + gtk_container_add (GTK_CONTAINER (scrolled_window), tv); + gtk_container_add (GTK_CONTAINER (expander), scrolled_window); + #endif + awf2_boxpack (GTK_BOX (root), expander, FALSE, FALSE, 0, 0); } static void awf2_create_frames (GtkWidget *root1, GtkWidget *root2) { @@ -1554,7 +1611,10 @@ static void awf2_create_frames (GtkWidget *root1, GtkWidget *root2) { GtkWidget *frame1, *frame2, *frame3, *frame4; - #if GTK_CHECK_VERSION (3,0,0) + #if GTK_CHECK_VERSION (3,90,0) + frame1 = gtk_frame_new ("Frame (shadow in)"); + gtk_style_context_add_class (gtk_widget_get_style_context (frame1), "border-inset"); + #elif GTK_CHECK_VERSION (3,0,0) frame1 = gtk_frame_new ("Frame (shadow in)"); gtk_frame_set_shadow_type (GTK_FRAME (frame1), GTK_SHADOW_IN); gtk_style_context_add_class (gtk_widget_get_style_context (frame1), "border-inset"); @@ -1563,7 +1623,10 @@ static void awf2_create_frames (GtkWidget *root1, GtkWidget *root2) { gtk_frame_set_shadow_type (GTK_FRAME (frame1), GTK_SHADOW_IN); #endif - #if GTK_CHECK_VERSION (3,0,0) + #if GTK_CHECK_VERSION (3,90,0) + frame2 = gtk_frame_new ("Frame (shadow out)"); + gtk_style_context_add_class (gtk_widget_get_style_context (frame2), "border-outset"); + #elif GTK_CHECK_VERSION (3,0,0) frame2 = gtk_frame_new ("Frame (shadow out)"); gtk_frame_set_shadow_type (GTK_FRAME (frame2), GTK_SHADOW_OUT); gtk_style_context_add_class (gtk_widget_get_style_context (frame2), "border-outset"); @@ -1572,7 +1635,10 @@ static void awf2_create_frames (GtkWidget *root1, GtkWidget *root2) { gtk_frame_set_shadow_type (GTK_FRAME (frame2), GTK_SHADOW_OUT); #endif - #if GTK_CHECK_VERSION (3,0,0) + #if GTK_CHECK_VERSION (3,90,0) + frame3 = gtk_frame_new ("Frame (shadow etched in)"); + gtk_style_context_add_class (gtk_widget_get_style_context (frame3), "border-groove"); + #elif GTK_CHECK_VERSION (3,0,0) frame3 = gtk_frame_new ("Frame (shadow etched in)"); gtk_frame_set_shadow_type (GTK_FRAME (frame3), GTK_SHADOW_ETCHED_IN); gtk_style_context_add_class (gtk_widget_get_style_context (frame3), "border-groove"); @@ -1581,7 +1647,10 @@ static void awf2_create_frames (GtkWidget *root1, GtkWidget *root2) { gtk_frame_set_shadow_type (GTK_FRAME (frame3), GTK_SHADOW_ETCHED_IN); #endif - #if GTK_CHECK_VERSION (3,0,0) + #if GTK_CHECK_VERSION (3,90,0) + frame4 = gtk_frame_new ("Frame (shadow etched out)"); + gtk_style_context_add_class (gtk_widget_get_style_context (frame4), "border-ridge"); + #elif GTK_CHECK_VERSION (3,0,0) frame4 = gtk_frame_new ("Frame (shadow etched out)"); gtk_frame_set_shadow_type (GTK_FRAME (frame4), GTK_SHADOW_ETCHED_OUT); gtk_style_context_add_class (gtk_widget_get_style_context (frame4), "border-ridge"); @@ -1590,10 +1659,10 @@ static void awf2_create_frames (GtkWidget *root1, GtkWidget *root2) { gtk_frame_set_shadow_type (GTK_FRAME (frame4), GTK_SHADOW_ETCHED_OUT); #endif - gtk_container_add (GTK_CONTAINER (root1), frame1); - gtk_container_add (GTK_CONTAINER (root1), frame2); - gtk_container_add (GTK_CONTAINER (root2), frame3); - gtk_container_add (GTK_CONTAINER (root2), frame4); + awf2_boxpack (GTK_BOX (root1), frame1, TRUE, TRUE, 0, 0); + awf2_boxpack (GTK_BOX (root1), frame2, TRUE, TRUE, 0, 0); + awf2_boxpack (GTK_BOX (root2), frame3, TRUE, TRUE, 0, 0); + awf2_boxpack (GTK_BOX (root2), frame4, TRUE, TRUE, 0, 0); } static void awf2_create_notebooks (GtkWidget *root1, GtkWidget *root2) { @@ -1606,7 +1675,7 @@ static void awf2_create_notebooks (GtkWidget *root1, GtkWidget *root2) { notebook3 = gtk_notebook_new (); notebook4 = gtk_notebook_new (); - #if GTK_CHECK_VERSION (3,98,0) + #if GTK_CHECK_VERSION (3,90,0) // this does not work, because scroll is possible from content // GtkEventController *event1, *event2, *event3, *event4; // event1 = gtk_event_controller_scroll_new (GTK_EVENT_CONTROLLER_SCROLL_BOTH_AXES | GTK_EVENT_CONTROLLER_SCROLL_DISCRETE); @@ -1675,13 +1744,13 @@ static void awf2_create_notebooks (GtkWidget *root1, GtkWidget *root2) { awf2_create_notebook_tab (notebook4, "tab3"); awf2_create_notebook_tab (notebook4, "tab4"); - gtk_container_add (GTK_CONTAINER (root1), notebook1); - gtk_container_add (GTK_CONTAINER (root1), notebook2); - gtk_container_add (GTK_CONTAINER (root2), notebook3); - gtk_container_add (GTK_CONTAINER (root2), notebook4); + awf2_boxpack (GTK_BOX (root1), notebook1, TRUE, TRUE, 0, 0); + awf2_boxpack (GTK_BOX (root1), notebook2, TRUE, TRUE, 0, 0); + awf2_boxpack (GTK_BOX (root2), notebook3, TRUE, TRUE, 0, 0); + awf2_boxpack (GTK_BOX (root2), notebook4, TRUE, TRUE, 0, 0); } -static void awf2_create_notebook_tab (GtkWidget *notebook, gchar *text) { +static void awf2_create_notebook_tab (GtkWidget *notebook, char *text) { // https://developer.gnome.org/gtk3/stable/GtkNotebook.html // https://developer.gnome.org/gtk3/stable/GtkEventControllerScroll.html @@ -1694,7 +1763,7 @@ static void awf2_create_notebook_tab (GtkWidget *notebook, gchar *text) { gtk_notebook_append_page (GTK_NOTEBOOK (notebook), content, head); gtk_notebook_set_tab_reorderable (GTK_NOTEBOOK (notebook), content, TRUE); - #if GTK_CHECK_VERSION (3,98,0) + #if GTK_CHECK_VERSION (3,90,0) // this works but there is a delay (first scroll is ignored) GtkEventController *event; event = gtk_event_controller_scroll_new (GTK_EVENT_CONTROLLER_SCROLL_BOTH_AXES | GTK_EVENT_CONTROLLER_SCROLL_DISCRETE); @@ -1733,66 +1802,227 @@ static void awf2_create_treview (GtkWidget *root) { model = GTK_TREE_MODEL (store); gtk_tree_view_set_model (GTK_TREE_VIEW (view), model); - scrolled_window = gtk_scrolled_window_new (NULL, NULL); + #if GTK_CHECK_VERSION (3,90,0) + scrolled_window = gtk_scrolled_window_new (); + #else + scrolled_window = gtk_scrolled_window_new (NULL, NULL); + gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolled_window), GTK_SHADOW_IN); + #endif gtk_widget_set_size_request (scrolled_window, 200, 200); - gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolled_window), GTK_SHADOW_IN); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window), GTK_POLICY_ALWAYS, GTK_POLICY_ALWAYS); - gtk_container_add (GTK_CONTAINER (scrolled_window), view); - gtk_container_add (GTK_CONTAINER (root), scrolled_window); + #if GTK_CHECK_VERSION (3,90,0) + awf2_boxpack (GTK_BOX (scrolled_window), view, FALSE, FALSE, 0, 0); + #else + gtk_container_add (GTK_CONTAINER (scrolled_window), view); + #endif + awf2_boxpack (GTK_BOX (root), scrolled_window, FALSE, FALSE, 0, 0); } // menuitems -#if GTK_CHECK_VERSION (3,98,0) +#if GTK_CHECK_VERSION (3,90,0) + +static void awf2_create_traditional_menubar (gpointer app, GMenu *root) { -static void awf2_create_menubar (GMenu *root) { + // https://developer.gnome.org/gio/stable/GMenu.html + // https://developer.gnome.org/gio/stable/GActionMap.html - GMenu *menu; + GMenu *menu, *submenu, *section; GMenuItem *menuitem; - GSimpleActionGroup *group; + GSimpleAction *action; GSList *iterator; - group = g_simple_action_group_new (); + g_action_group_activate_action (G_ACTION_GROUP (app), "menubar", NULL); + // system menu = g_menu_new (); g_menu_append_submenu (root, _("_System theme"), G_MENU_MODEL (menu)); for (iterator = list_system_theme; iterator; iterator = iterator->next) { menuitem = g_menu_item_new (iterator->data, NULL); - g_menu_item_set_action_and_target_value (menuitem, "awf2_set_theme", iterator->data); + g_menu_item_set_attribute_value (menuitem, G_MENU_ATTRIBUTE_TARGET, FALSE); g_menu_append_item (menu, menuitem); - //if (strcmp ((gchar*)current_theme, (gchar*)iterator->data) == 0) + //g_menu_item_set_action_and_target_value (menuitem, "awf2_set_theme", iterator->data); + //if (strcmp ((char*)current_theme, (char*)iterator->data) == 0) // gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (menuitem), TRUE); } if (!list_system_theme) g_menu_append (menu, _("No themes found"), "disabled"); + g_object_unref (menu); + + // user menu = g_menu_new (); g_menu_append_submenu (root, _("_User theme"), G_MENU_MODEL (menu)); for (iterator = list_user_theme; iterator; iterator = iterator->next) { menuitem = g_menu_item_new (iterator->data, NULL); - g_menu_item_set_action_and_target_value (menuitem, "awf2_set_theme", iterator->data); + g_menu_item_set_attribute_value (menuitem, G_MENU_ATTRIBUTE_TARGET, FALSE); g_menu_append_item (menu, menuitem); - //if (strcmp ((gchar*)current_theme, (gchar*)iterator->data) == 0) + //g_menu_item_set_action_and_target_value (menuitem, "awf2_set_theme", iterator->data); + //if (strcmp ((char*)current_theme, (char*)iterator->data) == 0) // gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (menuitem), TRUE); } if (!list_user_theme) g_menu_append (menu, _("No themes found"), "disabled"); + g_object_unref (menu); + + // options menu = g_menu_new (); g_menu_append_submenu (root, _("_Options"), G_MENU_MODEL (menu)); - menuitem = g_menu_item_new ("gtk-about", "undo"); + + menuitem = g_menu_item_new (_("gtk-open"), NULL); + g_menu_item_set_attribute (menuitem, "accel", "s", "O", NULL); + g_menu_append_item (menu, menuitem); + // G_CALLBACK (awf2_show_dialog_open), AWF_OPEN + + menuitem = g_menu_item_new (_("Open recent file"), NULL); + g_menu_append_item (menu, menuitem); + // G_CALLBACK (awf2_show_dialog_open_recent), AWF_RECE + + menuitem = g_menu_item_new (_("Calendar"), NULL); + g_menu_append_item (menu, menuitem); + // G_CALLBACK (awf2_show_dialog_calendar), AWF_CALE + + menuitem = g_menu_item_new (_("gtk-save"), NULL); + g_menu_item_set_attribute (menuitem, "accel", "s", "S", NULL); + g_menu_append_item (menu, menuitem); + // G_CALLBACK (awf2_show_dialog_save), AWF_SAVE + + menuitem = g_menu_item_new (_("Refresh theme"), NULL); // "gtk-refresh" + g_menu_item_set_attribute (menuitem, "accel", "s", "F5", NULL); + g_menu_append_item (menu, menuitem); + // (G_CALLBACK (awf2_set_theme), "refresh"), AWF_REFR + + menuitem = g_menu_item_new (_("gtk-properties"), NULL); + g_menu_item_set_attribute (menuitem, "accel", "s", "Return", NULL); + g_menu_append_item (menu, menuitem); + // G_CALLBACK (awf2_show_dialog_properties), AWF_PROP + + menuitem = g_menu_item_new (_("gtk-page-setup"), NULL); g_menu_append_item (menu, menuitem); - GAction *undo_action = G_ACTION (g_simple_action_new ("undo", NULL)); - g_signal_connect (undo_action, "activate", G_CALLBACK (awf2_show_dialog_about), NULL); - g_action_map_add_action (G_ACTION_MAP (group), undo_action); + // G_CALLBACK (awf2_show_dialog_page_setup), AWF_PRSE + + menuitem = g_menu_item_new (_("gtk-print"), NULL); + g_menu_item_set_attribute (menuitem, "accel", "s", "P", NULL); + g_menu_append_item (menu, menuitem); + // G_CALLBACK (awf2_show_dialog_print), AWF_PRIN + + action = g_simple_action_new ("win.gtk-about", NULL); + g_signal_connect (action, "activate", G_CALLBACK (awf2_show_dialog_about), app); + g_action_map_add_action (G_ACTION_MAP (app), G_ACTION (action)); + g_object_unref (action); + + menuitem = g_menu_item_new (_("gtk-about"), "win.gtk-about"); + g_menu_item_set_attribute (menuitem, "accel", "s", "F1", NULL); + g_menu_append_item (menu, menuitem); + // G_CALLBACK (awf2_show_dialog_about), AWF_ABOU); + + submenu = g_menu_new (); + g_menu_append_submenu (menu, _("More..."), G_MENU_MODEL (submenu)); + + menuitem = g_menu_item_new (_("gtk-cut"), NULL); + g_menu_item_set_attribute (menuitem, "accel", "s", "X", NULL); + g_menu_append_item (submenu, menuitem); + // AWF_MCUT + + menuitem = g_menu_item_new (_("gtk-copy"), NULL); + g_menu_item_set_attribute (menuitem, "accel", "s", "C", NULL); + g_menu_append_item (submenu, menuitem); + // AWF_MCOP + + menuitem = g_menu_item_new (_("gtk-paste"), NULL); + g_menu_item_set_attribute (menuitem, "accel", "s", "V", NULL); + g_menu_append_item (submenu, menuitem); + // AWF_MPAS + + g_object_unref (submenu); + + section = g_menu_new (); + g_menu_append_section (menu, NULL, G_MENU_MODEL (section)); + + menuitem = g_menu_item_new (g_strdup_printf ("Check 1 %s", _("(unchecked)")), NULL); // FALSE, FALSE, FALSE + g_menu_append_item (section, menuitem); + + menuitem = g_menu_item_new (g_strdup_printf ("Check 2 %s", _("(checked)")), NULL); // TRUE, FALSE, FALSE + g_menu_append_item (section, menuitem); + + menuitem = g_menu_item_new (g_strdup_printf ("Check 3 %s", _("(inconsistent)")), NULL); // FALSE, TRUE, FALSE + g_menu_append_item (section, menuitem); + + g_object_unref (section); + + section = g_menu_new (); + g_menu_append_section (menu, NULL, G_MENU_MODEL (section)); + + menuitem = g_menu_item_new (g_strdup_printf ("Check 1 %s", _("(unchecked)")), "disabled"); // FALSE, FALSE + g_menu_append_item (section, menuitem); + + menuitem = g_menu_item_new (g_strdup_printf ("Check 2 %s", _("(checked)")), "disabled"); // TRUE, FALSE + g_menu_append_item (section, menuitem); + + menuitem = g_menu_item_new (g_strdup_printf ("Check 3 %s", _("(inconsistent)")), "disabled"); // FALSE, TRUE + g_menu_append_item (section, menuitem); + + g_object_unref (section); + + section = g_menu_new (); + g_menu_append_section (menu, NULL, G_MENU_MODEL (section)); + + menuitem = g_menu_item_new (g_strdup_printf ("Radio 1 %s", _("(unchecked)")), NULL); // FALSE, FALSE, FALSE, NULL + g_menu_item_set_attribute_value (menuitem, G_MENU_ATTRIBUTE_TARGET, FALSE); + g_menu_append_item (section, menuitem); + + menuitem = g_menu_item_new (g_strdup_printf ("Radio 2 %s", _("(checked)")), NULL); // TRUE, FALSE, FALSE, group + g_menu_item_set_attribute_value (menuitem, G_MENU_ATTRIBUTE_TARGET, FALSE); + g_menu_append_item (section, menuitem); + + menuitem = g_menu_item_new (g_strdup_printf ("Radio 3 %s", _("(inconsistent)")), NULL); // FALSE, TRUE, FALSE, NULL + g_menu_item_set_attribute_value (menuitem, G_MENU_ATTRIBUTE_TARGET, FALSE); + g_menu_append_item (section, menuitem); + + g_object_unref (section); + + section = g_menu_new (); + g_menu_append_section (menu, NULL, G_MENU_MODEL (section)); + + menuitem = g_menu_item_new (g_strdup_printf ("Radio 1 %s", _("(unchecked)")), "disabled"); // FALSE, FALSE, NULL + g_menu_item_set_attribute_value (menuitem, G_MENU_ATTRIBUTE_TARGET, FALSE); + g_menu_append_item (section, menuitem); + + menuitem = g_menu_item_new (g_strdup_printf ("Radio 2 %s", _("(checked)")), "disabled"); // TRUE, FALSE, group + g_menu_item_set_attribute_value (menuitem, G_MENU_ATTRIBUTE_TARGET, FALSE); + g_menu_append_item (section, menuitem); + + menuitem = g_menu_item_new (g_strdup_printf ("Radio 3 %s", _("(inconsistent)")), "disabled"); // FALSE, TRUE, NULL + g_menu_item_set_attribute_value (menuitem, G_MENU_ATTRIBUTE_TARGET, FALSE); + g_menu_append_item (section, menuitem); + + g_object_unref (section); + + section = g_menu_new (); + g_menu_append_section (menu, NULL, G_MENU_MODEL (section)); + + menuitem = g_menu_item_new (_("gtk-close"), "disabled"); + g_menu_item_set_attribute (menuitem, "accel", "s", "W", NULL); + g_menu_append_item (section, menuitem); + // AWF_CLOS + + menuitem = g_menu_item_new (_("gtk-quit"), NULL); + g_menu_item_set_attribute (menuitem, "accel", "s", "Q", NULL); + g_menu_append_item (section, menuitem); + // G_CALLBACK (awf2_quit), AWF_QUIT + + g_object_unref (section); + + g_object_unref (menu); } #else -static void awf2_create_menubar (GtkWidget *root) { +static void awf2_create_traditional_menubar (GtkWidget *root) { // https://developer.gnome.org/gtk3/stable/GtkMenu.html // https://developer.gnome.org/gtk3/stable/GtkMenuItem.html @@ -1807,11 +2037,12 @@ static void awf2_create_menubar (GtkWidget *root) { gtk_window_add_accel_group (GTK_WINDOW (window), accels); + // system menu = awf2_new_menu (root, _("_System theme")); for (iterator = list_system_theme; iterator; iterator = iterator->next) { menuitem = awf2_new_menu_radio (menu, iterator->data, FALSE, FALSE, FALSE, group); group = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (menuitem)); - if (strcmp ((gchar*)current_theme, (gchar*)iterator->data) == 0) + if (strcmp ((char*)current_theme, (char*)iterator->data) == 0) gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (menuitem), TRUE); g_signal_connect_swapped (menuitem, "activate", G_CALLBACK (awf2_set_theme), iterator->data); } @@ -1819,11 +2050,12 @@ static void awf2_create_menubar (GtkWidget *root) { if (!list_system_theme) awf2_new_menu_item (menu, _("No themes found"), "", TRUE); + // user menu = awf2_new_menu (root, _("_User theme")); for (iterator = list_user_theme; iterator; iterator = iterator->next) { menuitem = awf2_new_menu_radio (menu, iterator->data, FALSE, FALSE, FALSE, group); group = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (menuitem)); - if (strcmp ((gchar*)current_theme, (gchar*)iterator->data) == 0) + if (strcmp ((char*)current_theme, (char*)iterator->data) == 0) gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (menuitem), TRUE); g_signal_connect_swapped (menuitem, "activate", G_CALLBACK (awf2_set_theme), iterator->data); } @@ -1831,6 +2063,7 @@ static void awf2_create_menubar (GtkWidget *root) { if (!list_user_theme) awf2_new_menu_item (menu, _("No themes found"), "", TRUE); + // options menu = awf2_new_menu (root, _("_Options")); gtk_menu_set_accel_group (GTK_MENU (menu), accels); // very important @@ -1844,14 +2077,10 @@ static void awf2_create_menubar (GtkWidget *root) { menuitem = awf2_new_menu_item (menu, _("Open recent file"), "", FALSE); g_signal_connect_swapped (menuitem, "activate", G_CALLBACK (awf2_show_dialog_open_recent), NULL); - gtk_accelerator_parse ("", &key, &mods); - gtk_accel_map_add_entry (AWF_RECE, key, mods); gtk_menu_item_set_accel_path (GTK_MENU_ITEM (menuitem), AWF_RECE); menuitem = awf2_new_menu_item (menu, _("Calendar"), "", FALSE); g_signal_connect_swapped (menuitem, "activate", G_CALLBACK (awf2_show_dialog_calendar), NULL); - gtk_accelerator_parse ("", &key, &mods); - gtk_accel_map_add_entry (AWF_CALE, key, mods); gtk_menu_item_set_accel_path (GTK_MENU_ITEM (menuitem), AWF_CALE); menuitem = awf2_new_menu_item (menu, "", "gtk-save", FALSE); @@ -1874,8 +2103,6 @@ static void awf2_create_menubar (GtkWidget *root) { menuitem = awf2_new_menu_item (menu, "", "gtk-page-setup", FALSE); g_signal_connect_swapped (menuitem, "activate", G_CALLBACK (awf2_show_dialog_page_setup), NULL); - gtk_accelerator_parse ("", &key, &mods); - gtk_accel_map_add_entry (AWF_PRSE, key, mods); gtk_menu_item_set_accel_path (GTK_MENU_ITEM (menuitem), AWF_PRSE); menuitem = awf2_new_menu_item (menu, "", "gtk-print", FALSE); @@ -1910,59 +2137,59 @@ static void awf2_create_menubar (GtkWidget *root) { awf2_new_menu_separator (menu); - awf2_new_menu_check (menu, g_strdup_printf ("Check 1 %s", _("(unchecked)")), FALSE, FALSE, FALSE); - awf2_new_menu_check (menu, g_strdup_printf ("Check 2 %s", _("(checked)")), TRUE, FALSE, FALSE); - awf2_new_menu_check (menu, g_strdup_printf ("Check 3 %s", _("(inconsistent)")), FALSE, TRUE, FALSE); + awf2_new_menu_check (menu, g_strdup_printf ("Check 1 %s", _("(unchecked)")), FALSE, FALSE, FALSE); + awf2_new_menu_check (menu, g_strdup_printf ("Check 2 %s", _("(checked)")), TRUE, FALSE, FALSE); + awf2_new_menu_check (menu, g_strdup_printf ("Check 3 %s", _("(inconsistent)")), FALSE, TRUE, FALSE); awf2_new_menu_separator (menu); - awf2_new_menu_check (menu, g_strdup_printf ("Check 1 %s", _("(unchecked)")), FALSE, FALSE, TRUE); - awf2_new_menu_check (menu, g_strdup_printf ("Check 2 %s", _("(checked)")), TRUE, FALSE, TRUE); - awf2_new_menu_check (menu, g_strdup_printf ("Check 3 %s", _("(inconsistent)")), FALSE, TRUE, TRUE); + awf2_new_menu_check (menu, g_strdup_printf ("Check 1 %s", _("(unchecked)")), FALSE, FALSE, TRUE); + awf2_new_menu_check (menu, g_strdup_printf ("Check 2 %s", _("(checked)")), TRUE, FALSE, TRUE); + awf2_new_menu_check (menu, g_strdup_printf ("Check 3 %s", _("(inconsistent)")), FALSE, TRUE, TRUE); awf2_new_menu_separator (menu); - menuitem = awf2_new_menu_radio (menu, g_strdup_printf ("Radio 1 %s", _("(unchecked)")), FALSE, FALSE, FALSE, NULL); - group = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (menuitem)); - awf2_new_menu_radio (menu, g_strdup_printf ("Radio 2 %s", _("(checked)")), TRUE, FALSE, FALSE, group); - awf2_new_menu_radio (menu, g_strdup_printf ("Radio 3 %s", _("(inconsistent)")), FALSE, TRUE, FALSE, NULL); + menuitem = awf2_new_menu_radio (menu, g_strdup_printf ("Radio 1 %s", _("(unchecked)")), FALSE, FALSE, FALSE, NULL); + group = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (menuitem)); + awf2_new_menu_radio (menu, g_strdup_printf ("Radio 2 %s", _("(checked)")), TRUE, FALSE, FALSE, group); + awf2_new_menu_radio (menu, g_strdup_printf ("Radio 3 %s", _("(inconsistent)")), FALSE, TRUE, FALSE, NULL); awf2_new_menu_separator (menu); - menuitem = awf2_new_menu_radio (menu, g_strdup_printf ("Radio 1 %s", _("(unchecked)")), FALSE, FALSE, TRUE, NULL); - group = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (menuitem)); - awf2_new_menu_radio (menu, g_strdup_printf ("Radio 2 %s", _("(checked)")), TRUE, FALSE, TRUE, group); - awf2_new_menu_radio (menu, g_strdup_printf ("Radio 3 %s", _("(inconsistent)")), FALSE, TRUE, TRUE, NULL); + menuitem = awf2_new_menu_radio (menu, g_strdup_printf ("Radio 1 %s", _("(unchecked)")), FALSE, FALSE, TRUE, NULL); + group = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (menuitem)); + awf2_new_menu_radio (menu, g_strdup_printf ("Radio 2 %s", _("(checked)")), TRUE, FALSE, TRUE, group); + awf2_new_menu_radio (menu, g_strdup_printf ("Radio 3 %s", _("(inconsistent)")), FALSE, TRUE, TRUE, NULL); awf2_new_menu_separator (menu); - menuitem = awf2_new_menu_item (menu, "", "gtk-close", TRUE); - gtk_accelerator_parse ("W", &key, &mods); - gtk_accel_map_add_entry (AWF_CLOS, key, mods); - gtk_menu_item_set_accel_path (GTK_MENU_ITEM (menuitem), AWF_CLOS); + menuitem = awf2_new_menu_item (menu, "", "gtk-close", TRUE); + gtk_accelerator_parse ("W", &key, &mods); + gtk_accel_map_add_entry (AWF_CLOS, key, mods); + gtk_menu_item_set_accel_path (GTK_MENU_ITEM (menuitem), AWF_CLOS); - menuitem = awf2_new_menu_item (menu, "", "gtk-quit", FALSE); - g_signal_connect_swapped (menuitem, "activate", G_CALLBACK (awf2_quit), NULL); - gtk_accelerator_parse ("Q", &key, &mods); - gtk_accel_map_add_entry (AWF_QUIT, key, mods); - gtk_menu_item_set_accel_path (GTK_MENU_ITEM (menuitem), AWF_QUIT); + menuitem = awf2_new_menu_item (menu, "", "gtk-quit", FALSE); + g_signal_connect_swapped (menuitem, "activate", G_CALLBACK (awf2_quit), NULL); + gtk_accelerator_parse ("Q", &key, &mods); + gtk_accel_map_add_entry (AWF_QUIT, key, mods); + gtk_menu_item_set_accel_path (GTK_MENU_ITEM (menuitem), AWF_QUIT); awf2_accels_load (); - // version check disabled to get same thing between GTK 2.24/3.0 and 3.2+ + // disabled to get same thing between GTK 2.24/3.0 and 3.2-3.24 // gtk-can-change-accels for GTK 2.24 and GTK 3.0 only //#if !GTK_CHECK_VERSION (3,2,0) // g_signal_connect_swapped (gtk_accel_map_get (), "changed", G_CALLBACK (awf2_...), NULL); // g_object_set (gtk_settings_get_default (), "gtk-can-change-accels", TRUE, NULL); // - // static void awf2_... (GtkAccelMap *accel_map, gchar *accel_path, guint accel_key, GdkModifierType accel_mods) + // static void awf2_... (GtkAccelMap *accel_map, char *accel_path, guint accel_key, GdkModifierType accel_mods) // if (accel_path != NULL) // gtk_accel_map_change_entry (accel_path, accel_key, accel_mods, TRUE); //#endif g_object_set (gtk_settings_get_default (), "gtk-can-change-accels", FALSE, NULL); } -static GtkWidget* awf2_new_menu (GtkWidget *root, gchar *text) { +static GtkWidget* awf2_new_menu (GtkWidget *root, char *text) { // https://developer.gnome.org/gtk3/stable/GtkMenu.html // https://developer.gnome.org/gtk3/stable/GtkMenuItem.html @@ -1974,8 +2201,8 @@ static GtkWidget* awf2_new_menu (GtkWidget *root, gchar *text) { gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem), menu); gtk_menu_shell_append (GTK_MENU_SHELL (root), menuitem); - // version check disabled to get same thing between GTK 2.24/3.0 and 3.2+ - // gtk-can-change-accels for GTK 3.2+ + // disabled to get same thing between GTK 2.24/3.0 and 3.2-3.24 + // gtk-can-change-accels for GTK 3.2-3.24 //#if GTK_CHECK_VERSION (3,2,0) gtk_widget_set_events (menu, GDK_KEY_RELEASE_MASK); g_signal_connect (menu, "key-release-event", G_CALLBACK (awf2_accels_change), NULL); @@ -2014,7 +2241,7 @@ static GtkWidget* awf2_new_menu_separator (GtkWidget *menu) { return menuitem; } -static GtkWidget* awf2_new_menu_check (GtkWidget *menu, gchar *text, gboolean checked, gboolean inconsistent, gboolean disabled) { +static GtkWidget* awf2_new_menu_check (GtkWidget *menu, char *text, gboolean checked, gboolean inconsistent, gboolean disabled) { // https://developer.gnome.org/gtk3/stable/GtkCheckMenuItem.html @@ -2029,7 +2256,7 @@ static GtkWidget* awf2_new_menu_check (GtkWidget *menu, gchar *text, gboolean ch return menuitem; } -static GtkWidget* awf2_new_menu_radio (GtkWidget *menu, gchar *text, gboolean checked, gboolean inconsistent, gboolean disabled, GSList *group) { +static GtkWidget* awf2_new_menu_radio (GtkWidget *menu, char *text, gboolean checked, gboolean inconsistent, gboolean disabled, GSList *group) { // https://developer.gnome.org/gtk3/stable/GtkRadioMenuItem.html @@ -2044,7 +2271,7 @@ static GtkWidget* awf2_new_menu_radio (GtkWidget *menu, gchar *text, gboolean ch return menuitem; } -static GtkWidget* awf2_new_menu_item (GtkWidget *menu, gchar *text, gchar *image, gboolean disabled) { +static GtkWidget* awf2_new_menu_item (GtkWidget *menu, char *text, char *image, gboolean disabled) { // https://developer.gnome.org/gtk3/stable/GtkMenuItem.html // https://developer.gnome.org/gtk3/stable/GtkImageMenuItem.html @@ -2059,8 +2286,8 @@ static GtkWidget* awf2_new_menu_item (GtkWidget *menu, gchar *text, gchar *image gtk_widget_set_sensitive (menuitem, !disabled); gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem); - // version check disabled to get same thing between GTK 2.24/3.0 and 3.2+ - // gtk-can-change-accels for GTK 3.2+ + // disabled to get same thing between GTK 2.24/3.0 and 3.2-3.24 + // gtk-can-change-accels for GTK 3.2-3.24 //#if GTK_CHECK_VERSION (3,2,0) g_signal_connect (menuitem, "select", G_CALLBACK (awf2_accels_select), NULL); g_signal_connect (menuitem, "deselect", G_CALLBACK (awf2_accels_deselect), NULL); @@ -2075,7 +2302,7 @@ static void awf2_accels_load () { // https://developer.gnome.org/gtk3/stable/gtk3-Accelerator-Maps.html - gchar *path; + char *path; path = g_build_filename ("/", g_getenv ("HOME"), ".awf-gtk-accels", NULL); if (g_file_test (path, G_FILE_TEST_IS_REGULAR)) @@ -2095,8 +2322,8 @@ static void awf2_accels_deselect (GtkWidget *widget) { static void awf2_accels_change (GtkWidget *widget, GdkEventKey *event) { - // version check disabled to get same thing between GTK 2.24/3.0 and 3.2+ - // gtk-can-change-accels for GTK 3.2+ + // disabled to get same thing between GTK 2.24/3.0 and 3.2-3.24 + // gtk-can-change-accels for GTK 3.2-3.24 //#if GTK_CHECK_VERSION (3,2,0) // https://developer.gnome.org/gdk3/stable/gdk3-Keyboard-Handling.html @@ -2106,7 +2333,7 @@ static void awf2_accels_change (GtkWidget *widget, GdkEventKey *event) { return; GtkMenuItem *menuitem = GTK_MENU_ITEM (current_menuitem); - gchar *key = gdk_keyval_name (event->keyval); + char *key = gdk_keyval_name (event->keyval); if ( !gtk_menu_item_get_accel_path (menuitem) || @@ -2148,7 +2375,7 @@ static void awf2_accels_save () { if (must_save_accels) { - gchar *path; + char *path; path = g_build_filename ("/", g_getenv ("HOME"), ".awf-gtk-accels", NULL); gtk_accel_map_save (path); @@ -2178,8 +2405,13 @@ static void awf2_show_dialog_open () { NULL); gtk_window_set_icon_name (GTK_WINDOW (dialog), g_strdup_printf ("awf-gtk%d", TRUE_GTK_MAJOR_VERSION)); - gtk_dialog_run (GTK_DIALOG (dialog)); - gtk_widget_destroy (dialog); + #if GTK_CHECK_VERSION (3,90,0) + gtk_widget_show (dialog); // todo + g_signal_connect (dialog, "response", G_CALLBACK (awf2_gtk40_closedialog), NULL); + #else + gtk_dialog_run (GTK_DIALOG (dialog)); + gtk_widget_destroy (dialog); + #endif } static void awf2_show_dialog_open_recent () { @@ -2188,7 +2420,7 @@ static void awf2_show_dialog_open_recent () { GtkWidget *dialog; - #if !GTK_CHECK_VERSION (3,98,0) + #if !GTK_CHECK_VERSION (3,90,0) dialog = gtk_recent_chooser_dialog_new ( "GtkRecentChooserDialog", @@ -2222,8 +2454,12 @@ static void awf2_show_dialog_save () { NULL); gtk_window_set_icon_name (GTK_WINDOW (dialog), g_strdup_printf ("awf-gtk%d", TRUE_GTK_MAJOR_VERSION)); - gtk_dialog_run (GTK_DIALOG (dialog)); - gtk_widget_destroy (dialog); + #if GTK_CHECK_VERSION (3,90,0) + gtk_widget_show (dialog); // todo + #else + gtk_dialog_run (GTK_DIALOG (dialog)); + gtk_widget_destroy (dialog); + #endif } static void awf2_show_dialog_properties () { @@ -2243,8 +2479,12 @@ static void awf2_show_dialog_properties () { gtk_window_set_title (GTK_WINDOW (dialog), "GtkMessageDialog"); gtk_window_set_icon_name (GTK_WINDOW (dialog), g_strdup_printf ("awf-gtk%d", TRUE_GTK_MAJOR_VERSION)); - gtk_dialog_run (GTK_DIALOG (dialog)); - gtk_widget_destroy (dialog); + #if GTK_CHECK_VERSION (3,90,0) + gtk_widget_show (dialog); // todo + #else + gtk_dialog_run (GTK_DIALOG (dialog)); + gtk_widget_destroy (dialog); + #endif } static void awf2_show_dialog_page_setup () { @@ -2258,8 +2498,12 @@ static void awf2_show_dialog_page_setup () { GTK_WINDOW (window)); gtk_window_set_icon_name (GTK_WINDOW (dialog), g_strdup_printf ("awf-gtk%d", TRUE_GTK_MAJOR_VERSION)); - gtk_dialog_run (GTK_DIALOG (dialog)); - gtk_widget_destroy (dialog); + #if GTK_CHECK_VERSION (3,90,0) + gtk_widget_show (dialog); // todo + #else + gtk_dialog_run (GTK_DIALOG (dialog)); + gtk_widget_destroy (dialog); + #endif } static void awf2_show_dialog_print () { @@ -2273,8 +2517,12 @@ static void awf2_show_dialog_print () { GTK_WINDOW (window)); gtk_window_set_icon_name (GTK_WINDOW (dialog), g_strdup_printf ("awf-gtk%d", TRUE_GTK_MAJOR_VERSION)); - gtk_dialog_run (GTK_DIALOG (dialog)); - gtk_widget_destroy (dialog); + #if GTK_CHECK_VERSION (3,90,0) + gtk_widget_show (dialog); // todo + #else + gtk_dialog_run (GTK_DIALOG (dialog)); + gtk_widget_destroy (dialog); + #endif } static void awf2_show_dialog_about () { @@ -2293,7 +2541,7 @@ static void awf2_show_dialog_about () { g_strdup_printf (_(" started with gtk %d.%d.%d and glib %d.%d.%d"), gtk_major_version, gtk_minor_version, gtk_micro_version, glib_major_version, glib_minor_version, glib_micro_version)), - "website", "https://github.com/luigifab/awf", + "website", "https://github.com/luigifab/awf-extended", "copyright", "Copyright © 2020 Fabrice Creuzot (luigifab)\nCopyright © 2011-2017 Valère Monseur (valr)", "icon-name", g_strdup_printf ("awf-gtk%d", TRUE_GTK_MAJOR_VERSION), "logo-icon-name", g_strdup_printf ("awf-gtk%d", TRUE_GTK_MAJOR_VERSION), @@ -2309,8 +2557,7 @@ static void awf2_show_dialog_calendar () { // https://developer.gnome.org/gtk3/stable/GtkCalendar.html // https://developer.gnome.org/gtk4/stable/GtkCalendar.html - GtkWidget *dialog, *infobar, *label, *calendar, *vbox = BOXV; - GtkContainer *area; + GtkWidget *dialog, *infobar, *label, *calendar, *vbox = BOXV, *area; dialog = gtk_dialog_new_with_buttons ( NULL, @@ -2326,42 +2573,42 @@ static void awf2_show_dialog_calendar () { gtk_info_bar_set_message_type (GTK_INFO_BAR (infobar), GTK_MESSAGE_INFO); label = gtk_label_new (_("This is an info bar.")); awf2_boxpack (GTK_BOX (infobar), label, FALSE, FALSE, 0, 0); - gtk_container_add (GTK_CONTAINER (vbox), infobar); + awf2_boxpack (GTK_BOX (vbox), infobar, FALSE, FALSE, 0, 0); infobar = gtk_info_bar_new_with_buttons (_("Ok"), GTK_RESPONSE_OK, NULL); gtk_info_bar_set_message_type (GTK_INFO_BAR (infobar), GTK_MESSAGE_QUESTION); label = gtk_label_new (_("This is a question bar.")); awf2_boxpack (GTK_BOX (infobar), label, FALSE, FALSE, 0, 0); - gtk_container_add (GTK_CONTAINER (vbox), infobar); + awf2_boxpack (GTK_BOX (vbox), infobar, FALSE, FALSE, 0, 0); infobar = gtk_info_bar_new (); gtk_info_bar_set_message_type (GTK_INFO_BAR (infobar), GTK_MESSAGE_WARNING); label = gtk_label_new (_("This is a warning bar.")); awf2_boxpack (GTK_BOX (infobar), label, FALSE, FALSE, 0, 0); - gtk_container_add (GTK_CONTAINER (vbox), infobar); + awf2_boxpack (GTK_BOX (vbox), infobar, FALSE, FALSE, 0, 0); infobar = gtk_info_bar_new (); gtk_info_bar_set_message_type (GTK_INFO_BAR (infobar), GTK_MESSAGE_ERROR); label = gtk_label_new (_("This is an error bar.")); awf2_boxpack (GTK_BOX (infobar), label, FALSE, FALSE, 0, 0); - gtk_container_add (GTK_CONTAINER (vbox), infobar); + awf2_boxpack (GTK_BOX (vbox), infobar, FALSE, FALSE, 0, 0); // calendar calendar = gtk_calendar_new (); - #if !GTK_CHECK_VERSION (3,98,0) + #if !GTK_CHECK_VERSION (3,90,0) gtk_calendar_set_display_options (GTK_CALENDAR (calendar), GTK_CALENDAR_SHOW_HEADING | GTK_CALENDAR_SHOW_DAY_NAMES | GTK_CALENDAR_SHOW_WEEK_NUMBERS); #endif - gtk_container_add (GTK_CONTAINER (vbox), calendar); + awf2_boxpack (GTK_BOX (vbox), calendar, FALSE, FALSE, 0, 0); // dialog - area = GTK_CONTAINER (gtk_dialog_get_content_area (GTK_DIALOG (dialog))); + area = gtk_dialog_get_content_area (GTK_DIALOG (dialog)); awf2_boxpack (GTK_BOX (area), vbox, FALSE, FALSE, 5, 5); gtk_dialog_add_button (GTK_DIALOG (dialog), "gtk-cancel", 0); gtk_dialog_add_button (GTK_DIALOG (dialog), "gtk-ok", 0); - #if GTK_CHECK_VERSION (3,98,0) + #if GTK_CHECK_VERSION (3,90,0) gtk_widget_show (dialog); #else gtk_widget_show_all (dialog); @@ -2369,17 +2616,25 @@ static void awf2_show_dialog_calendar () { gtk_window_set_title (GTK_WINDOW (dialog), "GtkDialog"); gtk_window_set_icon_name (GTK_WINDOW (dialog), g_strdup_printf ("awf-gtk%d", TRUE_GTK_MAJOR_VERSION)); - gtk_dialog_run (GTK_DIALOG (dialog)); - gtk_widget_destroy (dialog); + #if GTK_CHECK_VERSION (3,90,0) + gtk_widget_show (dialog); // todo + #else + gtk_dialog_run (GTK_DIALOG (dialog)); + gtk_widget_destroy (dialog); + #endif } // https://github.com/mate-desktop/mate-control-center/blob/master/capplets/common/capplet-util.c // for awf2_gtk34_scrolltabs source function is capplet_dialog_page_scroll_event_cb // of mate-appearance-properties from mate-control-center, GNU GPL 2+ -#if GTK_CHECK_VERSION (3,98,0) +#if GTK_CHECK_VERSION (3,90,0) + +static void awf2_gtk40_closedialog (GtkDialog *dialog) { + gtk_window_destroy (GTK_WINDOW (dialog)); +} -static void awf2_gtk40_scrolltabs (GtkEventControllerScroll *event, gdouble dx, gdouble dy, GtkWidget *widget) { +static void awf2_gtk40_scrolltabs (GtkEventControllerScroll *event, double dx, double dy, GtkWidget *widget) { GtkNotebook *notebook; GtkWidget *child, *event_widget, *action_widget; diff --git a/src/awf.pot b/src/awf.pot new file mode 100644 index 0000000..d1338a8 --- /dev/null +++ b/src/awf.pot @@ -0,0 +1,208 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2020-11-08 14:56+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: gtk-awf/src/awf.c:272 gtk-awf/src/awf.c:2541 +#, c-format +msgid " started with gtk %d.%d.%d and glib %d.%d.%d" +msgstr "" + +#: gtk-awf/src/awf.c:1949 gtk-awf/src/awf.c:1963 gtk-awf/src/awf.c:1978 +#: gtk-awf/src/awf.c:1995 gtk-awf/src/awf.c:2141 gtk-awf/src/awf.c:2147 +#: gtk-awf/src/awf.c:2154 gtk-awf/src/awf.c:2161 +msgid "(checked)" +msgstr "" + +#: gtk-awf/src/awf.c:1952 gtk-awf/src/awf.c:1966 gtk-awf/src/awf.c:1982 +#: gtk-awf/src/awf.c:1999 gtk-awf/src/awf.c:2142 gtk-awf/src/awf.c:2148 +#: gtk-awf/src/awf.c:2155 gtk-awf/src/awf.c:2162 +msgid "(inconsistent)" +msgstr "" + +#: gtk-awf/src/awf.c:1946 gtk-awf/src/awf.c:1960 gtk-awf/src/awf.c:1974 +#: gtk-awf/src/awf.c:1991 gtk-awf/src/awf.c:2140 gtk-awf/src/awf.c:2146 +#: gtk-awf/src/awf.c:2152 gtk-awf/src/awf.c:2159 +msgid "(unchecked)" +msgstr "" + +#: gtk-awf/src/awf.c:268 gtk-awf/src/awf.c:646 +#, c-format +msgid "A widget factory - GTK %d - %s" +msgstr "" + +#: gtk-awf/src/awf.c:1596 gtk-awf/src/awf.c:2478 gtk-awf/src/awf.c:2535 +msgid "" +"A widget factory is a theme preview application for GTK. It displays the " +"various widget types provided by GTK in a single window allowing to see the " +"visual effect of the applied theme." +msgstr "" + +#: gtk-awf/src/awf.c:1885 gtk-awf/src/awf.c:2082 +msgid "Calendar" +msgstr "" + +#: gtk-awf/src/awf.c:282 +msgid "Don't start spinners" +msgstr "" + +#: gtk-awf/src/awf.c:281 +msgid "List available themes" +msgstr "" + +#: gtk-awf/src/awf.c:1579 gtk-awf/src/awf.c:1924 gtk-awf/src/awf.c:2120 +msgid "More..." +msgstr "" + +#: gtk-awf/src/awf.c:1851 gtk-awf/src/awf.c:1868 gtk-awf/src/awf.c:2051 +#: gtk-awf/src/awf.c:2064 +msgid "No themes found" +msgstr "" + +#: gtk-awf/src/awf.c:2578 +msgid "Ok" +msgstr "" + +#: gtk-awf/src/awf.c:1881 gtk-awf/src/awf.c:2078 +msgid "Open recent file" +msgstr "" + +#: gtk-awf/src/awf.c:279 +msgid "Options:" +msgstr "" + +#: gtk-awf/src/awf.c:1894 gtk-awf/src/awf.c:2092 +msgid "Refresh theme" +msgstr "" + +#: gtk-awf/src/awf.c:2536 +#, c-format +msgid "Remove %s file" +msgstr "" + +#: gtk-awf/src/awf.c:284 +#, c-format +msgid "Run and save a png screenshot on %s" +msgstr "" + +#: gtk-awf/src/awf.c:283 +msgid "Run with the specified theme" +msgstr "" + +#: gtk-awf/src/awf.c:280 +msgid "Show version number" +msgstr "" + +#: gtk-awf/src/awf.c:420 gtk-awf/src/awf.c:685 +#, c-format +msgid "Theme %s loaded." +msgstr "" + +#: gtk-awf/src/awf.c:405 +#, c-format +msgid "Theme %s reloaded at" +msgstr "" + +#: gtk-awf/src/awf.c:615 +#, c-format +msgid "Theme reloaded, then screenshot saved (%s) at" +msgstr "" + +#: gtk-awf/src/awf.c:2580 +msgid "This is a question bar." +msgstr "" + +#: gtk-awf/src/awf.c:2586 +msgid "This is a warning bar." +msgstr "" + +#: gtk-awf/src/awf.c:2592 +msgid "This is an error bar." +msgstr "" + +#: gtk-awf/src/awf.c:2574 +msgid "This is an info bar." +msgstr "" + +#: gtk-awf/src/awf.c:275 +msgid "Usage:" +msgstr "" + +#: gtk-awf/src/awf.c:1874 gtk-awf/src/awf.c:2067 +msgid "_Options" +msgstr "" + +#: gtk-awf/src/awf.c:1840 gtk-awf/src/awf.c:2041 +msgid "_System theme" +msgstr "" + +#: gtk-awf/src/awf.c:1857 gtk-awf/src/awf.c:2054 +msgid "_User theme" +msgstr "" + +#: gtk-awf/src/awf.c:269 gtk-awf/src/awf.c:2538 +#, c-format +msgid "compiled with gtk %d.%d.%d and glib %d.%d.%d" +msgstr "" + +#: gtk-awf/src/awf.c:1918 +msgid "gtk-about" +msgstr "" + +#: gtk-awf/src/awf.c:2008 +msgid "gtk-close" +msgstr "" + +#: gtk-awf/src/awf.c:1931 +msgid "gtk-copy" +msgstr "" + +#: gtk-awf/src/awf.c:1926 +msgid "gtk-cut" +msgstr "" + +#: gtk-awf/src/awf.c:1876 +msgid "gtk-open" +msgstr "" + +#: gtk-awf/src/awf.c:1904 +msgid "gtk-page-setup" +msgstr "" + +#: gtk-awf/src/awf.c:1936 +msgid "gtk-paste" +msgstr "" + +#: gtk-awf/src/awf.c:1908 +msgid "gtk-print" +msgstr "" + +#: gtk-awf/src/awf.c:1899 +msgid "gtk-properties" +msgstr "" + +#: gtk-awf/src/awf.c:2013 +msgid "gtk-quit" +msgstr "" + +#: gtk-awf/src/awf.c:1889 +msgid "gtk-save" +msgstr "" + +#: gtk-awf/src/awf.c:2537 +msgid "to reset keyboard shortcuts." +msgstr "" diff --git a/src/debian-gtk2/changelog b/src/debian-gtk2/changelog deleted file mode 100644 index 3e5debb..0000000 --- a/src/debian-gtk2/changelog +++ /dev/null @@ -1,12 +0,0 @@ -awf-gtk2 (2.1.0-1) unstable; urgency=low - - * New upstream version - * Allow to change menu items keyboard shortcuts on hover (from gtk2.24 to gtk3.24) - - -- Fabrice Creuzot Tue, 07 Jul 2020 12:00:00 +0000 - -awf-gtk2 (2.0.0-3) unstable; urgency=low - - * Initial debian package release (Closes: #959434) - - -- Fabrice Creuzot Sat, 02 May 2020 10:33:59 +0000 diff --git a/src/debian-gtk2/deb.sh b/src/debian-gtk2/deb.sh deleted file mode 100644 index 5400384..0000000 --- a/src/debian-gtk2/deb.sh +++ /dev/null @@ -1,53 +0,0 @@ -#!/bin/bash - -gtk="gtk2" -version="2.1.0" -cd debian-${gtk}/ -rm -rf builder/ - -# copy to a tmp directory -mkdir builder -mkdir builder/awf-${gtk}-${version} -touch builder/awf-${gtk}-${version}/NEWS -touch builder/awf-${gtk}-${version}/AUTHORS -touch builder/awf-${gtk}-${version}/README -touch builder/awf-${gtk}-${version}/ChangeLog -cp -r ../icons builder/awf-${gtk}-${version}/ -cp -r ../src builder/awf-${gtk}-${version}/ -cp awf-${gtk}.desktop builder/awf-${gtk}-${version}/ -cp ../Makefile.am builder/awf-${gtk}-${version}/ -cp ../configure.ac builder/awf-${gtk}-${version}/ -cp /usr/share/common-licenses/GPL-3 builder/awf-${gtk}-${version}/COPYING -sed -i 's/ -eq 3/ -eq -1/g' builder/awf-${gtk}-${version}/configure.ac -sed -i 's/ -eq 4/ -eq -1/g' builder/awf-${gtk}-${version}/configure.ac -for file in builder/awf-${gtk}-${version}/icons/*/*/*; do mv $file ${file/\/awf./\/awf-${gtk}.}; done -for file in builder/awf-${gtk}-${version}/src/po/*.po; do - lang=$(basename "$file" .po) - mkdir -p builder/awf-${gtk}-${version}/locale/${lang}/LC_MESSAGES - msgfmt builder/awf-${gtk}-${version}/src/po/${lang}.po -o builder/awf-${gtk}-${version}/locale/${lang}/LC_MESSAGES/awf-${gtk}.mo -done - -cd builder/ -tar czf awf-${gtk}-${version}.tar.gz awf-${gtk}-${version}/ -cd .. - -# create package -cd builder/awf-${gtk}-${version}/ -dh_make -s -y -f ../awf-${gtk}-${version}.tar.gz -rm -f debian/*ex debian/*EX debian/README* debian/*doc* -mkdir debian/upstream -cp ../../control debian/ -cp ../../changelog debian/ -cp ../../copyright debian/ -cp ../../install debian/ -cp ../../watch debian/ -cp ../../rules debian/ -cp ../../lintian debian/awf-${gtk}.lintian-overrides -cp ../../upstream debian/upstream/metadata -dpkg-buildpackage -us -uc -cd .. -debsign awf-${gtk}_${version}-*.changes -cd .. - -# cleanup -rm -rf builder/awf-${gtk}-${version}/ builder/awf-${gtk}-${version}.tar.gz \ No newline at end of file diff --git a/src/debian-gtk2/install b/src/debian-gtk2/install deleted file mode 100644 index 9a766cd..0000000 --- a/src/debian-gtk2/install +++ /dev/null @@ -1,3 +0,0 @@ -awf-gtk2.desktop /usr/share/applications/ -icons/* /usr/share/icons/hicolor/ -locale/* /usr/share/locale/ \ No newline at end of file diff --git a/src/debian-gtk2/lintian b/src/debian-gtk2/lintian deleted file mode 100644 index 4466381..0000000 --- a/src/debian-gtk2/lintian +++ /dev/null @@ -1,2 +0,0 @@ -# this is the name of the program -awf-gtk2: description-synopsis-starts-with-article \ No newline at end of file diff --git a/src/debian-gtk2/rules b/src/debian-gtk2/rules deleted file mode 100644 index 63844c9..0000000 --- a/src/debian-gtk2/rules +++ /dev/null @@ -1,6 +0,0 @@ -#!/usr/bin/make -f - -export DEB_BUILD_MAINT_OPTIONS = hardening=+all - -%: - dh $@ --with autoreconf diff --git a/src/debian-gtk3/changelog b/src/debian-gtk3/changelog deleted file mode 100644 index fddcd41..0000000 --- a/src/debian-gtk3/changelog +++ /dev/null @@ -1,12 +0,0 @@ -awf-gtk3 (2.1.0-1) unstable; urgency=low - - * New upstream version - * Allow to change menu items keyboard shortcuts on hover (from gtk2.24 to gtk3.24) - - -- Fabrice Creuzot Tue, 07 Jul 2020 12:00:00 +0000 - -awf-gtk3 (2.0.0-3) unstable; urgency=low - - * Initial debian package release (Closes: #959436) - - -- Fabrice Creuzot Sat, 02 May 2020 10:33:59 +0000 diff --git a/src/debian-gtk3/deb.sh b/src/debian-gtk3/deb.sh deleted file mode 100644 index 29dc774..0000000 --- a/src/debian-gtk3/deb.sh +++ /dev/null @@ -1,53 +0,0 @@ -#!/bin/bash - -gtk="gtk3" -version="2.1.0" -cd debian-${gtk}/ -rm -rf builder/ - -# copy to a tmp directory -mkdir builder -mkdir builder/awf-${gtk}-${version} -touch builder/awf-${gtk}-${version}/NEWS -touch builder/awf-${gtk}-${version}/AUTHORS -touch builder/awf-${gtk}-${version}/README -touch builder/awf-${gtk}-${version}/ChangeLog -cp -r ../icons builder/awf-${gtk}-${version}/ -cp -r ../src builder/awf-${gtk}-${version}/ -cp awf-${gtk}.desktop builder/awf-${gtk}-${version}/ -cp ../Makefile.am builder/awf-${gtk}-${version}/ -cp ../configure.ac builder/awf-${gtk}-${version}/ -cp /usr/share/common-licenses/GPL-3 builder/awf-${gtk}-${version}/COPYING -sed -i 's/ -eq 2/ -eq -1/g' builder/awf-${gtk}-${version}/configure.ac -sed -i 's/ -eq 4/ -eq -1/g' builder/awf-${gtk}-${version}/configure.ac -for file in builder/awf-${gtk}-${version}/icons/*/*/*; do mv $file ${file/\/awf./\/awf-${gtk}.}; done -for file in builder/awf-${gtk}-${version}/src/po/*.po; do - lang=$(basename "$file" .po) - mkdir -p builder/awf-${gtk}-${version}/locale/${lang}/LC_MESSAGES - msgfmt builder/awf-${gtk}-${version}/src/po/${lang}.po -o builder/awf-${gtk}-${version}/locale/${lang}/LC_MESSAGES/awf-${gtk}.mo -done - -cd builder/ -tar czf awf-${gtk}-${version}.tar.gz awf-${gtk}-${version}/ -cd .. - -# create package -cd builder/awf-${gtk}-${version}/ -dh_make -s -y -f ../awf-${gtk}-${version}.tar.gz -rm -f debian/*ex debian/*EX debian/README* debian/*doc* -mkdir debian/upstream -cp ../../control debian/ -cp ../../changelog debian/ -cp ../../copyright debian/ -cp ../../install debian/ -cp ../../watch debian/ -cp ../../rules debian/ -cp ../../lintian debian/awf-${gtk}.lintian-overrides -cp ../../upstream debian/upstream/metadata -dpkg-buildpackage -us -uc -cd .. -debsign awf-${gtk}_${version}-*.changes -cd .. - -# cleanup -rm -rf builder/awf-${gtk}-${version}/ builder/awf-${gtk}-${version}.tar.gz \ No newline at end of file diff --git a/src/debian-gtk3/install b/src/debian-gtk3/install deleted file mode 100644 index 2fbafb5..0000000 --- a/src/debian-gtk3/install +++ /dev/null @@ -1,3 +0,0 @@ -awf-gtk3.desktop /usr/share/applications/ -icons/* /usr/share/icons/hicolor/ -locale/* /usr/share/locale/ \ No newline at end of file diff --git a/src/debian-gtk3/lintian b/src/debian-gtk3/lintian deleted file mode 100644 index cc7f0ac..0000000 --- a/src/debian-gtk3/lintian +++ /dev/null @@ -1,2 +0,0 @@ -# this is the name of the program -awf-gtk3: description-synopsis-starts-with-article \ No newline at end of file diff --git a/src/debian-gtk3/rules b/src/debian-gtk3/rules deleted file mode 100644 index 63844c9..0000000 --- a/src/debian-gtk3/rules +++ /dev/null @@ -1,6 +0,0 @@ -#!/usr/bin/make -f - -export DEB_BUILD_MAINT_OPTIONS = hardening=+all - -%: - dh $@ --with autoreconf diff --git a/src/debian-gtk4/changelog b/src/debian-gtk4/changelog deleted file mode 100644 index beb4e6f..0000000 --- a/src/debian-gtk4/changelog +++ /dev/null @@ -1,12 +0,0 @@ -awf-gtk4 (2.1.0-1) experimental; urgency=low - - * New upstream version - * Allow to change menu items keyboard shortcuts on hover (from gtk2.24 to gtk3.24) - - -- Fabrice Creuzot Tue, 07 Jul 2020 12:00:00 +0000 - -awf-gtk4 (2.0.0-3) experimental; urgency=low - - * Initial debian package release (Closes: #959433) - - -- Fabrice Creuzot Sat, 02 May 2020 10:33:59 +0000 diff --git a/src/debian-gtk4/deb.sh b/src/debian-gtk4/deb.sh deleted file mode 100644 index b66029c..0000000 --- a/src/debian-gtk4/deb.sh +++ /dev/null @@ -1,53 +0,0 @@ -#!/bin/bash - -gtk="gtk4" -version="2.1.0" -cd debian-${gtk}/ -rm -rf builder/ - -# copy to a tmp directory -mkdir builder -mkdir builder/awf-${gtk}-${version} -touch builder/awf-${gtk}-${version}/NEWS -touch builder/awf-${gtk}-${version}/AUTHORS -touch builder/awf-${gtk}-${version}/README -touch builder/awf-${gtk}-${version}/ChangeLog -cp -r ../icons builder/awf-${gtk}-${version}/ -cp -r ../src builder/awf-${gtk}-${version}/ -cp awf-${gtk}.desktop builder/awf-${gtk}-${version}/ -cp ../Makefile.am builder/awf-${gtk}-${version}/ -cp ../configure.ac builder/awf-${gtk}-${version}/ -cp /usr/share/common-licenses/GPL-3 builder/awf-${gtk}-${version}/COPYING -sed -i 's/ -eq 2/ -eq -1/g' builder/awf-${gtk}-${version}/configure.ac -sed -i 's/ -eq 3/ -eq -1/g' builder/awf-${gtk}-${version}/configure.ac -for file in builder/awf-${gtk}-${version}/icons/*/*/*; do mv $file ${file/\/awf./\/awf-${gtk}.}; done -for file in builder/awf-${gtk}-${version}/src/po/*.po; do - lang=$(basename "$file" .po) - mkdir -p builder/awf-${gtk}-${version}/locale/${lang}/LC_MESSAGES - msgfmt builder/awf-${gtk}-${version}/src/po/${lang}.po -o builder/awf-${gtk}-${version}/locale/${lang}/LC_MESSAGES/awf-${gtk}.mo -done - -cd builder/ -tar czf awf-${gtk}-${version}.tar.gz awf-${gtk}-${version}/ -cd .. - -# create package -cd builder/awf-${gtk}-${version}/ -dh_make -s -y -f ../awf-${gtk}-${version}.tar.gz -rm -f debian/*ex debian/*EX debian/README* debian/*doc* -mkdir debian/upstream -cp ../../control debian/ -cp ../../changelog debian/ -cp ../../copyright debian/ -cp ../../install debian/ -cp ../../watch debian/ -cp ../../rules debian/ -cp ../../lintian debian/awf-${gtk}.lintian-overrides -cp ../../upstream debian/upstream/metadata -dpkg-buildpackage -us -uc -cd .. -debsign awf-${gtk}_${version}-*.changes -cd .. - -# cleanup -rm -rf builder/awf-${gtk}-${version}/ builder/awf-${gtk}-${version}.tar.gz \ No newline at end of file diff --git a/src/debian-gtk4/install b/src/debian-gtk4/install deleted file mode 100644 index d62eeff..0000000 --- a/src/debian-gtk4/install +++ /dev/null @@ -1,3 +0,0 @@ -awf-gtk4.desktop /usr/share/applications/ -icons/* /usr/share/icons/hicolor/ -locale/* /usr/share/locale/ \ No newline at end of file diff --git a/src/debian-gtk4/lintian b/src/debian-gtk4/lintian deleted file mode 100644 index 2999c5a..0000000 --- a/src/debian-gtk4/lintian +++ /dev/null @@ -1,2 +0,0 @@ -# this is the name of the program -awf-gtk4: description-synopsis-starts-with-article \ No newline at end of file diff --git a/src/debian-gtk4/rules b/src/debian-gtk4/rules deleted file mode 100644 index 63844c9..0000000 --- a/src/debian-gtk4/rules +++ /dev/null @@ -1,6 +0,0 @@ -#!/usr/bin/make -f - -export DEB_BUILD_MAINT_OPTIONS = hardening=+all - -%: - dh $@ --with autoreconf diff --git a/src/src/po/fr.po b/src/po/fr.po similarity index 51% rename from src/src/po/fr.po rename to src/po/fr.po index 72296e7..59df5c6 100644 --- a/src/src/po/fr.po +++ b/src/po/fr.po @@ -1,36 +1,39 @@ msgid "" msgstr "" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-06-27 11:59+0200\n" +"POT-Creation-Date: 2020-11-08 14:56+0100\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -#: gtk-awf/src/awf.c:265 gtk-awf/src/awf.c:2293 +#: gtk-awf/src/awf.c:272 gtk-awf/src/awf.c:2541 #, c-format msgid " started with gtk %d.%d.%d and glib %d.%d.%d" msgstr " démarré avec gtk %d.%d.%d et glib %d.%d.%d" -#: gtk-awf/src/awf.c:1914 gtk-awf/src/awf.c:1920 gtk-awf/src/awf.c:1927 -#: gtk-awf/src/awf.c:1934 +#: gtk-awf/src/awf.c:1949 gtk-awf/src/awf.c:1963 gtk-awf/src/awf.c:1978 +#: gtk-awf/src/awf.c:1995 gtk-awf/src/awf.c:2141 gtk-awf/src/awf.c:2147 +#: gtk-awf/src/awf.c:2154 gtk-awf/src/awf.c:2161 msgid "(checked)" msgstr "(coché)" -#: gtk-awf/src/awf.c:1915 gtk-awf/src/awf.c:1921 gtk-awf/src/awf.c:1928 -#: gtk-awf/src/awf.c:1935 +#: gtk-awf/src/awf.c:1952 gtk-awf/src/awf.c:1966 gtk-awf/src/awf.c:1982 +#: gtk-awf/src/awf.c:1999 gtk-awf/src/awf.c:2142 gtk-awf/src/awf.c:2148 +#: gtk-awf/src/awf.c:2155 gtk-awf/src/awf.c:2162 msgid "(inconsistent)" msgstr "(inconsistant)" -#: gtk-awf/src/awf.c:1913 gtk-awf/src/awf.c:1919 gtk-awf/src/awf.c:1925 -#: gtk-awf/src/awf.c:1932 +#: gtk-awf/src/awf.c:1946 gtk-awf/src/awf.c:1960 gtk-awf/src/awf.c:1974 +#: gtk-awf/src/awf.c:1991 gtk-awf/src/awf.c:2140 gtk-awf/src/awf.c:2146 +#: gtk-awf/src/awf.c:2152 gtk-awf/src/awf.c:2159 msgid "(unchecked)" msgstr "(décoché)" -#: gtk-awf/src/awf.c:261 gtk-awf/src/awf.c:635 +#: gtk-awf/src/awf.c:268 gtk-awf/src/awf.c:646 #, c-format msgid "A widget factory - GTK %d - %s" msgstr "La fabrique à widgets - GTK %d - %s" -#: gtk-awf/src/awf.c:1544 gtk-awf/src/awf.c:2242 gtk-awf/src/awf.c:2287 +#: gtk-awf/src/awf.c:1596 gtk-awf/src/awf.c:2478 gtk-awf/src/awf.c:2535 msgid "" "A widget factory is a theme preview application for GTK. It displays the " "various widget types provided by GTK in a single window allowing to see the " @@ -40,113 +43,160 @@ msgstr "" "affiche les différents types de widgets fournis par GTK dans une seule " "fenêtre permettant de voir l'effet visuel du thème appliqué." -#: gtk-awf/src/awf.c:1851 +#: gtk-awf/src/awf.c:1885 gtk-awf/src/awf.c:2082 msgid "Calendar" msgstr "Calendrier" -#: gtk-awf/src/awf.c:275 +#: gtk-awf/src/awf.c:282 msgid "Don't start spinners" msgstr "Ne pas démarrer les spinners" -#: gtk-awf/src/awf.c:274 +#: gtk-awf/src/awf.c:281 msgid "List available themes" msgstr "Lister les thèmes disponibles" -#: gtk-awf/src/awf.c:1533 gtk-awf/src/awf.c:1893 +#: gtk-awf/src/awf.c:1579 gtk-awf/src/awf.c:1924 gtk-awf/src/awf.c:2120 msgid "More..." msgstr "Plus..." -#: gtk-awf/src/awf.c:1769 gtk-awf/src/awf.c:1782 gtk-awf/src/awf.c:1820 -#: gtk-awf/src/awf.c:1832 +#: gtk-awf/src/awf.c:1851 gtk-awf/src/awf.c:1868 gtk-awf/src/awf.c:2051 +#: gtk-awf/src/awf.c:2064 msgid "No themes found" msgstr "Aucun thème trouvé" -#: gtk-awf/src/awf.c:2331 +#: gtk-awf/src/awf.c:2578 msgid "Ok" msgstr "Ok" -#: gtk-awf/src/awf.c:1845 +#: gtk-awf/src/awf.c:1881 gtk-awf/src/awf.c:2078 msgid "Open recent file" msgstr "Ouvrir un fichier récent" -#: gtk-awf/src/awf.c:272 +#: gtk-awf/src/awf.c:279 msgid "Options:" msgstr "Options :" -#: gtk-awf/src/awf.c:1863 +#: gtk-awf/src/awf.c:1894 gtk-awf/src/awf.c:2092 msgid "Refresh theme" msgstr "Actualiser le thème" -#: gtk-awf/src/awf.c:2288 +#: gtk-awf/src/awf.c:2536 #, c-format msgid "Remove %s file" msgstr "Supprimer le fichier %s" -#: gtk-awf/src/awf.c:277 +#: gtk-awf/src/awf.c:284 #, c-format msgid "Run and save a png screenshot on %s" msgstr "Démarrer et enregistrer une capture d'écran png lors du %s" -#: gtk-awf/src/awf.c:276 +#: gtk-awf/src/awf.c:283 msgid "Run with the specified theme" msgstr "Démarrer avec le thème spécifié" -#: gtk-awf/src/awf.c:273 +#: gtk-awf/src/awf.c:280 msgid "Show version number" msgstr "Afficher le numéro de version" -#: gtk-awf/src/awf.c:412 gtk-awf/src/awf.c:668 +#: gtk-awf/src/awf.c:420 gtk-awf/src/awf.c:685 #, c-format msgid "Theme %s loaded." msgstr "Thème %s chargé." -#: gtk-awf/src/awf.c:397 +#: gtk-awf/src/awf.c:405 #, c-format msgid "Theme %s reloaded at" msgstr "Thème %s rechargé à" -#: gtk-awf/src/awf.c:604 +#: gtk-awf/src/awf.c:615 #, c-format msgid "Theme reloaded, then screenshot saved (%s) at" msgstr "Thème rechargé, puis capture d'écran enregistrée (%s) à" -#: gtk-awf/src/awf.c:2333 +#: gtk-awf/src/awf.c:2580 msgid "This is a question bar." msgstr "Ceci est une barre de question." -#: gtk-awf/src/awf.c:2339 +#: gtk-awf/src/awf.c:2586 msgid "This is a warning bar." msgstr "Ceci est une barre d'avertissement." -#: gtk-awf/src/awf.c:2345 +#: gtk-awf/src/awf.c:2592 msgid "This is an error bar." msgstr "Ceci est une barre d'erreur." -#: gtk-awf/src/awf.c:2327 +#: gtk-awf/src/awf.c:2574 msgid "This is an info bar." msgstr "Ceci est une barre d'information." -#: gtk-awf/src/awf.c:268 +#: gtk-awf/src/awf.c:275 msgid "Usage:" msgstr "Utilisation :" -#: gtk-awf/src/awf.c:1785 gtk-awf/src/awf.c:1834 +#: gtk-awf/src/awf.c:1874 gtk-awf/src/awf.c:2067 msgid "_Options" msgstr "_Options" -#: gtk-awf/src/awf.c:1759 gtk-awf/src/awf.c:1810 +#: gtk-awf/src/awf.c:1840 gtk-awf/src/awf.c:2041 msgid "_System theme" msgstr "Thème _système" -#: gtk-awf/src/awf.c:1772 gtk-awf/src/awf.c:1822 +#: gtk-awf/src/awf.c:1857 gtk-awf/src/awf.c:2054 msgid "_User theme" msgstr "Thème _utilisateur" -#: gtk-awf/src/awf.c:262 gtk-awf/src/awf.c:2290 +#: gtk-awf/src/awf.c:269 gtk-awf/src/awf.c:2538 #, c-format msgid "compiled with gtk %d.%d.%d and glib %d.%d.%d" msgstr " compilé avec gtk %d.%d.%d et glib %d.%d.%d" -#: gtk-awf/src/awf.c:2289 -msgid "to reset keyboard shortcuts." +#: gtk-awf/src/awf.c:1918 +msgid "gtk-about" +msgstr "pour réinitialiser les raccourcis clavier." + +#: gtk-awf/src/awf.c:2008 +msgid "gtk-close" +msgstr "" + +#: gtk-awf/src/awf.c:1931 +msgid "gtk-copy" +msgstr "" + +#: gtk-awf/src/awf.c:1926 +#, fuzzy +msgid "gtk-cut" +msgstr "pour réinitialiser les raccourcis clavier." + +#: gtk-awf/src/awf.c:1876 +msgid "gtk-open" +msgstr "" + +#: gtk-awf/src/awf.c:1904 +msgid "gtk-page-setup" +msgstr "" + +#: gtk-awf/src/awf.c:1936 +#, fuzzy +msgid "gtk-paste" msgstr "pour réinitialiser les raccourcis clavier." + +#: gtk-awf/src/awf.c:1908 +msgid "gtk-print" +msgstr "" + +#: gtk-awf/src/awf.c:1899 +msgid "gtk-properties" +msgstr "" + +#: gtk-awf/src/awf.c:2013 +#, fuzzy +msgid "gtk-quit" +msgstr "pour réinitialiser les raccourcis clavier." + +#: gtk-awf/src/awf.c:1889 +msgid "gtk-save" +msgstr "" + +#: gtk-awf/src/awf.c:2537 +msgid "to reset keyboard shortcuts." +msgstr "" diff --git a/src/src/Makefile.am b/src/src/Makefile.am deleted file mode 100644 index a03b2d6..0000000 --- a/src/src/Makefile.am +++ /dev/null @@ -1,22 +0,0 @@ -bin_PROGRAMS = - -if GTK4 -bin_PROGRAMS += awf-gtk@GTK4_SUFFIX@ -awf_gtk@GTK4_SUFFIX@_SOURCES = awf.c -awf_gtk@GTK4_SUFFIX@_CPPFLAGS = $(GTK4_CFLAGS) -I/usr/include/gtk-4.0/unix-print -awf_gtk@GTK4_SUFFIX@_LDADD = $(GTK4_LIBS) -endif - -if GTK3 -bin_PROGRAMS += awf-gtk@GTK3_SUFFIX@ -awf_gtk@GTK3_SUFFIX@_SOURCES = awf.c -awf_gtk@GTK3_SUFFIX@_CPPFLAGS = $(GTK3_CFLAGS) -I/usr/include/gtk-3.0/unix-print -awf_gtk@GTK3_SUFFIX@_LDADD = $(GTK3_LIBS) -endif - -if GTK2 -bin_PROGRAMS += awf-gtk@GTK2_SUFFIX@ -awf_gtk@GTK2_SUFFIX@_SOURCES = awf.c -awf_gtk@GTK2_SUFFIX@_CPPFLAGS = $(GTK2_CFLAGS) -I/usr/include/gtk-unix-print-2.0 -awf_gtk@GTK2_SUFFIX@_LDADD = $(GTK2_LIBS) -endif \ No newline at end of file diff --git a/src/src/awf.pot b/src/src/awf.pot deleted file mode 100644 index ed4b2c7..0000000 --- a/src/src/awf.pot +++ /dev/null @@ -1,161 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-06-27 11:59+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=CHARSET\n" -"Content-Transfer-Encoding: 8bit\n" - -#: gtk-awf/src/awf.c:265 gtk-awf/src/awf.c:2293 -#, c-format -msgid " started with gtk %d.%d.%d and glib %d.%d.%d" -msgstr "" - -#: gtk-awf/src/awf.c:1914 gtk-awf/src/awf.c:1920 gtk-awf/src/awf.c:1927 -#: gtk-awf/src/awf.c:1934 -msgid "(checked)" -msgstr "" - -#: gtk-awf/src/awf.c:1915 gtk-awf/src/awf.c:1921 gtk-awf/src/awf.c:1928 -#: gtk-awf/src/awf.c:1935 -msgid "(inconsistent)" -msgstr "" - -#: gtk-awf/src/awf.c:1913 gtk-awf/src/awf.c:1919 gtk-awf/src/awf.c:1925 -#: gtk-awf/src/awf.c:1932 -msgid "(unchecked)" -msgstr "" - -#: gtk-awf/src/awf.c:261 gtk-awf/src/awf.c:635 -#, c-format -msgid "A widget factory - GTK %d - %s" -msgstr "" - -#: gtk-awf/src/awf.c:1544 gtk-awf/src/awf.c:2242 gtk-awf/src/awf.c:2287 -msgid "" -"A widget factory is a theme preview application for GTK. It displays the " -"various widget types provided by GTK in a single window allowing to see the " -"visual effect of the applied theme." -msgstr "" - -#: gtk-awf/src/awf.c:1851 -msgid "Calendar" -msgstr "" - -#: gtk-awf/src/awf.c:275 -msgid "Don't start spinners" -msgstr "" - -#: gtk-awf/src/awf.c:274 -msgid "List available themes" -msgstr "" - -#: gtk-awf/src/awf.c:1533 gtk-awf/src/awf.c:1893 -msgid "More..." -msgstr "" - -#: gtk-awf/src/awf.c:1769 gtk-awf/src/awf.c:1782 gtk-awf/src/awf.c:1820 -#: gtk-awf/src/awf.c:1832 -msgid "No themes found" -msgstr "" - -#: gtk-awf/src/awf.c:2331 -msgid "Ok" -msgstr "" - -#: gtk-awf/src/awf.c:1845 -msgid "Open recent file" -msgstr "" - -#: gtk-awf/src/awf.c:272 -msgid "Options:" -msgstr "" - -#: gtk-awf/src/awf.c:1863 -msgid "Refresh theme" -msgstr "" - -#: gtk-awf/src/awf.c:2288 -#, c-format -msgid "Remove %s file" -msgstr "" - -#: gtk-awf/src/awf.c:277 -#, c-format -msgid "Run and save a png screenshot on %s" -msgstr "" - -#: gtk-awf/src/awf.c:276 -msgid "Run with the specified theme" -msgstr "" - -#: gtk-awf/src/awf.c:273 -msgid "Show version number" -msgstr "" - -#: gtk-awf/src/awf.c:412 gtk-awf/src/awf.c:668 -#, c-format -msgid "Theme %s loaded." -msgstr "" - -#: gtk-awf/src/awf.c:397 -#, c-format -msgid "Theme %s reloaded at" -msgstr "" - -#: gtk-awf/src/awf.c:604 -#, c-format -msgid "Theme reloaded, then screenshot saved (%s) at" -msgstr "" - -#: gtk-awf/src/awf.c:2333 -msgid "This is a question bar." -msgstr "" - -#: gtk-awf/src/awf.c:2339 -msgid "This is a warning bar." -msgstr "" - -#: gtk-awf/src/awf.c:2345 -msgid "This is an error bar." -msgstr "" - -#: gtk-awf/src/awf.c:2327 -msgid "This is an info bar." -msgstr "" - -#: gtk-awf/src/awf.c:268 -msgid "Usage:" -msgstr "" - -#: gtk-awf/src/awf.c:1785 gtk-awf/src/awf.c:1834 -msgid "_Options" -msgstr "" - -#: gtk-awf/src/awf.c:1759 gtk-awf/src/awf.c:1810 -msgid "_System theme" -msgstr "" - -#: gtk-awf/src/awf.c:1772 gtk-awf/src/awf.c:1822 -msgid "_User theme" -msgstr "" - -#: gtk-awf/src/awf.c:262 gtk-awf/src/awf.c:2290 -#, c-format -msgid "compiled with gtk %d.%d.%d and glib %d.%d.%d" -msgstr "" - -#: gtk-awf/src/awf.c:2289 -msgid "to reset keyboard shortcuts." -msgstr ""