Compare commits
1 Commits
meson_warn
...
icon-brows
Author | SHA1 | Date | |
---|---|---|---|
|
cc58b0e204 |
@@ -1,65 +0,0 @@
|
||||
image: registry.gitlab.gnome.org/gnome/gtk/gtk-3-24:v3
|
||||
|
||||
stages:
|
||||
- build
|
||||
|
||||
cache:
|
||||
paths:
|
||||
- _ccache/
|
||||
|
||||
fedora-autotools:
|
||||
stage: build
|
||||
script:
|
||||
- bash -x ./.gitlab-ci/test-docker-autotools.sh
|
||||
|
||||
fedora-distcheck:
|
||||
variables:
|
||||
DO_DISTCHECK: "yes"
|
||||
when: manual
|
||||
stage: build
|
||||
script:
|
||||
- bash -x ./.gitlab-ci/test-docker-autotools.sh
|
||||
|
||||
fedora-meson: &fedora-meson-defaults
|
||||
stage: build
|
||||
script:
|
||||
- bash -x ./.gitlab-ci/test-docker-meson.sh
|
||||
artifacts:
|
||||
when: always
|
||||
name: "gtk3-${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}"
|
||||
paths:
|
||||
- "_build/meson-logs"
|
||||
- "_build/testsuite/reftests/output"
|
||||
|
||||
fedora-meson-staticlibs:
|
||||
variables:
|
||||
EXTRA_MESON_FLAGS: "-Ddefault_library=both"
|
||||
<<: *fedora-meson-defaults
|
||||
|
||||
msys2-mingw32-meson:
|
||||
variables:
|
||||
MSYSTEM: "MINGW32"
|
||||
CHERE_INVOKING: "yes"
|
||||
stage: build
|
||||
tags:
|
||||
- win32
|
||||
script:
|
||||
- C:\msys64\usr\bin\pacman --noconfirm -Syyuu
|
||||
- C:\msys64\usr\bin\bash -lc "bash -x ./.gitlab-ci/test-msys2-meson.sh"
|
||||
artifacts:
|
||||
when: always
|
||||
name: "gtk3-%CI_JOB_NAME%-%CI_COMMIT_REF_NAME%"
|
||||
paths:
|
||||
- "_build/meson-logs"
|
||||
|
||||
msys2-mingw32-autotools:
|
||||
when: manual
|
||||
variables:
|
||||
MSYSTEM: "MINGW32"
|
||||
CHERE_INVOKING: "yes"
|
||||
stage: build
|
||||
tags:
|
||||
- win32
|
||||
script:
|
||||
- C:\msys64\usr\bin\pacman --noconfirm -Syyuu
|
||||
- C:\msys64\usr\bin\bash -lc "bash -x ./.gitlab-ci/test-msys2-autotools.sh"
|
@@ -1,71 +0,0 @@
|
||||
FROM fedora:31
|
||||
|
||||
RUN dnf -y install \
|
||||
adwaita-icon-theme \
|
||||
atk-devel \
|
||||
at-spi2-atk-devel \
|
||||
avahi-gobject-devel \
|
||||
cairo-devel \
|
||||
cairo-gobject-devel \
|
||||
ccache \
|
||||
colord-devel \
|
||||
cups-devel \
|
||||
dbus-x11 \
|
||||
fribidi-devel \
|
||||
gcc \
|
||||
gcc-c++ \
|
||||
gdk-pixbuf2-devel \
|
||||
gdk-pixbuf2-modules \
|
||||
gettext \
|
||||
gettext-devel \
|
||||
git \
|
||||
glib2-devel \
|
||||
gobject-introspection-devel \
|
||||
graphene-devel \
|
||||
gtk-doc \
|
||||
hicolor-icon-theme \
|
||||
iso-codes \
|
||||
itstool \
|
||||
json-glib-devel \
|
||||
libcloudproviders-devel \
|
||||
libepoxy-devel \
|
||||
libmount-devel \
|
||||
librsvg2 \
|
||||
libXcomposite-devel \
|
||||
libXcursor-devel \
|
||||
libXcursor-devel \
|
||||
libXdamage-devel \
|
||||
libXfixes-devel \
|
||||
libXi-devel \
|
||||
libXinerama-devel \
|
||||
libxkbcommon-devel \
|
||||
libXrandr-devel \
|
||||
libXrender-devel \
|
||||
libXtst-devel \
|
||||
make \
|
||||
mesa-libEGL-devel \
|
||||
mesa-libwayland-egl-devel \
|
||||
meson \
|
||||
ninja-build \
|
||||
pango-devel \
|
||||
python3 \
|
||||
python3-pip \
|
||||
python3-wheel \
|
||||
redhat-rpm-config \
|
||||
rest-devel \
|
||||
sassc \
|
||||
vulkan-devel \
|
||||
wayland-devel \
|
||||
wayland-protocols-devel \
|
||||
xorg-x11-server-Xvfb \
|
||||
&& dnf clean all
|
||||
|
||||
ARG HOST_USER_ID=5555
|
||||
ENV HOST_USER_ID ${HOST_USER_ID}
|
||||
RUN useradd -u $HOST_USER_ID -ms /bin/bash user
|
||||
|
||||
USER user
|
||||
WORKDIR /home/user
|
||||
|
||||
ENV LANG C.utf8
|
||||
ENV PATH="/usr/lib64/ccache:${PATH}"
|
@@ -1,19 +0,0 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# This script builds an image from the Dockerfile, starts a container with
|
||||
# the parent directory mounted as working directory and start a bash session
|
||||
# there so you can test things.
|
||||
# Once you are happy you can push it to the docker hub:
|
||||
# sudo docker push "${TAG}"
|
||||
|
||||
set -e
|
||||
|
||||
TAG="registry.gitlab.gnome.org/gnome/gtk/gtk-3-24:v2"
|
||||
|
||||
# HOST_USER_ID gets used to create a user with the same ID so that files
|
||||
# created in the mounted volume have the same owner
|
||||
sudo docker build \
|
||||
--build-arg HOST_USER_ID="$UID" --tag "${TAG}" --file "Dockerfile" .
|
||||
sudo docker run --security-opt label=disable \
|
||||
--rm --volume "$(pwd)/..:/home/user/app" --workdir "/home/user/app" \
|
||||
--tty --interactive "${TAG}" bash
|
@@ -1,23 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
mkdir -p _ccache
|
||||
export CCACHE_BASEDIR="$(pwd)"
|
||||
export CCACHE_DIR="${CCACHE_BASEDIR}/_ccache"
|
||||
|
||||
mkdir _build
|
||||
cd _build
|
||||
../autogen.sh \
|
||||
--enable-cloudproviders \
|
||||
--enable-broadway-backend \
|
||||
--enable-wayland-backend \
|
||||
--enable-x11-backend \
|
||||
--enable-xinerama \
|
||||
--enable-gtk-doc
|
||||
make -j8
|
||||
|
||||
if [ -n "${DO_DISTCHECK-}" ]; then
|
||||
make -j8 check SKIP_GDKTARGET="echo Not actually running tests for now"
|
||||
make -j8 distcheck SKIP_GDKTARGET="echo Not actually running tests for now"
|
||||
fi
|
@@ -1,32 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
mkdir -p _ccache
|
||||
export CCACHE_BASEDIR="$(pwd)"
|
||||
export CCACHE_DIR="${CCACHE_BASEDIR}/_ccache"
|
||||
|
||||
export PATH="${HOME}/.local/bin:${PATH}"
|
||||
python3 -m pip install --user meson==0.49.2
|
||||
|
||||
meson \
|
||||
-Dgtk_doc=true \
|
||||
-Dman=true \
|
||||
-Dinstalled_tests=true \
|
||||
-Dbroadway_backend=true \
|
||||
-Dxinerama=yes \
|
||||
-Dprint_backends="file,lpr,test,cloudprint,cups" \
|
||||
${EXTRA_MESON_FLAGS:-} \
|
||||
_build
|
||||
|
||||
cd _build
|
||||
ninja
|
||||
|
||||
xvfb-run -a -s "-screen 0 1024x768x24" \
|
||||
meson test \
|
||||
--timeout-multiplier 4 \
|
||||
--print-errorlogs \
|
||||
--suite=gtk+-3.0 \
|
||||
--no-suite=gtk+-3.0:a11y
|
||||
|
||||
ninja gail-libgail-util3-doc gdk3-doc gtk3-doc
|
@@ -1,44 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
if [[ "$MSYSTEM" == "MINGW32" ]]; then
|
||||
export MSYS2_ARCH="i686"
|
||||
else
|
||||
export MSYS2_ARCH="x86_64"
|
||||
fi
|
||||
|
||||
# Update everything
|
||||
pacman --noconfirm -Suy
|
||||
|
||||
# Install the required packages
|
||||
pacman --noconfirm -S --needed \
|
||||
base-devel \
|
||||
mingw-w64-$MSYS2_ARCH-toolchain \
|
||||
mingw-w64-$MSYS2_ARCH-ccache \
|
||||
mingw-w64-$MSYS2_ARCH-pkg-config \
|
||||
mingw-w64-$MSYS2_ARCH-gobject-introspection \
|
||||
mingw-w64-$MSYS2_ARCH-adwaita-icon-theme \
|
||||
mingw-w64-$MSYS2_ARCH-atk \
|
||||
mingw-w64-$MSYS2_ARCH-cairo \
|
||||
mingw-w64-$MSYS2_ARCH-gdk-pixbuf2 \
|
||||
mingw-w64-$MSYS2_ARCH-glib2 \
|
||||
mingw-w64-$MSYS2_ARCH-json-glib \
|
||||
mingw-w64-$MSYS2_ARCH-libepoxy \
|
||||
mingw-w64-$MSYS2_ARCH-pango \
|
||||
mingw-w64-$MSYS2_ARCH-shared-mime-info \
|
||||
mingw-w64-$MSYS2_ARCH-gtk-doc
|
||||
|
||||
mkdir -p _ccache
|
||||
export CCACHE_BASEDIR="$(pwd)"
|
||||
export CCACHE_DIR="${CCACHE_BASEDIR}/_ccache"
|
||||
export CC="ccache gcc"
|
||||
|
||||
# Build
|
||||
ccache --zero-stats
|
||||
ccache --show-stats
|
||||
|
||||
./autogen.sh
|
||||
make -j4
|
||||
|
||||
ccache --show-stats
|
@@ -1,48 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
if [[ "$MSYSTEM" == "MINGW32" ]]; then
|
||||
export MSYS2_ARCH="i686"
|
||||
else
|
||||
export MSYS2_ARCH="x86_64"
|
||||
fi
|
||||
|
||||
# Update everything
|
||||
pacman --noconfirm -Suy
|
||||
|
||||
# Install the required packages
|
||||
pacman --noconfirm -S --needed \
|
||||
mingw-w64-$MSYS2_ARCH-toolchain \
|
||||
mingw-w64-$MSYS2_ARCH-ccache \
|
||||
mingw-w64-$MSYS2_ARCH-pkg-config \
|
||||
mingw-w64-$MSYS2_ARCH-gobject-introspection \
|
||||
mingw-w64-$MSYS2_ARCH-adwaita-icon-theme \
|
||||
mingw-w64-$MSYS2_ARCH-atk \
|
||||
mingw-w64-$MSYS2_ARCH-cairo \
|
||||
mingw-w64-$MSYS2_ARCH-gdk-pixbuf2 \
|
||||
mingw-w64-$MSYS2_ARCH-glib2 \
|
||||
mingw-w64-$MSYS2_ARCH-json-glib \
|
||||
mingw-w64-$MSYS2_ARCH-libepoxy \
|
||||
mingw-w64-$MSYS2_ARCH-pango \
|
||||
mingw-w64-$MSYS2_ARCH-shared-mime-info \
|
||||
mingw-w64-$MSYS2_ARCH-meson \
|
||||
mingw-w64-$MSYS2_ARCH-ninja \
|
||||
mingw-w64-$MSYS2_ARCH-gtk-doc
|
||||
|
||||
mkdir -p _ccache
|
||||
export CCACHE_BASEDIR="$(pwd)"
|
||||
export CCACHE_DIR="${CCACHE_BASEDIR}/_ccache"
|
||||
|
||||
# Build
|
||||
ccache --zero-stats
|
||||
ccache --show-stats
|
||||
|
||||
meson \
|
||||
-Dman=true \
|
||||
-Dbroadway_backend=true \
|
||||
_build
|
||||
|
||||
ninja -C _build
|
||||
|
||||
ccache --show-stats
|
18
Makefile.am
18
Makefile.am
@@ -22,13 +22,7 @@ EXTRA_DIST += \
|
||||
sanitize-la.sh \
|
||||
po/README.translators \
|
||||
po/po2tbl.sed.in \
|
||||
make-pot \
|
||||
meson_options.txt \
|
||||
meson.build \
|
||||
po/meson.build \
|
||||
po-properties/meson.build \
|
||||
build-aux/meson/post-install.py \
|
||||
config.h.meson
|
||||
make-pot
|
||||
|
||||
MAINTAINERCLEANFILES = \
|
||||
$(GITIGNORE_MAINTAINERCLEANFILES_TOPLEVEL) \
|
||||
@@ -42,11 +36,11 @@ MAINTAINERCLEANFILES = \
|
||||
|
||||
|
||||
## Copy .pc files to target-specific names
|
||||
gtk+-x11-3.0.pc gtk+-win32-3.0.pc gtk+-quartz-3.0.pc gtk+-broadway-3.0.pc gtk+-wayland-3.0.pc: gtk+-3.0.pc
|
||||
gtk+-x11-3.0.pc gtk+-win32-3.0.pc gtk+-quartz-3.0.pc gtk+-broadway-3.0.pc gtk+-wayland-3.0.pc gtk+-mir-3.0.pc: gtk+-3.0.pc
|
||||
rm -f $@ && \
|
||||
cp gtk+-3.0.pc $@
|
||||
|
||||
gdk-x11-3.0.pc gdk-win32-3.0.pc gdk-quartz-3.0.pc gdk-broadway-3.0.pc gdk-wayland-3.0.pc: gdk-3.0.pc
|
||||
gdk-x11-3.0.pc gdk-win32-3.0.pc gdk-quartz-3.0.pc gdk-broadway-3.0.pc gdk-wayland-3.0.pc gdk-mir-3.0.pc: gdk-3.0.pc
|
||||
rm -f $@ && \
|
||||
cp gdk-3.0.pc $@
|
||||
|
||||
@@ -67,19 +61,17 @@ DISTCLEANFILES = \
|
||||
gtk+-quartz-3.0.pc \
|
||||
gtk+-broadway-3.0.pc \
|
||||
gtk+-wayland-3.0.pc \
|
||||
gtk+-mir-3.0.pc \
|
||||
gdk-3.0.pc \
|
||||
gdk-x11-3.0.pc \
|
||||
gdk-win32-3.0.pc \
|
||||
gdk-quartz-3.0.pc \
|
||||
gdk-broadway-3.0.pc \
|
||||
gdk-wayland-3.0.pc \
|
||||
gdk-mir-3.0.pc \
|
||||
gail-3.0.pc \
|
||||
config.lt
|
||||
|
||||
dist-hook:
|
||||
mkdir $(distdir)/subprojects
|
||||
cp -p $(srcdir)/subprojects/*.wrap $(distdir)/subprojects
|
||||
|
||||
distclean-local:
|
||||
if test "$(srcdir)" = "."; then :; else \
|
||||
rm -f ChangeLog; \
|
||||
|
97
README.win32
97
README.win32
@@ -156,14 +156,11 @@ Use the Microsoft compiler, cl and Make, nmake. Say nmake -f
|
||||
makefile.msc in gdk and gtk. Be prepared to manually edit various
|
||||
makefile.msc files, and the makefile snippets in build/win32.
|
||||
|
||||
There are also VS 2008~2017 solution and project files to build GTK+, which
|
||||
There are also VS 2008/2010 solution and project files to build GTK+, which
|
||||
are maintained by Chun-wei Fan. They should build GTK+ out of the box,
|
||||
provided that the afore-mentioned dependencies are installed. They will
|
||||
build GDK with the Win32 backend, GTK+ itself (with GAIL/a11y built in),
|
||||
the GAIL-Util library and the gtk-demo program. Please also refer to the
|
||||
README file(s) that reside in build/win32 on how to enable additional features
|
||||
that are not enabled by default, such as EGL support via libANGLE, which
|
||||
emulate the GL/EGL calls using Direct3D 9/11.
|
||||
the GAIL-Util library and the gtk-demo program.
|
||||
|
||||
Please refer to the following GNOME Live! page for a more detailed ouline
|
||||
on the process of building the GTK+ stack and its dependencies with Visual
|
||||
@@ -181,96 +178,6 @@ instance the makefile.msc files might not produce identically named
|
||||
DLLs and import libraries as the "autoconfiscated" makefiles and
|
||||
libtool do. If this bothers you, you will have to fix the makefiles.
|
||||
|
||||
3) Using Meson (for Visual Studio and MinGW builds)
|
||||
---
|
||||
|
||||
Meson can now be used to build GTK+-3.x with either MinGW or Visual Studio.
|
||||
You will need the following items in addition to all the dependencies
|
||||
listed above:
|
||||
|
||||
- Python 3.5 or later
|
||||
- Meson build system, 0.48.0 or later
|
||||
- Ninja (if not using the Visual Studio project generator for
|
||||
Visual Studio 2010, 2015, 2017, 2019)
|
||||
- CMake (optional, used for dependency searching)
|
||||
- pkg-config (optional, or some compatible tool, highly recommended)
|
||||
|
||||
For all Windows builds, note that unless -Dbuiltin_immodules=no is specified,
|
||||
the input modules (immodules) are built directly into the GTK DLL.
|
||||
|
||||
For building with Meson using Visual Studio, do the following:
|
||||
|
||||
Create an empty build directory somewhere that is on the same drive
|
||||
as the source tree, and launch the Visual Studio command prompt that
|
||||
matches the build configuration (Visual Studio version and architecture),
|
||||
and run the following:
|
||||
|
||||
- Ensure that both the installation directory of Python and its script
|
||||
directory is in your PATH, as well as the Ninja, CMake and pkg-config
|
||||
executables (if used). If a pkg-config compatible drop-in replacement
|
||||
tool is being used, ensure that PKG_CONFIG is set to point to the
|
||||
executable of that tool as well.
|
||||
|
||||
- For non-GNOME dependencies (such as Cairo and Harfbuzz), where pkg-config
|
||||
files or CMake files could not be properly located, set INCLUDE and LIB
|
||||
to ensure that their header files and .lib files can be found respectively.
|
||||
The DLLs of those dependencies should also be in the PATH during the build
|
||||
as well, especially if introspection files are to be built.
|
||||
|
||||
- For GNOME dependencies, the pkg-config files for those dependencies should
|
||||
be searchable by pkg-config (or a compatible tool). Verify this by running
|
||||
$(PKG_CONFIG) --modversion <dependency>.
|
||||
|
||||
- Run the following:
|
||||
meson <path_to_directory_of_this_file> --buildtype=... --prefix=...,
|
||||
where buildtype can be release, debugoptimized, debug or plain. Please
|
||||
refer to the Meson documentation for more details. You may also wish to
|
||||
pass in -Dbroadway_backend=true if building the Broadway GDK backend is
|
||||
desired, and/or pass in -Dbuiltin_immodules=no to build the immodules as
|
||||
standalone DLLs that can be loaded by GTK dynamically. For Visual Studio
|
||||
2010, 2015, 2017 and 2019 builds, you may pass in --backend=vs to generate
|
||||
Visual Studio project files to be used to carry out the builds.
|
||||
|
||||
If you are building with Visual Studio 2008, note the following items as well:
|
||||
|
||||
- For x64 builds, the compiler may hang when building the certain files, due
|
||||
to optimization issues in the compiler. If this happens, use the Windows
|
||||
Task Manager and terminate all cl.exe processes, and the build will fail
|
||||
with the source files that did not finish compiling due to the hang.
|
||||
Look for them in build.ninja in the build directory, and change their compiler
|
||||
flag "/O2" to "/O1", and the compilation and linking should proceed normally.
|
||||
At this time of writing, the following files are known to cause this hang:
|
||||
|
||||
gtk\gtkfilechoosernativewin32.c
|
||||
gtk\gtkfilesystemmodel.c
|
||||
gtk\gtktextsegment.c
|
||||
gtk\gtktextbtree.c
|
||||
gtk\gtkrbtree.c
|
||||
testsuite\gtk\treemodel.c
|
||||
testsuite\gtk\textbuffer.c
|
||||
testsuite\gtk\rbtree.c
|
||||
testsuite\gtk\icontheme.c
|
||||
|
||||
- Upon running install (via "ninja install"), it is likely that
|
||||
gtk-query-immodules-3.0.exe will fail to run as it cannot find msvcr90.dll or
|
||||
msvcr90D.dll. You can ignore this if you did not specify -Dbuiltin_immodules=no
|
||||
when configuring via Meson. If -Dbuiltin_immodules=no is specified, you need to
|
||||
run the following after embedding the manifests as outlined in the next point:
|
||||
|
||||
<gtk_install_prefix>\bin\gtk-query-immodules-3.0.exe > <gtk_install_prefix>\lib\gtk-3.0\3.0.0\immodules.cache
|
||||
|
||||
- You will need to run the following upon completing install, from the build
|
||||
directory in the Visual Studio 2008/SDK 6.0 command prompt (third line is not
|
||||
needed unless -Dbuiltin_immodules=no is specified) so that the built binaries
|
||||
can run:
|
||||
|
||||
for /r %f in (*.dll.manifest) do if exist <gtk_install_prefix>\bin\%~nf mt /manifest %f /outputresource:<gtk_install_prefix>\bin\%~nf;2
|
||||
for /r %f in (*.exe.manifest) do if exist <gtk_install_prefix>\bin\%~nf mt /manifest %f /outputresource:<gtk_install_prefix>\bin\%~nf;1
|
||||
for /r %f in (*.dll.manifest) do if exist <gtk_install_prefix>\lib\gtk-3.0\3.0.0\immodules\%~nf mt /manifest %f /outputresource:<gtk_install_prefix>\lib\gtk-3.0\3.0.0\immodules\%~nf;2
|
||||
|
||||
- The more modern visual style for the print dialog is not applied for Visual
|
||||
Studio 2008 builds. Any solutions to this is really appreciated.
|
||||
|
||||
Using GTK+ on Win32
|
||||
===================
|
||||
|
||||
|
@@ -1,45 +0,0 @@
|
||||
{
|
||||
"app-id": "org.gtk.WidgetFactory",
|
||||
"runtime": "org.gnome.Platform",
|
||||
"runtime-version": "master",
|
||||
"sdk": "org.gnome.Sdk",
|
||||
"command": "gtk3-widget-factory",
|
||||
"tags": ["devel", "development", "nightly"],
|
||||
"rename-desktop-file": "gtk3-widget-factory.desktop",
|
||||
"rename-icon": "gtk3-widget-factory",
|
||||
"finish-args": [
|
||||
"--device=dri",
|
||||
"--share=ipc",
|
||||
"--socket=x11",
|
||||
"--socket=wayland",
|
||||
"--talk-name=org.gtk.vfs", "--talk-name=org.gtk.vfs.*",
|
||||
"--talk-name=ca.desrt.conf", "--env=DCONF_USER_CONFIG_DIR=.config/dconf"
|
||||
],
|
||||
"cleanup": [
|
||||
"/include",
|
||||
"/lib/pkgconfig", "/share/pkgconfig",
|
||||
"/share/aclocal",
|
||||
"/man", "/share/man", "/share/gtk-doc",
|
||||
"*.la", ".a",
|
||||
"/lib/girepository-1.0",
|
||||
"/share/gir-1.0",
|
||||
"/share/doc"
|
||||
],
|
||||
"modules": [
|
||||
{
|
||||
"name": "gtk",
|
||||
"buildsystem": "autotools",
|
||||
"builddir": true,
|
||||
"config-opts": [
|
||||
"--libdir=/app/lib"
|
||||
],
|
||||
"sources": [
|
||||
{
|
||||
"type": "git",
|
||||
"branch": "gtk-3-24",
|
||||
"url": "https://gitlab.gnome.org/GNOME/gtk.git"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
@@ -1,46 +0,0 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import os
|
||||
import shutil
|
||||
import sys
|
||||
import subprocess
|
||||
|
||||
if 'DESTDIR' not in os.environ:
|
||||
gtk_api_version = sys.argv[1]
|
||||
gtk_abi_version = sys.argv[2]
|
||||
gtk_bindir = sys.argv[3]
|
||||
gtk_libdir = sys.argv[4]
|
||||
gtk_datadir = sys.argv[5]
|
||||
gtk_query_immodules = os.path.join(gtk_bindir, 'gtk-query-immodules-' + gtk_api_version)
|
||||
gtk_update_icon_cache = os.path.join(gtk_bindir, 'gtk-update-icon-cache')
|
||||
|
||||
gtk_moduledir = os.path.join(gtk_libdir, 'gtk-' + gtk_api_version, gtk_abi_version)
|
||||
gtk_immodule_dir = os.path.join(gtk_moduledir, 'immodules')
|
||||
gtk_printmodule_dir = os.path.join(gtk_moduledir, 'printbackends')
|
||||
|
||||
if os.name == 'nt':
|
||||
for lib in ['gdk', 'gtk', 'gailutil']:
|
||||
# Make copy for MSVC-built .lib files, e.g. xxx-3.lib->xxx-3.0.lib
|
||||
installed_lib = os.path.join(gtk_libdir, lib + '-' + gtk_api_version.split('.')[0] + '.lib')
|
||||
installed_lib_dst = os.path.join(gtk_libdir, lib + '-' + gtk_api_version + '.lib')
|
||||
if os.path.isfile(installed_lib):
|
||||
shutil.copyfile(installed_lib, installed_lib_dst)
|
||||
|
||||
print('Compiling GSettings schemas...')
|
||||
subprocess.call(['glib-compile-schemas',
|
||||
os.path.join(gtk_datadir, 'glib-2.0', 'schemas')])
|
||||
|
||||
print('Updating icon cache...')
|
||||
subprocess.call([gtk_update_icon_cache, '-q', '-t' ,'-f',
|
||||
os.path.join(gtk_datadir, 'icons', 'hicolor')])
|
||||
|
||||
print('Updating module cache for input methods...')
|
||||
os.makedirs(gtk_immodule_dir, exist_ok=True)
|
||||
immodule_cache_file = open(os.path.join(gtk_moduledir, 'immodules.cache'), 'w')
|
||||
subprocess.call([gtk_query_immodules], stdout=immodule_cache_file)
|
||||
immodule_cache_file.close()
|
||||
|
||||
# Untested!
|
||||
print('Updating module cache for print backends...')
|
||||
os.makedirs(gtk_printmodule_dir, exist_ok=True)
|
||||
subprocess.call(['gio-querymodules', gtk_printmodule_dir])
|
@@ -21,17 +21,17 @@ if MSVC_NO_TOOLSET_SET
|
||||
MSVC_TOOLSET = $(MSVC_VER)0
|
||||
endif
|
||||
|
||||
%.sln: $(top_builddir)/build/win32/vs10/Makefile
|
||||
%.sln:
|
||||
sed 's/11\.00/$(MSVC_FORMAT_VER)\.00/g' < $(top_srcdir)/build/win32/vs10/$@ > $(top_builddir)/build/win32/vs$(MSVC_VER)/$@.tmp
|
||||
sed 's/2010/$(MSVC_VER_LONG)/g' < $(top_builddir)/build/win32/vs$(MSVC_VER)/$@.tmp > $(top_builddir)/build/win32/vs$(MSVC_VER)/$@
|
||||
rm $(top_builddir)/build/win32/vs$(MSVC_VER)/$@.tmp
|
||||
|
||||
%.txt: $(top_builddir)/build/win32/vs10/Makefile
|
||||
%.txt:
|
||||
sed 's/vs10/vs$(MSVC_VER)/g' < $(top_srcdir)/build/win32/vs10/$@ > $(top_builddir)/build/win32/vs$(MSVC_VER)/$@.tmp
|
||||
sed 's/VS10/VS$(MSVC_VER)/g' < $(top_builddir)/build/win32/vs$(MSVC_VER)/$@.tmp > $(top_builddir)/build/win32/vs$(MSVC_VER)/$@
|
||||
rm $(top_builddir)/build/win32/vs$(MSVC_VER)/$@.tmp
|
||||
|
||||
%.vcxproj: $(top_builddir)/build/win32/vs10/Makefile
|
||||
%.vcxproj:
|
||||
if test -e $(top_srcdir)/build/win32/vs10/$@; then \
|
||||
sed 's/v100/v$(MSVC_TOOLSET)/g' < $(top_srcdir)/build/win32/vs10/$@ > $(top_builddir)/build/win32/vs$(MSVC_VER)/$@; \
|
||||
else \
|
||||
@@ -45,7 +45,7 @@ endif
|
||||
sed 's/<VSVer>10<\/VSVer>/<VSVer>$(MSVC_VER)<\/VSVer>/g' < $(top_builddir)/build/win32/vs10/$@ > $(top_builddir)/build/win32/vs$(MSVC_VER)/$@; \
|
||||
fi
|
||||
|
||||
%.vcxproj.filters: $(top_builddir)/build/win32/vs10/Makefile
|
||||
%.vcxproj.filters:
|
||||
if test -e $(top_srcdir)/build/win32/vs10/$@; then \
|
||||
cp $(top_srcdir)/build/win32/vs10/$@ $(top_builddir)/build/win32/vs$(MSVC_VER)/$@; \
|
||||
else \
|
||||
|
@@ -79,8 +79,7 @@ $(if $(or $(findstring --header-only,$($(_gir_name)_MSVC_SCANNERFLAGS)),
|
||||
$($(_gir_name)_MSVC_PROGRAM)),,
|
||||
$(error Need to define $(_gir_name)_MSVC_LIBS or $(_gir_name)_MSVC_PROGRAM))
|
||||
|
||||
$(top_builddir)/build/win32/$(_gir_name)_list: Makefile
|
||||
rm -f $(top_builddir)/build/win32/$(_gir_name)_list
|
||||
$(top_builddir)/build/win32/$(_gir_name)_list:
|
||||
for F in $(_gir_files_msvc); do \
|
||||
case $$$$F in \
|
||||
*.c|*.cpp|*.cc|*.cxx|*.h|*.hpp|*.hh|*.hxx) \
|
||||
@@ -89,11 +88,11 @@ $(top_builddir)/build/win32/$(_gir_name)_list: Makefile
|
||||
esac; \
|
||||
done
|
||||
|
||||
$(top_builddir)/build/win32/$(1).msvc.introspect: Makefile
|
||||
$(top_builddir)/build/win32/$(1).msvc.introspect:
|
||||
-$(RM) $(top_builddir)/build/win32/$(1).msvc.introspect
|
||||
|
||||
# Assemble the Command to Run g-ir-scanner
|
||||
echo 'vs$$$$(VSVER)\$$$$(CFG)\$$$$(PLAT)\bin\'$(1)': '$(_gir_name)'_list '$($(_gir_name)_MSVC_GIR_DEPS)>>$(top_builddir)/build/win32/$(1).msvc.introspect
|
||||
echo $(1)': '$(_gir_name)'_list '$($(_gir_name)_MSVC_GIR_DEPS)>>$(top_builddir)/build/win32/$(1).msvc.introspect
|
||||
echo ' @-echo Generating $$$$@...'>>$(top_builddir)/build/win32/$(1).msvc.introspect
|
||||
echo ' $$$$(PYTHON) $$$$(G_IR_SCANNER) \'>>$(top_builddir)/build/win32/$(1).msvc.introspect
|
||||
echo ' --verbose -no-libtool \'>>$(top_builddir)/build/win32/$(1).msvc.introspect
|
||||
@@ -102,7 +101,6 @@ $(top_builddir)/build/win32/$(1).msvc.introspect: Makefile
|
||||
echo ' '$(_gir_packages_msvc)' \'>>$(top_builddir)/build/win32/$(1).msvc.introspect
|
||||
echo ' '$(_gir_libraries_msvc)' \'>>$(top_builddir)/build/win32/$(1).msvc.introspect
|
||||
echo ' '$(_gir_program_msvc)' \'>>$(top_builddir)/build/win32/$(1).msvc.introspect
|
||||
echo ' --add-include-path=./vs$$$$(VSVER)/$$$$(CFG)/$$$$(PLAT)/bin \'>>$(top_builddir)/build/win32/$(1).msvc.introspect
|
||||
echo ' --add-include-path=$$$$(G_IR_INCLUDEDIR) \'>>$(top_builddir)/build/win32/$(1).msvc.introspect
|
||||
echo ' '$(_gir_includes_msvc)' \'>>$(top_builddir)/build/win32/$(1).msvc.introspect
|
||||
echo ' '$(_gir_export_packages_msvc)' \'>>$(top_builddir)/build/win32/$(1).msvc.introspect
|
||||
@@ -111,16 +109,15 @@ $(top_builddir)/build/win32/$(1).msvc.introspect: Makefile
|
||||
echo ' --cflags-end \'>>$(top_builddir)/build/win32/$(1).msvc.introspect
|
||||
echo ' '$($(_gir_name)_MSVC_SCANNERFLAGS)' \'>>$(top_builddir)/build/win32/$(1).msvc.introspect
|
||||
echo ' --filelist='$(_gir_name)'_list \'>>$(top_builddir)/build/win32/$(1).msvc.introspect
|
||||
echo ' -L.\vs$$$$(VSVER)\$$$$(CFG)\$$$$(PLAT)\bin \'>>$(top_builddir)/build/win32/$(1).msvc.introspect
|
||||
echo ' -o $$$$@'>>$(top_builddir)/build/win32/$(1).msvc.introspect
|
||||
echo '' >>$(top_builddir)/build/win32/$(1).msvc.introspect
|
||||
|
||||
# Finally Assemble the Command to Compile the generated .gir
|
||||
echo 'vs$$$$(VSVER)\$$$$(CFG)\$$$$(PLAT)\bin\$(_typelib_basename_msvc).typelib: vs$$$$(VSVER)\$$$$(CFG)\$$$$(PLAT)\bin\'$(_typelib_basename_msvc)'.gir'>>$(top_builddir)/build/win32/$(1).msvc.introspect
|
||||
echo '$(_typelib_basename_msvc).typelib: '$(_typelib_basename_msvc)'.gir'>>$(top_builddir)/build/win32/$(1).msvc.introspect
|
||||
echo ' @-echo Compiling $$$$@...'>>$(top_builddir)/build/win32/$(1).msvc.introspect
|
||||
echo ' $$$$(G_IR_COMPILER) \'>>$(top_builddir)/build/win32/$(1).msvc.introspect
|
||||
echo ' --includedir=$$$$(@D:\=/) --debug --verbose \'>>$(top_builddir)/build/win32/$(1).msvc.introspect
|
||||
echo ' $$$$(@R:\=/).gir \'>>$(top_builddir)/build/win32/$(1).msvc.introspect
|
||||
echo ' --includedir=. --debug --verbose \'>>$(top_builddir)/build/win32/$(1).msvc.introspect
|
||||
echo ' '$(1)' \'>>$(top_builddir)/build/win32/$(1).msvc.introspect
|
||||
echo ' -o $$$$@'>>$(top_builddir)/build/win32/$(1).msvc.introspect
|
||||
echo '' >>$(top_builddir)/build/win32/$(1).msvc.introspect
|
||||
endef
|
||||
|
@@ -32,23 +32,15 @@ SUBDIRS = \
|
||||
vs11 \
|
||||
vs12 \
|
||||
vs14 \
|
||||
vs15 \
|
||||
vs16
|
||||
vs15
|
||||
|
||||
EXTRA_DIST += \
|
||||
config-msvc.mak \
|
||||
config-msvc.mak.in \
|
||||
create-lists.bat \
|
||||
create-lists-msvc.mak \
|
||||
detectenv-msvc.mak \
|
||||
gen-gdkversionmacros-h.py \
|
||||
generate-msvc.mak \
|
||||
gtk-introspection-msvc.mak \
|
||||
introspection-msvc.mak \
|
||||
gtk-introspection-msvc.mak \
|
||||
replace.py \
|
||||
pc_base.py \
|
||||
gtkpc.py \
|
||||
README_EGL_MSVC.txt \
|
||||
$(GENERATED_ITEMS)
|
||||
|
||||
-include $(top_srcdir)/git.mk
|
||||
|
@@ -1,29 +0,0 @@
|
||||
Notes on enabling EGL (ANGLE/D3D support) for Windows/Visual Studio builds
|
||||
==========================================================================
|
||||
There is now support in the GL context creation code for Windows in GDK for
|
||||
creating and using EGL (OpenGL ES 3) contexts, which can be used instead of
|
||||
the existing OpenGL (Desktop) support, especially when the graphics drivers
|
||||
do not support OpenGL adequately.
|
||||
|
||||
This support is not enabled by default in the project files. In order to do
|
||||
so, please do the following:
|
||||
|
||||
-Obtain or compile a build of recent version of ANGLE. The one that comes
|
||||
with QT 5.10.x is sufficiently recent, but not the one that comes with QT-
|
||||
5.6.x. Note that Visual Studio 2013 or later is required for building
|
||||
ANGLE from QT-5.10.x, but the Visual Studio 2013-built ANGLE DLLs does work
|
||||
without problems with GTK+ built with Visual Studio 2008~2013. You may
|
||||
need to obtain D3Dcompiler_[47|43|42].dll if it does not come with the
|
||||
system (which is part of the DirectX runtimes). Its headers and .lib
|
||||
needs to be set to be found by the compiler and linker respectively before
|
||||
building libepoxy.
|
||||
-Build libepoxy with EGL support, which has to be enabled explicitly on
|
||||
Windows builds. Pass in -Degl=yes when building libepoxy using Meson.
|
||||
Build and install, making sure the headers and .lib can be located by the
|
||||
compiler and linker respectively.
|
||||
-Open the vsX/gtk+.sln, and open the project properties in the "gdk3-win32"
|
||||
project. Under "C/C++", add GDK_WIN32_ENABLE_EGL in the "Preprocessor
|
||||
Definitions" to the existing definitions in there for the configuration
|
||||
that is being built. Then build the solution.
|
||||
-To force the use of the EGL code, set the envvar GDK_GL=(...,)gles , where (...,)
|
||||
are the other GDK_GL options desired.
|
@@ -1,95 +0,0 @@
|
||||
# NMake Makefile portion for enabling features for Windows builds
|
||||
|
||||
!include detectenv-msvc.mak
|
||||
|
||||
# Default prefix if not defined
|
||||
!ifndef PREFIX
|
||||
PREFIX=..\..\..\vs$(VSVER)\$(PLAT)
|
||||
!endif
|
||||
|
||||
# Configurable paths to the various interpreters we need
|
||||
!ifndef PERL
|
||||
PERL = perl
|
||||
!endif
|
||||
|
||||
!ifndef PYTHON
|
||||
PYTHON=python
|
||||
!endif
|
||||
|
||||
# Path to the pkg-config tool, if not already in the PATH
|
||||
!if "$(PKG_CONFIG)" == ""
|
||||
PKG_CONFIG=pkg-config
|
||||
!endif
|
||||
|
||||
# Configurable paths to the various scripts and tools that we are using
|
||||
!ifndef GLIB_MKENUMS
|
||||
GLIB_MKENUMS = $(PREFIX)\bin\glib-mkenums
|
||||
!endif
|
||||
|
||||
!ifndef GLIB_GENMARSHAL
|
||||
GLIB_GENMARSHAL = $(PREFIX)\bin\glib-genmarshal
|
||||
!endif
|
||||
|
||||
!ifndef GLIB_COMPILE_RESOURCES
|
||||
GLIB_COMPILE_RESOURCES = $(PREFIX)\bin\glib-compile-resources.exe
|
||||
!endif
|
||||
|
||||
!ifndef GDBUS_CODEGEN
|
||||
GDBUS_CODEGEN = $(PREFIX)\bin\gdbus-codegen
|
||||
!endif
|
||||
|
||||
# Please do not change anything beneath this line unless maintaining the NMake Makefiles
|
||||
GTK_VERSION = @GTK_VERSION@
|
||||
|
||||
GDK_PREPROCESSOR_FLAGS = \
|
||||
/DG_LOG_USE_STRUCTURED=1 \
|
||||
/DGDK_COMPILATION \
|
||||
/I..\.. \
|
||||
/I..\..\gdk \
|
||||
/I..\..\gdk\win32
|
||||
|
||||
GTK_PREPROCESSOR_FLAGS = \
|
||||
/I..\..\gtk \
|
||||
/I..\..\gdk \
|
||||
/I..\..\gdk\win32 \
|
||||
/I..\.. \
|
||||
/I$(PREFIX)\include\gdk-pixbuf-2.0 \
|
||||
/I$(PREFIX)\include\pango-1.0 \
|
||||
/I$(PREFIX)\include\atk-1.0 \
|
||||
/I$(PREFIX)\include\cairo \
|
||||
/I$(PREFIX)\include\gio-win32-2.0 \
|
||||
/I$(PREFIX)\include\glib-2.0 \
|
||||
/I$(PREFIX)\lib\glib-2.0\include \
|
||||
/I$(PREFIX)\include \
|
||||
/DHAVE_CONFIG_H \
|
||||
/DG_DISABLE_SINGLE_INCLUDES \
|
||||
/DATK_DISABLE_SINGLE_INCLUDES \
|
||||
/DGDK_PIXBUF_DISABLE_SINGLE_INCLUDES \
|
||||
/DGTK_DISABLE_SINGLE_INCLUDES \
|
||||
/D_USE_MATH_DEFINES \
|
||||
/DGTK_COMPILATION \
|
||||
/DG_LOG_DOMAIN=\"Gtk\" \
|
||||
/DGTK_HOST=\"i686-pc-vs$(VSVER)\" \
|
||||
/DGTK_PRINT_BACKENDS=\"file\" \
|
||||
/DGTK_PRINT_BACKEND_ENABLE_UNSUPPORTED \
|
||||
/DINCLUDE_IM_am_et \
|
||||
/DINCLUDE_IM_cedilla \
|
||||
/DINCLUDE_IM_cyrillic_translit \
|
||||
/DINCLUDE_IM_ime \
|
||||
/DINCLUDE_IM_inuktitut \
|
||||
/DINCLUDE_IM_ipa \
|
||||
/DINCLUDE_IM_multipress \
|
||||
/DINCLUDE_IM_thai \
|
||||
/DINCLUDE_IM_ti_er \
|
||||
/DINCLUDE_IM_ti_et \
|
||||
/DINCLUDE_IM_viqr \
|
||||
/DGTK_LIBDIR=\"$(PREFIX:\=/)/lib\" \
|
||||
/DGTK_DATADIR=\"$(PREFIX:\=/)/share\" \
|
||||
/DGTK_DATA_PREFIX=\"$(PREFIX:\=/)\" \
|
||||
/DGTK_SYSCONFDIR=\"$(PREFIX:\=/)/etc\" \
|
||||
/DMULTIPRESS_CONFDIR=\"$(PREFIX:\=/)/etc/gtk-3.0\" \
|
||||
/DMULTIPRESS_LOCALEDIR=\"$(PREFIX:\=/)/share/locale\" \
|
||||
/DGTK_VERSION=\"$(GTK_VERSION)\" \
|
||||
/DGTK_BINARY_VERSION=\"3.0.0\" \
|
||||
/DGDK_DISABLE_DEPRECATED \
|
||||
/DISOLATION_AWARE_ENABLED
|
@@ -1,101 +0,0 @@
|
||||
# Convert the source listing to object (.obj) listing in
|
||||
# another NMake Makefile module, include it, and clean it up.
|
||||
# This is a "fact-of-life" regarding NMake Makefiles...
|
||||
# This file does not need to be changed unless one is maintaining the NMake Makefiles
|
||||
|
||||
# For those wanting to add things here:
|
||||
# To add a list, do the following:
|
||||
# # $(description_of_list)
|
||||
# if [call create-lists.bat header $(makefile_snippet_file) $(variable_name)]
|
||||
# endif
|
||||
#
|
||||
# if [call create-lists.bat file $(makefile_snippet_file) $(file_name)]
|
||||
# endif
|
||||
#
|
||||
# if [call create-lists.bat footer $(makefile_snippet_file)]
|
||||
# endif
|
||||
# ... (repeat the if [call ...] lines in the above order if needed)
|
||||
# !include $(makefile_snippet_file)
|
||||
#
|
||||
# (add the following after checking the entries in $(makefile_snippet_file) is correct)
|
||||
# (the batch script appends to $(makefile_snippet_file), you will need to clear the file unless the following line is added)
|
||||
#!if [del /f /q $(makefile_snippet_file)]
|
||||
#!endif
|
||||
|
||||
# In order to obtain the .obj filename that is needed for NMake Makefiles to build DLLs/static LIBs or EXEs, do the following
|
||||
# instead when doing 'if [call create-lists.bat file $(makefile_snippet_file) $(file_name)]'
|
||||
# (repeat if there are multiple $(srcext)'s in $(source_list), ignore any headers):
|
||||
# !if [for %c in ($(source_list)) do @if "%~xc" == ".$(srcext)" @call create-lists.bat file $(makefile_snippet_file) $(intdir)\%~nc.obj]
|
||||
#
|
||||
# $(intdir)\%~nc.obj needs to correspond to the rules added in build-rules-msvc.mak
|
||||
# %~xc gives the file extension of a given file, %c in this case, so if %c is a.cc, %~xc means .cc
|
||||
# %~nc gives the file name of a given file without extension, %c in this case, so if %c is a.cc, %~nc means a
|
||||
|
||||
NULL=
|
||||
|
||||
# For GDK resources
|
||||
|
||||
!if [call create-lists.bat header resources_sources.mak GDK_RESOURCES]
|
||||
!endif
|
||||
|
||||
!if [for %f in (..\..\gdk\resources\glsl\*.glsl) do @call create-lists.bat file resources_sources.mak %f]
|
||||
!endif
|
||||
|
||||
!if [call create-lists.bat footer resources_sources.mak]
|
||||
!endif
|
||||
|
||||
!if [call create-lists.bat header resources_sources.mak GTK_RESOURCES]
|
||||
!endif
|
||||
|
||||
!if [for %f in (..\..\gtk\theme\Adwaita\gtk.css ..\..\gtk\theme\Adwaita\gtk-dark.css ..\..\gtk\theme\Adwaita\gtk-contained.css ..\..\gtk\theme\Adwaita\gtk-contained-dark.css) do @call create-lists.bat file resources_sources.mak %f]
|
||||
!endif
|
||||
|
||||
!if [for %x in (png svg) do @(for %f in (..\..\gtk\theme\Adwaita\assets\*.%x) do @call create-lists.bat file resources_sources.mak %f)]
|
||||
!endif
|
||||
|
||||
!if [for %f in (..\..\gtk\theme\HighContrast\gtk.css ..\..\gtk\theme\HighContrast\gtk-inverse.css ..\..\gtk\theme\HighContrast\gtk-contained.css ..\..\gtk\theme\HighContrast\gtk-contained-inverse.css) do @call create-lists.bat file resources_sources.mak %f]
|
||||
!endif
|
||||
|
||||
!if [for %x in (png svg) do @(for %f in (..\..\gtk\theme\HighContrast\assets\*.%x) do @call create-lists.bat file resources_sources.mak %f)]
|
||||
!endif
|
||||
|
||||
!if [for %f in (..\..\gtk\theme\win32\gtk-win32-base.css ..\..\gtk\theme\win32\gtk.css) do @call create-lists.bat file resources_sources.mak %f]
|
||||
!endif
|
||||
|
||||
!if [for %f in (..\..\gtk\cursor\*.png ..\..\gtk\gesture\*.symbolic.png ..\..\gtk\ui\*.ui) do @call create-lists.bat file resources_sources.mak %f]
|
||||
!endif
|
||||
|
||||
!if [for %s in (16 22 24 32 48) do @(for %c in (actions status categories) do @(for %f in (..\..\gtk\icons\%sx%s\%c\*.png) do @call create-lists.bat file resources_sources.mak %f))]
|
||||
!endif
|
||||
|
||||
!if [for %s in (scalable) do @(for %c in (status) do @(for %f in (..\..\gtk\icons\%s\%c\*.svg) do @call create-lists.bat file resources_sources.mak %f))]
|
||||
!endif
|
||||
|
||||
!if [for %f in (..\..\gtk\inspector\*.ui ..\..\gtk\inspector\logo.png ..\..\gtk\emoji\emoji.data) do @call create-lists.bat file resources_sources.mak %f]
|
||||
!endif
|
||||
|
||||
!if [call create-lists.bat footer resources_sources.mak]
|
||||
!endif
|
||||
|
||||
!if [call create-lists.bat header resources_sources.mak GTK_DEMO_RESOURCES]
|
||||
!endif
|
||||
|
||||
!if [for /f %f in ('$(GLIB_COMPILE_RESOURCES) --generate-dependencies --sourcedir=..\..\demos\gtk-demo ..\..\demos\gtk-demo\demo.gresource.xml') do @call create-lists.bat file resources_sources.mak %f]
|
||||
!endif
|
||||
|
||||
!if [call create-lists.bat footer resources_sources.mak]
|
||||
!endif
|
||||
|
||||
!if [call create-lists.bat header resources_sources.mak ICON_BROWSER_RESOURCES]
|
||||
!endif
|
||||
|
||||
!if [for /f %f in ('$(GLIB_COMPILE_RESOURCES) --sourcedir=..\..\demos\icon-browser --generate-dependencies ..\..\demos\icon-browser\iconbrowser.gresource.xml') do @call create-lists.bat file resources_sources.mak %f]
|
||||
!endif
|
||||
|
||||
!if [call create-lists.bat footer resources_sources.mak]
|
||||
!endif
|
||||
|
||||
!include resources_sources.mak
|
||||
|
||||
!if [del /f /q resources_sources.mak]
|
||||
!endif
|
@@ -1,42 +0,0 @@
|
||||
@echo off
|
||||
rem Simple .bat script for creating the NMake Makefile snippets.
|
||||
|
||||
if not "%1" == "header" if not "%1" == "file" if not "%1" == "footer" goto :error_cmd
|
||||
if "%2" == "" goto error_no_destfile
|
||||
|
||||
if "%1" == "header" goto :header
|
||||
if "%1" == "file" goto :addfile
|
||||
if "%1" == "footer" goto :footer
|
||||
|
||||
:header
|
||||
if "%3" == "" goto error_var
|
||||
echo %3 = \>>%2
|
||||
goto done
|
||||
|
||||
:addfile
|
||||
if "%3" == "" goto error_file
|
||||
echo. %3 \>>%2
|
||||
goto done
|
||||
|
||||
:footer
|
||||
echo. $(NULL)>>%2
|
||||
echo.>>%2
|
||||
goto done
|
||||
|
||||
:error_cmd
|
||||
echo Specified command '%1' was invalid. Valid commands are: header file footer.
|
||||
goto done
|
||||
|
||||
:error_no_destfile
|
||||
echo Destination NMake snippet file must be specified
|
||||
goto done
|
||||
|
||||
:error_var
|
||||
echo A name must be specified for using '%1'.
|
||||
goto done
|
||||
|
||||
:error_file
|
||||
echo A file must be specified for using '%1'.
|
||||
goto done
|
||||
|
||||
:done
|
@@ -40,12 +40,8 @@ VSVER = 10
|
||||
VSVER = 11
|
||||
!elseif $(VCVERSION) > 1799 && $(VCVERSION) < 1900
|
||||
VSVER = 12
|
||||
!elseif $(VCVERSION) > 1899 && $(VCVERSION) < 1910
|
||||
!elseif $(VCVERSION) > 1899 && $(VCVERSION) < 2000
|
||||
VSVER = 14
|
||||
!elseif $(VCVERSION) > 1909 && $(VCVERSION) < 1920
|
||||
VSVER = 15
|
||||
!elseif $(VCVERSION) > 1919 && $(VCVERSION) < 2000
|
||||
VSVER = 16
|
||||
!else
|
||||
VSVER = 0
|
||||
!endif
|
||||
@@ -53,7 +49,7 @@ VSVER = 0
|
||||
!if "$(VSVER)" == "0"
|
||||
MSG = ^
|
||||
This NMake Makefile set supports Visual Studio^
|
||||
9 (2008) through 16 (2019). Your Visual Studio^
|
||||
9 (2008) through 14 (2015). Your Visual Studio^
|
||||
version is not supported.
|
||||
!error $(MSG)
|
||||
!endif
|
||||
|
@@ -1,33 +0,0 @@
|
||||
#!/usr/bin/python3
|
||||
|
||||
# Generate gdk/gdkversionmacros.h
|
||||
|
||||
# Author: Fan, Chun-wei
|
||||
# Date: July 25, 2019
|
||||
|
||||
import os
|
||||
import sys
|
||||
import argparse
|
||||
|
||||
from replace import replace_multi, replace
|
||||
|
||||
def main(argv):
|
||||
srcdir = os.path.dirname(__file__)
|
||||
top_srcdir = os.path.join(srcdir, os.pardir, os.pardir)
|
||||
parser = argparse.ArgumentParser(description='Generate gdkversionmacros.h')
|
||||
parser.add_argument('--version', help='Version of the package',
|
||||
required=True)
|
||||
args = parser.parse_args()
|
||||
gdk_sourcedir = os.path.join(top_srcdir, 'gdk')
|
||||
version_parts = args.version.split('.')
|
||||
|
||||
gdkversionmacro_replace_items = {'@GTK_MAJOR_VERSION@': version_parts[0],
|
||||
'@GTK_MINOR_VERSION@': version_parts[1],
|
||||
'@GTK_MICRO_VERSION@': version_parts[2]}
|
||||
|
||||
replace_multi(os.path.join(gdk_sourcedir, 'gdkversionmacros.h.in'),
|
||||
os.path.join(gdk_sourcedir, 'gdkversionmacros.h'),
|
||||
gdkversionmacro_replace_items)
|
||||
|
||||
if __name__ == '__main__':
|
||||
sys.exit(main(sys.argv))
|
@@ -1,222 +0,0 @@
|
||||
# NMake Makefile portion for code generation and
|
||||
# intermediate build directory creation
|
||||
# Items in here should not need to be edited unless
|
||||
# one is maintaining the NMake build files.
|
||||
|
||||
!include config-msvc.mak
|
||||
!include create-lists-msvc.mak
|
||||
|
||||
# Copy the pre-defined gdkconfig.h.[win32|win32_broadway]
|
||||
!if "$(CFG)" == "release" || "$(CFG)" == "Release"
|
||||
GDK_OLD_CFG = debug
|
||||
!else
|
||||
GDK_OLD_CFG = release
|
||||
!endif
|
||||
|
||||
!ifdef BROADWAY
|
||||
GDK_CONFIG = broadway
|
||||
GDK_DEL_CONFIG = win32
|
||||
GDK_CONFIG_TEMPLATE = ..\..\gdk\gdkconfig.h.win32_broadway
|
||||
!else
|
||||
GDK_CONFIG = win32
|
||||
GDK_DEL_CONFIG = broadway
|
||||
GDK_CONFIG_TEMPLATE = ..\..\gdk\gdkconfig.h.win32
|
||||
!endif
|
||||
|
||||
GDK_MARSHALERS_FLAGS = --prefix=_gdk_marshal --valist-marshallers
|
||||
GDK_RESOURCES_ARGS = ..\..\gdk\gdk.gresource.xml --target=$@ --sourcedir=..\..\gdk --c-name _gdk --manual-register
|
||||
GTK_MARSHALERS_FLAGS = --prefix=_gtk_marshal --valist-marshallers
|
||||
GTK_RESOURCES_ARGS = ..\..\gtk\gtk.gresource.xml --target=$@ --sourcedir=..\..\gtk --c-name _gtk --manual-register
|
||||
|
||||
all: \
|
||||
..\..\config.h \
|
||||
..\..\gdk\gdkconfig.h \
|
||||
..\..\gdk\gdkversionmacros.h \
|
||||
..\..\gdk\gdkmarshalers.h \
|
||||
..\..\gdk\gdkmarshalers.c \
|
||||
..\..\gdk\gdkresources.h \
|
||||
..\..\gdk\gdkresources.c \
|
||||
..\..\gtk\gtk-win32.rc \
|
||||
..\..\gtk\libgtk3.manifest \
|
||||
..\..\gtk\gtkdbusgenerated.h \
|
||||
..\..\gtk\gtkdbusgenerated.c \
|
||||
..\..\gtk\gtktypefuncs.inc \
|
||||
..\..\gtk\gtk.gresource.xml \
|
||||
..\..\gtk\gtkmarshalers.h \
|
||||
..\..\gtk\gtkmarshalers.c \
|
||||
..\..\gtk\gtkresources.h \
|
||||
..\..\gtk\gtkresources.c \
|
||||
..\..\demos\gtk-demo\demos.h \
|
||||
..\..\demos\gtk-demo\demo_resources.c \
|
||||
..\..\demos\icon-browser\resources.c
|
||||
|
||||
# Copy the pre-defined config.h.win32 and demos.h.win32
|
||||
..\..\config.h: ..\..\config.h.win32
|
||||
..\..\demos\gtk-demo\demos.h: ..\..\demos\gtk-demo\demos.h.win32
|
||||
..\..\gtk\gtk-win32.rc: ..\..\gtk\gtk-win32.rc.body
|
||||
|
||||
..\..\gdk-$(CFG)-$(GDK_CONFIG)-build: $(GDK_CONFIG_TEMPLATE)
|
||||
@if exist ..\..\gdk-$(GDK_OLD_CFG)-$(GDK_DEL_CONFIG)-build del ..\..\gdk-$(GDK_OLD_CFG)-$(GDK_DEL_CONFIG)-build
|
||||
@if exist ..\..\gdk-$(GDK_OLD_CFG)-$(GDK_CONFIG)-build del ..\..\gdk-$(GDK_OLD_CFG)-$(GDK_CONFIG)-build
|
||||
@if exist ..\..\gdk-$(CFG)-$(GDK_DEL_CONFIG)-build del ..\..\gdk-$(CFG)-$(GDK_DEL_CONFIG)-build
|
||||
@copy $** $@
|
||||
|
||||
..\..\gdk\gdkconfig.h: ..\..\gdk-$(CFG)-$(GDK_CONFIG)-build
|
||||
|
||||
..\..\config.h \
|
||||
..\..\gdk\gdkconfig.h \
|
||||
..\..\gtk\gtk-win32.rc \
|
||||
..\..\demos\gtk-demo\demos.h:
|
||||
@echo Copying $@...
|
||||
@copy $** $@
|
||||
|
||||
..\..\gdk\gdkversionmacros.h: ..\..\gdk\gdkversionmacros.h.in
|
||||
@echo Generating $@...
|
||||
@$(PYTHON) gen-gdkversionmacros-h.py --version=$(GTK_VERSION)
|
||||
|
||||
..\..\gdk\gdkmarshalers.h: ..\..\gdk\gdkmarshalers.list
|
||||
@echo Generating $@...
|
||||
@$(PYTHON) $(GLIB_GENMARSHAL) $(GDK_MARSHALERS_FLAGS) --header $** > $@.tmp
|
||||
@move $@.tmp $@
|
||||
|
||||
..\..\gdk\gdkmarshalers.c: ..\..\gdk\gdkmarshalers.list
|
||||
@echo Generating $@...
|
||||
@$(PYTHON) $(GLIB_GENMARSHAL) $(GDK_MARSHALERS_FLAGS) --body $** > $@.tmp
|
||||
@move $@.tmp $@
|
||||
|
||||
..\..\gdk\gdk.gresource.xml: $(GDK_RESOURCES)
|
||||
@echo Generating $@...
|
||||
@echo ^<?xml version='1.0' encoding='UTF-8'?^> >$@
|
||||
@echo ^<gresources^> >> $@
|
||||
@echo ^<gresource prefix='/org/gtk/libgdk'^> >> $@
|
||||
@for %%f in (..\..\gdk\resources\glsl\*.glsl) do @echo ^<file alias='glsl/%%~nxf'^>resources/glsl/%%~nxf^</file^> >> $@
|
||||
@echo ^</gresource^> >> $@
|
||||
@echo ^</gresources^> >> $@
|
||||
|
||||
..\..\gdk\gdkresources.h: ..\..\gdk\gdk.gresource.xml
|
||||
@echo Generating $@...
|
||||
@if not "$(XMLLINT)" == "" set XMLLINT=$(XMLLINT)
|
||||
@if not "$(JSON_GLIB_FORMAT)" == "" set JSON_GLIB_FORMAT=$(JSON_GLIB_FORMAT)
|
||||
@if not "$(GDK_PIXBUF_PIXDATA)" == "" set GDK_PIXBUF_PIXDATA=$(GDK_PIXBUF_PIXDATA)
|
||||
@$(GLIB_COMPILE_RESOURCES) $(GDK_RESOURCES_ARGS) --generate-header
|
||||
|
||||
..\..\gdk\gdkresources.c: ..\..\gdk\gdk.gresource.xml $(GDK_RESOURCES)
|
||||
@echo Generating $@...
|
||||
@if not "$(XMLLINT)" == "" set XMLLINT=$(XMLLINT)
|
||||
@if not "$(JSON_GLIB_FORMAT)" == "" set JSON_GLIB_FORMAT=$(JSON_GLIB_FORMAT)
|
||||
@if not "$(GDK_PIXBUF_PIXDATA)" == "" set GDK_PIXBUF_PIXDATA=$(GDK_PIXBUF_PIXDATA)
|
||||
@$(GLIB_COMPILE_RESOURCES) $(GDK_RESOURCES_ARGS) --generate-source
|
||||
|
||||
..\..\gtk\libgtk3.manifest: ..\..\gtk\libgtk3.manifest.in
|
||||
@echo Generating $@...
|
||||
@$(PYTHON) replace.py \
|
||||
--action=replace-var \
|
||||
--input=$** --output=$@ \
|
||||
--var=EXE_MANIFEST_ARCHITECTURE \
|
||||
--outstring=*
|
||||
|
||||
..\..\gtk\gtkdbusgenerated.h ..\..\gtk\gtkdbusgenerated.c: ..\..\gtk\gtkdbusinterfaces.xml
|
||||
@echo Generating GTK DBus sources...
|
||||
@$(PYTHON) $(PREFIX)\bin\gdbus-codegen \
|
||||
--interface-prefix org.Gtk. --c-namespace _Gtk \
|
||||
--generate-c-code gtkdbusgenerated $** \
|
||||
--output-directory $(@D)
|
||||
|
||||
..\..\gtk\gtktypefuncs.inc: ..\..\gtk\gentypefuncs.py
|
||||
@echo Generating $@...
|
||||
@echo #undef GTK_COMPILATION > $(@R).preproc.c
|
||||
@echo #include "gtkx.h" >> $(@R).preproc.c
|
||||
@cl /EP $(GTK_PREPROCESSOR_FLAGS) $(@R).preproc.c > $(@R).combined.c
|
||||
@$(PYTHON) $** $@ $(@R).combined.c
|
||||
@del $(@R).preproc.c $(@R).combined.c
|
||||
|
||||
..\..\gtk\gtk.gresource.xml: $(GTK_RESOURCES)
|
||||
@echo Generating $@...
|
||||
@echo ^<?xml version='1.0' encoding='UTF-8'?^>> $@
|
||||
@echo ^<gresources^>>> $@
|
||||
@echo ^<gresource prefix='/org/gtk/libgtk'^>>> $@
|
||||
@echo ^<file^>theme/Adwaita/gtk.css^</file^>>> $@
|
||||
@echo ^<file^>theme/Adwaita/gtk-dark.css^</file^>>> $@
|
||||
@echo ^<file^>theme/Adwaita/gtk-contained.css^</file^>>> $@
|
||||
@echo ^<file^>theme/Adwaita/gtk-contained-dark.css^</file^>>> $@
|
||||
@for %%f in (..\..\gtk\theme\Adwaita\assets\*.png) do @echo ^<file preprocess='to-pixdata'^>theme/Adwaita/assets/%%~nxf^</file^>>> $@
|
||||
@for %%f in (..\..\gtk\theme\Adwaita\assets\*.svg) do @echo ^<file^>theme/Adwaita/assets/%%~nxf^</file^>>> $@
|
||||
@echo ^<file^>theme/HighContrast/gtk.css^</file^>>> $@
|
||||
@echo ^<file alias='theme/HighContrastInverse/gtk.css'^>theme/HighContrast/gtk-inverse.css^</file^>>> $@
|
||||
@echo ^<file^>theme/HighContrast/gtk-contained.css^</file^>>> $@
|
||||
@echo ^<file^>theme/HighContrast/gtk-contained-inverse.css^</file^>>> $@
|
||||
@for %%f in (..\..\gtk\theme\HighContrast\assets\*.png) do @echo ^<file preprocess='to-pixdata'^>theme/HighContrast/assets/%%~nxf^</file^>>> $@
|
||||
@for %%f in (..\..\gtk\theme\HighContrast\assets\*.svg) do @echo ^<file^>theme/HighContrast/assets/%%~nxf^</file^>>> $@
|
||||
@echo ^<file^>theme/win32/gtk-win32-base.css^</file^>>> $@
|
||||
@echo ^<file^>theme/win32/gtk.css^</file^>>> $@
|
||||
@for %%f in (..\..\gtk\cursor\*.png) do @echo ^<file^>cursor/%%~nxf^</file^>>> $@
|
||||
@for %%f in (..\..\gtk\gesture\*.symbolic.png) do @echo ^<file alias='icons/64x64/actions/%%~nxf'^>gesture/%%~nxf^</file^>>> $@
|
||||
@for %%f in (..\..\gtk\ui\*.ui) do @echo ^<file preprocess='xml-stripblanks'^>ui/%%~nxf^</file^>>> $@
|
||||
@for %%s in (16 22 24 32 48) do @(for %%c in (actions status categories) do @(for %%f in (..\..\gtk\icons\%%sx%%s\%%c\*.png) do @echo ^<file^>icons/%%sx%%s/%%c/%%~nxf^</file^>>> $@))
|
||||
@for %%s in (scalable) do @(for %%c in (status) do @(for %%f in (..\..\gtk\icons\%%s\%%c\*.svg) do @echo ^<file^>icons/%%s/%%c/%%~nxf^</file^>>> $@))
|
||||
@for %%f in (..\..\gtk\inspector\*.ui) do @echo ^<file compressed='true' preprocess='xml-stripblanks'^>inspector/%%~nxf^</file^>>> $@
|
||||
@echo ^<file^>inspector/logo.png^</file^>>> $@
|
||||
@echo ^<file^>emoji/emoji.data^</file^>>> $@
|
||||
@echo ^</gresource^>>> $@
|
||||
@echo ^</gresources^>>> $@
|
||||
|
||||
..\..\gtk\gtkresources.h: ..\..\gtk\gtk.gresource.xml
|
||||
@echo Generating $@...
|
||||
@if not "$(XMLLINT)" == "" set XMLLINT=$(XMLLINT)
|
||||
@if not "$(JSON_GLIB_FORMAT)" == "" set JSON_GLIB_FORMAT=$(JSON_GLIB_FORMAT)
|
||||
@if not "$(GDK_PIXBUF_PIXDATA)" == "" set GDK_PIXBUF_PIXDATA=$(GDK_PIXBUF_PIXDATA)
|
||||
@$(GLIB_COMPILE_RESOURCES) $(GTK_RESOURCES_ARGS) --generate-header
|
||||
|
||||
..\..\gtk\gtkresources.c: ..\..\gtk\gtk.gresource.xml $(GTK_RESOURCES)
|
||||
@echo Generating $@...
|
||||
@if not "$(XMLLINT)" == "" set XMLLINT=$(XMLLINT)
|
||||
@if not "$(JSON_GLIB_FORMAT)" == "" set JSON_GLIB_FORMAT=$(JSON_GLIB_FORMAT)
|
||||
@if not "$(GDK_PIXBUF_PIXDATA)" == "" set GDK_PIXBUF_PIXDATA=$(GDK_PIXBUF_PIXDATA)
|
||||
@$(GLIB_COMPILE_RESOURCES) $(GTK_RESOURCES_ARGS) --generate-source
|
||||
|
||||
..\..\gtk\gtkmarshalers.h: ..\..\gtk\gtkmarshalers.list
|
||||
@echo Generating $@...
|
||||
@$(PYTHON) $(GLIB_GENMARSHAL) $(GTK_MARSHALERS_FLAGS) --header $** > $@.tmp
|
||||
@move $@.tmp $@
|
||||
|
||||
..\..\gtk\gtkmarshalers.c: ..\..\gtk\gtkmarshalers.list
|
||||
@echo Generating $@...
|
||||
@echo #undef G_ENABLE_DEBUG> $@.tmp
|
||||
@$(PYTHON) $(GLIB_GENMARSHAL) $(GTK_MARSHALERS_FLAGS) --body $** >> $@.tmp
|
||||
@move $@.tmp $@
|
||||
|
||||
..\..\demos\gtk-demo\demo_resources.c: ..\..\demos\gtk-demo\demo.gresource.xml $(GTK_DEMO_RESOURCES)
|
||||
@echo Generating $@...
|
||||
@$(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=$(@D) --generate-source $(@D)\demo.gresource.xml
|
||||
|
||||
..\..\demos\icon-browser\resources.c: ..\..\demos\icon-browser\iconbrowser.gresource.xml $(ICON_BROWSER_RESOURCES)
|
||||
@echo Generating $@...
|
||||
@$(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=$(@D) --generate-source $(@D)\iconbrowser.gresource.xml
|
||||
|
||||
# Remove the generated files
|
||||
clean:
|
||||
@-del /f /q ..\..\demos\icon-browser\resources.c
|
||||
@-del /f /q ..\..\demos\gtk-demo\demo_resources.c
|
||||
@-del /f /q ..\..\demos\gtk-demo\demos.h
|
||||
@-del /f /q ..\..\gtk\gtkresources.c
|
||||
@-del /f /q ..\..\gtk\gtkresources.h
|
||||
@-del /f /q ..\..\gtk\gtkmarshalers.c
|
||||
@-del /f /q ..\..\gtk\gtkmarshalers.h
|
||||
@-del /f /q ..\..\gtk\gtk.gresource.xml
|
||||
@-del /f /q ..\..\gtk\gtktypefuncs.inc
|
||||
@-del /f /q ..\..\gtk\gtkdbusgenerated.c
|
||||
@-del /f /q ..\..\gtk\gtkdbusgenerated.h
|
||||
@-del /f /q ..\..\gtk\libgtk3.manifest
|
||||
@-del /f /q ..\..\gtk\gtk-win32.rc
|
||||
@-del /f /q ..\..\gdk\gdkresources.c
|
||||
@-del /f /q ..\..\gdk\gdkresources.h
|
||||
@-del /f /q ..\..\gdk\gdk.gresource.xml
|
||||
@-del /f /q ..\..\gdk\gdkmarshalers.c
|
||||
@-del /f /q ..\..\gdk\gdkmarshalers.h
|
||||
@-del /f /q ..\..\gdk\gdkversionmacros.h
|
||||
@-del /f /q ..\..\gdk\gdkconfig.h
|
||||
@if exist ..\..\gdk-$(CFG)-$(GDK_CONFIG)-build del ..\..\gdk-$(CFG)-$(GDK_CONFIG)-build
|
||||
@if exist ..\..\gdk-$(GDK_OLD_CFG)-$(GDK_DEL_CONFIG)-build del ..\..\gdk-$(GDK_OLD_CFG)-$(GDK_DEL_CONFIG)-build
|
||||
@if exist ..\..\gdk-$(GDK_OLD_CFG)-$(GDK_CONFIG)-build del ..\..\gdk-$(GDK_OLD_CFG)-$(GDK_CONFIG)-build
|
||||
@if exist ..\..\gdk-$(CFG)-$(GDK_DEL_CONFIG)-build del ..\..\gdk-$(CFG)-$(GDK_DEL_CONFIG)-build
|
||||
@-del /f /q ..\..\config.h
|
@@ -6,15 +6,8 @@ APIVERSION = 3.0
|
||||
|
||||
CHECK_PACKAGE = gdk-pixbuf-2.0 atk pangocairo gio-2.0
|
||||
|
||||
built_install_girs = \
|
||||
vs$(VSVER)\$(CFG)\$(PLAT)\bin\Gdk-$(APIVERSION).gir \
|
||||
vs$(VSVER)\$(CFG)\$(PLAT)\bin\GdkWin32-$(APIVERSION).gir \
|
||||
vs$(VSVER)\$(CFG)\$(PLAT)\bin\Gtk-$(APIVERSION).gir
|
||||
|
||||
built_install_typelibs = \
|
||||
vs$(VSVER)\$(CFG)\$(PLAT)\bin\Gdk-$(APIVERSION).typelib \
|
||||
vs$(VSVER)\$(CFG)\$(PLAT)\bin\GdkWin32-$(APIVERSION).typelib \
|
||||
vs$(VSVER)\$(CFG)\$(PLAT)\bin\Gtk-$(APIVERSION).typelib
|
||||
built_install_girs = Gdk-$(APIVERSION).gir GdkWin32-$(APIVERSION).gir Gtk-$(APIVERSION).gir
|
||||
built_install_typelibs = Gdk-$(APIVERSION).typelib GdkWin32-$(APIVERSION).typelib Gtk-$(APIVERSION).typelib
|
||||
|
||||
!include introspection-msvc.mak
|
||||
|
||||
@@ -36,9 +29,9 @@ setgirbuildenv:
|
||||
|
||||
!include introspection.body.mak
|
||||
|
||||
install-introspection: all
|
||||
@-copy vs$(VSVER)\$(CFG)\$(PLAT)\bin\*.gir "$(G_IR_INCLUDEDIR)"
|
||||
@-copy /b vs$(VSVER)\$(CFG)\$(PLAT)\bin\*.typelib "$(G_IR_TYPELIBDIR)"
|
||||
install-introspection: all
|
||||
@-copy *.gir $(G_IR_INCLUDEDIR)
|
||||
@-copy /b *.typelib $(G_IR_TYPELIBDIR)
|
||||
|
||||
!else
|
||||
all:
|
||||
@@ -46,5 +39,5 @@ all:
|
||||
!endif
|
||||
|
||||
clean:
|
||||
@-del /f/q vs$(VSVER)\$(CFG)\$(PLAT)\bin\*.typelib
|
||||
@-del /f/q vs$(VSVER)\$(CFG)\$(PLAT)\bin\*.gir
|
||||
@-del /f/q *.typelib
|
||||
@-del /f/q *.gir
|
||||
|
@@ -31,9 +31,9 @@ def main(argv):
|
||||
cairo_min_ver = '1.14.0'
|
||||
gdk_pixbuf_min_ver = '2.30.0'
|
||||
gdk_win32_sys_libs = '-lgdi32 -limm32 -lshell32 -lole32 -lwinmm -ldwmapi'
|
||||
cairo_libs = '-lcairo-gobject -lcairo '
|
||||
glib_min_ver = '2.45.8'
|
||||
|
||||
cairo_backends = 'cairo-win32'
|
||||
gdk_backends = 'win32'
|
||||
gio_package = 'gio-2.0 >= ' + glib_min_ver
|
||||
broadway_extra_libs = ''
|
||||
@@ -43,17 +43,20 @@ def main(argv):
|
||||
# On Visual Studio, we link to zlib1.lib
|
||||
broadway_extra_libs = ' -lzlib1'
|
||||
gdk_backends += ' broadway'
|
||||
cairo_backends += ' cairo'
|
||||
|
||||
pkg_replace_items = {'@GTK_API_VERSION@': '3.0',
|
||||
'@GDK_BACKENDS@': gdk_backends}
|
||||
|
||||
pkg_required_packages = 'gdk-pixbuf-2.0 >= ' + gdk_pixbuf_min_ver
|
||||
pkg_required_packages = 'gdk-pixbuf-2.0 >= ' + gdk_pixbuf_min_ver + ' ' + \
|
||||
'cairo >= ' + cairo_min_ver + ' ' + \
|
||||
'cairo-gobject >= ' + cairo_min_ver
|
||||
|
||||
gdk_pc_replace_items = {'@GDK_PACKAGES@': gio_package + ' ' + \
|
||||
'pangowin32 pangocairo' + ' ' + \
|
||||
pkg_required_packages,
|
||||
'@GDK_PRIVATE_PACKAGES@': gio_package,
|
||||
'@GDK_EXTRA_LIBS@': cairo_libs + gdk_win32_sys_libs + broadway_extra_libs,
|
||||
'@GDK_PRIVATE_PACKAGES@': gio_package + ' ' + cairo_backends,
|
||||
'@GDK_EXTRA_LIBS@': gdk_win32_sys_libs + broadway_extra_libs,
|
||||
'@GDK_EXTRA_CFLAGS@': '',
|
||||
'gdk-3': 'gdk-3.0'}
|
||||
|
||||
|
@@ -33,6 +33,7 @@ EXTRA_DIST += \
|
||||
README.txt \
|
||||
gtk+.sln \
|
||||
gtk3-prebuild.vcxproj \
|
||||
gtk3-prebuild.vcxproj.filters \
|
||||
gdk3-win32.vcxprojin \
|
||||
gdk3-win32.vcxproj.filtersin \
|
||||
gdk3-broadway.vcxprojin \
|
||||
@@ -61,7 +62,6 @@ EXTRA_DIST += \
|
||||
gailutil-3.vcxproj.filtersin \
|
||||
gtk3-install.vcxproj \
|
||||
gtk3-install.vcxproj.filters \
|
||||
gtk3-introspect.vcxproj \
|
||||
gtk3-build-defines.props \
|
||||
gtk3-copy-gdk-broadway.props \
|
||||
gtk3-gen-srcs.props \
|
||||
|
@@ -24,8 +24,8 @@ You will also need a Python 2.6+/3.x interpretor installed on your system,
|
||||
which can be obtained from the official installers available from
|
||||
http://www.python.org. Please note that the Python interpretor (python.exe)
|
||||
either needs to be in your PATH before attempting the build of GTK+, or it
|
||||
can be found in the path specified by PythonDir in gtk-version-paths.props.
|
||||
If you happen to change the PythonDir setting in gtk-version-paths.props after
|
||||
can be found in the path specified by PythonPath in gtk-version-paths.props.
|
||||
If you happen to change the PythonPath setting in gtk-version-paths.props after
|
||||
opening gtk+.sln with Visual Studio, you will need to close the gtk+.sln solution,
|
||||
delete all the *.sdf, *.suo and *.user files before re-attempting the build.
|
||||
|
||||
@@ -81,21 +81,6 @@ built DLLs go into <root>\vs10\<PlatformName>\bin, built LIBs into
|
||||
project files higher in the stack are supposed to look for them, not
|
||||
from a specific GLib source tree.
|
||||
|
||||
There is now a "gtk3-introspect" project that is used to build the
|
||||
introspection files. In order for this to work, check that the paths for
|
||||
PythonDir (32-bit builds) and PythonDirX64 (x64 builds) are correct for your
|
||||
system. Note that it must be the same Python installation that was used to
|
||||
build GObject-Introspection (G-I), and a complete G-I build/installation
|
||||
needs to be found in <root>\vs10\<PlatformName>\, with the introspection files
|
||||
for ATK, Pango and GDK-Pixbuf. Note also that this is not built by default,
|
||||
so you will need to right-click on the project to build it, which will build
|
||||
and "install" the other projects that are normally built, if those were not yet
|
||||
built. The introspection files that are built will be "installed" to
|
||||
<root>\vs10\<PlatformName>\share\gir-1.0 (the .gir file(s)) and
|
||||
<root>\vs10\<PlatformName>\lib\girepository-1.0 (the .typelib files(s)) upon
|
||||
successful build. for building this in a different configuration, therefore,
|
||||
you will need to clean this project specifically and then rebuild.
|
||||
|
||||
Please note, as GTK+ uses the Adwaita theme for all platforms by default,
|
||||
most icons used are not included with GTK+ (which *are* needed), so please see
|
||||
https://live.gnome.org/GTK%2B/Win32/MSVCCompilationOfGTKStack (under the
|
||||
|
@@ -30,8 +30,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gtk-query-settings", "gtk-q
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gtk3-install", "gtk3-install.vcxproj", "{23BBF35F-78AF-4E8C-983F-7B90448CD7DF}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gtk3-introspect", "gtk3-introspect.vcxproj", "{A8092C4E-0A21-4B1D-AC82-16764E418D1F}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Win32 = Debug|Win32
|
||||
@@ -276,14 +274,6 @@ Global
|
||||
{9F22107A-3EF7-4B52-B269-747B65307F36}.Release_Broadway|Win32.Build.0 = Release|Win32
|
||||
{9F22107A-3EF7-4B52-B269-747B65307F36}.Release_Broadway|x64.ActiveCfg = Release|x64
|
||||
{9F22107A-3EF7-4B52-B269-747B65307F36}.Release_Broadway|x64.Build.0 = Release|x64
|
||||
{A8092C4E-0A21-4B1D-AC82-16764E418D1F}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{A8092C4E-0A21-4B1D-AC82-16764E418D1F}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{A8092C4E-0A21-4B1D-AC82-16764E418D1F}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{A8092C4E-0A21-4B1D-AC82-16764E418D1F}.Release|x64.ActiveCfg = Release|x64
|
||||
{A8092C4E-0A21-4B1D-AC82-16764E418D1F}.Debug_Broadway|Win32.ActiveCfg = Debug|Win32
|
||||
{A8092C4E-0A21-4B1D-AC82-16764E418D1F}.Debug_Broadway|x64.ActiveCfg = Debug|x64
|
||||
{A8092C4E-0A21-4B1D-AC82-16764E418D1F}.Release_Broadway|Win32.ActiveCfg = Release|Win32
|
||||
{A8092C4E-0A21-4B1D-AC82-16764E418D1F}.Release_Broadway|x64.ActiveCfg = Release|x64
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
|
@@ -17,6 +17,11 @@
|
||||
<ItemGroup>
|
||||
<ResourceCompile Include="..\..\..\gtk\gtk-win32.rc"><Filter>Resource Files</Filter></ResourceCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<CustomBuild Include="..\..\..\gtk\gtkdbusinterfaces.xml"><Filter>Resource Files</Filter></CustomBuild>
|
||||
<CustomBuild Include="..\..\..\gtk\gtk-win32.rc.body"><Filter>Resource Files</Filter></CustomBuild>
|
||||
<CustomBuild Include="..\..\..\gtk\libgtk3.manifest.in"><Filter>Resource Files</Filter></CustomBuild>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
#include "gtk-3.vs10.sourcefiles.filters"
|
||||
<ClCompile Include="..\..\..\modules\input\gtkimcontextime.c"><Filter>Source Files</Filter></ClCompile>
|
||||
|
@@ -162,6 +162,50 @@
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<CustomBuild Include="..\..\..\gtk\gtkdbusinterfaces.xml">
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating GTK+ DBus Sources...</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(GenerateGtkDbusBuiltSources)</Command>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\..\gtk\gtkdbusgenerated.c;..\..\..\gtk\gtkdbusgenerated.h;%(Outputs)</Outputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Generating GTK+ DBus Sources...</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(GenerateGtkDbusBuiltSourcesX64)</Command>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">..\..\..\gtk\gtkdbusgenerated.c;..\..\..\gtk\gtkdbusgenerated.h;%(Outputs)</Outputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Generating GTK+ DBus Sources...</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(GenerateGtkDbusBuiltSources)</Command>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\..\gtk\gtkdbusgenerated.c;..\..\..\gtk\gtkdbusgenerated.h;%(Outputs)</Outputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Generating GTK+ DBus Sources...</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(GenerateGtkDbusBuiltSourcesX64)</Command>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">..\..\..\gtk\gtkdbusgenerated.c;..\..\..\gtk\gtkdbusgenerated.h;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\..\..\gtk\gtk-win32.rc.body">
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Copying GTK+ Win32 Version Resource...</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(CopyGtkWin32RC)</Command>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\..\gtk\gtk-win32.rc;%(Outputs)</Outputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Copying GTK+ Win32 Version Resource...</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(CopyGtkWin32RC)</Command>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">..\..\..\gtk\gtk-win32.rc;%(Outputs)</Outputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Copying GTK+ Win32 Version Resource...</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(CopyGtkWin32RC)</Command>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\..\gtk\gtk-win32.rc;%(Outputs)</Outputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Copying GTK+ Win32 Version Resource...</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(CopyGtkWin32RC)</Command>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">..\..\..\gtk\gtk-win32.rc;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\..\..\gtk\libgtk3.manifest.in">
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Generating GTK+ Win32 Manifest...</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(GenerateGtkWin32Manifest)</Command>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\..\gtk\libgtk3.manifest;%(Outputs)</Outputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Generating GTK+ Win32 Manifest...</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(GenerateGtkWin32Manifest)</Command>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">..\..\..\gtk\libgtk3.manifest;%(Outputs)</Outputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Generating GTK+ Win32 Manifest...</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(GenerateGtkWin32Manifest)</Command>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\..\gtk\libgtk3.manifest;%(Outputs)</Outputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Generating GTK+ Win32 Manifest...</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(GenerateGtkWin32Manifest)</Command>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">..\..\..\gtk\libgtk3.manifest;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ResourceCompile Include="..\..\..\gtk\gtk-win32.rc" />
|
||||
</ItemGroup>
|
||||
|
@@ -10,14 +10,10 @@
|
||||
<GdkDefines>GDK_COMPILATION;G_LOG_DOMAIN="Gdk"</GdkDefines>
|
||||
<GtkIncludedImmodulesDefines>INCLUDE_IM_am_et;INCLUDE_IM_cedilla;INCLUDE_IM_cyrillic_translit;INCLUDE_IM_ime;INCLUDE_IM_inuktitut;INCLUDE_IM_ipa;INCLUDE_IM_multipress;INCLUDE_IM_thai;INCLUDE_IM_ti_er;INCLUDE_IM_ti_et;INCLUDE_IM_viqr</GtkIncludedImmodulesDefines>
|
||||
<GtkDefines>GTK_COMPILATION;G_LOG_DOMAIN="Gtk";GTK_HOST="i686-pc-vs$(VSVer)";GTK_PRINT_BACKENDS="file";GTK_PRINT_BACKEND_ENABLE_UNSUPPORTED;$(GtkIncludedImmodulesDefines);GTK_LIBDIR="$(GtkDummyPrefix)/lib";GTK_DATADIR="$(GtkDummyPrefix)/share";GTK_DATA_PREFIX="$(GtkDummyPrefix)";GTK_SYSCONFDIR="$(GtkDummyPrefix)/etc";MULTIPRESS_CONFDIR="$(GtkDummyPrefix)/etc/gtk-$(ApiVersion)";MULTIPRESS_LOCALEDIR="$(GtkDummyPrefix)/share/locale";GTK_VERSION="$(GtkVersion)/etc";GTK_BINARY_VERSION="$(GtkBinaryVersion)/etc";GDK_DISABLE_DEPRECATED;ISOLATION_AWARE_ENABLED</GtkDefines>
|
||||
<GtkGdkCommonLibs>pangowin32-1.0.lib;fribidi.lib;imm32.lib</GtkGdkCommonLibs>
|
||||
<GtkGdkCommonLibs>imm32.lib</GtkGdkCommonLibs>
|
||||
<GdkAdditionalLibs>winmm.lib;dwmapi.lib;setupapi.lib;$(GtkGdkCommonLibs)</GdkAdditionalLibs>
|
||||
<GdkBroadwayAdditionalLibs>ws2_32.lib</GdkBroadwayAdditionalLibs>
|
||||
<GtkAdditionalLibs>atk-1.0.lib;winspool.lib;comctl32.lib;$(GtkGdkCommonLibs)</GtkAdditionalLibs>
|
||||
<GtkIntrospectNMakeCmd>cd ..
|
||||
set VCInstallDir=$(VCInstallDir)
|
||||
nmake -f gtk-introspection-msvc.mak CFG=$(Configuration) PREFIX=$(GlibEtcInstallRoot)</GtkIntrospectNMakeCmd>
|
||||
<GtkIntrospectBuiltFiles>$(BinDir)\Gtk-3.0.gir;$(BinDir)\Gtk-3.0.typelib</GtkIntrospectBuiltFiles>
|
||||
<GtkAdditionalLibs>atk-1.0.lib;pangowin32-1.0.lib;winspool.lib;comctl32.lib;$(GtkGdkCommonLibs)</GtkAdditionalLibs>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<_PropertySheetDisplayName>gtk3builddefinesprops</_PropertySheetDisplayName>
|
||||
@@ -26,7 +22,7 @@ nmake -f gtk-introspection-msvc.mak CFG=$(Configuration) PREFIX=$(GlibEtcInstall
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup>
|
||||
<ClCompile>
|
||||
<AdditionalIncludeDirectories>..\..\..;$(GlibEtcInstallRoot)\include\gdk-pixbuf-2.0;$(GlibEtcInstallRoot)\include\pango-1.0;$(GlibEtcInstallRoot)\include\atk-1.0;$(GlibEtcInstallRoot)\include\cairo;$(GlibEtcInstallRoot)\include\gio-win32-2.0;$(GlibEtcInstallRoot)\include\glib-2.0;$(GlibEtcInstallRoot)\lib\glib-2.0\include;$(GlibEtcInstallRoot)\include\fribidi;$(GlibEtcInstallRoot)\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<AdditionalIncludeDirectories>..\..\..;$(GlibEtcInstallRoot)\include\gdk-pixbuf-2.0;$(GlibEtcInstallRoot)\include\pango-1.0;$(GlibEtcInstallRoot)\include\atk-1.0;$(GlibEtcInstallRoot)\include\cairo;$(GlibEtcInstallRoot)\include\gio-win32-2.0;$(GlibEtcInstallRoot)\include\glib-2.0;$(GlibEtcInstallRoot)\lib\glib-2.0\include;$(GlibEtcInstallRoot)\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>HAVE_CONFIG_H;G_DISABLE_SINGLE_INCLUDES;ATK_DISABLE_SINGLE_INCLUDES;GDK_PIXBUF_DISABLE_SINGLE_INCLUDES;GTK_DISABLE_SINGLE_INCLUDES;_USE_MATH_DEFINES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<ForcedIncludeFiles>msvc_recommended_pragmas.h;%(ForcedIncludeFiles)</ForcedIncludeFiles>
|
||||
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
||||
@@ -35,11 +31,6 @@ nmake -f gtk-introspection-msvc.mak CFG=$(Configuration) PREFIX=$(GlibEtcInstall
|
||||
<Link>
|
||||
<AdditionalDependencies>pangocairo-1.0.lib;cairo.lib;cairo-gobject.lib;pango-1.0.lib;gdk_pixbuf-2.0.lib;gio-2.0.lib;gmodule-2.0.lib;gobject-2.0.lib;glib-2.0.lib;intl.lib;epoxy.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<AdditionalLibraryDirectories>$(GlibEtcInstallRoot)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalOptions Condition="'$(VisualStudioVersion)|$(Platform)'=='11.0|x64'">/HIGHENTROPYVA %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalOptions Condition="'$(VisualStudioVersion)|$(Platform)'=='12.0|x64'">/HIGHENTROPYVA %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalOptions Condition="'$(VisualStudioVersion)|$(Platform)'=='14.0|x64'">/HIGHENTROPYVA %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalOptions Condition="'$(VisualStudioVersion)|$(Platform)'=='15.0|x64'">/HIGHENTROPYVA %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalOptions Condition="'$(VisualStudioVersion)|$(Platform)'=='16.0|x64'">/HIGHENTROPYVA %(AdditionalOptions)</AdditionalOptions>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
@@ -73,11 +64,5 @@ nmake -f gtk-introspection-msvc.mak CFG=$(Configuration) PREFIX=$(GlibEtcInstall
|
||||
<BuildMacro Include="GtkAdditionalLibs">
|
||||
<Value>$(GtkAdditionalLibs)</Value>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="GtkIntrospectNMakeCmd">
|
||||
<Value>$(GtkIntrospectNMakeCmd)</Value>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="GtkIntrospectBuiltFiles">
|
||||
<Value>$(GtkIntrospectBuiltFiles)</Value>
|
||||
</BuildMacro>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
|
@@ -90,6 +90,7 @@
|
||||
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<RandomizedBaseAddress>false</RandomizedBaseAddress>
|
||||
<DataExecutionPrevention>
|
||||
</DataExecutionPrevention>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
@@ -113,6 +114,7 @@
|
||||
<FunctionLevelLinking>false</FunctionLevelLinking>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<RandomizedBaseAddress>false</RandomizedBaseAddress>
|
||||
<DataExecutionPrevention>
|
||||
</DataExecutionPrevention>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
@@ -136,6 +138,7 @@
|
||||
<AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Console</SubSystem>
|
||||
<RandomizedBaseAddress>false</RandomizedBaseAddress>
|
||||
<DataExecutionPrevention>
|
||||
</DataExecutionPrevention>
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
@@ -159,6 +162,7 @@
|
||||
<FunctionLevelLinking>false</FunctionLevelLinking>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<RandomizedBaseAddress>false</RandomizedBaseAddress>
|
||||
<DataExecutionPrevention>
|
||||
</DataExecutionPrevention>
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
|
@@ -4,28 +4,77 @@
|
||||
<Import Project="gtk3-build-defines.props" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros">
|
||||
<GenerateRequiredSourcesBase>cd ..
|
||||
set VCInstallDir=$(VCInstallDir)
|
||||
nmake -f generate-msvc.mak PREFIX=$(GlibEtcInstallRoot)</GenerateRequiredSourcesBase>
|
||||
<GeneratedGdkSources>..\..\..\config.h;..\..\..\gdk\gdkconfig.h;..\..\gdk\gdkversionmacros.h;..\..\..\gdk\gdkmarshalers.h;..\..\..\gdk\gdkmarshalers.c;..\..\..\gdk\gdkresources.h;..\..\..\gdk\gdkresources.c</GeneratedGdkSources>
|
||||
<GeneratedGtkSources>..\..\..\gtk\gtk-win32.rc;..\..\..\gtk\libgtk3.manifest;..\..\..\gtk\gtkdbusgenerated.h;..\..\..\gtk\gtkdbusgenerated.c</GeneratedGtkSources>
|
||||
<GeneratedDemoSources>..\..\..\demos\gtk-demo\demos.h</GeneratedDemoSources>
|
||||
<GenConfigH>copy ..\..\..\config.h.win32 ..\..\..\config.h</GenConfigH>
|
||||
<GenGdkConfigHWin32>
|
||||
if exist ..\..\..\MSVC_$(Configuration) goto DONE_GDKCONFIG_H
|
||||
|
||||
if exist ..\..\..\gdk\gdkconfig.h del ..\..\..\gdk\gdkconfig.h
|
||||
if exist ..\..\..\GDK_BROADWAY_BUILD del ..\..\..\GDK_BROADWAY_BUILD
|
||||
if exist ..\..\..\MSVC_$(Configuration)_Broadway del ..\..\..\MSVC_$(Configuration)_Broadway
|
||||
if exist $(Configuration)\$(Platform)\bin\$(GtkDllPrefix)gdk$(GtkDllSuffix).dll del $(Configuration)\$(Platform)\bin\$(GtkDllPrefix)gdk$(GtkDllSuffix).dll
|
||||
if exist $(Configuration)\$(Platform)\bin\gdk-$(ApiVersion).lib del $(Configuration)\$(Platform)\bin\gdk-$(ApiVersion).lib
|
||||
if "$(Configuration)" == "Release" del ..\..\..\MSVC_Debug
|
||||
if "$(Configuration)" == "Debug" del ..\..\..\MSVC_Release
|
||||
copy ..\..\..\gdk\gdkconfig.h.win32 ..\..\..\gdk\gdkconfig.h
|
||||
copy ..\..\..\gdk\gdkconfig.h.win32 ..\..\..\GDK_WIN32ONLY_BUILD
|
||||
echo $(Configuration) > ..\..\..\MSVC_$(Configuration)
|
||||
|
||||
:DONE_GDKCONFIG_H
|
||||
</GenGdkConfigHWin32>
|
||||
<GenGdkConfigHBroadway>
|
||||
if exist ..\..\..\MSVC_$(Configuration)_Broadway goto DONE_GDKCONFIG_H
|
||||
|
||||
if exist ..\..\..\gdk\gdkconfig.h del ..\..\..\gdk\gdkconfig.h
|
||||
if exist ..\..\..\GDK_WIN32ONLY_BUILD del ..\..\..\GDK_WIN32ONLY_BUILD
|
||||
if exist ..\..\..\MSVC_Release del ..\..\..\MSVC_Release
|
||||
if exist ..\..\..\MSVC_Debug del ..\..\..\MSVC_Debug
|
||||
|
||||
if "$(Configuration)" == "Release_Broadway" del ..\..\..\MSVC_Debug_Broadway
|
||||
if "$(Configuration)" == "Debug_Broadway" del ..\..\..\MSVC_Release_Broadway
|
||||
|
||||
copy ..\..\..\gdk\gdkconfig.h.win32_broadway ..\..\..\gdk\gdkconfig.h
|
||||
copy ..\..\..\gdk\gdkconfig.h.win32_broadway ..\..\..\GDK_BROADWAY_BUILD
|
||||
echo $(Configuration) > ..\..\..\MSVC_$(Configuration)_Broadway
|
||||
|
||||
:DONE_GDKCONFIG_H
|
||||
</GenGdkConfigHBroadway>
|
||||
<GDbusCodeGenCmd>$(GlibEtcInstallRoot)\bin\gdbus-codegen --interface-prefix org.Gtk. --c-namespace _Gtk --generate-c-code gtkdbusgenerated ./gtkdbusinterfaces.xml</GDbusCodeGenCmd>
|
||||
<GenerateGtkDbusBuiltSources>cd ..\..\..\gtk & $(PythonPath)\python $(GDbusCodeGenCmd) & cd $(SolutionDir)</GenerateGtkDbusBuiltSources>
|
||||
<GenerateGtkDbusBuiltSourcesX64>cd ..\..\..\gtk & $(PythonPathX64)\python $(GDbusCodeGenCmd) & cd $(SolutionDir)</GenerateGtkDbusBuiltSourcesX64>
|
||||
<CopyGtkWin32RC>copy ..\..\..\gtk\gtk-win32.rc.body ..\..\..\gtk\gtk-win32.rc</CopyGtkWin32RC>
|
||||
<GenerateGtkWin32Manifest>$(PythonPath)\python ..\replace.py --action=replace-var --input=..\..\..\gtk\libgtk3.manifest.in --output=..\..\..\gtk\libgtk3.manifest --var=EXE_MANIFEST_ARCHITECTURE --outstring=*</GenerateGtkWin32Manifest>
|
||||
<CopyDemosH>copy ..\..\..\demos\gtk-demo\demos.h.win32 ..\..\..\demos\gtk-demo\demos.h</CopyDemosH>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<_PropertySheetDisplayName>gtk3gensrcsprops</_PropertySheetDisplayName>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<BuildMacro Include="GenerateRequiredSourcesBase">
|
||||
<Value>$(GenerateRequiredSourcesBase)</Value>
|
||||
<BuildMacro Include="GenConfigH">
|
||||
<Value>$(GenConfigH)</Value>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="GeneratedGdkSources">
|
||||
<Value>$(GeneratedGdkSources)</Value>
|
||||
<BuildMacro Include="GenGdkConfigHWin32">
|
||||
<Value>$(GenGdkConfigHWin32)</Value>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="GeneratedGtkSources">
|
||||
<Value>$(GeneratedGtkSources)</Value>
|
||||
<BuildMacro Include="GenGdkConfigHBroadway">
|
||||
<Value>$(GenGdkConfigHBroadway)</Value>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="GeneratedDemoSources">
|
||||
<Value>$(GeneratedDemoSources)</Value>
|
||||
<BuildMacro Include="GDbusCodeGenCmd">
|
||||
<Value>$(GDbusCodeGenCmd)</Value>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="GenerateGtkDbusBuiltSources">
|
||||
<Value>$(GenerateGtkDbusBuiltSources)</Value>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="GenerateGtkDbusBuiltSourcesX64">
|
||||
<Value>$(GenerateGtkDbusBuiltSourcesX64)</Value>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="CopyGtkWin32RC">
|
||||
<Value>$(CopyGtkWin32RC)</Value>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="GenerateGtkWin32Manifest">
|
||||
<Value>$(GenerateGtkWin32Manifest)</Value>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="CopyDemosH">
|
||||
<Value>$(CopyDemosH)</Value>
|
||||
</BuildMacro>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
|
@@ -7,9 +7,7 @@
|
||||
<BinDir>$(SolutionDir)$(Configuration)\$(Platform)\bin</BinDir>
|
||||
<GtkDoInstallBin>
|
||||
mkdir $(CopyDir)\bin
|
||||
mkdir $(CopyDir)\share\gir-1.0
|
||||
mkdir $(CopyDir)\lib\pkgconfig
|
||||
mkdir $(CopyDir)\lib\girepository-1.0
|
||||
|
||||
copy "$(BinDir)\$(GtkDllPrefix)gdk-3$(GtkDllSuffix).dll" $(CopyDir)\bin
|
||||
copy "$(BinDir)\$(GtkDllPrefix)gdk-3$(GtkDllSuffix).pdb" $(CopyDir)\bin
|
||||
@@ -37,12 +35,6 @@ copy "$(BinDir)\gtk-query-settings.exe" $(CopyDir)\bin
|
||||
copy "$(BinDir)\gtk-query-settings.pdb" $(CopyDir)\bin
|
||||
copy "$(BinDir)\gtk-builder-tool.exe" $(CopyDir)\bin
|
||||
copy "$(BinDir)\gtk-builder-tool.pdb" $(CopyDir)\bin
|
||||
if exist $(BinDir)\Gdk-3.0.gir copy "$(BinDir)\Gdk-3.0.gir" $(CopyDir)\share\gir-1.0
|
||||
if exist $(BinDir)\GdkWin32-3.0.gir copy "$(BinDir)\GdkWin32-3.0.gir" $(CopyDir)\share\gir-1.0
|
||||
if exist $(BinDir)\Gtk-3.0.gir copy "$(BinDir)\Gtk-3.0.gir" $(CopyDir)\share\gir-1.0
|
||||
if exist $(BinDir)\Gdk-3.0.typelib copy "$(BinDir)\Gdk-3.0.typelib" $(CopyDir)\lib\girepository-1.0
|
||||
if exist $(BinDir)\GdkWin32-3.0.typelib copy "$(BinDir)\GdkWin32-3.0.typelib" $(CopyDir)\lib\girepository-1.0
|
||||
if exist $(BinDir)\Gtk-3.0.typelib copy "$(BinDir)\Gtk-3.0.typelib" $(CopyDir)\lib\girepository-1.0
|
||||
goto DONE_BIN
|
||||
|
||||
:DO_BROADWAY_BIN
|
||||
@@ -72,12 +64,6 @@ copy .\Release\$(Platform)\bin\gtk-query-settings.exe $(CopyDir)\bin
|
||||
copy .\Release\$(Platform)\bin\gtk-query-settings.pdb $(CopyDir)\bin
|
||||
copy .\Release\$(Platform)\bin\gtk-builder-tool.exe $(CopyDir)\bin
|
||||
copy .\Release\$(Platform)\bin\gtk-builder-tool.pdb $(CopyDir)\bin
|
||||
if exist .\Release\$(Platform)\bin\Gdk-3.0.gir copy .\Release\$(Platform)\bin\Gdk-3.0.gir $(CopyDir)\share\gir-1.0
|
||||
if exist .\Release\$(Platform)\bin\GdkWin32-3.0.gir copy .\Release\$(Platform)\bin\GdkWin32-3.0.gir $(CopyDir)\share\gir-1.0
|
||||
if exist .\Release\$(Platform)\bin\Gtk-3.0.gir copy .\Release\$(Platform)\bin\Gtk-3.0.gir $(CopyDir)\share\gir-1.0
|
||||
if exist .\Release\$(Platform)\bin\Gdk-3.0.typelib copy .\Release\$(Platform)\bin\Gdk-3.0.typelib $(CopyDir)\lib\girepository-1.0
|
||||
if exist .\Release\$(Platform)\bin\GdkWin32-3.0.typelib copy .\Release\$(Platform)\bin\GdkWin32-3.0.typelib $(CopyDir)\lib\girepository-1.0
|
||||
if exist .\Release\$(Platform)\bin\Gtk-3.0.typelib copy .\Release\$(Platform)\bin\Gtk-3.0.typelib $(CopyDir)\lib\girepository-1.0
|
||||
|
||||
goto DONE_BIN
|
||||
|
||||
@@ -102,12 +88,6 @@ copy .\Debug\$(Platform)\bin\gtk-query-settings.exe $(CopyDir)\bin
|
||||
copy .\Debug\$(Platform)\bin\gtk-query-settings.pdb $(CopyDir)\bin
|
||||
copy .\Debug\$(Platform)\bin\gtk-builder-tool.exe $(CopyDir)\bin
|
||||
copy .\Debug\$(Platform)\bin\gtk-builder-tool.pdb $(CopyDir)\bin
|
||||
if exist .\Debug\$(Platform)\bin\Gdk-3.0.gir copy .\Debug\$(Platform)\bin\Gdk-3.0.gir $(CopyDir)\share\gir-1.0
|
||||
if exist .\Debug\$(Platform)\bin\GdkWin32-3.0.gir copy .\Debug\$(Platform)\bin\GdkWin32-3.0.gir $(CopyDir)\share\gir-1.0
|
||||
if exist .\Debug\$(Platform)\bin\Gtk-3.0.gir copy .\Debug\$(Platform)\bin\Gtk-3.0.gir $(CopyDir)\share\gir-1.0
|
||||
if exist .\Debug\$(Platform)\bin\Gdk-3.0.typelib copy .\Debug\$(Platform)\bin\Gdk-3.0.typelib $(CopyDir)\lib\girepository-1.0
|
||||
if exist .\Debug\$(Platform)\bin\GdkWin32-3.0.typelib copy .\Debug\$(Platform)\bin\GdkWin32-3.0.typelib $(CopyDir)\lib\girepository-1.0
|
||||
if exist .\Debug\$(Platform)\bin\Gtk-3.0.typelib copy .\Debug\$(Platform)\bin\Gtk-3.0.typelib $(CopyDir)\lib\girepository-1.0
|
||||
|
||||
:DONE_BIN
|
||||
|
||||
@@ -136,10 +116,9 @@ mkdir $(CopyDir)\include\gail-$(ApiVersion)\libgail-util
|
||||
for %%s in (16 22 24 32 48 256) do ((mkdir $(CopyDir)\share\icons\hicolor\%%sx%%s\apps) & (copy /b ..\..\..\demos\gtk-demo\data\%%sx%%s\gtk3-demo.png $(CopyDir)\share\icons\hicolor\%%sx%%s\apps))
|
||||
|
||||
mkdir $(CopyDir)\share\glib-2.0\schemas
|
||||
copy ..\..\..\gtk\org.gtk.Settings.FileChooser.gschema.xml $(CopyDir)\share\glib-2.0\schemas
|
||||
copy ..\..\..\gtk\org.gtk.Settings.ColorChooser.gschema.xml $(CopyDir)\share\glib-2.0\schemas
|
||||
copy ..\..\..\gtk\org.gtk.Settings.Debug.gschema.xml $(CopyDir)\share\glib-2.0\schemas
|
||||
copy ..\..\..\gtk\org.gtk.Settings.EmojiChooser.gschema.xml $(CopyDir)\share\glib-2.0\schemas
|
||||
copy ..\..\..\gtk\org.gtk.Settings.FileChooser.gschema.xml $(CopyDir)\share\glib-2.0\schemas
|
||||
copy ..\..\..\demos\gtk-demo\org.gtk.Demo.gschema.xml $(CopyDir)\share\glib-2.0\schemas
|
||||
</GtkDoInstall>
|
||||
<GtkDoInstallBroadwayHeaders>
|
||||
@@ -154,8 +133,8 @@ $(GlibEtcInstallRoot)\bin\glib-compile-schemas.exe $(CopyDir)\share\glib-2.0\sch
|
||||
echo "Generating icon cache......"
|
||||
$(CopyDir)\bin\gtk-update-icon-cache.exe --ignore-theme-index --force "$(CopyDir)\share\icons\hicolor"
|
||||
</GtkPostInstall>
|
||||
<GenerateGtkPC>$(PythonDir)\python ..\gtkpc.py --prefix=$(CopyDir) --version=$(GtkVersion) --host=i686-pc-vs$(VSVer)</GenerateGtkPC>
|
||||
<GenerateGtkPCX64>$(PythonDir)\python ..\gtkpc.py --prefix=$(CopyDir) --version=$(GtkVersion) --host=x86_64-pc-vs$(VSVer)</GenerateGtkPCX64>
|
||||
<GenerateGtkPC>$(PythonPath)\python ..\gtkpc.py --prefix=$(CopyDir) --version=$(GtkVersion) --host=i686-pc-vs$(VSVer)</GenerateGtkPC>
|
||||
<GenerateGtkPCX64>$(PythonPathX64)\python ..\gtkpc.py --prefix=$(CopyDir) --version=$(GtkVersion) --host=x86_64-pc-vs$(VSVer)</GenerateGtkPCX64>
|
||||
<GtkPCFiles>..\gdk-3.0.pc;..\gtk+-3.0.pc;..\gail-3.0.pc</GtkPCFiles>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
|
@@ -1,107 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{A8092C4E-0A21-4B1D-AC82-16764E418D1F}</ProjectGuid>
|
||||
<RootNamespace>gtk3introspect</RootNamespace>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Makefile</ConfigurationType>
|
||||
<UseDebugLibraries>true</UseDebugLibraries>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<PlatformToolset>v100</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Makefile</ConfigurationType>
|
||||
<UseDebugLibraries>false</UseDebugLibraries>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<PlatformToolset>v100</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||
<ConfigurationType>Makefile</ConfigurationType>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<PlatformToolset>v100</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||
<ConfigurationType>Makefile</ConfigurationType>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<PlatformToolset>v100</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="gtk3-build-defines.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="gtk3-build-defines.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="gtk3-build-defines.props" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
<Import Project="gtk3-build-defines.props" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<NMakeBuildCommandLine>$(GtkIntrospectNMakeCmd) $(IntrospectPythonParam)</NMakeBuildCommandLine>
|
||||
<NMakeReBuildCommandLine>$(GtkIntrospectNMakeCmd) $(IntrospectPythonParam) clean all</NMakeReBuildCommandLine>
|
||||
<NMakeCleanCommandLine>$(GtkIntrospectNMakeCmd) $(IntrospectPythonParam) clean</NMakeCleanCommandLine>
|
||||
<NMakeOutput>$(GtkIntrospectBuiltFiles)</NMakeOutput>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<NMakeBuildCommandLine>$(GtkIntrospectNMakeCmd) $(IntrospectPythonParam)</NMakeBuildCommandLine>
|
||||
<NMakeReBuildCommandLine>$(GtkIntrospectNMakeCmd) $(IntrospectPythonParam) clean all</NMakeReBuildCommandLine>
|
||||
<NMakeCleanCommandLine>$(GtkIntrospectNMakeCmd) $(IntrospectPythonParam) clean</NMakeCleanCommandLine>
|
||||
<NMakeOutput>$(GtkIntrospectBuiltFiles)</NMakeOutput>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<NMakeBuildCommandLine>$(GtkIntrospectNMakeCmd) $(IntrospectPythonParam)</NMakeBuildCommandLine>
|
||||
<NMakeReBuildCommandLine>$(GtkIntrospectNMakeCmd) $(IntrospectPythonParam) clean all</NMakeReBuildCommandLine>
|
||||
<NMakeCleanCommandLine>$(GtkIntrospectNMakeCmd) $(IntrospectPythonParam) clean</NMakeCleanCommandLine>
|
||||
<NMakeOutput>$(GtkIntrospectBuiltFiles)</NMakeOutput>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<NMakeBuildCommandLine>$(GtkIntrospectNMakeCmd) $(IntrospectPythonParam)</NMakeBuildCommandLine>
|
||||
<NMakeReBuildCommandLine>$(GtkIntrospectNMakeCmd) $(IntrospectPythonParam) clean all</NMakeReBuildCommandLine>
|
||||
<NMakeCleanCommandLine>$(GtkIntrospectNMakeCmd) $(IntrospectPythonParam) clean</NMakeCleanCommandLine>
|
||||
<NMakeOutput>$(GtkIntrospectBuiltFiles)</NMakeOutput>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="gdk-3.vcxproj">
|
||||
<Project>{5ae8f5ce-9103-4951-aede-ea2f3b573be8}</Project>
|
||||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="gtk-3.vcxproj">
|
||||
<Project>{95a4b53d-2773-4406-a2c1-8fd2840bbad8}</Project>
|
||||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
@@ -41,46 +41,46 @@
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Makefile</ConfigurationType>
|
||||
<ConfigurationType>Utility</ConfigurationType>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<PlatformToolset>v100</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Makefile</ConfigurationType>
|
||||
<ConfigurationType>Utility</ConfigurationType>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<PlatformToolset>v100</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||
<ConfigurationType>Makefile</ConfigurationType>
|
||||
<ConfigurationType>Utility</ConfigurationType>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<PlatformToolset>v100</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||
<ConfigurationType>Makefile</ConfigurationType>
|
||||
<ConfigurationType>Utility</ConfigurationType>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<PlatformToolset>v100</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Makefile</ConfigurationType>
|
||||
<ConfigurationType>Utility</ConfigurationType>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<PlatformToolset>v100</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|Win32'" Label="Configuration">
|
||||
<ConfigurationType>Makefile</ConfigurationType>
|
||||
<ConfigurationType>Utility</ConfigurationType>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<PlatformToolset>v100</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|x64'" Label="Configuration">
|
||||
<ConfigurationType>Makefile</ConfigurationType>
|
||||
<ConfigurationType>Utility</ConfigurationType>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<WholeProgramOptimization>true</WholeProgramOptimization>
|
||||
<PlatformToolset>v100</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|x64'" Label="Configuration">
|
||||
<ConfigurationType>Makefile</ConfigurationType>
|
||||
<ConfigurationType>Utility</ConfigurationType>
|
||||
<CharacterSet>MultiByte</CharacterSet>
|
||||
<PlatformToolset>v100</PlatformToolset>
|
||||
</PropertyGroup>
|
||||
@@ -121,19 +121,121 @@
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup>
|
||||
<NMakeBuildCommandLine Condition="'$(Configuration)' == 'Debug_Broadway'">$(GenerateRequiredSourcesBase) CFG=Debug BROADWAY=1 $(IntrospectPythonParam)</NMakeBuildCommandLine>
|
||||
<NMakeBuildCommandLine Condition="'$(Configuration)' == 'Release_Broadway'">$(GenerateRequiredSourcesBase) CFG=Release BROADWAY=1 $(IntrospectPythonParam)</NMakeBuildCommandLine>
|
||||
<NMakeBuildCommandLine Condition="'$(Configuration)' == 'Debug'">$(GenerateRequiredSourcesBase) CFG=$(Configuration) $(IntrospectPythonParam)</NMakeBuildCommandLine>
|
||||
<NMakeBuildCommandLine Condition="'$(Configuration)' == 'Release'">$(GenerateRequiredSourcesBase) CFG=$(Configuration) $(IntrospectPythonParam)</NMakeBuildCommandLine>
|
||||
<NMakeReBuildCommandLine Condition="'$(Configuration)' == 'Debug_Broadway'">$(GenerateRequiredSourcesBase) CFG=Debug BROADWAY=1 $(IntrospectPythonParam) clean all</NMakeReBuildCommandLine>
|
||||
<NMakeReBuildCommandLine Condition="'$(Configuration)' == 'Release_Broadway'">$(GenerateRequiredSourcesBase) CFG=Release BROADWAY=1 $(IntrospectPythonParam) clean all</NMakeReBuildCommandLine>
|
||||
<NMakeReBuildCommandLine Condition="'$(Configuration)' == 'Debug'">$(GenerateRequiredSourcesBase) CFG=$(Configuration) $(IntrospectPythonParam) clean all</NMakeReBuildCommandLine>
|
||||
<NMakeReBuildCommandLine Condition="'$(Configuration)' == 'Release'">$(GenerateRequiredSourcesBase) CFG=$(Configuration) $(IntrospectPythonParam) clean all</NMakeReBuildCommandLine>
|
||||
<NMakeCleanCommandLine Condition="'$(Configuration)' == 'Debug_Broadway'">$(GenerateRequiredSourcesBase) CFG=Debug BROADWAY=1 $(IntrospectPythonParam) clean</NMakeCleanCommandLine>
|
||||
<NMakeCleanCommandLine Condition="'$(Configuration)' == 'Release_Broadway'">$(GenerateRequiredSourcesBase) CFG=Release BROADWAY=1 $(IntrospectPythonParam) clean</NMakeCleanCommandLine>
|
||||
<NMakeCleanCommandLine Condition="'$(Configuration)' == 'Debug'">$(GenerateRequiredSourcesBase) CFG=$(Configuration) $(IntrospectPythonParam) clean</NMakeCleanCommandLine>
|
||||
<NMakeCleanCommandLine Condition="'$(Configuration)' == 'Release'">$(GenerateRequiredSourcesBase) CFG=$(Configuration) $(IntrospectPythonParam) clean</NMakeCleanCommandLine>
|
||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(GlibEtcInstallRoot)\</OutDir>
|
||||
<ExtensionsToDeleteOnClean Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
|
||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(GlibEtcInstallRoot)\</OutDir>
|
||||
<ExtensionsToDeleteOnClean Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
|
||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(GlibEtcInstallRoot)\</OutDir>
|
||||
<ExtensionsToDeleteOnClean Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
|
||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(GlibEtcInstallRoot)\</OutDir>
|
||||
<ExtensionsToDeleteOnClean Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
|
||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|Win32'">$(GlibEtcInstallRoot)\</OutDir>
|
||||
<ExtensionsToDeleteOnClean Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|Win32'" />
|
||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|x64'">$(GlibEtcInstallRoot)\</OutDir>
|
||||
<ExtensionsToDeleteOnClean Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|x64'" />
|
||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|Win32'">$(GlibEtcInstallRoot)\</OutDir>
|
||||
<ExtensionsToDeleteOnClean Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|Win32'" />
|
||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|x64'">$(GlibEtcInstallRoot)\</OutDir>
|
||||
<ExtensionsToDeleteOnClean Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|x64'" />
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|Win32'">
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|x64'">
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|Win32'">
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|x64'">
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<CustomBuild Include="..\..\..\config.h.win32">
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Copying config.h from config.h.win32...</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(GenConfigH)</Command>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\..\config.h;%(Outputs)</Outputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|Win32'">Copying config.h from config.h.win32...</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|Win32'">$(GenConfigH)</Command>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|Win32'">..\..\..\config.h;%(Outputs)</Outputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Copying config.h from config.h.win32...</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(GenConfigH)</Command>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">..\..\..\config.h;%(Outputs)</Outputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|x64'">Copying config.h from config.h.win32...</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|x64'">$(GenConfigH)</Command>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|x64'">..\..\..\config.h;%(Outputs)</Outputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Copying config.h from config.h.win32...</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(GenConfigH)</Command>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\..\config.h;%(Outputs)</Outputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|Win32'">Copying config.h from config.h.win32...</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|Win32'">$(GenConfigH)</Command>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|Win32'">..\..\..\config.h;%(Outputs)</Outputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Copying config.h from config.h.win32...</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(GenConfigH)</Command>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">..\..\..\config.h;%(Outputs)</Outputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|x64'">Copying config.h from config.h.win32...</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|x64'">$(GenConfigH)</Command>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|x64'">..\..\..\config.h;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\..\..\gdk\gdkconfig.h.win32">
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Copying gdkconfig from gdkconfig.win32...</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(GenGdkConfigHWin32)</Command>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\..\gdk\gdkconfig.h;..\..\..\GDK_WIN32ONLY_BUILD;..\..\..\MSVC_$(Configuration);%(Outputs)</Outputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Copying gdkconfig from gdkconfig.win32...</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(GenGdkConfigHWin32)</Command>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">..\..\..\gdk\gdkconfig.h;..\..\..\GDK_WIN32ONLY_BUILD;..\..\..\MSVC_$(Configuration);%(Outputs)</Outputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Copying gdkconfig from gdkconfig.win32...</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(GenGdkConfigHWin32)</Command>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\..\gdk\gdkconfig.h;..\..\..\GDK_WIN32ONLY_BUILD;..\..\..\MSVC_$(Configuration);%(Outputs)</Outputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Copying gdkconfig from gdkconfig.win32...</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(GenGdkConfigHWin32)</Command>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">..\..\..\gdk\gdkconfig.h;..\..\..\GDK_WIN32ONLY_BUILD;..\..\..\MSVC_$(Configuration);%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\..\..\gdk\gdkconfig.h.win32_broadway">
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|Win32'">Copying gdkconfig from gdkconfig.win32_broadway...</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|Win32'">$(GenGdkConfigHBroadway)</Command>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|Win32'">..\..\..\gdk\gdkconfig.h;..\..\..\GDK_BROADWAY_BUILD;..\..\..\MSVC_$(Configuration)_Broadway;%(Outputs)</Outputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|x64'">Copying gdkconfig from gdkconfig.win32_broadway...</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|x64'">$(GenGdkConfigHBroadway)</Command>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|x64'">..\..\..\gdk\gdkconfig.h;..\..\..\GDK_BROADWAY_BUILD;..\..\..\MSVC_$(Configuration)_Broadway;%(Outputs)</Outputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|Win32'">Copying gdkconfig from gdkconfig.win32_broadway...</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|Win32'">$(GenGdkConfigHBroadway)</Command>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|Win32'">..\..\..\gdk\gdkconfig.h;..\..\..\GDK_BROADWAY_BUILD;..\..\..\MSVC_$(Configuration)_Broadway;%(Outputs)</Outputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|x64'">Copying gdkconfig from gdkconfig.win32_broadway...</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|x64'">$(GenGdkConfigHBroadway)</Command>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|x64'">..\..\..\gdk\gdkconfig.h;..\..\..\GDK_BROADWAY_BUILD;..\..\..\MSVC_$(Configuration)_Broadway;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
<CustomBuild Include="..\..\..\demos\gtk-demo\demos.h.win32">
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Copying demos.h from demos.h.win32...</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(CopyDemosH)</Command>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\..\demos\gtk-demo\demos.h;%(Outputs)</Outputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|Win32'">Copying demos.h from demos.h.win32...</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|Win32'">$(CopyDemosH)</Command>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|Win32'">..\..\..\demos\gtk-demo\demos.h;%(Outputs)</Outputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Copying demos.h from demos.h.win32...</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(CopyDemosH)</Command>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">..\..\..\demos\gtk-demo\demos.h;%(Outputs)</Outputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|x64'">Copying demos.h from demos.h.win32...</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|x64'">$(CopyDemosH)</Command>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug_Broadway|x64'">..\..\..\demos\gtk-demo\demos.h;%(Outputs)</Outputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Copying demos.h from demos.h.win32...</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(CopyDemosH)</Command>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\..\demos\gtk-demo\demos.h;%(Outputs)</Outputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|Win32'">Copying demos.h from demos.h.win32...</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|Win32'">$(CopyDemosH)</Command>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|Win32'">..\..\..\demos\gtk-demo\demos.h;%(Outputs)</Outputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Copying demos.h from demos.h.win32...</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(CopyDemosH)</Command>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">..\..\..\demos\gtk-demo\demos.h;%(Outputs)</Outputs>
|
||||
<Message Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|x64'">Copying demos.h from demos.h.win32...</Message>
|
||||
<Command Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|x64'">$(CopyDemosH)</Command>
|
||||
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release_Broadway|x64'">..\..\..\demos\gtk-demo\demos.h;%(Outputs)</Outputs>
|
||||
</CustomBuild>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
|
15
build/win32/vs10/gtk3-prebuild.vcxproj.filters
Normal file
15
build/win32/vs10/gtk3-prebuild.vcxproj.filters
Normal file
@@ -0,0 +1,15 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="Resource Files">
|
||||
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
||||
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<CustomBuild Include="..\..\..\config.h.win32"><Filter>Resource Files</Filter></CustomBuild>
|
||||
<CustomBuild Include="..\..\..\gdk\gdkconfig.h.win32"><Filter>Resource Files</Filter></CustomBuild>
|
||||
<CustomBuild Include="..\..\..\gdk\gdkconfig.h.win32_broadway"><Filter>Resource Files</Filter></CustomBuild>
|
||||
<CustomBuild Include="..\..\..\demos\gtk-demo\demos.h.win32"><Filter>Resource Files</Filter></CustomBuild>
|
||||
</ItemGroup>
|
||||
</Project>
|
@@ -12,19 +12,8 @@
|
||||
<GtkSeparateVSDllSuffix>-vs$(VSVer)</GtkSeparateVSDllSuffix>
|
||||
<GtkDllPrefix>$(GtkSeparateVSDllPrefix)</GtkDllPrefix>
|
||||
<GtkDllSuffix>$(GtkSeparateVSDllSuffix)</GtkDllSuffix>
|
||||
<PythonDir Condition="'$(VisualStudioVersion)|$(Platform)' == '10.0|Win32'">c:\python34</PythonDir>
|
||||
<PythonDir Condition="'$(VisualStudioVersion)|$(Platform)' == '11.0|Win32'">c:\python34</PythonDir>
|
||||
<PythonDir Condition="'$(VisualStudioVersion)|$(Platform)' == '12.0|Win32'">c:\python34</PythonDir>
|
||||
<PythonDir Condition="'$(VisualStudioVersion)|$(Platform)' == '14.0|Win32'">c:\python36</PythonDir>
|
||||
<PythonDir Condition="'$(VisualStudioVersion)|$(Platform)' == '15.0|Win32'">c:\python36</PythonDir>
|
||||
<PythonDir Condition="'$(VisualStudioVersion)|$(Platform)' == '16.0|Win32'">c:\python36</PythonDir>
|
||||
<PythonDir Condition="'$(VisualStudioVersion)|$(Platform)' == '10.0|x64'">c:\python34.x64</PythonDir>
|
||||
<PythonDir Condition="'$(VisualStudioVersion)|$(Platform)' == '11.0|x64'">c:\python34.x64</PythonDir>
|
||||
<PythonDir Condition="'$(VisualStudioVersion)|$(Platform)' == '12.0|x64'">c:\python34.x64</PythonDir>
|
||||
<PythonDir Condition="'$(VisualStudioVersion)|$(Platform)' == '14.0|x64'">c:\python36.x64</PythonDir>
|
||||
<PythonDir Condition="'$(VisualStudioVersion)|$(Platform)' == '15.0|x64'">c:\python36.x64</PythonDir>
|
||||
<PythonDir Condition="'$(VisualStudioVersion)|$(Platform)' == '16.0|x64'">c:\python36.x64</PythonDir>
|
||||
<IntrospectPythonParam>PYTHON=$(PythonDir)\python.exe</IntrospectPythonParam>
|
||||
<PythonPath>c:\python34</PythonPath>
|
||||
<PythonPathX64>$(PythonPath).x64</PythonPathX64>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<_PropertySheetDisplayName>gtk3versionpathsprops</_PropertySheetDisplayName>
|
||||
@@ -63,11 +52,11 @@
|
||||
<BuildMacro Include="GtkDllSuffix">
|
||||
<Value>$(GtkDllSuffix)</Value>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="PythonDir">
|
||||
<Value>$(PythonDir)</Value>
|
||||
<BuildMacro Include="PythonPath">
|
||||
<Value>$(PythonPath)</Value>
|
||||
</BuildMacro>
|
||||
<BuildMacro Include="IntrospectPythonParam">
|
||||
<Value>$(IntrospectPythonParam)</Value>
|
||||
<BuildMacro Include="PythonPathX64">
|
||||
<Value>$(PythonPathX64)</Value>
|
||||
</BuildMacro>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
|
@@ -4,6 +4,7 @@ EXTRA_DIST += \
|
||||
README.txt \
|
||||
gtk+.sln \
|
||||
gtk3-prebuild.vcxproj \
|
||||
gtk3-prebuild.vcxproj.filters \
|
||||
gdk3-win32.vcxproj \
|
||||
gdk3-win32.vcxproj.filters \
|
||||
gdk-3.vcxproj \
|
||||
@@ -28,7 +29,6 @@ EXTRA_DIST += \
|
||||
gailutil-3.vcxproj.filters \
|
||||
gtk3-install.vcxproj \
|
||||
gtk3-install.vcxproj.filters \
|
||||
gtk3-introspect.vcxproj \
|
||||
broadwayd.vcxproj \
|
||||
broadwayd.vcxproj.filters \
|
||||
gdk3-broadway.vcxproj \
|
||||
|
@@ -4,6 +4,7 @@ EXTRA_DIST += \
|
||||
README.txt \
|
||||
gtk+.sln \
|
||||
gtk3-prebuild.vcxproj \
|
||||
gtk3-prebuild.vcxproj.filters \
|
||||
gdk3-win32.vcxproj \
|
||||
gdk3-win32.vcxproj.filters \
|
||||
gdk-3.vcxproj \
|
||||
@@ -28,7 +29,6 @@ EXTRA_DIST += \
|
||||
gailutil-3.vcxproj.filters \
|
||||
gtk3-install.vcxproj \
|
||||
gtk3-install.vcxproj.filters \
|
||||
gtk3-introspect.vcxproj \
|
||||
broadwayd.vcxproj \
|
||||
broadwayd.vcxproj.filters \
|
||||
gdk3-broadway.vcxproj \
|
||||
|
@@ -4,6 +4,7 @@ EXTRA_DIST += \
|
||||
README.txt \
|
||||
gtk+.sln \
|
||||
gtk3-prebuild.vcxproj \
|
||||
gtk3-prebuild.vcxproj.filters \
|
||||
gdk3-win32.vcxproj \
|
||||
gdk3-win32.vcxproj.filters \
|
||||
gdk-3.vcxproj \
|
||||
@@ -28,7 +29,6 @@ EXTRA_DIST += \
|
||||
gailutil-3.vcxproj.filters \
|
||||
gtk3-install.vcxproj \
|
||||
gtk3-install.vcxproj.filters \
|
||||
gtk3-introspect.vcxproj \
|
||||
broadwayd.vcxproj \
|
||||
broadwayd.vcxproj.filters \
|
||||
gdk3-broadway.vcxproj \
|
||||
|
@@ -4,6 +4,7 @@ EXTRA_DIST += \
|
||||
README.txt \
|
||||
gtk+.sln \
|
||||
gtk3-prebuild.vcxproj \
|
||||
gtk3-prebuild.vcxproj.filters \
|
||||
gdk3-win32.vcxproj \
|
||||
gdk3-win32.vcxproj.filters \
|
||||
gdk-3.vcxproj \
|
||||
@@ -28,7 +29,6 @@ EXTRA_DIST += \
|
||||
gailutil-3.vcxproj.filters \
|
||||
gtk3-install.vcxproj \
|
||||
gtk3-install.vcxproj.filters \
|
||||
gtk3-introspect.vcxproj \
|
||||
broadwayd.vcxproj \
|
||||
broadwayd.vcxproj.filters \
|
||||
gdk3-broadway.vcxproj \
|
||||
|
@@ -1,52 +0,0 @@
|
||||
include $(top_srcdir)/Makefile.decl
|
||||
|
||||
EXTRA_DIST += \
|
||||
README.txt \
|
||||
gtk+.sln \
|
||||
gtk3-prebuild.vcxproj \
|
||||
gdk3-win32.vcxproj \
|
||||
gdk3-win32.vcxproj.filters \
|
||||
gdk-3.vcxproj \
|
||||
gdk-3.vcxproj.filters \
|
||||
gtk-3.vcxproj \
|
||||
gtk-3.vcxproj.filters \
|
||||
gtk-builder-tool.vcxproj \
|
||||
gtk-builder-tool.vcxproj.filters \
|
||||
gtk-encode-symbolic-svg.vcxproj \
|
||||
gtk-encode-symbolic-svg.vcxproj.filters \
|
||||
gtk-query-settings.vcxproj \
|
||||
gtk-query-settings.vcxproj.filters \
|
||||
gtk-update-icon-cache.vcxproj \
|
||||
gtk-update-icon-cache.vcxproj.filters \
|
||||
gtk3-demo.vcxproj \
|
||||
gtk3-demo.vcxproj.filters \
|
||||
gtk3-demo-application.vcxproj \
|
||||
gtk3-demo-application.vcxproj.filters \
|
||||
gtk3-icon-browser.vcxproj \
|
||||
gtk3-icon-browser.vcxproj.filters \
|
||||
gailutil-3.vcxproj \
|
||||
gailutil-3.vcxproj.filters \
|
||||
gtk3-install.vcxproj \
|
||||
gtk3-install.vcxproj.filters \
|
||||
gtk3-introspect.vcxproj \
|
||||
broadwayd.vcxproj \
|
||||
broadwayd.vcxproj.filters \
|
||||
gdk3-broadway.vcxproj \
|
||||
gdk3-broadway.vcxproj.filters \
|
||||
gtk3-build-defines.props \
|
||||
gtk3-copy-gdk-broadway.props \
|
||||
gtk3-gen-srcs.props \
|
||||
gtk3-ignore-broadway.props \
|
||||
gtk3-install.props \
|
||||
gtk3-version-paths.props
|
||||
|
||||
DISTCLEANFILES = $(EXTRA_DIST)
|
||||
|
||||
MSVC_VER = 16
|
||||
MSVC_VER_LONG = 16
|
||||
MSVC_TOOLSET = 142
|
||||
MSVC_FORMAT_VER = 12
|
||||
|
||||
include $(top_srcdir)/build/Makefile-newvs.am
|
||||
|
||||
-include $(top_srcdir)/git.mk
|
@@ -36,7 +36,6 @@ EXTRA_DIST += \
|
||||
gtk3-icon-browser.vcprojin \
|
||||
gailutil-3.vcprojin \
|
||||
gtk3-install.vcproj \
|
||||
gtk3-introspect.vcproj \
|
||||
broadwayd.vcprojin \
|
||||
gdk3-broadway.vcprojin \
|
||||
gtk3-build-defines.vsprops \
|
||||
|
@@ -23,8 +23,8 @@ You will also need a Python 2.6+/3.x interpretor installed on your system,
|
||||
which can be obtained from the official installers available from
|
||||
http://www.python.org. Please note that the Python interpretor (python.exe)
|
||||
either needs to be in your PATH before attempting the build of GTK+, or it
|
||||
can be found in the path specified by PythonDir in gtk-version-paths.vsprops.
|
||||
If you happen to change the PythonDir setting in gtk-version-paths.vsprops after
|
||||
can be found in the path specified by PythonPath in gtk-version-paths.vsprops.
|
||||
If you happen to change the PythonPath setting in gtk-version-paths.vsprops after
|
||||
opening gtk+.sln with Visual Studio, you will need to close the gtk+.sln solution,
|
||||
delete all the *.ncb, *.suo and *.user files before re-attempting the build.
|
||||
|
||||
@@ -80,21 +80,6 @@ built DLLs go into <root>\vs9\<PlatformName>\bin, built LIBs into
|
||||
project files higher in the stack are supposed to look for them, not
|
||||
from a specific GLib source tree.
|
||||
|
||||
There is now a "gtk3-introspect" project that is used to build the
|
||||
introspection files. In order for this to work, check that the paths for
|
||||
PythonDir (32-bit builds) and PythonDirX64 (x64 builds) are correct for your
|
||||
system. Note that it must be the same Python installation that was used to
|
||||
build GObject-Introspection (G-I), and a complete G-I build/installation
|
||||
needs to be found in <root>\vs9\<PlatformName>\, with the introspection files
|
||||
for ATK, Pango and GDK-Pixbuf. Note also that this is not built by default,
|
||||
so you will need to right-click on the project to build it, which will build
|
||||
and "install" the other projects that are normally built, if those were not yet
|
||||
built. The introspection files that are built will be "installed" to
|
||||
<root>\vs9\<PlatformName>\share\gir-1.0 (the .gir file(s)) and
|
||||
<root>\vs9\<PlatformName>\lib\girepository-1.0 (the .typelib files(s)) upon
|
||||
successful build. for building this in a different configuration, therefore,
|
||||
you will need to clean this project specifically and then rebuild.
|
||||
|
||||
Please note, as GTK+ uses the Adwaita theme for all platforms by default,
|
||||
most icons used are not included with GTK+ (which *are* needed), so please see
|
||||
https://live.gnome.org/GTK%2B/Win32/MSVCCompilationOfGTKStack (under the
|
||||
|
@@ -89,12 +89,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gtk3-install", "gtk3-instal
|
||||
{9F22107A-3EF7-4B52-B269-747B65307F36} = {9F22107A-3EF7-4B52-B269-747B65307F36}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gtk3-introspect", "gtk3-introspect.vcproj", "{A8092C4E-0A21-4B1D-AC82-16764E418D1F}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{5AE8F5CE-9103-4951-AEDE-EA2F3B573BE8} = {5AE8F5CE-9103-4951-AEDE-EA2F3B573BE8}
|
||||
{95A4B53D-2773-4406-A2C1-8FD2840BBAD8} = {95A4B53D-2773-4406-A2C1-8FD2840BBAD8}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Win32 = Debug|Win32
|
||||
@@ -331,14 +325,6 @@ Global
|
||||
{9F22107A-3EF7-4B52-B269-747B65307F36}.Release_Broadway|Win32.Build.0 = Release|Win32
|
||||
{9F22107A-3EF7-4B52-B269-747B65307F36}.Release_Broadway|x64.ActiveCfg = Release|x64
|
||||
{9F22107A-3EF7-4B52-B269-747B65307F36}.Release_Broadway|x64.Build.0 = Release|x64
|
||||
{A8092C4E-0A21-4B1D-AC82-16764E418D1F}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{A8092C4E-0A21-4B1D-AC82-16764E418D1F}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{A8092C4E-0A21-4B1D-AC82-16764E418D1F}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{A8092C4E-0A21-4B1D-AC82-16764E418D1F}.Release|x64.ActiveCfg = Release|x64
|
||||
{A8092C4E-0A21-4B1D-AC82-16764E418D1F}.Debug_Broadway|Win32.ActiveCfg = Debug|Win32
|
||||
{A8092C4E-0A21-4B1D-AC82-16764E418D1F}.Debug_Broadway|x64.ActiveCfg = Debug|x64
|
||||
{A8092C4E-0A21-4B1D-AC82-16764E418D1F}.Release_Broadway|Win32.ActiveCfg = Release|Win32
|
||||
{A8092C4E-0A21-4B1D-AC82-16764E418D1F}.Release_Broadway|x64.ActiveCfg = Release|x64
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
|
@@ -162,6 +162,96 @@
|
||||
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
|
||||
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
|
||||
>
|
||||
<File RelativePath="..\..\..\gtk\gtkdbusinterfaces.xml">
|
||||
<FileConfiguration Name="Debug|Win32">
|
||||
<Tool Name="VCCustomBuildTool"
|
||||
Description="Generating GTK+ DBus Sources..."
|
||||
CommandLine="$(GenerateGtkDbusBuiltSources)"
|
||||
Outputs="..\..\..\gtk\gtkdbusgenerated.c;..\..\..\gtk\gtkdbusgenerated.h"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration Name="Release|Win32">
|
||||
<Tool Name="VCCustomBuildTool"
|
||||
Description="Generating GTK+ DBus Sources..."
|
||||
CommandLine="$(GenerateGtkDbusBuiltSources)"
|
||||
Outputs="..\..\..\gtk\gtkdbusgenerated.c;..\..\..\gtk\gtkdbusgenerated.h"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration Name="Debug|x64">
|
||||
<Tool Name="VCCustomBuildTool"
|
||||
Description="Generating GTK+ DBus Sources..."
|
||||
CommandLine="$(GenerateGtkDbusBuiltSourcesX64)"
|
||||
Outputs="..\..\..\gtk\gtkdbusgenerated.c;..\..\..\gtk\gtkdbusgenerated.h"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration Name="Release|x64">
|
||||
<Tool Name="VCCustomBuildTool"
|
||||
Description="Generating GTK+ DBus Sources..."
|
||||
CommandLine="$(GenerateGtkDbusBuiltSourcesX64)"
|
||||
Outputs="..\..\..\gtk\gtkdbusgenerated.c;..\..\..\gtk\gtkdbusgenerated.h"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File RelativePath="..\..\..\gtk\gtk-win32.rc.body">
|
||||
<FileConfiguration Name="Debug|Win32">
|
||||
<Tool Name="VCCustomBuildTool"
|
||||
Description="Copying GTK+ Win32 Version Resource..."
|
||||
CommandLine="$(CopyGtkWin32RC)"
|
||||
Outputs="..\..\..\gtk\gtk-win32.rc"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration Name="Release|Win32">
|
||||
<Tool Name="VCCustomBuildTool"
|
||||
Description="Copying GTK+ Win32 Version Resource..."
|
||||
CommandLine="$(CopyGtkWin32RC)"
|
||||
Outputs="..\..\..\gtk\gtk-win32.rc"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration Name="Debug|x64">
|
||||
<Tool Name="VCCustomBuildTool"
|
||||
Description="Copying GTK+ Win32 Version Resource..."
|
||||
CommandLine="$(CopyGtkWin32RC)"
|
||||
Outputs="..\..\..\gtk\gtk-win32.rc"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration Name="Release|x64">
|
||||
<Tool Name="VCCustomBuildTool"
|
||||
Description="Copying GTK+ Win32 Version Resource..."
|
||||
CommandLine="$(CopyGtkWin32RC)"
|
||||
Outputs="..\..\..\gtk\gtk-win32.rc"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File RelativePath="..\..\..\gtk\libgtk3.manifest.in">
|
||||
<FileConfiguration Name="Debug|Win32">
|
||||
<Tool Name="VCCustomBuildTool"
|
||||
Description="Generating GTK+ Win32 Manifest..."
|
||||
CommandLine="$(GenerateGtkWin32Manifest)"
|
||||
Outputs="..\..\..\gtk\libgtk3.manifest"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration Name="Release|Win32">
|
||||
<Tool Name="VCCustomBuildTool"
|
||||
Description="Generating GTK+ Win32 Manifest..."
|
||||
CommandLine="$(GenerateGtkWin32Manifest)"
|
||||
Outputs="..\..\..\gtk\libgtk3.manifest"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration Name="Debug|x64">
|
||||
<Tool Name="VCCustomBuildTool"
|
||||
Description="Generating GTK+ Win32 Manifest..."
|
||||
CommandLine="$(GenerateGtkWin32Manifest)"
|
||||
Outputs="..\..\..\gtk\libgtk3.manifest"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration Name="Release|x64">
|
||||
<Tool Name="VCCustomBuildTool"
|
||||
Description="Generating GTK+ Win32 Manifest..."
|
||||
CommandLine="$(GenerateGtkWin32Manifest)"
|
||||
Outputs="..\..\..\gtk\libgtk3.manifest"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File RelativePath="..\..\..\gtk\gtk-win32.rc" />
|
||||
<File RelativePath="..\..\..\gtk\libgtk3.manifest" />
|
||||
</Filter>
|
||||
|
@@ -9,7 +9,7 @@
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="..\..\..;$(GlibEtcInstallRoot)\include\gdk-pixbuf-2.0;$(GlibEtcInstallRoot)\include\pango-1.0;$(GlibEtcInstallRoot)\include\atk-1.0;$(GlibEtcInstallRoot)\include\cairo;$(GlibEtcInstallRoot)\include\gio-win32-2.0;$(GlibEtcInstallRoot)\include\glib-2.0;$(GlibEtcInstallRoot)\lib\glib-2.0\include;$(GlibEtcInstallRoot)\include\fribidi;$(GlibEtcInstallRoot)\include"
|
||||
AdditionalIncludeDirectories="..\..\..;$(GlibEtcInstallRoot)\include\gdk-pixbuf-2.0;$(GlibEtcInstallRoot)\include\pango-1.0;$(GlibEtcInstallRoot)\include\atk-1.0;$(GlibEtcInstallRoot)\include\cairo;$(GlibEtcInstallRoot)\include\gio-win32-2.0;$(GlibEtcInstallRoot)\include\glib-2.0;$(GlibEtcInstallRoot)\lib\glib-2.0\include;$(GlibEtcInstallRoot)\include"
|
||||
PreprocessorDefinitions="HAVE_CONFIG_H;G_DISABLE_SINGLE_INCLUDES;ATK_DISABLE_SINGLE_INCLUDES;GDK_PIXBUF_DISABLE_SINGLE_INCLUDES;GTK_DISABLE_SINGLE_INCLUDES;_USE_MATH_DEFINES"
|
||||
ForcedIncludeFiles="msvc_recommended_pragmas.h"
|
||||
AdditionalOptions="/MP"
|
||||
@@ -45,7 +45,7 @@
|
||||
/>
|
||||
<UserMacro
|
||||
Name="GtkGdkCommonLibs"
|
||||
Value="pangowin32-1.0.lib fribidi.lib imm32.lib"
|
||||
Value="imm32.lib"
|
||||
/>
|
||||
<UserMacro
|
||||
Name="GdkBroadwayAdditionalLibs"
|
||||
@@ -57,14 +57,6 @@
|
||||
/>
|
||||
<UserMacro
|
||||
Name="GtkAdditionalLibs"
|
||||
Value="atk-1.0.lib winspool.lib comctl32.lib $(GtkGdkCommonLibs)"
|
||||
/>
|
||||
<UserMacro
|
||||
Name="GtkIntrospectNMakeCmd"
|
||||
Value="cd ..
set VCInstallDir=$(VCInstallDir)
nmake -f gtk-introspection-msvc.mak CFG=$(ConfigurationName) PREFIX=$(GlibEtcInstallRoot)"
|
||||
/>
|
||||
<UserMacro
|
||||
Name="GtkIntrospectBuiltFiles"
|
||||
Value="$(SolutionDir)\$(ConfigurationName)\$(PlatformName)\bin\Gtk-3.0.gir;$(SolutionDir)\$(ConfigurationName)\$(PlatformName)\bin\Gtk-3.0.typelib;$(SolutionDir)\$(ConfigurationName)\$(PlatformName)\bin\GdkWin32-3.0.gir;$(SolutionDir)\$(ConfigurationName)\$(PlatformName)\bin\GdkWin32-3.0.typelib;$(SolutionDir)\$(ConfigurationName)\$(PlatformName)\bin\Gdk-3.0.gir;$(SolutionDir)\$(ConfigurationName)\$(PlatformName)\bin\Gdk-3.0.typelib"
|
||||
Value="atk-1.0.lib pangowin32-1.0.lib winspool.lib comctl32.lib $(GtkGdkCommonLibs)"
|
||||
/>
|
||||
</VisualStudioPropertySheet>
|
||||
|
@@ -47,6 +47,7 @@
|
||||
LinkIncremental="1"
|
||||
GenerateDebugInformation="true"
|
||||
SubSystem="1"
|
||||
RandomizedBaseAddress="1"
|
||||
DataExecutionPrevention="0"
|
||||
TargetMachine="1"
|
||||
/>
|
||||
@@ -79,6 +80,7 @@
|
||||
LinkIncremental="1"
|
||||
GenerateDebugInformation="true"
|
||||
SubSystem="1"
|
||||
RandomizedBaseAddress="1"
|
||||
DataExecutionPrevention="0"
|
||||
TargetMachine="17"
|
||||
/>
|
||||
@@ -111,6 +113,7 @@
|
||||
SubSystem="1"
|
||||
OptimizeReferences="2"
|
||||
EnableCOMDATFolding="2"
|
||||
RandomizedBaseAddress="1"
|
||||
DataExecutionPrevention="0"
|
||||
TargetMachine="1"
|
||||
/>
|
||||
@@ -143,6 +146,7 @@
|
||||
SubSystem="1"
|
||||
OptimizeReferences="2"
|
||||
EnableCOMDATFolding="2"
|
||||
RandomizedBaseAddress="1"
|
||||
DataExecutionPrevention="0"
|
||||
TargetMachine="17"
|
||||
/>
|
||||
|
@@ -6,19 +6,76 @@
|
||||
InheritedPropertySheets=".\gtk3-build-defines.vsprops"
|
||||
>
|
||||
<UserMacro
|
||||
Name="GenerateRequiredSourcesBase"
|
||||
Value="cd ..
set VCInstallDir=$(VCInstallDir)
nmake -f generate-msvc.mak PREFIX=$(GlibEtcInstallRoot)"
|
||||
Name="GenConfigH"
|
||||
Value="
|
||||
copy ..\..\..\config.h.win32 ..\..\..\config.h
|
||||
"
|
||||
/>
|
||||
<UserMacro
|
||||
Name="GeneratedGdkSources"
|
||||
Value="..\..\..\config.h;..\..\..\gdk\gdkconfig.h;..\..\gdk\gdkversionmacros.h;..\..\..\gdk\gdkmarshalers.h;..\..\..\gdk\gdkmarshalers.c;..\..\..\gdk\gdkresources.h;..\..\..\gdk\gdkresources.c"
|
||||
Name="GenGdkConfigHWin32"
|
||||
Value="
|
||||
if exist ..\..\..\MSVC_$(ConfigurationName) goto DONE_GDKCONFIG_H

|
||||
|
||||
if exist ..\..\..\gdk\gdkconfig.h del ..\..\..\gdk\gdkconfig.h

|
||||
if exist ..\..\..\GDK_BROADWAY_BUILD del ..\..\..\GDK_BROADWAY_BUILD

|
||||
if exist ..\..\..\MSVC_$(ConfigurationName)_Broadway del ..\..\..\MSVC_$(ConfigurationName)_Broadway

|
||||
|
||||
if exist $(ConfigurationName)\$(PlatformName)\bin\$(GtkDllPrefix)gdk$(GtkDllSuffix).dll del $(ConfigurationName)\$(PlatformName)\bin\$(GtkDllPrefix)gdk$(GtkDllSuffix).dll

|
||||
if exist $(ConfigurationName)\$(PlatformName)\bin\gdk-$(ApiVersion).lib del $(ConfigurationName)\$(PlatformName)\bin\gdk-$(ApiVersion).lib

|
||||
|
||||
if "$(ConfigurationName)" == "Release" del ..\..\..\MSVC_Debug

|
||||
if "$(ConfigurationName)" == "Debug" del ..\..\..\MSVC_Release

|
||||
|
||||
copy ..\..\..\gdk\gdkconfig.h.win32 ..\..\..\gdk\gdkconfig.h

|
||||
copy ..\..\..\gdk\gdkconfig.h.win32 ..\..\..\GDK_WIN32ONLY_BUILD

|
||||
|
||||
echo $(ConfigurationName) > ..\..\..\MSVC_$(ConfigurationName)

|
||||
:DONE_GDKCONFIG_H

|
||||
"
|
||||
/>
|
||||
<UserMacro
|
||||
Name="GeneratedGtkSources"
|
||||
Value="..\..\..\gtk\gtk-win32.rc;..\..\..\gtk\libgtk3.manifest;..\..\..\gtk\gtkdbusgenerated.h;..\..\..\gtk\gtkdbusgenerated.c"
|
||||
Name="GenGdkConfigHBroadway"
|
||||
Value="
|
||||
if exist ..\..\..\MSVC_$(ConfigurationName)_Broadway goto DONE_GDKCONFIG_H

|
||||
|
||||
if exist ..\..\..\gdk\gdkconfig.h del ..\..\..\gdk\gdkconfig.h

|
||||
if exist ..\..\..\GDK_WIN32ONLY_BUILD del ..\..\..\GDK_WIN32ONLY_BUILD

|
||||
|
||||
if exist ..\..\..\MSVC_Release del ..\..\..\MSVC_Release

|
||||
if exist ..\..\..\MSVC_Debug del ..\..\..\MSVC_Debug

|
||||
|
||||
if "$(ConfigurationName)" == "Release_Broadway" del ..\..\..\MSVC_Debug_Broadway

|
||||
if "$(ConfigurationName)" == "Debug_Broadway" del ..\..\..\MSVC_Release_Broadway

|
||||
|
||||
copy ..\..\..\gdk\gdkconfig.h.win32_broadway ..\..\..\gdk\gdkconfig.h

|
||||
copy ..\..\..\gdk\gdkconfig.h.win32_broadway ..\..\..\GDK_BROADWAY_BUILD

|
||||
|
||||
echo $(ConfigurationName) > ..\..\..\MSVC_$(ConfigurationName)_Broadway

|
||||
:DONE_GDKCONFIG_H

|
||||
"
|
||||
/>
|
||||
<UserMacro
|
||||
Name="GeneratedDemoSources"
|
||||
Value="..\..\..\demos\gtk-demo\demos.h"
|
||||
Name="GDbusCodeGenCmd"
|
||||
Value="$(GlibEtcInstallRoot)\bin\gdbus-codegen --interface-prefix org.Gtk. --c-namespace _Gtk --generate-c-code gtkdbusgenerated ./gtkdbusinterfaces.xml"
|
||||
/>
|
||||
<UserMacro
|
||||
Name="GenerateGtkDbusBuiltSources"
|
||||
Value="cd ..\..\..\gtk & $(PythonPath)\python $(GDbusCodeGenCmd) & cd $(SolutionDir)"
|
||||
/>
|
||||
<UserMacro
|
||||
Name="GenerateGtkDbusBuiltSourcesX64"
|
||||
Value="cd ..\..\..\gtk & $(PythonPathX64)\python $(GDbusCodeGenCmd) & cd $(SolutionDir)"
|
||||
/>
|
||||
<UserMacro
|
||||
Name="CopyGtkWin32RC"
|
||||
Value="copy ..\..\..\gtk\gtk-win32.rc.body ..\..\..\gtk\gtk-win32.rc"
|
||||
/>
|
||||
<UserMacro
|
||||
Name="GenerateGtkWin32Manifest"
|
||||
Value="$(PythonPath)\python ..\replace.py --action=replace-var --input=..\..\..\gtk\libgtk3.manifest.in --output=..\..\..\gtk\libgtk3.manifest --var=EXE_MANIFEST_ARCHITECTURE --outstring=*"
|
||||
/>
|
||||
<UserMacro
|
||||
Name="CopyDemosH"
|
||||
Value="copy ..\..\..\demos\gtk-demo\demos.h.win32 ..\..\..\demos\gtk-demo\demos.h"
|
||||
/>
|
||||
</VisualStudioPropertySheet>
|
||||
|
@@ -9,9 +9,7 @@
|
||||
Name="GtkDoInstallBin"
|
||||
Value="
|
||||
mkdir $(CopyDir)\bin

|
||||
mkdir $(CopyDir)\share\gir-1.0

|
||||
mkdir $(CopyDir)\lib\pkgconfig

|
||||
mkdir $(CopyDir)\lib\girepository-1.0

|
||||
|
||||
copy $(ConfigurationName)\$(PlatformName)\bin\$(GtkDllPrefix)gdk-3$(GtkDllSuffix).dll $(CopyDir)\bin

|
||||
copy $(ConfigurationName)\$(PlatformName)\bin\$(GtkDllPrefix)gdk-3$(GtkDllSuffix).pdb $(CopyDir)\bin

|
||||
@@ -39,12 +37,6 @@ copy $(ConfigurationName)\$(PlatformName)\bin\gtk-query-settings.exe $(CopyDir)\
|
||||
copy $(ConfigurationName)\$(PlatformName)\bin\gtk-query-settings.pdb $(CopyDir)\bin

|
||||
copy $(ConfigurationName)\$(PlatformName)\bin\gtk-builder-tool.exe $(CopyDir)\bin

|
||||
copy $(ConfigurationName)\$(PlatformName)\bin\gtk-builder-tool.pdb $(CopyDir)\bin

|
||||
if exist $(ConfigurationName)\$(PlatformName)\bin\Gdk-3.0.gir copy $(ConfigurationName)\$(PlatformName)\bin\Gdk-3.0.gir $(CopyDir)\share\gir-1.0

|
||||
if exist $(ConfigurationName)\$(PlatformName)\bin\GdkWin32-3.0.gir copy $(ConfigurationName)\$(PlatformName)\bin\GdkWin32-3.0.gir $(CopyDir)\share\gir-1.0

|
||||
if exist $(ConfigurationName)\$(PlatformName)\bin\Gtk-3.0.gir copy $(ConfigurationName)\$(PlatformName)\bin\Gtk-3.0.gir $(CopyDir)\share\gir-1.0

|
||||
if exist $(ConfigurationName)\$(PlatformName)\bin\Gdk-3.0.typelib copy $(ConfigurationName)\$(PlatformName)\bin\Gdk-3.0.typelib $(CopyDir)\lib\girepository-1.0

|
||||
if exist $(ConfigurationName)\$(PlatformName)\bin\GdkWin32-3.0.typelib copy $(ConfigurationName)\$(PlatformName)\bin\GdkWin32-3.0.typelib $(CopyDir)\lib\girepository-1.0

|
||||
if exist $(ConfigurationName)\$(PlatformName)\bin\Gtk-3.0.typelib copy $(ConfigurationName)\$(PlatformName)\bin\Gtk-3.0.typelib $(CopyDir)\lib\girepository-1.0

|
||||
goto DONE_BIN

|
||||
|
||||
:DO_BROADWAY_BIN

|
||||
@@ -74,12 +66,6 @@ copy .\Release\$(PlatformName)\bin\gtk-query-settings.exe $(CopyDir)\bin
&#
|
||||
copy .\Release\$(PlatformName)\bin\gtk-query-settings.pdb $(CopyDir)\bin

|
||||
copy .\Release\$(PlatformName)\bin\gtk-builder-tool.exe $(CopyDir)\bin

|
||||
copy .\Release\$(PlatformName)\bin\gtk-builder-tool.pdb $(CopyDir)\bin

|
||||
if exist .\Release\$(PlatformName)\bin\Gdk-3.0.gir copy .\Release\$(PlatformName)\bin\Gdk-3.0.gir $(CopyDir)\share\gir-1.0

|
||||
if exist .\Release\$(PlatformName)\bin\GdkWin32-3.0.gir copy .\Release\$(PlatformName)\bin\GdkWin32-3.0.gir $(CopyDir)\share\gir-1.0

|
||||
if exist .\Release\$(PlatformName)\bin\Gtk-3.0.gir copy .\Release\$(PlatformName)\bin\Gtk-3.0.gir $(CopyDir)\share\gir-1.0

|
||||
if exist .\Release\$(PlatformName)\bin\Gdk-3.0.typelib copy .\Release\$(PlatformName)\bin\Gdk-3.0.typelib $(CopyDir)\lib\girepository-1.0

|
||||
if exist .\Release\$(PlatformName)\bin\GdkWin32-3.0.typelib copy .\Release\$(PlatformName)\bin\GdkWin32-3.0.typelib $(CopyDir)\lib\girepository-1.0

|
||||
if exist .\Release\$(PlatformName)\bin\Gtk-3.0.typelib copy .\Release\$(PlatformName)\bin\Gtk-3.0.typelib $(CopyDir)\lib\girepository-1.0

|
||||
goto DONE_BIN

|
||||
|
||||
:DO_BROADWAY_DEBUG

|
||||
@@ -103,12 +89,6 @@ copy .\Debug\$(PlatformName)\bin\gtk-query-settings.exe $(CopyDir)\bin
�
|
||||
copy .\Debug\$(PlatformName)\bin\gtk-query-settings.pdb $(CopyDir)\bin

|
||||
copy .\Debug\$(PlatformName)\bin\gtk-builder-tool.exe $(CopyDir)\bin

|
||||
copy .\Debug\$(PlatformName)\bin\gtk-builder-tool.pdb $(CopyDir)\bin

|
||||
if exist .\Debug\$(PlatformName)\bin\Gdk-3.0.gir copy .\Debug\$(PlatformName)\bin\Gdk-3.0.gir $(CopyDir)\share\gir-1.0

|
||||
if exist .\Debug\$(PlatformName)\bin\GdkWin32-3.0.gir copy .\Debug\$(PlatformName)\bin\GdkWin32-3.0.gir $(CopyDir)\share\gir-1.0

|
||||
if exist .\Debug\$(PlatformName)\bin\Gtk-3.0.gir copy .\Debug\$(PlatformName)\bin\Gtk-3.0.gir $(CopyDir)\share\gir-1.0

|
||||
if exist .\Debug\$(PlatformName)\bin\Gdk-3.0.typelib copy .\Debug\$(PlatformName)\bin\Gdk-3.0.typelib $(CopyDir)\lib\girepository-1.0

|
||||
if exist .\Debug\$(PlatformName)\bin\GdkWin32-3.0.typelib copy .\Debug\$(PlatformName)\bin\GdkWin32-3.0.typelib $(CopyDir)\lib\girepository-1.0

|
||||
if exist .\Debug\$(PlatformName)\bin\Gtk-3.0.typelib copy .\Debug\$(PlatformName)\bin\Gtk-3.0.typelib $(CopyDir)\lib\girepository-1.0

|
||||
:DONE_BIN

|
||||
|
||||
copy ..\gdk-3.0.pc $(CopyDir)\lib\pkgconfig

|
||||
@@ -150,10 +130,9 @@ mkdir $(CopyDir)\share\icons\hicolor\256x256\apps

|
||||
copy ..\..\..\demos\gtk-demo\data\256x256\gtk3-demo.png $(CopyDir)\share\icons\hicolor\256x256\apps\

|
||||
|
||||
mkdir $(CopyDir)\share\glib-2.0\schemas

|
||||
copy ..\..\..\gtk\org.gtk.Settings.FileChooser.gschema.xml $(CopyDir)\share\glib-2.0\schemas

|
||||
copy ..\..\..\gtk\org.gtk.Settings.ColorChooser.gschema.xml $(CopyDir)\share\glib-2.0\schemas

|
||||
copy ..\..\..\gtk\org.gtk.Settings.Debug.gschema.xml $(CopyDir)\share\glib-2.0\schemas

|
||||
copy ..\..\..\gtk\org.gtk.Settings.EmojiChooser.gschema.xml $(CopyDir)\share\glib-2.0\schemas

|
||||
copy ..\..\..\gtk\org.gtk.Settings.FileChooser.gschema.xml $(CopyDir)\share\glib-2.0\schemas

|
||||
copy ..\..\..\demos\gtk-demo\org.gtk.Demo.gschema.xml $(CopyDir)\share\glib-2.0\schemas

|
||||
"
|
||||
/>
|
||||
@@ -177,10 +156,10 @@ mkdir $(CopyDir)\include\gtk-$(ApiVersion)\gdk\broadway

|
||||
/>
|
||||
<UserMacro
|
||||
Name="GenerateGtkPC"
|
||||
Value="$(PythonDir)\python ..\gtkpc.py --prefix=$(CopyDir) --version=$(GtkVersion) --host=i686-pc-vs$(VSVer)"
|
||||
Value="$(PythonPath)\python ..\gtkpc.py --prefix=$(CopyDir) --version=$(GtkVersion) --host=i686-pc-vs$(VSVer)"
|
||||
/>
|
||||
<UserMacro
|
||||
Name="GenerateGtkPCX64"
|
||||
Value="$(PythonDirX64)\python ..\gtkpc.py --prefix=$(CopyDir) --version=$(GtkVersion) --host=x86_64-pc-vs$(VSVer)"
|
||||
Value="$(PythonPathX64)\python ..\gtkpc.py --prefix=$(CopyDir) --version=$(GtkVersion) --host=x86_64-pc-vs$(VSVer)"
|
||||
/>
|
||||
</VisualStudioPropertySheet>
|
||||
|
@@ -1,76 +0,0 @@
|
||||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="9.00"
|
||||
Name="gtk3-introspect"
|
||||
ProjectGUID="{A8092C4E-0A21-4B1D-AC82-16764E418D1F}"
|
||||
Keyword="MakeFileProj"
|
||||
TargetFrameworkVersion="196613"
|
||||
>
|
||||
<Platforms>
|
||||
<Platform
|
||||
Name="Win32"
|
||||
/>
|
||||
<Platform
|
||||
Name="x64"
|
||||
/>
|
||||
</Platforms>
|
||||
<ToolFiles>
|
||||
</ToolFiles>
|
||||
<Configurations>
|
||||
<Configuration
|
||||
Name="Debug|Win32"
|
||||
ConfigurationType="0"
|
||||
InheritedPropertySheets=".\gtk3-build-defines.vsprops"
|
||||
>
|
||||
<Tool
|
||||
Name="VCNMakeTool"
|
||||
BuildCommandLine="$(GtkIntrospectNMakeCmd) $(IntrospectPythonParam)"
|
||||
ReBuildCommandLine="$(GtkIntrospectNMakeCmd) $(IntrospectPythonParam) clean all"
|
||||
CleanCommandLine="$(GtkIntrospectNMakeCmd) $(IntrospectPythonParam) clean"
|
||||
Output="$(GtkIntrospectBuiltFiles)"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Debug|x64"
|
||||
ConfigurationType="0"
|
||||
InheritedPropertySheets=".\gtk3-build-defines.vsprops"
|
||||
>
|
||||
<Tool
|
||||
Name="VCNMakeTool"
|
||||
BuildCommandLine="$(GtkIntrospectNMakeCmd) $(IntrospectPythonParamX64)"
|
||||
ReBuildCommandLine="$(GtkIntrospectNMakeCmd) $(IntrospectPythonParamX64) clean all"
|
||||
CleanCommandLine="$(GtkIntrospectNMakeCmd) $(IntrospectPythonParamX64) clean"
|
||||
Output="$(GtkIntrospectBuiltFiles)"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|Win32"
|
||||
ConfigurationType="0"
|
||||
InheritedPropertySheets=".\gtk3-build-defines.vsprops"
|
||||
CharacterSet="2"
|
||||
DeleteExtensionsOnClean=""
|
||||
>
|
||||
<Tool
|
||||
Name="VCNMakeTool"
|
||||
BuildCommandLine="$(GtkIntrospectNMakeCmd) $(IntrospectPythonParam)"
|
||||
ReBuildCommandLine="$(GtkIntrospectNMakeCmd) $(IntrospectPythonParam) clean all"
|
||||
CleanCommandLine="$(GtkIntrospectNMakeCmd) $(IntrospectPythonParam) clean"
|
||||
Output="$(GtkIntrospectBuiltFiles)"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|x64"
|
||||
ConfigurationType="0"
|
||||
InheritedPropertySheets=".\gtk3-build-defines.vsprops"
|
||||
>
|
||||
<Tool
|
||||
Name="VCNMakeTool"
|
||||
BuildCommandLine="$(GtkIntrospectNMakeCmd) $(IntrospectPythonParamX64)"
|
||||
ReBuildCommandLine="$(GtkIntrospectNMakeCmd) $(IntrospectPythonParamX64) clean all"
|
||||
CleanCommandLine="$(GtkIntrospectNMakeCmd) $(IntrospectPythonParamX64) clean"
|
||||
Output="$(GtkIntrospectBuiltFiles)"
|
||||
/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
</VisualStudioProject>
|
@@ -21,127 +21,262 @@
|
||||
<Configurations>
|
||||
<Configuration
|
||||
Name="Debug|Win32"
|
||||
ConfigurationType="0"
|
||||
ConfigurationType="10"
|
||||
InheritedPropertySheets=".\gtk3-gen-srcs.vsprops"
|
||||
CharacterSet="2"
|
||||
DeleteExtensionsOnClean=""
|
||||
>
|
||||
<Tool
|
||||
Name="VCNMakeTool"
|
||||
BuildCommandLine="$(GenerateRequiredSourcesBase) CFG=$(ConfigurationName) $(IntrospectPythonParam)"
|
||||
ReBuildCommandLine="$(GenerateRequiredSourcesBase) CFG=$(ConfigurationName) $(IntrospectPythonParam) clean all"
|
||||
CleanCommandLine="$(GenerateRequiredSourcesBase) CFG=$(ConfigurationName) $(IntrospectPythonParam) clean"
|
||||
Output="$(GeneratedGdkSources);$(GeneratedDemoSources);$(GeneratedGtkSources)"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Debug|x64"
|
||||
ConfigurationType="0"
|
||||
ConfigurationType="10"
|
||||
InheritedPropertySheets=".\gtk3-gen-srcs.vsprops"
|
||||
CharacterSet="2"
|
||||
DeleteExtensionsOnClean=""
|
||||
>
|
||||
<Tool
|
||||
Name="VCNMakeTool"
|
||||
BuildCommandLine="$(GenerateRequiredSourcesBase) CFG=$(ConfigurationName) $(IntrospectPythonParam)"
|
||||
ReBuildCommandLine="$(GenerateRequiredSourcesBase) CFG=$(ConfigurationName) $(IntrospectPythonParam) clean all"
|
||||
CleanCommandLine="$(GenerateRequiredSourcesBase) CFG=$(ConfigurationName) $(IntrospectPythonParam) clean"
|
||||
Output="$(GeneratedGdkSources);$(GeneratedDemoSources);$(GeneratedGtkSources)"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Debug_Broadway|Win32"
|
||||
ConfigurationType="0"
|
||||
IntermediateDirectory="$(ConfigurationName)"
|
||||
ConfigurationType="10"
|
||||
InheritedPropertySheets=".\gtk3-gen-srcs.vsprops"
|
||||
CharacterSet="2"
|
||||
DeleteExtensionsOnClean=""
|
||||
>
|
||||
<Tool
|
||||
Name="VCNMakeTool"
|
||||
BuildCommandLine="$(GenerateRequiredSourcesBase) CFG=Debug BROADWAY=1 $(IntrospectPythonParam)"
|
||||
ReBuildCommandLine="$(GenerateRequiredSourcesBase) CFG=Debug BROADWAY=1 $(IntrospectPythonParam) clean all"
|
||||
CleanCommandLine="$(GenerateRequiredSourcesBase) CFG=Debug BROADWAY=1 $(IntrospectPythonParam) clean"
|
||||
Output="$(GeneratedGdkSources);$(GeneratedDemoSources);$(GeneratedGtkSources)"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Debug_Broadway|x64"
|
||||
ConfigurationType="0"
|
||||
ConfigurationType="10"
|
||||
InheritedPropertySheets=".\gtk3-gen-srcs.vsprops"
|
||||
CharacterSet="2"
|
||||
DeleteExtensionsOnClean=""
|
||||
>
|
||||
<Tool
|
||||
Name="VCNMakeTool"
|
||||
BuildCommandLine="$(GenerateRequiredSourcesBase) CFG=Debug BROADWAY=1 $(IntrospectPythonParam)"
|
||||
ReBuildCommandLine="$(GenerateRequiredSourcesBase) CFG=Debug BROADWAY=1 $(IntrospectPythonParam) clean all"
|
||||
CleanCommandLine="$(GenerateRequiredSourcesBase) CFG=Debug BROADWAY=1 $(IntrospectPythonParam) clean"
|
||||
Output="$(GeneratedGdkSources);$(GeneratedDemoSources);$(GeneratedGtkSources)"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|Win32"
|
||||
ConfigurationType="0"
|
||||
IntermediateDirectory="$(ConfigurationName)"
|
||||
ConfigurationType="10"
|
||||
InheritedPropertySheets=".\gtk3-gen-srcs.vsprops"
|
||||
CharacterSet="2"
|
||||
DeleteExtensionsOnClean=""
|
||||
WholeProgramOptimization="1"
|
||||
>
|
||||
<Tool
|
||||
Name="VCNMakeTool"
|
||||
BuildCommandLine="$(GenerateRequiredSourcesBase) CFG=$(ConfigurationName) $(IntrospectPythonParam)"
|
||||
ReBuildCommandLine="$(GenerateRequiredSourcesBase) CFG=$(ConfigurationName) $(IntrospectPythonParam) clean all"
|
||||
CleanCommandLine="$(GenerateRequiredSourcesBase) CFG=$(ConfigurationName) $(IntrospectPythonParam) clean"
|
||||
Output="$(GeneratedGdkSources);$(GeneratedDemoSources);$(GeneratedGtkSources)"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|x64"
|
||||
ConfigurationType="0"
|
||||
ConfigurationType="10"
|
||||
InheritedPropertySheets=".\gtk3-gen-srcs.vsprops"
|
||||
CharacterSet="2"
|
||||
DeleteExtensionsOnClean=""
|
||||
WholeProgramOptimization="1"
|
||||
>
|
||||
<Tool
|
||||
Name="VCNMakeTool"
|
||||
BuildCommandLine="$(GenerateRequiredSourcesBase) CFG=$(ConfigurationName) $(IntrospectPythonParam)"
|
||||
ReBuildCommandLine="$(GenerateRequiredSourcesBase) CFG=$(ConfigurationName) $(IntrospectPythonParam) clean all"
|
||||
CleanCommandLine="$(GenerateRequiredSourcesBase) CFG=$(ConfigurationName) $(IntrospectPythonParam) clean"
|
||||
Output="$(GeneratedGdkSources);$(GeneratedDemoSources);$(GeneratedGtkSources)"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release_Broadway|Win32"
|
||||
ConfigurationType="0"
|
||||
IntermediateDirectory="$(ConfigurationName)"
|
||||
ConfigurationType="10"
|
||||
InheritedPropertySheets=".\gtk3-gen-srcs.vsprops"
|
||||
CharacterSet="2"
|
||||
DeleteExtensionsOnClean=""
|
||||
WholeProgramOptimization="1"
|
||||
>
|
||||
<Tool
|
||||
Name="VCNMakeTool"
|
||||
BuildCommandLine="$(GenerateRequiredSourcesBase) CFG=Release BROADWAY=1 $(IntrospectPythonParam)"
|
||||
ReBuildCommandLine="$(GenerateRequiredSourcesBase) CFG=Release BROADWAY=1 $(IntrospectPythonParam) clean all"
|
||||
CleanCommandLine="$(GenerateRequiredSourcesBase) CFG=Release BROADWAY=1 $(IntrospectPythonParam) clean"
|
||||
Output="$(GeneratedGdkSources);$(GeneratedDemoSources);$(GeneratedGtkSources)"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release_Broadway|x64"
|
||||
ConfigurationType="0"
|
||||
ConfigurationType="10"
|
||||
InheritedPropertySheets=".\gtk3-gen-srcs.vsprops"
|
||||
CharacterSet="2"
|
||||
DeleteExtensionsOnClean=""
|
||||
WholeProgramOptimization="1"
|
||||
>
|
||||
<Tool
|
||||
Name="VCNMakeTool"
|
||||
BuildCommandLine="$(GenerateRequiredSourcesBase) CFG=Release BROADWAY=1 $(IntrospectPythonParam)"
|
||||
ReBuildCommandLine="$(GenerateRequiredSourcesBase) CFG=Release BROADWAY=1 $(IntrospectPythonParam) clean all"
|
||||
CleanCommandLine="$(GenerateRequiredSourcesBase) CFG=Release BROADWAY=1 $(IntrospectPythonParam) clean"
|
||||
Output="$(GeneratedGdkSources);$(GeneratedDemoSources);$(GeneratedGtkSources)"
|
||||
/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
<References>
|
||||
</References>
|
||||
<Files>
|
||||
<Filter
|
||||
Name="Resource Files"
|
||||
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
|
||||
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
|
||||
>
|
||||
<File RelativePath="..\..\..\config.h.win32">
|
||||
<FileConfiguration Name="Debug|Win32">
|
||||
<Tool Name="VCCustomBuildTool"
|
||||
Description="Copying config.h from config.h.win32..."
|
||||
CommandLine="$(GenConfigH)"
|
||||
Outputs="..\..\..\config.h"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration Name="Debug_Broadway|Win32">
|
||||
<Tool Name="VCCustomBuildTool"
|
||||
Description="Copying config.h from config.h.win32..."
|
||||
CommandLine="$(GenConfigH)"
|
||||
Outputs="..\..\..\config.h"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration Name="Release|Win32">
|
||||
<Tool Name="VCCustomBuildTool"
|
||||
Description="Copying config.h from config.h.win32..."
|
||||
CommandLine="$(GenConfigH)"
|
||||
Outputs="..\..\..\config.h"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration Name="Release_Broadway|Win32">
|
||||
<Tool Name="VCCustomBuildTool"
|
||||
Description="Copying config.h from config.h.win32..."
|
||||
CommandLine="$(GenConfigH)"
|
||||
Outputs="..\..\..\config.h"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration Name="Debug|x64">
|
||||
<Tool Name="VCCustomBuildTool"
|
||||
Description="Copying config.h from config.h.win32..."
|
||||
CommandLine="$(GenConfigH)"
|
||||
Outputs="..\..\..\config.h"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration Name="Debug_Broadway|x64">
|
||||
<Tool Name="VCCustomBuildTool"
|
||||
Description="Copying config.h from config.h.win32..."
|
||||
CommandLine="$(GenConfigH)"
|
||||
Outputs="..\..\..\config.h"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration Name="Release|x64">
|
||||
<Tool Name="VCCustomBuildTool"
|
||||
Description="Copying config.h from config.h.win32..."
|
||||
CommandLine="$(GenConfigH)"
|
||||
Outputs="..\..\..\config.h"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration Name="Release_Broadway|x64">
|
||||
<Tool Name="VCCustomBuildTool"
|
||||
Description="Copying config.h from config.h.win32..."
|
||||
CommandLine="$(GenConfigH)"
|
||||
Outputs="..\..\..\config.h"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File RelativePath="..\..\..\gdk\gdkconfig.h.win32">
|
||||
<FileConfiguration Name="Debug|Win32">
|
||||
<Tool Name="VCCustomBuildTool"
|
||||
Description="Copying gdkconfig.h from gdkconfig.h.win32..."
|
||||
CommandLine="$(GenGdkConfigHWin32)"
|
||||
Outputs="..\..\..\gdk\gdkconfig.h;..\..\..\GDK_WIN32ONLY_BUILD;..\..\..\MSVC_$(ConfigurationName)"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration Name="Release|Win32">
|
||||
<Tool Name="VCCustomBuildTool"
|
||||
Description="Copying gdkconfig.h from gdkconfig.h.win32..."
|
||||
CommandLine="$(GenGdkConfigHWin32)"
|
||||
Outputs="..\..\..\gdk\gdkconfig.h;..\..\..\GDK_WIN32ONLY_BUILD;..\..\..\MSVC_$(ConfigurationName)"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration Name="Debug|x64">
|
||||
<Tool Name="VCCustomBuildTool"
|
||||
Description="Copying gdkconfig.h from gdkconfig.h.win32..."
|
||||
CommandLine="$(GenGdkConfigHWin32)"
|
||||
Outputs="..\..\..\gdk\gdkconfig.h;..\..\..\GDK_WIN32ONLY_BUILD;..\..\..\MSVC_$(ConfigurationName)"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration Name="Release|x64">
|
||||
<Tool Name="VCCustomBuildTool"
|
||||
Description="Copying gdkconfig.h from gdkconfig.h.win32..."
|
||||
CommandLine="$(GenGdkConfigHWin32)"
|
||||
Outputs="..\..\..\gdk\gdkconfig.h;..\..\..\GDK_WIN32ONLY_BUILD;..\..\..\MSVC_$(ConfigurationName)"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File RelativePath="..\..\..\gdk\gdkconfig.h.win32_broadway">
|
||||
<FileConfiguration Name="Debug_Broadway|Win32">
|
||||
<Tool Name="VCCustomBuildTool"
|
||||
Description="Copying gdkconfig.h from gdkconfig.h.win32_broadway..."
|
||||
CommandLine="$(GenGdkConfigHBroadway)"
|
||||
Outputs="..\..\..\gdk\gdkconfig.h;..\..\..\GDK_BROADWAY_BUILD;..\..\..\MSVC_$(ConfigurationName)_Broadway"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration Name="Release_Broadway|Win32">
|
||||
<Tool Name="VCCustomBuildTool"
|
||||
Description="Copying gdkconfig.h from gdkconfig.h.win32_broadway..."
|
||||
CommandLine="$(GenGdkConfigHBroadway)"
|
||||
Outputs="..\..\..\gdk\gdkconfig.h;..\..\..\GDK_BROADWAY_BUILD;..\..\..\MSVC_$(ConfigurationName)_Broadway"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration Name="Debug_Broadway|x64">
|
||||
<Tool Name="VCCustomBuildTool"
|
||||
Description="Copying gdkconfig.h from gdkconfig.h.win32_broadway..."
|
||||
CommandLine="$(GenGdkConfigHBroadway)"
|
||||
Outputs="..\..\..\gdk\gdkconfig.h;..\..\..\GDK_BROADWAY_BUILD;..\..\..\MSVC_$(ConfigurationName)_Broadway"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration Name="Release_Broadway|x64">
|
||||
<Tool Name="VCCustomBuildTool"
|
||||
Description="Copying gdkconfig.h from gdkconfig.h.win32_broadway..."
|
||||
CommandLine="$(GenGdkConfigHBroadway)"
|
||||
Outputs="..\..\..\gdk\gdkconfig.h;..\..\..\GDK_BROADWAY_BUILD;..\..\..\MSVC_$(ConfigurationName)_Broadway"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File RelativePath="..\..\..\demos\gtk-demo\demos.h.win32">
|
||||
<FileConfiguration Name="Debug|Win32">
|
||||
<Tool Name="VCCustomBuildTool"
|
||||
Description="Copying demos.h from demos.h.win32..."
|
||||
CommandLine="$(CopyDemosH)"
|
||||
Outputs="..\..\..\demos\gtk-demo\demos.h"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration Name="Debug_Broadway|Win32">
|
||||
<Tool Name="VCCustomBuildTool"
|
||||
Description="Copying demos.h from demos.h.win32..."
|
||||
CommandLine="$(CopyDemosH)"
|
||||
Outputs="..\..\..\demos\gtk-demo\demos.h"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration Name="Release|Win32">
|
||||
<Tool Name="VCCustomBuildTool"
|
||||
Description="Copying demos.h from demos.h.win32..."
|
||||
CommandLine="$(CopyDemosH)"
|
||||
Outputs="..\..\..\demos\gtk-demo\demos.h"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration Name="Release_Broadway|Win32">
|
||||
<Tool Name="VCCustomBuildTool"
|
||||
Description="Copying demos.h from demos.h.win32..."
|
||||
CommandLine="$(CopyDemosH)"
|
||||
Outputs="..\..\..\demos\gtk-demo\demos.h"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration Name="Debug|x64">
|
||||
<Tool Name="VCCustomBuildTool"
|
||||
Description="Copying demos.h from demos.h.win32..."
|
||||
CommandLine="$(CopyDemosH)"
|
||||
Outputs="..\..\..\demos\gtk-demo\demos.h"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration Name="Debug_Broadway|x64">
|
||||
<Tool Name="VCCustomBuildTool"
|
||||
Description="Copying demos.h from demos.h.win32..."
|
||||
CommandLine="$(CopyDemosH)"
|
||||
Outputs="..\..\..\demos\gtk-demo\demos.h"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration Name="Release|x64">
|
||||
<Tool Name="VCCustomBuildTool"
|
||||
Description="Copying demos.h from demos.h.win32..."
|
||||
CommandLine="$(CopyDemosH)"
|
||||
Outputs="..\..\..\demos\gtk-demo\demos.h"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration Name="Release_Broadway|x64">
|
||||
<Tool Name="VCCustomBuildTool"
|
||||
Description="Copying demos.h from demos.h.win32..."
|
||||
CommandLine="$(CopyDemosH)"
|
||||
Outputs="..\..\..\demos\gtk-demo\demos.h"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
</Filter>
|
||||
</Files>
|
||||
<Globals>
|
||||
</Globals>
|
||||
</VisualStudioProject>
|
||||
|
@@ -51,19 +51,11 @@
|
||||
Value="$(GtkSeparateVSDllSuffix)"
|
||||
/>
|
||||
<UserMacro
|
||||
Name="PythonDir"
|
||||
Name="PythonPath"
|
||||
Value="c:\python27"
|
||||
/>
|
||||
<UserMacro
|
||||
Name="PythonDirX64"
|
||||
Value="$(PythonDir).x64"
|
||||
/>
|
||||
<UserMacro
|
||||
Name="IntrospectPythonParam"
|
||||
Value="PYTHON=$(PythonDir)\python.exe"
|
||||
/>
|
||||
<UserMacro
|
||||
Name="IntrospectPythonParamX64"
|
||||
Value="PYTHON=$(PythonDirX64)\python.exe"
|
||||
Name="PythonPathX64"
|
||||
Value="$(PythonPath).x64"
|
||||
/>
|
||||
</VisualStudioPropertySheet>
|
||||
|
283
config.h.meson
283
config.h.meson
@@ -1,283 +0,0 @@
|
||||
/* config.h. Generated from config.h.in by configure. */
|
||||
/* config.h.in. Generated from configure.ac by autoheader. */
|
||||
|
||||
/* Define to 1 if translation of program messages to the user's native
|
||||
language is requested. */
|
||||
#mesondefine ENABLE_NLS
|
||||
|
||||
/* The prefix for our gettext translation domains. */
|
||||
#mesondefine GETTEXT_PACKAGE
|
||||
|
||||
/* Disable deprecation warnings from glib */
|
||||
#mesondefine GLIB_DISABLE_DEPRECATION_WARNINGS
|
||||
|
||||
/* Define to 1 if you have the `bind_textdomain_codeset' function. */
|
||||
#mesondefine HAVE_BIND_TEXTDOMAIN_CODESET
|
||||
|
||||
/* Define if libcloudproviders is available */
|
||||
#mesondefine HAVE_CLOUDPROVIDERS
|
||||
|
||||
/* define if we have colord */
|
||||
#mesondefine HAVE_COLORD
|
||||
|
||||
/* Define if the GNU dcgettext() function is already present or preinstalled.
|
||||
*/
|
||||
#mesondefine HAVE_DCGETTEXT
|
||||
|
||||
/* Define to 1 if you have the declaration of `isinf', and to 0 if you don't.
|
||||
*/
|
||||
#mesondefine HAVE_DECL_ISINF
|
||||
|
||||
/* Define to 1 if you have the declaration of `isnan', and to 0 if you don't.
|
||||
*/
|
||||
#mesondefine HAVE_DECL_ISNAN
|
||||
|
||||
/* Define to 1 if you have the <dev/evdev/input.h> header file. */
|
||||
#mesondefine HAVE_DEV_EVDEV_INPUT_H
|
||||
|
||||
/* Define to 1 if you have the <dlfcn.h> header file. */
|
||||
#mesondefine HAVE_DLFCN_H
|
||||
|
||||
/* Define to 1 if you have the `exp2' function. */
|
||||
#mesondefine HAVE_EXP2
|
||||
|
||||
/* Define to 1 if you have the `flockfile' function. */
|
||||
#mesondefine HAVE_FLOCKFILE
|
||||
|
||||
/* Define to 1 if you have the <ftw.h> header file. */
|
||||
#mesondefine HAVE_FTW_H
|
||||
|
||||
/* Define to 1 if you have the `getpagesize' function. */
|
||||
#mesondefine HAVE_GETPAGESIZE
|
||||
|
||||
/* Define to 1 if you have the `getresuid' function. */
|
||||
#mesondefine HAVE_GETRESUID
|
||||
|
||||
/* Define if gio-unix is available */
|
||||
#mesondefine HAVE_GIO_UNIX
|
||||
|
||||
/* defines whether we have HarfBuzz */
|
||||
#mesondefine HAVE_HARFBUZZ
|
||||
|
||||
/* Define to 1 if you have the <inttypes.h> header file. */
|
||||
#mesondefine HAVE_INTTYPES_H
|
||||
|
||||
/* Define to 1 if the system has the type `IPrintDialogCallback'. */
|
||||
#mesondefine HAVE_IPRINTDIALOGCALLBACK
|
||||
|
||||
/* Define to 1 if you have the <linux/input.h> header file. */
|
||||
#mesondefine HAVE_LINUX_INPUT_H
|
||||
|
||||
/* Define to 1 if you have the <linux/memfd.h> header file. */
|
||||
#mesondefine HAVE_LINUX_MEMFD_H
|
||||
|
||||
/* Define to 1 if you have the `localtime_r' function. */
|
||||
#mesondefine HAVE_LOCALTIME_R
|
||||
|
||||
/* Define to 1 if you have the `log2' function. */
|
||||
#mesondefine HAVE_LOG2
|
||||
|
||||
/* Define to 1 if you have the `lstat' function. */
|
||||
#mesondefine HAVE_LSTAT
|
||||
|
||||
/* Define to 1 if you have the `mallinfo' function. */
|
||||
#mesondefine HAVE_MALLINFO
|
||||
|
||||
/* Define to 1 if you have the <memory.h> header file. */
|
||||
#mesondefine HAVE_MEMORY_H
|
||||
|
||||
/* Define to 1 if you have the `mkstemp' function. */
|
||||
#mesondefine HAVE_MKSTEMP
|
||||
|
||||
/* Define to 1 if you have a working `mmap' system call. */
|
||||
#mesondefine HAVE_MMAP
|
||||
|
||||
/* Define to 1 if you have the `nearbyint' function. */
|
||||
#mesondefine HAVE_NEARBYINT
|
||||
|
||||
/* defines whether we have pangoft2 */
|
||||
#mesondefine HAVE_PANGOFT
|
||||
|
||||
/* Define to 1 if libpapi available */
|
||||
#mesondefine HAVE_PAPI
|
||||
|
||||
/* Define to 1 if you have the `posix_fallocate' function. */
|
||||
#mesondefine HAVE_POSIX_FALLOCATE
|
||||
|
||||
/* Have the Xrandr extension library */
|
||||
#mesondefine HAVE_RANDR
|
||||
|
||||
/* Have the Xrandr 1.5 extension library */
|
||||
#mesondefine HAVE_RANDR15
|
||||
|
||||
/* Define to 1 if you have the `rint' function. */
|
||||
#mesondefine HAVE_RINT
|
||||
|
||||
/* Define to 1 if you have the `round' function. */
|
||||
#mesondefine HAVE_ROUND
|
||||
|
||||
/* Define to 1 if SetupDiGetDevicePropertyW() is available */
|
||||
#mesondefine HAVE_SETUP_DI_GET_DEVICE_PROPERTY_W
|
||||
|
||||
/* Define to 1 if you have the `sincos' function. */
|
||||
#mesondefine HAVE_SINCOS
|
||||
|
||||
/* Define to 1 if solaris xinerama is available */
|
||||
#mesondefine HAVE_SOLARIS_XINERAMA
|
||||
|
||||
/* Define to 1 if you have the <stdint.h> header file. */
|
||||
#mesondefine HAVE_STDINT_H
|
||||
|
||||
/* Define to 1 if you have the <stdlib.h> header file. */
|
||||
#mesondefine HAVE_STDLIB_H
|
||||
|
||||
/* Define to 1 if you have the <strings.h> header file. */
|
||||
#mesondefine HAVE_STRINGS_H
|
||||
|
||||
/* Define to 1 if you have the <string.h> header file. */
|
||||
#mesondefine HAVE_STRING_H
|
||||
|
||||
/* Define to 1 if you have the <sys/mman.h> header file. */
|
||||
#mesondefine HAVE_SYS_MMAN_H
|
||||
|
||||
/* Define to 1 if you have the <sys/param.h> header file. */
|
||||
#mesondefine HAVE_SYS_PARAM_H
|
||||
|
||||
/* Have the sysprof-capture library */
|
||||
#mesondefine HAVE_SYSPROF_CAPTURE
|
||||
|
||||
/* Define to 1 if you have the <sys/stat.h> header file. */
|
||||
#mesondefine HAVE_SYS_STAT_H
|
||||
|
||||
/* Define to 1 if sys/sysinfo.h is available */
|
||||
#mesondefine HAVE_SYS_SYSINFO_H
|
||||
|
||||
/* Define to 1 if sys/systeminfo.h is available */
|
||||
#mesondefine HAVE_SYS_SYSTEMINFO_H
|
||||
|
||||
/* Define to 1 if you have the <sys/time.h> header file. */
|
||||
#mesondefine HAVE_SYS_TIME_H
|
||||
|
||||
/* Define to 1 if you have the <sys/types.h> header file. */
|
||||
#mesondefine HAVE_SYS_TYPES_H
|
||||
|
||||
/* Define to 1 if you have the `trunc' function. */
|
||||
#mesondefine HAVE_TRUNC
|
||||
|
||||
/* Define to 1 if you have the <unistd.h> header file. */
|
||||
#mesondefine HAVE_UNISTD_H
|
||||
|
||||
/* Have the XCOMPOSITE X extension */
|
||||
#mesondefine HAVE_XCOMPOSITE
|
||||
|
||||
/* Have the Xcursor library */
|
||||
#mesondefine HAVE_XCURSOR
|
||||
|
||||
/* Have the XDAMAGE X extension */
|
||||
#mesondefine HAVE_XDAMAGE
|
||||
|
||||
/* Have the XFIXES X extension */
|
||||
#mesondefine HAVE_XFIXES
|
||||
|
||||
/* Define to 1 if XFree Xinerama is available */
|
||||
#mesondefine HAVE_XFREE_XINERAMA
|
||||
|
||||
/* Have XGenericEvent */
|
||||
#mesondefine HAVE_XGENERICEVENTS
|
||||
|
||||
/* Define to 1 if xinerama is available */
|
||||
#mesondefine HAVE_XINERAMA
|
||||
|
||||
/* Define to use XKB extension */
|
||||
#mesondefine HAVE_XKB
|
||||
|
||||
/* Have the SYNC extension library */
|
||||
#mesondefine HAVE_XSYNC
|
||||
|
||||
/* Define to 1 if you have the `_lock_file' function. */
|
||||
#mesondefine HAVE__LOCK_FILE
|
||||
|
||||
/* Define if _NL_MEASUREMENT_MEASUREMENT is available */
|
||||
#mesondefine HAVE__NL_MEASUREMENT_MEASUREMENT
|
||||
|
||||
/* Define if _NL_PAPER_HEIGHT is available */
|
||||
#mesondefine HAVE__NL_PAPER_HEIGHT
|
||||
|
||||
/* Define if _NL_PAPER_WIDTH is available */
|
||||
#mesondefine HAVE__NL_PAPER_WIDTH
|
||||
|
||||
/* Define if _NL_TIME_FIRST_WEEKDAY is available */
|
||||
#mesondefine HAVE__NL_TIME_FIRST_WEEKDAY
|
||||
|
||||
/* Define to the address where bug reports for this package should be sent. */
|
||||
#mesondefine PACKAGE_BUGREPORT
|
||||
|
||||
/* Define to the full name of this package. */
|
||||
#mesondefine PACKAGE_NAME
|
||||
|
||||
/* Define to the full name and version of this package. */
|
||||
#mesondefine PACKAGE_STRING
|
||||
|
||||
/* Define to the one symbol short name of this package. */
|
||||
#mesondefine PACKAGE_TARNAME
|
||||
|
||||
/* Define to the home page for this package. */
|
||||
#mesondefine PACKAGE_URL
|
||||
|
||||
/* Define to the version of this package. */
|
||||
#mesondefine PACKAGE_VERSION
|
||||
|
||||
/* Use NSBundle functions to determine load paths for libraries, translations,
|
||||
etc. */
|
||||
#mesondefine QUARTZ_RELOCATION
|
||||
|
||||
/* The size of `DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY', as computed by sizeof.
|
||||
*/
|
||||
#mesondefine SIZEOF_DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY
|
||||
|
||||
/* Define to 1 if XInput 2.0 is available */
|
||||
#mesondefine XINPUT_2
|
||||
|
||||
/* Define to 1 if XInput 2.2 is available */
|
||||
#mesondefine XINPUT_2_2
|
||||
|
||||
/* Enable large inode numbers on Mac OS X 10.5. */
|
||||
#ifndef _DARWIN_USE_64_BIT_INODE
|
||||
# define _DARWIN_USE_64_BIT_INODE 1
|
||||
#endif
|
||||
|
||||
/* Number of bits in a file offset, on hosts where this is settable. */
|
||||
#mesondefine _FILE_OFFSET_BITS
|
||||
|
||||
/* defines how to decorate public symbols while building */
|
||||
#mesondefine _GDK_EXTERN
|
||||
|
||||
/* Define for large files, on AIX-style hosts. */
|
||||
#mesondefine _LARGE_FILES
|
||||
|
||||
/* Define to 1 if on MINIX. */
|
||||
#mesondefine _MINIX
|
||||
|
||||
/* Define to 2 if the system does not provide POSIX.1 features except with
|
||||
this defined. */
|
||||
#mesondefine _POSIX_1_SOURCE
|
||||
|
||||
/* Define to 1 if you need to in order for `stat' and other things to work. */
|
||||
#mesondefine _POSIX_SOURCE
|
||||
|
||||
/* Define to `int' if <sys/types.h> doesn't define. */
|
||||
#mesondefine gid_t
|
||||
|
||||
/* Define to `int' if <sys/types.h> doesn't define. */
|
||||
#mesondefine uid_t
|
||||
|
||||
#mesondefine GTK_DATADIR
|
||||
|
||||
#mesondefine GTK_LIBDIR
|
||||
|
||||
#mesondefine GTK_PRINT_BACKENDS
|
||||
|
||||
/* Define the location where the catalogs will be installed */
|
||||
#mesondefine GTK_LOCALEDIR
|
||||
|
||||
#mesondefine ISO_CODES_PREFIX
|
@@ -26,6 +26,12 @@
|
||||
/* define if we have colord */
|
||||
/* #undef HAVE_COLORD */
|
||||
|
||||
/* Define to 1 if you have the <crt_externs.h> header file. */
|
||||
/* #undef HAVE_CRT_EXTERNS_H */
|
||||
|
||||
/* Define to 1 if CUPS 1.2 API is available */
|
||||
/* #undef HAVE_CUPS_API_1_2 */
|
||||
|
||||
/* Define to 1 if you have the `dcgettext' function. */
|
||||
#define HAVE_DCGETTEXT 1
|
||||
|
||||
@@ -71,6 +77,15 @@
|
||||
/* Define if gio-unix is available */
|
||||
/* #undef HAVE_GIO_UNIX */
|
||||
|
||||
/* Have GNU ftw */
|
||||
/* #undef HAVE_GNU_FTW */
|
||||
|
||||
/* Define to 1 if you have the `httpGetAuthString' function. */
|
||||
/* #undef HAVE_HTTPGETAUTHSTRING */
|
||||
|
||||
/* Define if cups http_t authstring field is accessible */
|
||||
/* #undef HAVE_HTTP_AUTHSTRING */
|
||||
|
||||
/* Define to 1 if you have the <inttypes.h> header file. */
|
||||
#if !defined (_MSC_VER) || (_MSC_VER >= 1800)
|
||||
#define HAVE_INTTYPES_H 1
|
||||
@@ -142,6 +157,9 @@
|
||||
/* Define to 1 if sincos() is available */
|
||||
/* #undef HAVE_SINCOS */
|
||||
|
||||
/* Have the sockaddr_un.sun_len member */
|
||||
/* #undef HAVE_SOCKADDR_UN_SUN_LEN */
|
||||
|
||||
/* Define to 1 if solaris xinerama is available */
|
||||
/* #undef HAVE_SOLARIS_XINERAMA */
|
||||
|
||||
@@ -191,11 +209,6 @@
|
||||
/* Define to 1 if you have the <sys/types.h> header file. */
|
||||
#define HAVE_SYS_TYPES_H 1
|
||||
|
||||
/* Define to 1 if trunc() is available */
|
||||
#if !defined (_MSC_VER) || (_MSC_VER >= 1800)
|
||||
# define HAVE_TRUNC 1
|
||||
#endif
|
||||
|
||||
/* Define to 1 if you have the <unistd.h> header file. */
|
||||
#ifndef _MSC_VER
|
||||
#define HAVE_UNISTD_H 1
|
||||
@@ -245,10 +258,16 @@
|
||||
/* Define if _NL_TIME_FIRST_WEEKDAY is available */
|
||||
/* #undef HAVE__NL_TIME_FIRST_WEEKDAY */
|
||||
|
||||
/* Define to 1 if you have the `_NSGetEnviron' function. */
|
||||
/* #undef HAVE__NSGETENVIRON */
|
||||
|
||||
/* Define to the sub-directory in which libtool stores uninstalled libraries.
|
||||
*/
|
||||
#define LT_OBJDIR ".libs/"
|
||||
|
||||
/* Define if <X11/extensions/XIproto.h> needed for xReply */
|
||||
/* #undef NEED_XIPROTO_H_FOR_XREPLY */
|
||||
|
||||
/* Define to 1 if your C compiler doesn't accept -c and -o together. */
|
||||
#ifndef _MSC_VER
|
||||
/* #undef NO_MINUS_C_MINUS_O */
|
||||
|
275
configure.ac
275
configure.ac
@@ -9,9 +9,9 @@
|
||||
# set GTK_BINARY_AGE and GTK_INTERFACE_AGE to 0.
|
||||
|
||||
m4_define([gtk_major_version], [3])
|
||||
m4_define([gtk_minor_version], [24])
|
||||
m4_define([gtk_micro_version], [13])
|
||||
m4_define([gtk_interface_age], [9])
|
||||
m4_define([gtk_minor_version], [22])
|
||||
m4_define([gtk_micro_version], [15])
|
||||
m4_define([gtk_interface_age], [15])
|
||||
m4_define([gtk_binary_age],
|
||||
[m4_eval(100 * gtk_minor_version + gtk_micro_version)])
|
||||
m4_define([gtk_version],
|
||||
@@ -42,8 +42,8 @@ m4_define([gtk_binary_version], [3.0.0])
|
||||
|
||||
# required versions of other packages
|
||||
m4_define([glib_required_major], [2])
|
||||
m4_define([glib_required_minor], [57])
|
||||
m4_define([glib_required_micro], [2])
|
||||
m4_define([glib_required_minor], [49])
|
||||
m4_define([glib_required_micro], [4])
|
||||
m4_define([glib_required_version],
|
||||
[glib_required_major.glib_required_minor.glib_required_micro])
|
||||
m4_define([glib_min_required_minor],
|
||||
@@ -54,17 +54,16 @@ m4_define([glib_min_required_version], m4_join([_], [GLIB_VERSION], glib_require
|
||||
m4_define([glib_max_allowed_version], m4_join([_], [GLIB_VERSION], glib_required_major, glib_max_allowed_minor))
|
||||
GLIB_VERSION_CFLAGS="-DGLIB_MIN_REQUIRED_VERSION=glib_min_required_version -DGLIB_MAX_ALLOWED_VERSION=glib_max_allowed_version"
|
||||
|
||||
m4_define([pango_required_version], [1.41.0])
|
||||
m4_define([fribidi_required_version], [0.19.7])
|
||||
m4_define([pango_required_version], [1.37.3])
|
||||
m4_define([atk_required_version], [2.15.1])
|
||||
m4_define([cairo_required_version], [1.14.0])
|
||||
m4_define([gdk_pixbuf_required_version], [2.30.0])
|
||||
m4_define([introspection_required_version], [1.39.0])
|
||||
m4_define([wayland_required_version], [1.9.91])
|
||||
m4_define([wayland_protocols_required_version], [1.14])
|
||||
m4_define([epoxy_required_version], [1.4])
|
||||
m4_define([cloudproviders_required_version], [0.2.5])
|
||||
m4_define([sysprof_required_version], [3.33.2])
|
||||
m4_define([wayland_protocols_required_version], [1.7])
|
||||
m4_define([mirclient_required_version], [0.22.0])
|
||||
m4_define([mircookie_required_version], [0.17.0])
|
||||
m4_define([epoxy_required_version], [1.0])
|
||||
GLIB_REQUIRED_VERSION=glib_required_version
|
||||
PANGO_REQUIRED_VERSION=pango_required_version
|
||||
ATK_REQUIRED_VERSION=atk_required_version
|
||||
@@ -342,16 +341,10 @@ AC_ARG_ENABLE(wayland-backend,
|
||||
[AS_HELP_STRING([--enable-wayland-backend],
|
||||
[enable the wayland gdk backend])],
|
||||
[backend_set=yes])
|
||||
AC_ARG_ENABLE(cloudproviders,
|
||||
[AS_HELP_STRING([--enable-cloudproviders],
|
||||
[enable libcloudproviders integration])],
|
||||
[cloudproviders_set=yes])
|
||||
|
||||
AC_ARG_ENABLE(profiler,
|
||||
[AS_HELP_STRING([--enable-profiler],
|
||||
[enable profiler integration])],
|
||||
[enable_profiler=$enableval],
|
||||
[enable_profiler=no])
|
||||
AC_ARG_ENABLE(mir-backend,
|
||||
[AS_HELP_STRING([--enable-mir-backend],
|
||||
[enable the Mir gdk backend])],
|
||||
[backend_set=yes])
|
||||
|
||||
if test -z "$backend_set"; then
|
||||
if test "$platform_win32" = yes; then
|
||||
@@ -359,6 +352,7 @@ if test -z "$backend_set"; then
|
||||
else
|
||||
enable_x11_backend=yes
|
||||
enable_wayland_backend=maybe
|
||||
enable_mir_backend=no
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -409,7 +403,7 @@ if test "x$enable_quartz_backend" = xyes; then
|
||||
backend_immodules="$backend_immodules,quartz"
|
||||
GDK_WINDOWING="$GDK_WINDOWING
|
||||
#define GDK_WINDOWING_QUARTZ"
|
||||
GDK_EXTRA_LIBS="$GDK_EXTRA_LIBS -Wl,-framework,Cocoa"
|
||||
GDK_EXTRA_LIBS="$GDK_EXTRA_LIBS -framework Cocoa"
|
||||
DISABLE_ON_QUARTZ='%'
|
||||
AM_CONDITIONAL(USE_QUARTZ, true)
|
||||
if test "x$quartz_relocation" = xyes; then
|
||||
@@ -459,11 +453,10 @@ if test "$enable_wayland_backend" = "yes"; then
|
||||
GDK_BACKENDS="$GDK_BACKENDS wayland"
|
||||
GDK_WINDOWING="$GDK_WINDOWING
|
||||
#define GDK_WINDOWING_WAYLAND"
|
||||
backend_immodules="$backend_immodules,wayland"
|
||||
WAYLAND_PACKAGES="$WAYLAND_DEPENDENCIES"
|
||||
AC_PATH_PROG([WAYLAND_SCANNER],[wayland-scanner],[no])
|
||||
AS_IF([test "x$WAYLAND_SCANNER" = "xno"],
|
||||
[AC_MSG_ERROR([Could not find wayland-scanner in your PATH, required for parsing wayland extension protocols])])
|
||||
AC_MSG_ERROR([Could not find wayland-scanner in your PATH, required for parsing wayland extension protocols]))
|
||||
AC_SUBST([WAYLAND_SCANNER])
|
||||
|
||||
AM_CONDITIONAL(USE_WAYLAND, true)
|
||||
@@ -471,6 +464,30 @@ else
|
||||
AM_CONDITIONAL(USE_WAYLAND, false)
|
||||
fi
|
||||
|
||||
MIR_DEPENDENCIES="mirclient >= mirclient_required_version mircookie >= mircookie_required_version libcontent-hub-glib"
|
||||
if test "$enable_mir_backend" = "maybe" ; then
|
||||
PKG_CHECK_EXISTS($MIR_DEPENDENCIES, [have_mir_deps=yes], [have_mir_deps=no])
|
||||
AC_MSG_CHECKING([for MIR_DEPENDENCIES])
|
||||
if test "$have_mir_deps" = "no" ; then
|
||||
enable_mir_backend=no
|
||||
else
|
||||
enable_mir_backend=yes
|
||||
fi
|
||||
AC_MSG_RESULT($enable_mir_backend)
|
||||
fi
|
||||
|
||||
if test "$enable_mir_backend" = "yes"; then
|
||||
cairo_backends="$cairo_backends cairo"
|
||||
GDK_BACKENDS="$GDK_BACKENDS mir"
|
||||
GDK_WINDOWING="$GDK_WINDOWING
|
||||
#define GDK_WINDOWING_MIR"
|
||||
MIR_PACKAGES="$MIR_DEPENDENCIES"
|
||||
|
||||
AM_CONDITIONAL(USE_MIR, true)
|
||||
else
|
||||
AM_CONDITIONAL(USE_MIR, false)
|
||||
fi
|
||||
|
||||
# strip leading space
|
||||
GDK_BACKENDS=${GDK_BACKENDS#* }
|
||||
|
||||
@@ -561,7 +578,6 @@ PKG_CHECK_MODULES(BASE_DEPENDENCIES,
|
||||
[glib-2.0 >= glib_required_version dnl
|
||||
atk >= atk_required_version dnl
|
||||
pango >= pango_required_version dnl
|
||||
fribidi >= fribidi_required_version dnl
|
||||
cairo >= cairo_required_version dnl
|
||||
cairo-gobject >= cairo_required_version dnl
|
||||
gdk-pixbuf-2.0 >= gdk_pixbuf_required_version])
|
||||
@@ -796,13 +812,7 @@ LIBS=$gtk_save_LIBS
|
||||
|
||||
AC_CHECK_HEADERS(linux/memfd.h,
|
||||
AC_DEFINE(HAVE_LINUX_MEMFD_H, 1,
|
||||
[Define to 1 if linux/memfd.h is available]))
|
||||
AC_CHECK_HEADERS(linux/input.h,
|
||||
AC_DEFINE(HAVE_LINUX_INPUT_H, 1,
|
||||
[Define to 1 if linux/input.h is available]))
|
||||
AC_CHECK_HEADERS(dev/evdev/input.h,
|
||||
AC_DEFINE(HAVE_DEV_EVDEV_INPUT_H, 1,
|
||||
[Define to 1 if dev/evdev/input.h is available]))
|
||||
[Define to 1 if memfd.h is available]))
|
||||
AC_CHECK_HEADERS(sys/mman.h,
|
||||
AC_DEFINE(HAVE_SYS_MMAN_H, 1,
|
||||
[Define to 1 if mman.h is available]))
|
||||
@@ -816,6 +826,19 @@ AC_CHECK_HEADERS(ftw.h,
|
||||
AC_DEFINE(HAVE_FTW_H, 1,
|
||||
[Define to 1 if ftw.h is available]))
|
||||
|
||||
AC_MSG_CHECKING([for GNU ftw extensions])
|
||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#define _XOPEN_SOURCE 500
|
||||
#define _GNU_SOURCE
|
||||
#include <ftw.h>]],
|
||||
[[int flags = FTW_ACTIONRETVAL;]])],
|
||||
[gtk_ok=yes],[gtk_ok=no])
|
||||
if test $gtk_ok = yes; then
|
||||
AC_MSG_RESULT([yes])
|
||||
AC_DEFINE(HAVE_GNU_FTW, 1, [Have GNU ftw])
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
fi
|
||||
|
||||
#
|
||||
# Disable deprecation checks for all libraries we depend on on stable branches.
|
||||
# This is so newer versions of those libraries don't cause more warnings with
|
||||
@@ -840,12 +863,15 @@ AC_CHECK_FUNCS(mallinfo)
|
||||
AC_CHECK_FUNCS(getresuid)
|
||||
AC_TYPE_UID_T
|
||||
|
||||
# Check for round(), rint(), isnan() and isinf()
|
||||
# Check for log2(), exp2(), nearbyint() and trunc()
|
||||
# Check for round(), rint(), isnan(), isinf() and nearbyint()
|
||||
AC_CHECK_LIB(m,round,,)
|
||||
AC_CHECK_FUNCS(round rint nearbyint sincos exp2 log2 trunc)
|
||||
AC_CHECK_FUNCS(round rint nearbyint sincos exp2 log2)
|
||||
AC_CHECK_DECLS([isnan, isinf], [], [], [[#include <math.h>]])
|
||||
|
||||
# Checks for gdkspawn
|
||||
AC_CHECK_HEADERS(crt_externs.h)
|
||||
AC_CHECK_FUNCS(_NSGetEnviron)
|
||||
|
||||
AC_MSG_CHECKING(whether to build dynamic modules)
|
||||
|
||||
AC_ARG_ENABLE(modules,
|
||||
@@ -958,7 +984,6 @@ AM_CONDITIONAL(INCLUDE_IM_TI_ER, [test x"$INCLUDE_ti_er" = xyes])
|
||||
AM_CONDITIONAL(INCLUDE_IM_TI_ET, [test x"$INCLUDE_ti_et" = xyes])
|
||||
AM_CONDITIONAL(INCLUDE_IM_VIQR, [test x"$INCLUDE_viqr" = xyes])
|
||||
AM_CONDITIONAL(INCLUDE_IM_XIM, [test x"$INCLUDE_xim" = xyes])
|
||||
AM_CONDITIONAL(INCLUDE_IM_WAYLAND, [test x"$INCLUDE_wayland" = xyes])
|
||||
|
||||
# Checks to see whether we should include mediaLib
|
||||
# support.
|
||||
@@ -1045,6 +1070,17 @@ if test "x$enable_x11_backend" = xyes; then
|
||||
AC_CHECK_FUNC(XextFindDisplay, :,
|
||||
AC_MSG_ERROR([*** libX11 and libXext not found. Check 'config.log' for more details.]))
|
||||
|
||||
# Check if <X11/extensions/XIproto.h> is needed for xReply.
|
||||
|
||||
AC_CHECK_TYPE([xReply], ,
|
||||
[AC_CHECK_TYPE([xReply],
|
||||
[AC_DEFINE([NEED_XIPROTO_H_FOR_XREPLY], 1,
|
||||
[Define if <X11/extensions/XIproto.h> needed for xReply])],
|
||||
[AC_MSG_ERROR([xReply type unavailable. X11 is too old])],
|
||||
[[#include <X11/extensions/XIproto.h>
|
||||
#include <X11/Xlibint.h>]])],
|
||||
[[#include <X11/Xlibint.h>]])
|
||||
|
||||
# Check for XKB support.
|
||||
|
||||
if test "x$enable_xkb" = "xyes"; then
|
||||
@@ -1305,41 +1341,11 @@ else
|
||||
LIBS="$gtk_save_LIBS"
|
||||
fi
|
||||
|
||||
# Check for libcloudproviders
|
||||
|
||||
CLOUDPROVIDER_PACKAGES=""
|
||||
if test "x$cloudproviders_set" = "xyes"; then
|
||||
CLOUDPROVIDER_PACKAGES="cloudproviders >= cloudproviders_required_version"
|
||||
if $PKG_CONFIG --exists $CLOUDPROVIDER_PACKAGES ; then
|
||||
AC_DEFINE(HAVE_CLOUDPROVIDERS, [1],
|
||||
[Define if libcloudproviders is available]
|
||||
)
|
||||
else
|
||||
AC_MSG_ERROR([
|
||||
*** libcloudproviders not found.])
|
||||
fi
|
||||
fi
|
||||
|
||||
# Check for profiler support
|
||||
|
||||
PROFILER_PACKAGES=""
|
||||
if test "x$enable_profiler" = "xyes"; then
|
||||
PROFILER_PACKAGES="sysprof-capture-3 >= sysprof_required_version"
|
||||
if $PKG_CONFIG --exists $PROFILER_PACKAGES; then
|
||||
AC_DEFINE(HAVE_SYSPROF_CAPTURE, [1],
|
||||
[Define if sysprof-capture-3 is available]
|
||||
)
|
||||
else
|
||||
AC_MSG_ERROR([
|
||||
*** sysprof-capture-3 not found.])
|
||||
fi
|
||||
fi
|
||||
|
||||
CFLAGS="$saved_cflags"
|
||||
LDFLAGS="$saved_ldflags"
|
||||
|
||||
GDK_PACKAGES="$PANGO_PACKAGES gdk-pixbuf-2.0 >= gdk_pixbuf_required_version cairo >= cairo_required_version cairo-gobject >= cairo_required_version"
|
||||
GDK_PRIVATE_PACKAGES="$GDK_GIO_PACKAGE $X_PACKAGES $WAYLAND_PACKAGES $cairo_backends epoxy >= epoxy_required_version $CLOUDPROVIDER_PACKAGES $PROFILER_PACKAGES fribidi >= fribidi_required_version"
|
||||
GDK_PRIVATE_PACKAGES="$GDK_GIO_PACKAGE $X_PACKAGES $WAYLAND_PACKAGES $MIR_PACKAGES $cairo_backends epoxy >= epoxy_required_version"
|
||||
|
||||
PKG_CHECK_MODULES(GDK_DEP, $GDK_PACKAGES $GDK_PRIVATE_PACKAGES)
|
||||
GDK_DEP_LIBS="$GDK_EXTRA_LIBS $GDK_DEP_LIBS $MATH_LIB"
|
||||
@@ -1373,7 +1379,7 @@ fi
|
||||
PKG_CHECK_MODULES(ATK, $ATK_PACKAGES)
|
||||
|
||||
GTK_PACKAGES="atk >= atk_required_version cairo >= cairo_required_version cairo-gobject >= cairo_required_version gdk-pixbuf-2.0 >= gdk_pixbuf_required_version gio-2.0 >= glib_required_version"
|
||||
GTK_PRIVATE_PACKAGES="$ATK_PACKAGES $WAYLAND_PACKAGES epoxy >= epoxy_required_version fribidi >= fribidi_required_version"
|
||||
GTK_PRIVATE_PACKAGES="$ATK_PACKAGES $WAYLAND_PACKAGES $MIR_PACKAGES epoxy >= epoxy_required_version"
|
||||
if test "x$enable_x11_backend" = xyes -o "x$enable_wayland_backend" = xyes; then
|
||||
GTK_PRIVATE_PACKAGES="$GTK_PRIVATE_PACKAGES pangoft2"
|
||||
fi
|
||||
@@ -1391,22 +1397,6 @@ if test x"$os_win32" = xyes; then
|
||||
GTK_EXTRA_CFLAGS="$msnative_struct"
|
||||
fi
|
||||
|
||||
##################################################
|
||||
# Check for harfbuzz and pangoft2
|
||||
##################################################
|
||||
|
||||
PKG_CHECK_MODULES(GTK_FONT_CHOOSER_WIDGET,
|
||||
harfbuzz >= 0.9 pangoft2,
|
||||
build_font_demo=yes,
|
||||
build_font_demo=no)
|
||||
AM_CONDITIONAL(BUILD_FONT_DEMO, [ test "x$build_font_demo" = xyes ])
|
||||
if test "x$build_font_demo" = xyes; then
|
||||
AC_DEFINE([HAVE_HARFBUZZ], 1, [defines whether we have HarfBuzz])
|
||||
AC_DEFINE([HAVE_PANGOFT], 1, [defines whether we have pangoft2])
|
||||
GTK_DEP_CFLAGS="$GTK_DEP_CFLAGS $GTK_FONT_CHOOSER_WIDGET_CFLAGS"
|
||||
GTK_DEP_LIBS="$GTK_DEP_LIBS $GTK_FONT_CHOOSER_WIDGET_LIBS"
|
||||
fi
|
||||
|
||||
if $PKG_CONFIG --exists x11; then
|
||||
X11_PREFIX="`$PKG_CONFIG --variable=prefix x11`"
|
||||
elif test x"$prefix" != xNONE; then
|
||||
@@ -1415,48 +1405,10 @@ else
|
||||
X11_PREFIX="$ac_default_prefix"
|
||||
fi
|
||||
|
||||
AC_ARG_ENABLE(win32-gles,
|
||||
[AS_HELP_STRING([--enable-win32-gles],
|
||||
[enable OpenGL ES rendering in Win32 backend, disabled by default])],
|
||||
[win32_gles=yes],
|
||||
[win32_gles=no])
|
||||
|
||||
if test x"$enable_win32_backend" = xyes; then
|
||||
AC_MSG_CHECKING(WGL support in epoxy)
|
||||
WGL_SUPPORT="`$PKG_CONFIG --variable=epoxy_has_wgl epoxy`"
|
||||
if test x"$WGL_SUPPORT" = x1; then
|
||||
AC_MSG_RESULT([supported])
|
||||
else
|
||||
AC_MSG_ERROR([
|
||||
*** epoxy was not built with WGL support or epoxy version is too old.
|
||||
*** WGL support in epoxy is enabled by default for all Windows builds,
|
||||
*** and is used by GTK+ uncondititonally. If it is not there, then
|
||||
*** something is very wrong.
|
||||
])
|
||||
fi
|
||||
if test x"$win32_gles" = xyes; then
|
||||
AC_MSG_CHECKING(EGL support in epoxy)
|
||||
EGL_SUPPORT="`$PKG_CONFIG --variable=epoxy_has_egl epoxy`"
|
||||
if test x"$EGL_SUPPORT" = x1; then
|
||||
AC_MSG_RESULT([supported])
|
||||
else
|
||||
AC_MSG_ERROR([
|
||||
*** epoxy was not built with EGL support or epoxy version is too old.
|
||||
*** EGL support in epoxy is disabled by default in Windows builds,
|
||||
*** you might need to rebuild epoxy with explicit --enable-egl=yes.
|
||||
*** EGL support is needed for OpenGL ES rendering.
|
||||
])
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
AM_CONDITIONAL(WIN32_GLES, test x"$platform_win32" = xyes -a x"$win32_gles" = xyes)
|
||||
|
||||
GLIB_PREFIX="`$PKG_CONFIG --variable=prefix glib-2.0`"
|
||||
ATK_PREFIX="`$PKG_CONFIG --variable=prefix atk`"
|
||||
PANGO_PREFIX="`$PKG_CONFIG --variable=prefix pango`"
|
||||
CAIRO_PREFIX="`$PKG_CONFIG --variable=prefix cairo`"
|
||||
ISO_CODES_PREFIX="`$PKG_CONFIG --variable=prefix iso-codes`"
|
||||
|
||||
AC_SUBST(GTK_PACKAGES)
|
||||
AC_SUBST(GTK_PRIVATE_PACKAGES)
|
||||
@@ -1470,7 +1422,6 @@ AC_SUBST(GLIB_PREFIX)
|
||||
AC_SUBST(ATK_PREFIX)
|
||||
AC_SUBST(PANGO_PREFIX)
|
||||
AC_SUBST(CAIRO_PREFIX)
|
||||
AC_SUBST(ISO_CODES_PREFIX)
|
||||
|
||||
AC_SUBST(GTK_DEBUG_FLAGS)
|
||||
AC_SUBST(GTK_XIM_FLAGS)
|
||||
@@ -1478,6 +1429,37 @@ AC_SUBST(GTK_XIM_FLAGS)
|
||||
GDK_PIXBUF_LIBS=`$PKG_CONFIG --libs gdk-pixbuf-2.0`
|
||||
AC_SUBST(GDK_PIXBUF_LIBS)
|
||||
|
||||
########################
|
||||
# Checks needed for gail
|
||||
########################
|
||||
|
||||
old_LIBS="$LIBS"
|
||||
dnl Checks for inet libraries:
|
||||
AC_SEARCH_LIBS(gethostent, nsl)
|
||||
AC_SEARCH_LIBS(setsockopt, socket)
|
||||
AC_SEARCH_LIBS(connect, inet)
|
||||
|
||||
dnl check for the sockaddr_un.sun_len member
|
||||
AC_CHECK_MEMBER([struct sockaddr_un.sun_len],
|
||||
[struct_sockaddr_un_sun_len=true],
|
||||
[struct_sockaddr_un_suin_len=false],
|
||||
[#include <sys/types.h>
|
||||
#include <sys/un.h>]
|
||||
)
|
||||
case $struct_sockaddr_un_sun_len in
|
||||
true)
|
||||
AC_DEFINE_UNQUOTED(HAVE_SOCKADDR_UN_SUN_LEN, 1,
|
||||
[Have the sockaddr_un.sun_len member])
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
|
||||
GAIL_INET_LIBS="$LIBS"
|
||||
AC_SUBST([GAIL_INET_LIBS])
|
||||
|
||||
LIBS="$old_LIBS"
|
||||
|
||||
################################################################
|
||||
# Printing system checks
|
||||
################################################################
|
||||
@@ -1505,13 +1487,19 @@ else
|
||||
CUPS_CFLAGS=`$CUPS_CONFIG --cflags | sed 's/-O[0-9]*//' | sed 's/-m[^\t]*//g'`
|
||||
CUPS_LIBS=`$CUPS_CONFIG --libs`
|
||||
|
||||
CUPS_API_VERSION=`$CUPS_CONFIG --version`
|
||||
CUPS_API_VERSION=`$CUPS_CONFIG --api-version`
|
||||
CUPS_API_MAJOR=`echo $ECHO_N $CUPS_API_VERSION | awk -F. '{print $1}'`
|
||||
CUPS_API_MINOR=`echo $ECHO_N $CUPS_API_VERSION | awk -F. '{print $2}'`
|
||||
|
||||
if test $CUPS_API_MAJOR -lt 1 -o \
|
||||
$CUPS_API_MAJOR -eq 1 -a $CUPS_API_MINOR -lt 7; then
|
||||
AC_MSG_ERROR([CUPS >= 1.7 not found])
|
||||
$CUPS_API_MAJOR -eq 1 -a $CUPS_API_MINOR -lt 2; then
|
||||
AC_MSG_ERROR([CUPS >= 1.2 not found])
|
||||
fi
|
||||
if test $CUPS_API_MAJOR -gt 1 -o \
|
||||
$CUPS_API_MAJOR -eq 1 -a $CUPS_API_MINOR -ge 6; then
|
||||
AC_DEFINE(HAVE_CUPS_API_1_6, 1,
|
||||
[Define to 1 if CUPS 1.6 API is available])
|
||||
have_cups_api_1_6=yes
|
||||
fi
|
||||
|
||||
AC_SUBST(CUPS_API_MAJOR)
|
||||
@@ -1524,6 +1512,22 @@ else
|
||||
PRINT_BACKENDS="$PRINT_BACKENDS cups"
|
||||
AM_CONDITIONAL(HAVE_CUPS, true)
|
||||
have_cups=yes
|
||||
|
||||
gtk_save_cflags="$CFLAGS"
|
||||
CFLAGS="$CUPS_CFLAGS"
|
||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <cups/http.h>]],
|
||||
[[http_t http; char *s = http.authstring;]])],
|
||||
[AC_DEFINE([HAVE_HTTP_AUTHSTRING], [],
|
||||
[Define if cups http_t authstring field is accessible])],
|
||||
[])
|
||||
CFLAGS="$gtk_save_cflags"
|
||||
|
||||
AC_SUBST(HAVE_HTTP_AUTHSTRING)
|
||||
|
||||
gtk_save_libs="$LIBS"
|
||||
LIBS="$CUPS_LIBS"
|
||||
AC_CHECK_FUNCS(httpGetAuthString)
|
||||
LIBS="$gtk_save_libs"
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -1705,6 +1709,15 @@ if test "$have_colord" = "yes"; then
|
||||
fi
|
||||
AM_CONDITIONAL(HAVE_COLORD, test "x$have_colord" = "xyes")
|
||||
|
||||
##################################################
|
||||
# Check for harfbuzz and pangoft2
|
||||
##################################################
|
||||
|
||||
PKG_CHECK_MODULES(FONTDEMO, harfbuzz >= 0.9 pangoft2, build_font_demo=yes, build_font_demo=no)
|
||||
AC_SUBST(FONTDEMO_CFLAGS)
|
||||
AC_SUBST(FONTDEMO_LIBS)
|
||||
AM_CONDITIONAL(BUILD_FONT_DEMO, [ test "x$build_font_demo" = xyes ])
|
||||
|
||||
##################################################
|
||||
# Checks for gtk-doc and docbook-tools
|
||||
##################################################
|
||||
@@ -1786,7 +1799,7 @@ case "$host" in
|
||||
SAVED_CFLAGS="${CFLAGS}"
|
||||
CFLAGS="-fvisibility=hidden"
|
||||
AC_MSG_CHECKING([for -fvisibility=hidden compiler flag])
|
||||
AC_TRY_COMPILE([], [return 0],
|
||||
AC_TRY_COMPILE([], [int main (void) { return 0; }],
|
||||
AC_MSG_RESULT(yes)
|
||||
enable_fvisibility_hidden=yes,
|
||||
AC_MSG_RESULT(no)
|
||||
@@ -1867,7 +1880,8 @@ AC_ARG_ENABLE(Bsymbolic,
|
||||
[SAVED_LDFLAGS="${LDFLAGS}"
|
||||
AC_MSG_CHECKING([for -Bsymbolic-functions linker flag])
|
||||
LDFLAGS=-Wl,-Bsymbolic-functions
|
||||
AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[return 0]])],
|
||||
AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],
|
||||
[[int main (void) { return 0; }]])],
|
||||
[AC_MSG_RESULT(yes)
|
||||
enable_Bsymbolic=yes],
|
||||
[AC_MSG_RESULT(no)
|
||||
@@ -1936,13 +1950,11 @@ docs/reference/gdk/version.xml
|
||||
docs/reference/gtk/Makefile
|
||||
docs/reference/gtk/gtk3.types
|
||||
docs/reference/gtk/version.xml
|
||||
docs/reference/gtk/getting_started.xml
|
||||
docs/reference/libgail-util/Makefile
|
||||
docs/reference/libgail-util/version.xml
|
||||
docs/tools/Makefile
|
||||
build/Makefile
|
||||
build/win32/Makefile
|
||||
build/win32/config-msvc.mak
|
||||
build/win32/vs9/Makefile
|
||||
build/win32/vs9/gtk3-version-paths.vsprops
|
||||
build/win32/vs10/Makefile
|
||||
@@ -1951,7 +1963,6 @@ build/win32/vs11/Makefile
|
||||
build/win32/vs12/Makefile
|
||||
build/win32/vs14/Makefile
|
||||
build/win32/vs15/Makefile
|
||||
build/win32/vs16/Makefile
|
||||
gdk/Makefile
|
||||
gdk/broadway/Makefile
|
||||
gdk/x11/Makefile
|
||||
@@ -1960,6 +1971,7 @@ gdk/win32/rc/Makefile
|
||||
gdk/win32/rc/gdk.rc
|
||||
gdk/quartz/Makefile
|
||||
gdk/wayland/Makefile
|
||||
gdk/mir/Makefile
|
||||
gdk/gdkversionmacros.h
|
||||
gtk/Makefile
|
||||
gtk/makefile.msc
|
||||
@@ -1999,4 +2011,3 @@ echo " colord support: $have_colord"
|
||||
echo " Introspection: $found_introspection"
|
||||
echo " Debugging: $enable_debug"
|
||||
echo " Documentation: $enable_gtk_doc"
|
||||
echo " Profiler: $enable_profiler"
|
||||
|
@@ -3,7 +3,4 @@ include $(top_srcdir)/Makefile.decl
|
||||
|
||||
SUBDIRS = gtk-demo widget-factory icon-browser
|
||||
|
||||
EXTRA_DIST += \
|
||||
meson.build
|
||||
|
||||
-include $(top_srcdir)/git.mk
|
||||
|
@@ -48,7 +48,6 @@ demos_base = \
|
||||
offscreen_window2.c \
|
||||
overlay.c \
|
||||
overlay2.c \
|
||||
paint.c \
|
||||
panes.c \
|
||||
pickers.c \
|
||||
pixbufs.c \
|
||||
@@ -104,6 +103,11 @@ LDADDS = \
|
||||
$(GDK_DEP_LIBS) \
|
||||
-lm
|
||||
|
||||
if BUILD_FONT_DEMO
|
||||
AM_CPPFLAGS += $(FONTDEMO_CFLAGS)
|
||||
LDADDS += $(FONTDEMO_LIBS)
|
||||
endif
|
||||
|
||||
bin_PROGRAMS = gtk3-demo gtk3-demo-application
|
||||
|
||||
desktopdir = $(datadir)/applications
|
||||
@@ -117,9 +121,7 @@ EXTRA_DIST += \
|
||||
demo.gresource.xml \
|
||||
$(resource_files) \
|
||||
org.gtk.Demo.gschema.xml \
|
||||
demos.h.win32 \
|
||||
meson.build \
|
||||
geninclude.py
|
||||
demos.h.win32
|
||||
|
||||
gsettings_SCHEMAS = \
|
||||
org.gtk.Demo.gschema.xml
|
||||
@@ -151,7 +153,7 @@ gtk3_demo_application_SOURCES = \
|
||||
|
||||
gtk3_demo_application_LDADD = $(LDADDS)
|
||||
|
||||
resource_files = $(shell $(GLIB_COMPILE_RESOURCES) --sourcedir=$(srcdir) --generate-dependencies $(srcdir)/demo.gresource.xml)
|
||||
resource_files = $(shell $(GLIB_COMPILE_RESOURCES) --sourcedir=$(srcdir) --generate-dependencies $(builddir)/demo.gresource.xml)
|
||||
|
||||
demo_resources.c: demo.gresource.xml $(resource_files)
|
||||
$(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=$(srcdir) --generate-source $(srcdir)/demo.gresource.xml
|
||||
|
@@ -151,7 +151,7 @@ query_for_toplevel (GdkScreen *screen,
|
||||
|
||||
g_object_unref (cursor);
|
||||
gtk_widget_destroy (popup);
|
||||
gdk_display_flush (display); /* Really release the grab */
|
||||
gdk_flush (); /* Really release the grab */
|
||||
|
||||
return toplevel;
|
||||
}
|
||||
|
@@ -144,7 +144,7 @@ create_capital_store (void)
|
||||
{ NULL, "Jackson" },
|
||||
{ NULL, "Jefferson City" },
|
||||
{ NULL, "Juneau" },
|
||||
{ "K - O", NULL },
|
||||
{ "K - O" },
|
||||
{ NULL, "Lansing" },
|
||||
{ NULL, "Lincoln" },
|
||||
{ NULL, "Little Rock" },
|
||||
@@ -154,7 +154,7 @@ create_capital_store (void)
|
||||
{ NULL, "Nashville" },
|
||||
{ NULL, "Oklahoma City" },
|
||||
{ NULL, "Olympia" },
|
||||
{ "P - S", NULL },
|
||||
{ NULL, "P - S" },
|
||||
{ NULL, "Phoenix" },
|
||||
{ NULL, "Pierre" },
|
||||
{ NULL, "Providence" },
|
||||
|
@@ -177,7 +177,6 @@
|
||||
<file>offscreen_window2.c</file>
|
||||
<file>overlay.c</file>
|
||||
<file>overlay2.c</file>
|
||||
<file>paint.c</file>
|
||||
<file>pagesetup.c</file>
|
||||
<file>panes.c</file>
|
||||
<file>pickers.c</file>
|
||||
|
@@ -9,254 +9,163 @@
|
||||
|
||||
#include "gtkfishbowl.h"
|
||||
|
||||
const char *const css =
|
||||
".blurred-button {"
|
||||
" box-shadow: 0px 0px 5px 10px rgba(0, 0, 0, 0.5);"
|
||||
"}"
|
||||
"";
|
||||
GtkWidget *allow_changes;
|
||||
|
||||
char **icon_names = NULL;
|
||||
gsize n_icon_names = 0;
|
||||
#define N_STATS 5
|
||||
|
||||
static void
|
||||
init_icon_names (GtkIconTheme *theme)
|
||||
{
|
||||
GPtrArray *icons;
|
||||
GList *l, *icon_list;
|
||||
#define STATS_UPDATE_TIME G_USEC_PER_SEC
|
||||
|
||||
if (icon_names)
|
||||
return;
|
||||
typedef struct _Stats Stats;
|
||||
struct _Stats {
|
||||
gint64 last_stats;
|
||||
gint64 last_frame;
|
||||
gint last_suggestion;
|
||||
guint frame_counter_max;
|
||||
|
||||
icon_list = gtk_icon_theme_list_icons (theme, NULL);
|
||||
icons = g_ptr_array_new ();
|
||||
|
||||
for (l = icon_list; l; l = l->next)
|
||||
{
|
||||
if (g_str_has_suffix (l->data, "symbolic"))
|
||||
continue;
|
||||
|
||||
g_ptr_array_add (icons, g_strdup (l->data));
|
||||
}
|
||||
|
||||
n_icon_names = icons->len;
|
||||
g_ptr_array_add (icons, NULL); /* NULL-terminate the array */
|
||||
icon_names = (char **) g_ptr_array_free (icons, FALSE);
|
||||
|
||||
/* don't free strings, we assigned them to the array */
|
||||
g_list_free_full (icon_list, g_free);
|
||||
}
|
||||
|
||||
static const char *
|
||||
get_random_icon_name (GtkIconTheme *theme)
|
||||
{
|
||||
init_icon_names (theme);
|
||||
|
||||
return icon_names[g_random_int_range(0, n_icon_names)];
|
||||
}
|
||||
|
||||
GtkWidget *
|
||||
create_icon (void)
|
||||
{
|
||||
GtkWidget *image;
|
||||
|
||||
image = gtk_image_new_from_icon_name (get_random_icon_name (gtk_icon_theme_get_default ()), GTK_ICON_SIZE_DND);
|
||||
|
||||
return image;
|
||||
}
|
||||
|
||||
static GtkWidget *
|
||||
create_button (void)
|
||||
{
|
||||
return gtk_button_new_with_label ("Button");
|
||||
}
|
||||
|
||||
static GtkWidget *
|
||||
create_blurred_button (void)
|
||||
{
|
||||
GtkWidget *w = gtk_button_new ();
|
||||
|
||||
gtk_style_context_add_class (gtk_widget_get_style_context (w), "blurred-button");
|
||||
|
||||
return w;
|
||||
}
|
||||
|
||||
static GtkWidget *
|
||||
create_font_button (void)
|
||||
{
|
||||
return gtk_font_button_new ();
|
||||
}
|
||||
|
||||
static GtkWidget *
|
||||
create_level_bar (void)
|
||||
{
|
||||
GtkWidget *w = gtk_level_bar_new_for_interval (0, 100);
|
||||
|
||||
gtk_level_bar_set_value (GTK_LEVEL_BAR (w), 50);
|
||||
|
||||
/* Force them to be a bit larger */
|
||||
gtk_widget_set_size_request (w, 200, -1);
|
||||
|
||||
return w;
|
||||
}
|
||||
|
||||
static GtkWidget *
|
||||
create_spinner (void)
|
||||
{
|
||||
GtkWidget *w = gtk_spinner_new ();
|
||||
|
||||
gtk_spinner_start (GTK_SPINNER (w));
|
||||
|
||||
return w;
|
||||
}
|
||||
|
||||
static GtkWidget *
|
||||
create_spinbutton (void)
|
||||
{
|
||||
GtkWidget *w = gtk_spin_button_new_with_range (0, 10, 1);
|
||||
|
||||
return w;
|
||||
}
|
||||
|
||||
static GtkWidget *
|
||||
create_label (void)
|
||||
{
|
||||
GtkWidget *w = gtk_label_new ("pLorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.");
|
||||
|
||||
gtk_label_set_line_wrap (GTK_LABEL (w), TRUE);
|
||||
gtk_label_set_max_width_chars (GTK_LABEL (w), 100);
|
||||
|
||||
return w;
|
||||
}
|
||||
|
||||
#if 0
|
||||
static GtkWidget *
|
||||
create_gears (void)
|
||||
{
|
||||
GtkWidget *w = gtk_gears_new ();
|
||||
|
||||
gtk_widget_set_size_request (w, 100, 100);
|
||||
|
||||
return w;
|
||||
}
|
||||
#endif
|
||||
|
||||
static GtkWidget *
|
||||
create_switch (void)
|
||||
{
|
||||
GtkWidget *w = gtk_switch_new ();
|
||||
|
||||
gtk_switch_set_state (GTK_SWITCH (w), TRUE);
|
||||
|
||||
return w;
|
||||
}
|
||||
|
||||
static const struct {
|
||||
const char *name;
|
||||
GtkWidget * (*create_func) (void);
|
||||
} widget_types[] = {
|
||||
{ "Icon", create_icon },
|
||||
{ "Button", create_button },
|
||||
{ "Blurbutton", create_blurred_button },
|
||||
{ "Fontbutton", create_font_button },
|
||||
{ "Levelbar", create_level_bar },
|
||||
{ "Label", create_label },
|
||||
{ "Spinner", create_spinner },
|
||||
{ "Spinbutton", create_spinbutton },
|
||||
// { "Gears", create_gears },
|
||||
{ "Switch", create_switch },
|
||||
guint stats_index;
|
||||
guint frame_counter[N_STATS];
|
||||
guint item_counter[N_STATS];
|
||||
};
|
||||
|
||||
static int selected_widget_type = -1;
|
||||
static const int N_WIDGET_TYPES = G_N_ELEMENTS (widget_types);
|
||||
static Stats *
|
||||
get_stats (GtkWidget *widget)
|
||||
{
|
||||
static GQuark stats_quark = 0;
|
||||
Stats *stats;
|
||||
|
||||
if (G_UNLIKELY (stats_quark == 0))
|
||||
stats_quark = g_quark_from_static_string ("stats");
|
||||
|
||||
stats = g_object_get_qdata (G_OBJECT (widget), stats_quark);
|
||||
if (stats == NULL)
|
||||
{
|
||||
stats = g_new0 (Stats, 1);
|
||||
g_object_set_qdata_full (G_OBJECT (widget), stats_quark, stats, g_free);
|
||||
stats->last_frame = gdk_frame_clock_get_frame_time (gtk_widget_get_frame_clock (widget));
|
||||
stats->last_stats = stats->last_frame;
|
||||
}
|
||||
|
||||
return stats;
|
||||
}
|
||||
|
||||
static void
|
||||
set_widget_type (GtkFishbowl *fishbowl,
|
||||
int widget_type_index)
|
||||
do_stats (GtkWidget *widget,
|
||||
GtkWidget *info_label,
|
||||
gint *suggested_change)
|
||||
{
|
||||
GtkWidget *window, *headerbar;
|
||||
Stats *stats;
|
||||
gint64 frame_time;
|
||||
|
||||
if (widget_type_index == selected_widget_type)
|
||||
return;
|
||||
stats = get_stats (widget);
|
||||
frame_time = gdk_frame_clock_get_frame_time (gtk_widget_get_frame_clock (widget));
|
||||
|
||||
selected_widget_type = widget_type_index;
|
||||
if (stats->last_stats + STATS_UPDATE_TIME < frame_time)
|
||||
{
|
||||
char *new_label;
|
||||
guint i, n_frames;
|
||||
|
||||
gtk_fishbowl_set_creation_func (fishbowl,
|
||||
widget_types[selected_widget_type].create_func);
|
||||
n_frames = 0;
|
||||
for (i = 0; i < N_STATS; i++)
|
||||
{
|
||||
n_frames += stats->frame_counter[i];
|
||||
}
|
||||
|
||||
new_label = g_strdup_printf ("icons - %.1f fps",
|
||||
(double) G_USEC_PER_SEC * n_frames
|
||||
/ (N_STATS * STATS_UPDATE_TIME));
|
||||
gtk_label_set_label (GTK_LABEL (info_label), new_label);
|
||||
g_free (new_label);
|
||||
|
||||
window = gtk_widget_get_toplevel (GTK_WIDGET (fishbowl));
|
||||
headerbar = gtk_window_get_titlebar (GTK_WINDOW (window));
|
||||
gtk_header_bar_set_title (GTK_HEADER_BAR (headerbar),
|
||||
widget_types[selected_widget_type].name);
|
||||
}
|
||||
if (stats->frame_counter[stats->stats_index] >= 19 * stats->frame_counter_max / 20)
|
||||
{
|
||||
if (stats->last_suggestion > 0)
|
||||
stats->last_suggestion *= 2;
|
||||
else
|
||||
stats->last_suggestion = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (stats->last_suggestion < 0)
|
||||
stats->last_suggestion--;
|
||||
else
|
||||
stats->last_suggestion = -1;
|
||||
stats->last_suggestion = MAX (stats->last_suggestion, 1 - (int) stats->item_counter[stats->stats_index]);
|
||||
}
|
||||
|
||||
void
|
||||
next_button_clicked_cb (GtkButton *source,
|
||||
gpointer user_data)
|
||||
{
|
||||
GtkFishbowl *fishbowl = user_data;
|
||||
int new_index;
|
||||
|
||||
if (selected_widget_type + 1 >= N_WIDGET_TYPES)
|
||||
new_index = 0;
|
||||
stats->stats_index = (stats->stats_index + 1) % N_STATS;
|
||||
stats->frame_counter[stats->stats_index] = 0;
|
||||
stats->item_counter[stats->stats_index] = stats->item_counter[(stats->stats_index + N_STATS - 1) % N_STATS];
|
||||
stats->last_stats = frame_time;
|
||||
|
||||
if (suggested_change)
|
||||
*suggested_change = stats->last_suggestion;
|
||||
else
|
||||
stats->last_suggestion = 0;
|
||||
}
|
||||
else
|
||||
new_index = selected_widget_type + 1;
|
||||
{
|
||||
if (suggested_change)
|
||||
*suggested_change = 0;
|
||||
}
|
||||
|
||||
set_widget_type (fishbowl, new_index);
|
||||
stats->last_frame = frame_time;
|
||||
stats->frame_counter[stats->stats_index]++;
|
||||
stats->frame_counter_max = MAX (stats->frame_counter_max, stats->frame_counter[stats->stats_index]);
|
||||
}
|
||||
|
||||
void
|
||||
prev_button_clicked_cb (GtkButton *source,
|
||||
gpointer user_data)
|
||||
static void
|
||||
stats_update (GtkWidget *widget)
|
||||
{
|
||||
GtkFishbowl *fishbowl = user_data;
|
||||
int new_index;
|
||||
Stats *stats;
|
||||
|
||||
if (selected_widget_type - 1 < 0)
|
||||
new_index = N_WIDGET_TYPES - 1;
|
||||
else
|
||||
new_index = selected_widget_type - 1;
|
||||
stats = get_stats (widget);
|
||||
|
||||
set_widget_type (fishbowl, new_index);
|
||||
stats->item_counter[stats->stats_index] = gtk_fishbowl_get_count (GTK_FISHBOWL (widget));
|
||||
}
|
||||
|
||||
static gboolean
|
||||
move_fish (GtkWidget *bowl,
|
||||
GdkFrameClock *frame_clock,
|
||||
gpointer info_label)
|
||||
{
|
||||
gint suggested_change = 0;
|
||||
|
||||
do_stats (bowl,
|
||||
info_label,
|
||||
!gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (allow_changes)) ? &suggested_change : NULL);
|
||||
|
||||
gtk_fishbowl_set_count (GTK_FISHBOWL (bowl),
|
||||
gtk_fishbowl_get_count (GTK_FISHBOWL (bowl)) + suggested_change);
|
||||
stats_update (bowl);
|
||||
|
||||
return G_SOURCE_CONTINUE;
|
||||
}
|
||||
|
||||
GtkWidget *
|
||||
do_fishbowl (GtkWidget *do_widget)
|
||||
{
|
||||
static GtkWidget *window = NULL;
|
||||
static GtkCssProvider *provider = NULL;
|
||||
|
||||
if (provider == NULL)
|
||||
{
|
||||
provider = gtk_css_provider_new ();
|
||||
gtk_css_provider_load_from_data (provider, css, -1, NULL);
|
||||
gtk_style_context_add_provider_for_screen (gdk_screen_get_default (),
|
||||
GTK_STYLE_PROVIDER (provider),
|
||||
GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
|
||||
}
|
||||
|
||||
if (!window)
|
||||
{
|
||||
GtkBuilder *builder;
|
||||
GtkWidget *bowl;
|
||||
GtkWidget *bowl, *info_label;
|
||||
|
||||
g_type_ensure (GTK_TYPE_FISHBOWL);
|
||||
|
||||
builder = gtk_builder_new_from_resource ("/fishbowl/fishbowl.ui");
|
||||
gtk_builder_add_callback_symbols (builder,
|
||||
"next_button_clicked_cb", G_CALLBACK (next_button_clicked_cb),
|
||||
"prev_button_clicked_cb", G_CALLBACK (prev_button_clicked_cb),
|
||||
NULL);
|
||||
gtk_builder_connect_signals (builder, NULL);
|
||||
window = GTK_WIDGET (gtk_builder_get_object (builder, "window"));
|
||||
bowl = GTK_WIDGET (gtk_builder_get_object (builder, "bowl"));
|
||||
set_widget_type (GTK_FISHBOWL (bowl), 0);
|
||||
info_label = GTK_WIDGET (gtk_builder_get_object (builder, "info_label"));
|
||||
allow_changes = GTK_WIDGET (gtk_builder_get_object (builder, "changes_allow"));
|
||||
gtk_window_set_screen (GTK_WINDOW (window),
|
||||
gtk_widget_get_screen (do_widget));
|
||||
g_signal_connect (window, "destroy",
|
||||
G_CALLBACK (gtk_widget_destroyed), &window);
|
||||
|
||||
gtk_widget_realize (window);
|
||||
gtk_widget_add_tick_callback (bowl, move_fish, info_label, NULL);
|
||||
}
|
||||
|
||||
if (!gtk_widget_get_visible (window))
|
||||
|
@@ -8,76 +8,27 @@
|
||||
<property name="visible">True</property>
|
||||
<property name="show-close-button">True</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<object class="GtkLabel" id="info_label">
|
||||
<property name="visible">True</property>
|
||||
<style>
|
||||
<class name="linked"/>
|
||||
</style>
|
||||
<child>
|
||||
<object class="GtkButton">
|
||||
<property name="visible">True</property>
|
||||
<child>
|
||||
<object class="GtkImage">
|
||||
<property name="icon-name">pan-start-symbolic</property>
|
||||
<property name="visible">True</property>
|
||||
</object>
|
||||
</child>
|
||||
<signal name="clicked" handler="prev_button_clicked_cb" object="bowl" swapped="no"/>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton">
|
||||
<property name="visible">True</property>
|
||||
<child>
|
||||
<object class="GtkImage">
|
||||
<property name="icon-name">pan-end-symbolic</property>
|
||||
<property name="visible">True</property>
|
||||
</object>
|
||||
</child>
|
||||
<signal name="clicked" handler="next_button_clicked_cb" object="bowl" swapped="no"/>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="label">fps</property>
|
||||
<property name="label">icons - 0 fps</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="pack-type">end</property>
|
||||
<property name="pack_type">end</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" bind-source="bowl" bind-property="framerate"/>
|
||||
<property name="label" bind-source="bowl" bind-property="count">0</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="pack-type">end</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="label">Icons, </property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="pack-type">end</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" bind-source="bowl" bind-property="count"/>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="pack-type">end</property>
|
||||
<property name="pack_type">end</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkToggleButton" id="changes_allow">
|
||||
<property name="visible" bind-source="changes_allow" bind-property="active" bind-flags="invert-boolean"/>
|
||||
<property name="active">False</property>
|
||||
<property name="visible" bind-source="changes_allow" bind-property="active" bind-flags="invert-boolean">True</property>
|
||||
<property name="relief">none</property>
|
||||
<child>
|
||||
<object class="GtkImage">
|
||||
@@ -87,7 +38,7 @@
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="pack-type">end</property>
|
||||
<property name="pack_type">end</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
@@ -103,7 +54,7 @@
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="pack-type">end</property>
|
||||
<property name="pack_type">end</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
@@ -112,7 +63,6 @@
|
||||
<object class="GtkFishbowl" id="bowl">
|
||||
<property name="visible">True</property>
|
||||
<property name="animating">True</property>
|
||||
<property name="benchmark" bind-source="changes_allow" bind-property="active" bind-flags="invert-boolean">True</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
|
@@ -1,108 +0,0 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
import sys
|
||||
import re
|
||||
import os
|
||||
from collections import *
|
||||
|
||||
out_file = sys.argv[1]
|
||||
in_files = sys.argv[2:]
|
||||
|
||||
|
||||
file_output = """
|
||||
typedef GtkWidget *(*GDoDemoFunc) (GtkWidget *do_widget);
|
||||
|
||||
typedef struct _Demo Demo;
|
||||
|
||||
struct _Demo
|
||||
{
|
||||
gchar *name;
|
||||
gchar *title;
|
||||
gchar *filename;
|
||||
GDoDemoFunc func;
|
||||
Demo *children;
|
||||
};
|
||||
|
||||
"""
|
||||
|
||||
# Demo = namedtuple('Demo', ['name', 'title', 'file', 'func'])
|
||||
|
||||
demos = []
|
||||
|
||||
for demo_file in in_files:
|
||||
filename = demo_file[demo_file.rfind('/')+1:]
|
||||
demo_name = filename.replace(".c", "")
|
||||
with open(demo_file, 'r', encoding='utf-8') as f:
|
||||
title = f.readline().replace("/*", "").strip()
|
||||
|
||||
|
||||
file_output += "GtkWidget *do_" + demo_name + " (GtkWidget *do_widget);\n"
|
||||
# demos += Demo(name = demo_name,
|
||||
# title = title,
|
||||
# file = demo_file,
|
||||
# func = "do_" + title)
|
||||
demos.append((demo_name, title, filename, "do_" + demo_name, -1))
|
||||
|
||||
# Generate a List of "Parent names"
|
||||
parents = []
|
||||
parent_ids = []
|
||||
parent_index = 0
|
||||
for demo in demos:
|
||||
if "/" in demo[1]:
|
||||
slash_index = demo[1].index('/')
|
||||
parent_name = demo[1][:slash_index]
|
||||
do_break = False
|
||||
|
||||
# Check for duplicates
|
||||
if not parent_name in parents:
|
||||
parents.append(parent_name)
|
||||
parent_ids.append(parent_index)
|
||||
demos.append(("NULL", parent_name, "NULL", "NULL", parent_index))
|
||||
|
||||
parent_index = parent_index + 1
|
||||
|
||||
|
||||
# For every child with a parent, generate a list of child demos
|
||||
i = 0
|
||||
for parent in parents:
|
||||
id = parent_ids[i]
|
||||
file_output += "\nDemo child" + str(id) + "[] = {\n"
|
||||
# iterate over all demos and check if the name starts with the given parent name
|
||||
for child in demos:
|
||||
if child[1].startswith(parent + "/"):
|
||||
title = child[1][child[1].rfind('/') + 1:]
|
||||
file_output += " { \"" + child[0] + "\", \"" + title + "\", \"" + child[2] + "\", " + child[3] + ", NULL },\n"
|
||||
|
||||
|
||||
file_output += " { NULL }\n};\n"
|
||||
i = i + 1
|
||||
|
||||
|
||||
# Sort demos by title
|
||||
demos = sorted(demos, key=lambda x: x[1])
|
||||
|
||||
file_output += "\nDemo gtk_demos[] = {\n"
|
||||
for demo in demos:
|
||||
# Do not generate one of these for demos with a parent demo
|
||||
if "/" not in demo[1]:
|
||||
child_array = "NULL"
|
||||
name = demo[0];
|
||||
title = demo[1];
|
||||
file = demo[2]
|
||||
if name != "NULL":
|
||||
name = "\"" + name + "\""
|
||||
if title != "NULL":
|
||||
title = "\"" + title + "\""
|
||||
if file != "NULL":
|
||||
file = "\"" + file + "\""
|
||||
|
||||
if demo[4] != -1:
|
||||
child_array = "child" + str(demo[4])
|
||||
file_output += " { " + name + ", " + title + ", " + file + ", " + demo[3] + ", " + child_array + " },\n"
|
||||
|
||||
file_output += " { NULL }\n};\n"
|
||||
|
||||
ofile = open(out_file, "w", encoding="utf-8")
|
||||
ofile.write(file_output)
|
||||
ofile.close()
|
@@ -96,12 +96,11 @@ drawing_area_draw (GtkWidget *widget,
|
||||
cairo_pattern_t *pat;
|
||||
cairo_matrix_t matrix;
|
||||
gdouble angle, scale;
|
||||
gdouble x_center, y_center;
|
||||
|
||||
gtk_gesture_get_bounding_box_center (GTK_GESTURE (zoom), &x_center, &y_center);
|
||||
|
||||
cairo_get_matrix (cr, &matrix);
|
||||
cairo_matrix_translate (&matrix, x_center, y_center);
|
||||
cairo_matrix_translate (&matrix,
|
||||
allocation.width / 2,
|
||||
allocation.height / 2);
|
||||
|
||||
cairo_save (cr);
|
||||
|
||||
|
@@ -26,18 +26,11 @@ typedef struct _GtkFishbowlChild GtkFishbowlChild;
|
||||
|
||||
struct _GtkFishbowlPrivate
|
||||
{
|
||||
GtkFishCreationFunc creation_func;
|
||||
GList *children;
|
||||
guint count;
|
||||
|
||||
gint64 last_frame_time;
|
||||
gint64 update_delay;
|
||||
guint tick_id;
|
||||
|
||||
double framerate;
|
||||
int last_benchmark_change;
|
||||
|
||||
guint benchmark : 1;
|
||||
};
|
||||
|
||||
struct _GtkFishbowlChild
|
||||
@@ -52,10 +45,7 @@ struct _GtkFishbowlChild
|
||||
enum {
|
||||
PROP_0,
|
||||
PROP_ANIMATING,
|
||||
PROP_BENCHMARK,
|
||||
PROP_COUNT,
|
||||
PROP_FRAMERATE,
|
||||
PROP_UPDATE_DELAY,
|
||||
NUM_PROPERTIES
|
||||
};
|
||||
|
||||
@@ -66,11 +56,7 @@ G_DEFINE_TYPE_WITH_PRIVATE (GtkFishbowl, gtk_fishbowl, GTK_TYPE_CONTAINER)
|
||||
static void
|
||||
gtk_fishbowl_init (GtkFishbowl *fishbowl)
|
||||
{
|
||||
GtkFishbowlPrivate *priv = gtk_fishbowl_get_instance_private (fishbowl);
|
||||
|
||||
gtk_widget_set_has_window (GTK_WIDGET (fishbowl), FALSE);
|
||||
|
||||
priv->update_delay = G_USEC_PER_SEC;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -87,9 +73,48 @@ gtk_fishbowl_new (void)
|
||||
}
|
||||
|
||||
static void
|
||||
gtk_fishbowl_get_preferred_width (GtkWidget *widget,
|
||||
int *minimum,
|
||||
int *natural)
|
||||
gtk_widget_measure (GtkWidget *widget,
|
||||
GtkOrientation orientation,
|
||||
gint size,
|
||||
gint *minimum,
|
||||
gint *natural,
|
||||
gint *minimum_baseline,
|
||||
gint *natural_baseline)
|
||||
{
|
||||
g_return_if_fail (GTK_IS_WIDGET (widget));
|
||||
g_return_if_fail (size >= -1);
|
||||
|
||||
if (orientation == GTK_ORIENTATION_HORIZONTAL)
|
||||
{
|
||||
if (size < 0)
|
||||
gtk_widget_get_preferred_width (widget, minimum, natural);
|
||||
else
|
||||
gtk_widget_get_preferred_width_for_height (widget, size, minimum, natural);
|
||||
|
||||
if (minimum_baseline)
|
||||
*minimum_baseline = -1;
|
||||
if (natural_baseline)
|
||||
*natural_baseline = -1;
|
||||
}
|
||||
else
|
||||
{
|
||||
gtk_widget_get_preferred_height_and_baseline_for_width (widget,
|
||||
size,
|
||||
minimum,
|
||||
natural,
|
||||
minimum_baseline,
|
||||
natural_baseline);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
gtk_fishbowl_measure (GtkWidget *widget,
|
||||
GtkOrientation orientation,
|
||||
int for_size,
|
||||
int *minimum,
|
||||
int *natural,
|
||||
int *minimum_baseline,
|
||||
int *natural_baseline)
|
||||
{
|
||||
GtkFishbowl *fishbowl = GTK_FISHBOWL (widget);
|
||||
GtkFishbowlPrivate *priv = gtk_fishbowl_get_instance_private (fishbowl);
|
||||
@@ -107,42 +132,47 @@ gtk_fishbowl_get_preferred_width (GtkWidget *widget,
|
||||
if (!gtk_widget_get_visible (child->widget))
|
||||
continue;
|
||||
|
||||
gtk_widget_get_preferred_width (child->widget, &child_min, &child_nat);
|
||||
gtk_widget_measure (child->widget, orientation, -1, &child_min, &child_nat, NULL, NULL);
|
||||
|
||||
*minimum = MAX (*minimum, child_min);
|
||||
*natural = MAX (*natural, child_nat);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
gtk_fishbowl_get_preferred_width (GtkWidget *widget,
|
||||
int *minimum,
|
||||
int *natural)
|
||||
{
|
||||
gtk_fishbowl_measure (widget, GTK_ORIENTATION_HORIZONTAL, -1, minimum, natural, NULL, NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
gtk_fishbowl_get_preferred_height (GtkWidget *widget,
|
||||
int *minimum,
|
||||
int *natural)
|
||||
{
|
||||
GtkFishbowl *fishbowl = GTK_FISHBOWL (widget);
|
||||
GtkFishbowlPrivate *priv = gtk_fishbowl_get_instance_private (fishbowl);
|
||||
GtkFishbowlChild *child;
|
||||
GList *children;
|
||||
gint child_min, child_nat;
|
||||
gtk_fishbowl_measure (widget, GTK_ORIENTATION_VERTICAL, -1, minimum, natural, NULL, NULL);
|
||||
}
|
||||
|
||||
*minimum = 0;
|
||||
*natural = 0;
|
||||
static void
|
||||
gtk_fishbowl_get_preferred_width_for_height (GtkWidget *widget,
|
||||
int for_size,
|
||||
int *minimum,
|
||||
int *natural)
|
||||
{
|
||||
gtk_fishbowl_measure (widget, GTK_ORIENTATION_HORIZONTAL, for_size, minimum, natural, NULL, NULL);
|
||||
}
|
||||
|
||||
for (children = priv->children; children; children = children->next)
|
||||
{
|
||||
int min_width;
|
||||
|
||||
child = children->data;
|
||||
|
||||
if (!gtk_widget_get_visible (child->widget))
|
||||
continue;
|
||||
|
||||
gtk_widget_get_preferred_width (child->widget, &min_width, NULL);
|
||||
gtk_widget_get_preferred_height_for_width (child->widget, min_width, &child_min, &child_nat);
|
||||
|
||||
*minimum = MAX (*minimum, child_min);
|
||||
*natural = MAX (*natural, child_nat);
|
||||
}
|
||||
static void
|
||||
gtk_fishbowl_get_preferred_height_and_baseline_for_width (GtkWidget *widget,
|
||||
int for_size,
|
||||
int *minimum,
|
||||
int *natural,
|
||||
int *minimum_baseline,
|
||||
int *natural_baseline)
|
||||
{
|
||||
gtk_fishbowl_measure (widget, GTK_ORIENTATION_VERTICAL, for_size, minimum, natural, minimum_baseline, natural_baseline);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -156,6 +186,8 @@ gtk_fishbowl_size_allocate (GtkWidget *widget,
|
||||
GtkRequisition child_requisition;
|
||||
GList *children;
|
||||
|
||||
gtk_widget_set_allocation (widget, allocation);
|
||||
|
||||
for (children = priv->children; children; children = children->next)
|
||||
{
|
||||
child = children->data;
|
||||
@@ -212,7 +244,7 @@ gtk_fishbowl_remove (GtkContainer *container,
|
||||
GtkFishbowl *fishbowl = GTK_FISHBOWL (container);
|
||||
GtkFishbowlPrivate *priv = gtk_fishbowl_get_instance_private (fishbowl);
|
||||
GtkFishbowlChild *child;
|
||||
GtkWidget *widget_bowl = GTK_WIDGET (fishbowl);
|
||||
GtkWidget *widget_container = GTK_WIDGET (container);
|
||||
GList *children;
|
||||
|
||||
for (children = priv->children; children; children = children->next)
|
||||
@@ -229,8 +261,8 @@ gtk_fishbowl_remove (GtkContainer *container,
|
||||
g_list_free (children);
|
||||
g_free (child);
|
||||
|
||||
if (was_visible && gtk_widget_get_visible (widget_bowl))
|
||||
gtk_widget_queue_resize (widget_bowl);
|
||||
if (was_visible && gtk_widget_get_visible (widget_container))
|
||||
gtk_widget_queue_resize (widget_container);
|
||||
|
||||
priv->count--;
|
||||
g_object_notify_by_pspec (G_OBJECT (fishbowl), props[PROP_COUNT]);
|
||||
@@ -239,7 +271,6 @@ gtk_fishbowl_remove (GtkContainer *container,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
gtk_fishbowl_forall (GtkContainer *container,
|
||||
gboolean include_internals,
|
||||
@@ -264,6 +295,29 @@ gtk_fishbowl_forall (GtkContainer *container,
|
||||
}
|
||||
}
|
||||
|
||||
static gboolean
|
||||
gtk_fishbowl_draw (GtkWidget *widget,
|
||||
cairo_t *cr)
|
||||
{
|
||||
GtkFishbowl *fishbowl = GTK_FISHBOWL (widget);
|
||||
GtkFishbowlPrivate *priv = gtk_fishbowl_get_instance_private (fishbowl);
|
||||
GtkFishbowlChild *child;
|
||||
GList *list;
|
||||
|
||||
for (list = priv->children;
|
||||
list;
|
||||
list = list->next)
|
||||
{
|
||||
child = list->data;
|
||||
|
||||
gtk_container_propagate_draw (GTK_CONTAINER (fishbowl),
|
||||
child->widget,
|
||||
cr);
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static void
|
||||
gtk_fishbowl_dispose (GObject *object)
|
||||
{
|
||||
@@ -289,18 +343,10 @@ gtk_fishbowl_set_property (GObject *object,
|
||||
gtk_fishbowl_set_animating (fishbowl, g_value_get_boolean (value));
|
||||
break;
|
||||
|
||||
case PROP_BENCHMARK:
|
||||
gtk_fishbowl_set_benchmark (fishbowl, g_value_get_boolean (value));
|
||||
break;
|
||||
|
||||
case PROP_COUNT:
|
||||
gtk_fishbowl_set_count (fishbowl, g_value_get_uint (value));
|
||||
break;
|
||||
|
||||
case PROP_UPDATE_DELAY:
|
||||
gtk_fishbowl_set_update_delay (fishbowl, g_value_get_int64 (value));
|
||||
break;
|
||||
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||
break;
|
||||
@@ -321,22 +367,10 @@ gtk_fishbowl_get_property (GObject *object,
|
||||
g_value_set_boolean (value, gtk_fishbowl_get_animating (fishbowl));
|
||||
break;
|
||||
|
||||
case PROP_BENCHMARK:
|
||||
g_value_set_boolean (value, gtk_fishbowl_get_benchmark (fishbowl));
|
||||
break;
|
||||
|
||||
case PROP_COUNT:
|
||||
g_value_set_uint (value, gtk_fishbowl_get_count (fishbowl));
|
||||
break;
|
||||
|
||||
case PROP_FRAMERATE:
|
||||
g_value_set_double (value, gtk_fishbowl_get_framerate (fishbowl));
|
||||
break;
|
||||
|
||||
case PROP_UPDATE_DELAY:
|
||||
g_value_set_int64 (value, gtk_fishbowl_get_update_delay (fishbowl));
|
||||
break;
|
||||
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||
break;
|
||||
@@ -356,7 +390,10 @@ gtk_fishbowl_class_init (GtkFishbowlClass *klass)
|
||||
|
||||
widget_class->get_preferred_width = gtk_fishbowl_get_preferred_width;
|
||||
widget_class->get_preferred_height = gtk_fishbowl_get_preferred_height;
|
||||
widget_class->get_preferred_width_for_height = gtk_fishbowl_get_preferred_width_for_height;
|
||||
widget_class->get_preferred_height_and_baseline_for_width = gtk_fishbowl_get_preferred_height_and_baseline_for_width;
|
||||
widget_class->size_allocate = gtk_fishbowl_size_allocate;
|
||||
widget_class->draw = gtk_fishbowl_draw;
|
||||
|
||||
container_class->add = gtk_fishbowl_add;
|
||||
container_class->remove = gtk_fishbowl_remove;
|
||||
@@ -369,36 +406,13 @@ gtk_fishbowl_class_init (GtkFishbowlClass *klass)
|
||||
FALSE,
|
||||
G_PARAM_READWRITE);
|
||||
|
||||
props[PROP_BENCHMARK] =
|
||||
g_param_spec_boolean ("benchmark",
|
||||
"Benchmark",
|
||||
"Adapt the count property to hit the maximum framerate",
|
||||
FALSE,
|
||||
G_PARAM_READWRITE);
|
||||
|
||||
props[PROP_COUNT] =
|
||||
g_param_spec_uint ("count",
|
||||
"Count",
|
||||
"Number of widgets",
|
||||
0, G_MAXUINT,
|
||||
0,
|
||||
G_PARAM_READWRITE);
|
||||
|
||||
props[PROP_FRAMERATE] =
|
||||
g_param_spec_double ("framerate",
|
||||
"Framerate",
|
||||
"Framerate of this widget in frames per second",
|
||||
0, G_MAXDOUBLE,
|
||||
0,
|
||||
G_PARAM_READABLE);
|
||||
|
||||
props[PROP_UPDATE_DELAY] =
|
||||
g_param_spec_int64 ("update-delay",
|
||||
"Update delay",
|
||||
"Number of usecs between updates",
|
||||
0, G_MAXINT64,
|
||||
G_USEC_PER_SEC,
|
||||
G_PARAM_READWRITE);
|
||||
G_PARAM_READABLE);
|
||||
|
||||
g_object_class_install_properties (object_class, NUM_PROPERTIES, props);
|
||||
}
|
||||
@@ -411,60 +425,72 @@ gtk_fishbowl_get_count (GtkFishbowl *fishbowl)
|
||||
return priv->count;
|
||||
}
|
||||
|
||||
char **icon_names = NULL;
|
||||
gsize n_icon_names = 0;
|
||||
|
||||
static void
|
||||
init_icon_names (GtkIconTheme *theme)
|
||||
{
|
||||
GPtrArray *icons;
|
||||
GList *l, *icon_list;
|
||||
|
||||
if (icon_names)
|
||||
return;
|
||||
|
||||
icon_list = gtk_icon_theme_list_icons (theme, NULL);
|
||||
icons = g_ptr_array_new ();
|
||||
|
||||
for (l = icon_list; l; l = l->next)
|
||||
{
|
||||
if (g_str_has_suffix (l->data, "symbolic"))
|
||||
continue;
|
||||
|
||||
g_ptr_array_add (icons, g_strdup (l->data));
|
||||
}
|
||||
|
||||
n_icon_names = icons->len;
|
||||
g_ptr_array_add (icons, NULL); /* NULL-terminate the array */
|
||||
icon_names = (char **) g_ptr_array_free (icons, FALSE);
|
||||
|
||||
/* don't free strings, we assigned them to the array */
|
||||
g_list_free_full (icon_list, g_free);
|
||||
}
|
||||
|
||||
static const char *
|
||||
get_random_icon_name (GtkIconTheme *theme)
|
||||
{
|
||||
init_icon_names (theme);
|
||||
|
||||
return icon_names[g_random_int_range(0, n_icon_names)];
|
||||
}
|
||||
|
||||
void
|
||||
gtk_fishbowl_set_count (GtkFishbowl *fishbowl,
|
||||
guint count)
|
||||
{
|
||||
GtkFishbowlPrivate *priv = gtk_fishbowl_get_instance_private (fishbowl);
|
||||
|
||||
if (priv->count == count)
|
||||
return;
|
||||
|
||||
g_object_freeze_notify (G_OBJECT (fishbowl));
|
||||
|
||||
while (priv->count > count)
|
||||
{
|
||||
gtk_fishbowl_remove (GTK_CONTAINER (fishbowl), ((GtkFishbowlChild *) priv->children->data)->widget);
|
||||
gtk_container_remove (GTK_CONTAINER (fishbowl),
|
||||
((GtkFishbowlChild *) priv->children->data)->widget);
|
||||
}
|
||||
|
||||
while (priv->count < count)
|
||||
{
|
||||
GtkWidget *new_widget;
|
||||
|
||||
new_widget = priv->creation_func ();
|
||||
|
||||
|
||||
new_widget = gtk_image_new_from_icon_name (get_random_icon_name (gtk_icon_theme_get_default ()),
|
||||
GTK_ICON_SIZE_DIALOG);
|
||||
gtk_widget_show (new_widget);
|
||||
|
||||
gtk_fishbowl_add (GTK_CONTAINER (fishbowl), new_widget);
|
||||
gtk_container_add (GTK_CONTAINER (fishbowl), new_widget);
|
||||
}
|
||||
|
||||
g_object_thaw_notify (G_OBJECT (fishbowl));
|
||||
}
|
||||
|
||||
gboolean
|
||||
gtk_fishbowl_get_benchmark (GtkFishbowl *fishbowl)
|
||||
{
|
||||
GtkFishbowlPrivate *priv = gtk_fishbowl_get_instance_private (fishbowl);
|
||||
|
||||
return priv->benchmark;
|
||||
}
|
||||
|
||||
void
|
||||
gtk_fishbowl_set_benchmark (GtkFishbowl *fishbowl,
|
||||
gboolean benchmark)
|
||||
{
|
||||
GtkFishbowlPrivate *priv = gtk_fishbowl_get_instance_private (fishbowl);
|
||||
|
||||
if (priv->benchmark == benchmark)
|
||||
return;
|
||||
|
||||
priv->benchmark = benchmark;
|
||||
if (!benchmark)
|
||||
priv->last_benchmark_change = 0;
|
||||
|
||||
g_object_notify_by_pspec (G_OBJECT (fishbowl), props[PROP_BENCHMARK]);
|
||||
}
|
||||
|
||||
gboolean
|
||||
gtk_fishbowl_get_animating (GtkFishbowl *fishbowl)
|
||||
{
|
||||
@@ -473,111 +499,6 @@ gtk_fishbowl_get_animating (GtkFishbowl *fishbowl)
|
||||
return priv->tick_id != 0;
|
||||
}
|
||||
|
||||
static gint64
|
||||
guess_refresh_interval (GdkFrameClock *frame_clock)
|
||||
{
|
||||
gint64 interval;
|
||||
gint64 i;
|
||||
|
||||
interval = G_MAXINT64;
|
||||
|
||||
for (i = gdk_frame_clock_get_history_start (frame_clock);
|
||||
i < gdk_frame_clock_get_frame_counter (frame_clock);
|
||||
i++)
|
||||
{
|
||||
GdkFrameTimings *t, *before;
|
||||
gint64 ts, before_ts;
|
||||
|
||||
t = gdk_frame_clock_get_timings (frame_clock, i);
|
||||
before = gdk_frame_clock_get_timings (frame_clock, i - 1);
|
||||
if (t == NULL || before == NULL)
|
||||
continue;
|
||||
|
||||
ts = gdk_frame_timings_get_frame_time (t);
|
||||
before_ts = gdk_frame_timings_get_frame_time (before);
|
||||
if (ts == 0 || before_ts == 0)
|
||||
continue;
|
||||
|
||||
interval = MIN (interval, ts - before_ts);
|
||||
}
|
||||
|
||||
if (interval == G_MAXINT64)
|
||||
return 0;
|
||||
|
||||
return interval;
|
||||
}
|
||||
|
||||
static void
|
||||
gtk_fishbowl_do_update (GtkFishbowl *fishbowl)
|
||||
{
|
||||
GtkFishbowlPrivate *priv = gtk_fishbowl_get_instance_private (fishbowl);
|
||||
GdkFrameClock *frame_clock;
|
||||
GdkFrameTimings *start, *end;
|
||||
gint64 start_counter, end_counter;
|
||||
gint64 n_frames, expected_frames;
|
||||
gint64 start_timestamp, end_timestamp;
|
||||
gint64 interval;
|
||||
|
||||
frame_clock = gtk_widget_get_frame_clock (GTK_WIDGET (fishbowl));
|
||||
if (frame_clock == NULL)
|
||||
return;
|
||||
|
||||
start_counter = gdk_frame_clock_get_history_start (frame_clock);
|
||||
end_counter = gdk_frame_clock_get_frame_counter (frame_clock);
|
||||
start = gdk_frame_clock_get_timings (frame_clock, start_counter);
|
||||
for (end = gdk_frame_clock_get_timings (frame_clock, end_counter);
|
||||
end_counter > start_counter && end != NULL && !gdk_frame_timings_get_complete (end);
|
||||
end = gdk_frame_clock_get_timings (frame_clock, end_counter))
|
||||
end_counter--;
|
||||
if (end_counter - start_counter < 4)
|
||||
return;
|
||||
|
||||
start_timestamp = gdk_frame_timings_get_presentation_time (start);
|
||||
end_timestamp = gdk_frame_timings_get_presentation_time (end);
|
||||
if (start_timestamp == 0 || end_timestamp == 0)
|
||||
{
|
||||
start_timestamp = gdk_frame_timings_get_frame_time (start);
|
||||
end_timestamp = gdk_frame_timings_get_frame_time (end);
|
||||
}
|
||||
|
||||
n_frames = end_counter - start_counter;
|
||||
priv->framerate = ((double) n_frames) * G_USEC_PER_SEC / (end_timestamp - start_timestamp);
|
||||
g_object_notify_by_pspec (G_OBJECT (fishbowl), props[PROP_FRAMERATE]);
|
||||
|
||||
if (!priv->benchmark)
|
||||
return;
|
||||
|
||||
interval = gdk_frame_timings_get_refresh_interval (end);
|
||||
if (interval == 0)
|
||||
{
|
||||
interval = guess_refresh_interval (frame_clock);
|
||||
if (interval == 0)
|
||||
return;
|
||||
}
|
||||
expected_frames = round ((double) (end_timestamp - start_timestamp) / interval);
|
||||
|
||||
if (n_frames >= expected_frames)
|
||||
{
|
||||
if (priv->last_benchmark_change > 0)
|
||||
priv->last_benchmark_change *= 2;
|
||||
else
|
||||
priv->last_benchmark_change = 1;
|
||||
}
|
||||
else if (n_frames + 1 < expected_frames)
|
||||
{
|
||||
if (priv->last_benchmark_change < 0)
|
||||
priv->last_benchmark_change--;
|
||||
else
|
||||
priv->last_benchmark_change = -1;
|
||||
}
|
||||
else
|
||||
{
|
||||
priv->last_benchmark_change = 0;
|
||||
}
|
||||
|
||||
gtk_fishbowl_set_count (fishbowl, MAX (1, (int) priv->count + priv->last_benchmark_change));
|
||||
}
|
||||
|
||||
static gboolean
|
||||
gtk_fishbowl_tick (GtkWidget *widget,
|
||||
GdkFrameClock *frame_clock,
|
||||
@@ -588,11 +509,9 @@ gtk_fishbowl_tick (GtkWidget *widget,
|
||||
GtkFishbowlChild *child;
|
||||
GList *l;
|
||||
gint64 frame_time, elapsed;
|
||||
gboolean do_update;
|
||||
|
||||
frame_time = gdk_frame_clock_get_frame_time (gtk_widget_get_frame_clock (widget));
|
||||
elapsed = frame_time - priv->last_frame_time;
|
||||
do_update = frame_time / priv->update_delay != priv->last_frame_time / priv->update_delay;
|
||||
priv->last_frame_time = frame_time;
|
||||
|
||||
/* last frame was 0, so we're just starting to animate */
|
||||
@@ -631,9 +550,6 @@ gtk_fishbowl_tick (GtkWidget *widget,
|
||||
|
||||
gtk_widget_queue_allocate (widget);
|
||||
|
||||
if (do_update)
|
||||
gtk_fishbowl_do_update (fishbowl);
|
||||
|
||||
return G_SOURCE_CONTINUE;
|
||||
}
|
||||
|
||||
@@ -658,57 +574,8 @@ gtk_fishbowl_set_animating (GtkFishbowl *fishbowl,
|
||||
priv->last_frame_time = 0;
|
||||
gtk_widget_remove_tick_callback (GTK_WIDGET (fishbowl), priv->tick_id);
|
||||
priv->tick_id = 0;
|
||||
priv->framerate = 0;
|
||||
g_object_notify_by_pspec (G_OBJECT (fishbowl), props[PROP_FRAMERATE]);
|
||||
}
|
||||
|
||||
g_object_notify_by_pspec (G_OBJECT (fishbowl), props[PROP_ANIMATING]);
|
||||
}
|
||||
|
||||
double
|
||||
gtk_fishbowl_get_framerate (GtkFishbowl *fishbowl)
|
||||
{
|
||||
GtkFishbowlPrivate *priv = gtk_fishbowl_get_instance_private (fishbowl);
|
||||
|
||||
return priv->framerate;
|
||||
}
|
||||
|
||||
gint64
|
||||
gtk_fishbowl_get_update_delay (GtkFishbowl *fishbowl)
|
||||
{
|
||||
GtkFishbowlPrivate *priv = gtk_fishbowl_get_instance_private (fishbowl);
|
||||
|
||||
return priv->update_delay;
|
||||
}
|
||||
|
||||
void
|
||||
gtk_fishbowl_set_update_delay (GtkFishbowl *fishbowl,
|
||||
gint64 update_delay)
|
||||
{
|
||||
GtkFishbowlPrivate *priv = gtk_fishbowl_get_instance_private (fishbowl);
|
||||
|
||||
if (priv->update_delay == update_delay)
|
||||
return;
|
||||
|
||||
priv->update_delay = update_delay;
|
||||
|
||||
g_object_notify_by_pspec (G_OBJECT (fishbowl), props[PROP_UPDATE_DELAY]);
|
||||
}
|
||||
|
||||
void
|
||||
gtk_fishbowl_set_creation_func (GtkFishbowl *fishbowl,
|
||||
GtkFishCreationFunc creation_func)
|
||||
{
|
||||
GtkFishbowlPrivate *priv = gtk_fishbowl_get_instance_private (fishbowl);
|
||||
|
||||
g_object_freeze_notify (G_OBJECT (fishbowl));
|
||||
|
||||
gtk_fishbowl_set_count (fishbowl, 0);
|
||||
priv->last_benchmark_change = 0;
|
||||
|
||||
priv->creation_func = creation_func;
|
||||
|
||||
gtk_fishbowl_set_count (fishbowl, 1);
|
||||
|
||||
g_object_thaw_notify (G_OBJECT (fishbowl));
|
||||
}
|
||||
|
@@ -32,11 +32,9 @@ G_BEGIN_DECLS
|
||||
typedef struct _GtkFishbowl GtkFishbowl;
|
||||
typedef struct _GtkFishbowlClass GtkFishbowlClass;
|
||||
|
||||
typedef GtkWidget * (* GtkFishCreationFunc) (void);
|
||||
|
||||
struct _GtkFishbowl
|
||||
{
|
||||
GtkContainer parent;
|
||||
GtkContainer container;
|
||||
};
|
||||
|
||||
struct _GtkFishbowlClass
|
||||
@@ -54,15 +52,6 @@ void gtk_fishbowl_set_count (GtkFishbowl *fishbowl,
|
||||
gboolean gtk_fishbowl_get_animating (GtkFishbowl *fishbowl);
|
||||
void gtk_fishbowl_set_animating (GtkFishbowl *fishbowl,
|
||||
gboolean animating);
|
||||
gboolean gtk_fishbowl_get_benchmark (GtkFishbowl *fishbowl);
|
||||
void gtk_fishbowl_set_benchmark (GtkFishbowl *fishbowl,
|
||||
gboolean animating);
|
||||
double gtk_fishbowl_get_framerate (GtkFishbowl *fishbowl);
|
||||
gint64 gtk_fishbowl_get_update_delay (GtkFishbowl *fishbowl);
|
||||
void gtk_fishbowl_set_update_delay (GtkFishbowl *fishbowl,
|
||||
gint64 update_delay);
|
||||
void gtk_fishbowl_set_creation_func (GtkFishbowl *fishbowl,
|
||||
GtkFishCreationFunc creation_func);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
|
@@ -97,7 +97,6 @@ do_infobar (GtkWidget *do_widget)
|
||||
gtk_label_set_line_wrap (GTK_LABEL (label), TRUE);
|
||||
gtk_label_set_xalign (GTK_LABEL (label), 0);
|
||||
gtk_box_pack_start (GTK_BOX (gtk_info_bar_get_content_area (GTK_INFO_BAR (bar))), label, FALSE, FALSE, 0);
|
||||
gtk_info_bar_set_default_response (GTK_INFO_BAR (bar), GTK_RESPONSE_OK);
|
||||
|
||||
button = gtk_toggle_button_new_with_label ("Question");
|
||||
g_object_bind_property (button, "active", bar, "visible", G_BINDING_BIDIRECTIONAL);
|
||||
|
@@ -762,14 +762,15 @@ load_file (const gchar *demoname,
|
||||
/* Skipping blank lines */
|
||||
while (g_ascii_isspace (*p))
|
||||
p++;
|
||||
|
||||
if (!*p)
|
||||
if (*p)
|
||||
{
|
||||
p = lines[i];
|
||||
state++;
|
||||
/* Fall through */
|
||||
}
|
||||
else
|
||||
break;
|
||||
|
||||
p = lines[i];
|
||||
state++;
|
||||
/* Fall through */
|
||||
|
||||
case 3:
|
||||
/* Reading program body */
|
||||
gtk_text_buffer_insert (source_buffer, &start, p, -1);
|
||||
|
@@ -1,148 +0,0 @@
|
||||
|
||||
## These should be in the order you want them to appear in the
|
||||
## demo app, which means alphabetized by demo title, not filename
|
||||
demos = files([
|
||||
'application_demo.c',
|
||||
'assistant.c',
|
||||
'builder.c',
|
||||
'button_box.c',
|
||||
'changedisplay.c',
|
||||
'clipboard.c',
|
||||
'colorsel.c',
|
||||
'combobox.c',
|
||||
'css_accordion.c',
|
||||
'css_basics.c',
|
||||
'css_blendmodes.c',
|
||||
'css_multiplebgs.c',
|
||||
'css_pixbufs.c',
|
||||
'css_shadows.c',
|
||||
'cursors.c',
|
||||
'dialog.c',
|
||||
'drawingarea.c',
|
||||
'editable_cells.c',
|
||||
'entry_buffer.c',
|
||||
'entry_completion.c',
|
||||
'event_axes.c',
|
||||
'expander.c',
|
||||
'filtermodel.c',
|
||||
'fishbowl.c',
|
||||
'foreigndrawing.c',
|
||||
'gestures.c',
|
||||
'glarea.c',
|
||||
'headerbar.c',
|
||||
'hypertext.c',
|
||||
'iconview.c',
|
||||
'iconview_edit.c',
|
||||
'images.c',
|
||||
'infobar.c',
|
||||
'links.c',
|
||||
'listbox.c',
|
||||
'flowbox.c',
|
||||
'list_store.c',
|
||||
'markup.c',
|
||||
'menus.c',
|
||||
'modelbutton.c',
|
||||
'offscreen_window.c',
|
||||
'offscreen_window2.c',
|
||||
'overlay.c',
|
||||
'overlay2.c',
|
||||
'paint.c',
|
||||
'panes.c',
|
||||
'pickers.c',
|
||||
'pixbufs.c',
|
||||
'popover.c',
|
||||
'printing.c',
|
||||
'revealer.c',
|
||||
'rotated_text.c',
|
||||
'scale.c',
|
||||
'search_entry.c',
|
||||
'search_entry2.c',
|
||||
'shortcuts.c',
|
||||
'sidebar.c',
|
||||
'sizegroup.c',
|
||||
'spinbutton.c',
|
||||
'spinner.c',
|
||||
'stack.c',
|
||||
'tabs.c',
|
||||
'textmask.c',
|
||||
'textview.c',
|
||||
'textscroll.c',
|
||||
'theming_style_classes.c',
|
||||
'toolpalette.c',
|
||||
'transparent.c',
|
||||
'tree_store.c',
|
||||
])
|
||||
|
||||
|
||||
gtkdemo_deps = [libgtk_dep]
|
||||
|
||||
if harfbuzz_dep.found() and pangoft_dep.found()
|
||||
demos += files('font_features.c')
|
||||
gtkdemo_deps += [harfbuzz_dep, pangoft_dep]
|
||||
endif
|
||||
|
||||
if os_unix
|
||||
demos += files('pagesetup.c')
|
||||
endif
|
||||
|
||||
gtkdemo_sources = demos + files([
|
||||
'gtkfishbowl.c',
|
||||
'gtkfishbowl.h',
|
||||
'main.c',
|
||||
])
|
||||
|
||||
|
||||
geninclude = find_program('geninclude.py')
|
||||
demos_h = custom_target(
|
||||
'gtk3 demo header',
|
||||
output : 'demos.h',
|
||||
input : demos,
|
||||
command : [geninclude, '@OUTPUT@', '@INPUT@'],
|
||||
)
|
||||
|
||||
gtkdemo_resources = gnome.compile_resources(
|
||||
'gtkdemo_resources',
|
||||
'demo.gresource.xml',
|
||||
source_dir: '.'
|
||||
)
|
||||
|
||||
gtkdemo = executable(
|
||||
'gtk3-demo',
|
||||
gtkdemo_sources,
|
||||
demos_h,
|
||||
gtkdemo_resources,
|
||||
dependencies: gtkdemo_deps,
|
||||
include_directories : confinc,
|
||||
install: true
|
||||
)
|
||||
|
||||
gtkapplicationdemo = executable(
|
||||
'gtk3-demo-application',
|
||||
'application.c',
|
||||
demos_h,
|
||||
gtkdemo_resources,
|
||||
dependencies: gtkdemo_deps,
|
||||
include_directories : confinc,
|
||||
install: true
|
||||
)
|
||||
|
||||
gtk_settings_schemas = [
|
||||
'org.gtk.Settings.FileChooser.gschema.xml',
|
||||
'org.gtk.Settings.ColorChooser.gschema.xml',
|
||||
'org.gtk.Settings.EmojiChooser.gschema.xml',
|
||||
'org.gtk.Settings.Debug.gschema.xml',
|
||||
]
|
||||
|
||||
foreach s: [ '16', '22', '24', '32', '48', '256']
|
||||
icon_destdir = join_paths(gtk_datadir, 'icons', 'hicolor', '@0@x@0@'.format(s), 'apps')
|
||||
icons = [join_paths('data', '@0@x@0@'.format(s), 'gtk3-demo.png'),
|
||||
join_paths('data', '@0@x@0@'.format(s), 'gtk3-demo-symbolic.symbolic.png')]
|
||||
install_data(icons, install_dir: icon_destdir)
|
||||
endforeach
|
||||
|
||||
# desktop file
|
||||
install_data('gtk3-demo.desktop', install_dir: gtk_applicationsdir)
|
||||
|
||||
# GSettings
|
||||
install_data('org.gtk.Demo.gschema.xml', install_dir: gtk_schemasdir)
|
||||
gnome.compile_schemas(depend_files: files(['org.gtk.Demo.gschema.xml']))
|
@@ -1,257 +0,0 @@
|
||||
/* Paint
|
||||
*
|
||||
* Demonstrates practical handling of drawing tablets in a real world
|
||||
* usecase.
|
||||
*/
|
||||
#include <gtk/gtk.h>
|
||||
|
||||
typedef struct
|
||||
{
|
||||
GtkEventBox parent_instance;
|
||||
cairo_surface_t *surface;
|
||||
cairo_t *cr;
|
||||
GdkRGBA draw_color;
|
||||
|
||||
GtkGesture *stylus_gesture;
|
||||
} DrawingArea;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
GtkEventBoxClass parent_class;
|
||||
} DrawingAreaClass;
|
||||
|
||||
G_DEFINE_TYPE (DrawingArea, drawing_area, GTK_TYPE_EVENT_BOX)
|
||||
|
||||
static void
|
||||
drawing_area_ensure_surface (DrawingArea *area,
|
||||
gint width,
|
||||
gint height)
|
||||
{
|
||||
if (!area->surface ||
|
||||
cairo_image_surface_get_width (area->surface) != width ||
|
||||
cairo_image_surface_get_height (area->surface) != height)
|
||||
{
|
||||
cairo_surface_t *surface;
|
||||
|
||||
surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32,
|
||||
width, height);
|
||||
if (area->surface)
|
||||
{
|
||||
cairo_t *cr;
|
||||
|
||||
cr = cairo_create (surface);
|
||||
cairo_set_source_surface (cr, area->surface, 0, 0);
|
||||
cairo_paint (cr);
|
||||
|
||||
cairo_surface_destroy (area->surface);
|
||||
cairo_destroy (area->cr);
|
||||
cairo_destroy (cr);
|
||||
}
|
||||
|
||||
area->surface = surface;
|
||||
area->cr = cairo_create (surface);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
drawing_area_size_allocate (GtkWidget *widget,
|
||||
GtkAllocation *allocation)
|
||||
{
|
||||
DrawingArea *area = (DrawingArea *) widget;
|
||||
|
||||
drawing_area_ensure_surface (area, allocation->width, allocation->height);
|
||||
|
||||
GTK_WIDGET_CLASS (drawing_area_parent_class)->size_allocate (widget, allocation);
|
||||
}
|
||||
|
||||
static void
|
||||
drawing_area_map (GtkWidget *widget)
|
||||
{
|
||||
GtkAllocation allocation;
|
||||
|
||||
GTK_WIDGET_CLASS (drawing_area_parent_class)->map (widget);
|
||||
|
||||
gdk_window_set_event_compression (gtk_widget_get_window (widget), TRUE);
|
||||
|
||||
gtk_widget_get_allocation (widget, &allocation);
|
||||
drawing_area_ensure_surface ((DrawingArea *) widget,
|
||||
allocation.width, allocation.height);
|
||||
}
|
||||
|
||||
static void
|
||||
drawing_area_unmap (GtkWidget *widget)
|
||||
{
|
||||
DrawingArea *area = (DrawingArea *) widget;
|
||||
|
||||
g_clear_pointer (&area->cr, cairo_destroy);
|
||||
g_clear_pointer (&area->surface, cairo_surface_destroy);
|
||||
|
||||
GTK_WIDGET_CLASS (drawing_area_parent_class)->unmap (widget);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
drawing_area_draw (GtkWidget *widget,
|
||||
cairo_t *cr)
|
||||
{
|
||||
DrawingArea *area = (DrawingArea *) widget;
|
||||
GtkAllocation allocation;
|
||||
|
||||
gtk_widget_get_allocation (widget, &allocation);
|
||||
|
||||
cairo_set_source_rgb (cr, 1, 1, 1);
|
||||
cairo_paint (cr);
|
||||
|
||||
cairo_set_source_surface (cr, area->surface, 0, 0);
|
||||
cairo_paint (cr);
|
||||
|
||||
cairo_set_source_rgb (cr, 0.6, 0.6, 0.6);
|
||||
cairo_rectangle (cr, 0, 0, allocation.width, allocation.height);
|
||||
cairo_stroke (cr);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static void
|
||||
drawing_area_class_init (DrawingAreaClass *klass)
|
||||
{
|
||||
GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
|
||||
|
||||
widget_class->size_allocate = drawing_area_size_allocate;
|
||||
widget_class->draw = drawing_area_draw;
|
||||
widget_class->map = drawing_area_map;
|
||||
widget_class->unmap = drawing_area_unmap;
|
||||
}
|
||||
|
||||
static void
|
||||
drawing_area_apply_stroke (DrawingArea *area,
|
||||
GdkDeviceTool *tool,
|
||||
gdouble x,
|
||||
gdouble y,
|
||||
gdouble pressure)
|
||||
{
|
||||
if (gdk_device_tool_get_tool_type (tool) == GDK_DEVICE_TOOL_TYPE_ERASER)
|
||||
{
|
||||
cairo_set_line_width (area->cr, 10 * pressure);
|
||||
cairo_set_operator (area->cr, CAIRO_OPERATOR_DEST_OUT);
|
||||
}
|
||||
else
|
||||
{
|
||||
cairo_set_line_width (area->cr, 4 * pressure);
|
||||
cairo_set_operator (area->cr, CAIRO_OPERATOR_SATURATE);
|
||||
}
|
||||
|
||||
cairo_set_source_rgba (area->cr, area->draw_color.red,
|
||||
area->draw_color.green, area->draw_color.blue,
|
||||
area->draw_color.alpha * pressure);
|
||||
|
||||
//cairo_set_source_rgba (area->cr, 0, 0, 0, pressure);
|
||||
|
||||
cairo_line_to (area->cr, x, y);
|
||||
cairo_stroke (area->cr);
|
||||
cairo_move_to (area->cr, x, y);
|
||||
}
|
||||
|
||||
static void
|
||||
stylus_gesture_down (GtkGestureStylus *gesture,
|
||||
gdouble x,
|
||||
gdouble y,
|
||||
DrawingArea *area)
|
||||
{
|
||||
cairo_new_path (area->cr);
|
||||
}
|
||||
|
||||
static void
|
||||
stylus_gesture_motion (GtkGestureStylus *gesture,
|
||||
gdouble x,
|
||||
gdouble y,
|
||||
DrawingArea *area)
|
||||
{
|
||||
GdkDeviceTool *tool;
|
||||
gdouble pressure;
|
||||
|
||||
tool = gtk_gesture_stylus_get_device_tool (gesture);
|
||||
|
||||
if (!gtk_gesture_stylus_get_axis (gesture, GDK_AXIS_PRESSURE, &pressure))
|
||||
pressure = 1;
|
||||
|
||||
drawing_area_apply_stroke (area, tool, x, y, pressure);
|
||||
gtk_widget_queue_draw (GTK_WIDGET (area));
|
||||
}
|
||||
|
||||
static void
|
||||
drawing_area_init (DrawingArea *area)
|
||||
{
|
||||
const GdkRGBA draw_rgba = { 0, 0, 0, 1 };
|
||||
gtk_event_box_set_visible_window (GTK_EVENT_BOX (area), TRUE);
|
||||
|
||||
area->stylus_gesture = gtk_gesture_stylus_new (GTK_WIDGET (area));
|
||||
g_signal_connect (area->stylus_gesture, "down",
|
||||
G_CALLBACK (stylus_gesture_down), area);
|
||||
g_signal_connect (area->stylus_gesture, "motion",
|
||||
G_CALLBACK (stylus_gesture_motion), area);
|
||||
|
||||
area->draw_color = draw_rgba;
|
||||
}
|
||||
|
||||
GtkWidget *
|
||||
drawing_area_new (void)
|
||||
{
|
||||
return g_object_new (drawing_area_get_type (), NULL);
|
||||
}
|
||||
|
||||
void
|
||||
drawing_area_set_color (DrawingArea *area,
|
||||
GdkRGBA *color)
|
||||
{
|
||||
area->draw_color = *color;
|
||||
}
|
||||
|
||||
static void
|
||||
color_button_color_set (GtkColorButton *button,
|
||||
DrawingArea *draw_area)
|
||||
{
|
||||
GdkRGBA color;
|
||||
|
||||
gtk_color_chooser_get_rgba (GTK_COLOR_CHOOSER (button), &color);
|
||||
drawing_area_set_color (draw_area, &color);
|
||||
}
|
||||
|
||||
GtkWidget *
|
||||
do_paint (GtkWidget *toplevel)
|
||||
{
|
||||
static GtkWidget *window = NULL;
|
||||
|
||||
if (!window)
|
||||
{
|
||||
GtkWidget *draw_area, *headerbar, *colorbutton;
|
||||
const GdkRGBA draw_rgba = { 0, 0, 0, 1 };
|
||||
|
||||
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
|
||||
|
||||
draw_area = drawing_area_new ();
|
||||
gtk_container_add (GTK_CONTAINER (window), draw_area);
|
||||
|
||||
headerbar = gtk_header_bar_new ();
|
||||
gtk_header_bar_set_title (GTK_HEADER_BAR (headerbar), "Paint");
|
||||
gtk_header_bar_set_show_close_button (GTK_HEADER_BAR (headerbar), TRUE);
|
||||
|
||||
colorbutton = gtk_color_button_new ();
|
||||
g_signal_connect (colorbutton, "color-set",
|
||||
G_CALLBACK (color_button_color_set), draw_area);
|
||||
gtk_color_chooser_set_rgba (GTK_COLOR_CHOOSER (colorbutton),
|
||||
&draw_rgba);
|
||||
|
||||
gtk_header_bar_pack_end (GTK_HEADER_BAR (headerbar), colorbutton);
|
||||
gtk_window_set_titlebar (GTK_WINDOW (window), headerbar);
|
||||
|
||||
g_signal_connect (window, "destroy",
|
||||
G_CALLBACK (gtk_widget_destroyed), &window);
|
||||
}
|
||||
|
||||
if (!gtk_widget_get_visible (window))
|
||||
gtk_widget_show_all (window);
|
||||
else
|
||||
gtk_widget_destroy (window);
|
||||
|
||||
return window;
|
||||
}
|
@@ -61,7 +61,7 @@
|
||||
<property name="label" translatable="yes">Raised</property>
|
||||
<property name="use_underline">1</property>
|
||||
<property name="is_important">1</property>
|
||||
<property name="icon_name">edit-find</property>
|
||||
<property name="icon_name">edit-find-symbolic</property>
|
||||
<style>
|
||||
<class name="raised"/>
|
||||
</style>
|
||||
@@ -77,7 +77,7 @@
|
||||
<property name="label" translatable="yes">Raised Active</property>
|
||||
<property name="use_underline">1</property>
|
||||
<property name="is_important">1</property>
|
||||
<property name="icon_name">edit-find</property>
|
||||
<property name="icon_name">edit-find-symbolic</property>
|
||||
<property name="active">1</property>
|
||||
<style>
|
||||
<class name="raised"/>
|
||||
|
@@ -21,6 +21,11 @@ gtk3_icon_browser_SOURCES = \
|
||||
iconbrowserapp.c iconbrowserapp.h \
|
||||
iconbrowserwin.c iconbrowserwin.h \
|
||||
iconstore.c iconstore.h \
|
||||
fuzzy/dzl-fuzzy-index-builder.c fuzzy/dzl-fuzzy-index-builder.h \
|
||||
fuzzy/dzl-fuzzy-index.c fuzzy/dzl-fuzzy-index.h \
|
||||
fuzzy/dzl-fuzzy-util.c fuzzy/dzl-fuzzy-util.h \
|
||||
fuzzy/dzl-fuzzy-index-cursor.c fuzzy/dzl-fuzzy-index-cursor.h \
|
||||
fuzzy/dzl-fuzzy-index-match.c fuzzy/dzl-fuzzy-index-match.h \
|
||||
resources.c
|
||||
|
||||
BUILT_SOURCES = \
|
||||
@@ -35,7 +40,7 @@ EXTRA_DIST = \
|
||||
iconbrowser.gresource.xml \
|
||||
window.ui \
|
||||
icon.list \
|
||||
meson.build
|
||||
icon.index
|
||||
|
||||
# ------------------- MSVC Build Items ----------------
|
||||
MSVCPROJS = gtk3-icon-browser
|
||||
|
@@ -108,7 +108,6 @@ document-save=The icon for the save action. Should be an arrow pointing down and
|
||||
document-save-as=The icon for the save as action
|
||||
document-send=The icon for the send action. Should be an arrow pointing up and away from a hard disk
|
||||
document-page-setup=The icon for the page setup action of a document editor
|
||||
document-edit=The icon for the action to edit a document
|
||||
object-flip-horizontal=The icon for the action to flip an object horizontally
|
||||
object-flip-vertical=The icon for the action to flip an object vertically
|
||||
object-rotate-left=The icon for the rotate left action performed on an object
|
||||
@@ -287,6 +286,7 @@ emblem-system=The icon used as an emblem for directories that contain system lib
|
||||
avatar-default=The generic avatar icon, which is used to represent a user that doesn't have a personalized avatar
|
||||
emblem-synchronizing=The icon used as an emblem to indicate that a a synchronizing operation is in process
|
||||
emblem-shared=The icon used as an emblem for files and directories that are shared to other users
|
||||
folder-download=The icon representing the location in the file system where downloaded files are stored
|
||||
help-browser=The icon used for the desktop's help browsing application
|
||||
|
||||
[other]
|
||||
@@ -428,9 +428,10 @@ emblem-urgent=
|
||||
emblem-videos=
|
||||
emblem-web=
|
||||
folder-documents=
|
||||
folder-download=The icon representing the location in the file system where downloaded files are stored
|
||||
folder-download=
|
||||
folder-music=
|
||||
folder-pictures=
|
||||
folder-documents=
|
||||
folder-publicshare=
|
||||
folder-remote=The icon used for normal directories on a remote filesystem
|
||||
folder-saved-search=
|
||||
|
@@ -3,11 +3,8 @@
|
||||
#include "iconbrowserwin.h"
|
||||
#include "iconstore.h"
|
||||
#include <gtk/gtk.h>
|
||||
|
||||
/* Drag 'n Drop */
|
||||
static GtkTargetEntry target_table[] = {
|
||||
{ "text/uri-list", 0, 0 },
|
||||
};
|
||||
#include <fuzzy/dzl-fuzzy-index.h>
|
||||
#include <fuzzy/dzl-fuzzy-index-match.h>
|
||||
|
||||
typedef struct
|
||||
{
|
||||
@@ -37,6 +34,7 @@ struct _IconBrowserWindow
|
||||
gboolean symbolic;
|
||||
GtkWidget *symbolic_radio;
|
||||
GtkTreeModelFilter *filter_model;
|
||||
GtkTreeModelSort *sort_model;
|
||||
GtkWidget *details;
|
||||
|
||||
GtkListStore *store;
|
||||
@@ -51,9 +49,10 @@ struct _IconBrowserWindow
|
||||
GtkWidget *image3;
|
||||
GtkWidget *image4;
|
||||
GtkWidget *image5;
|
||||
GtkWidget *image6;
|
||||
GtkWidget *label6;
|
||||
GtkWidget *description;
|
||||
|
||||
DzlFuzzyIndex *index;
|
||||
GHashTable *visible;
|
||||
};
|
||||
|
||||
struct _IconBrowserWindowClass
|
||||
@@ -63,6 +62,31 @@ struct _IconBrowserWindowClass
|
||||
|
||||
G_DEFINE_TYPE(IconBrowserWindow, icon_browser_window, GTK_TYPE_APPLICATION_WINDOW);
|
||||
|
||||
static void
|
||||
query_cb (GObject *object,
|
||||
GAsyncResult *result,
|
||||
gpointer data)
|
||||
{
|
||||
IconBrowserWindow *win = data;
|
||||
GListModel *model;
|
||||
GError *error = NULL;
|
||||
int i;
|
||||
|
||||
model = dzl_fuzzy_index_query_finish (win->index, result, &error);
|
||||
g_print ("%d matches found.\n", g_list_model_get_n_items (model));
|
||||
|
||||
g_hash_table_remove_all (win->visible);
|
||||
for (i = 0; i < g_list_model_get_n_items (model); i++)
|
||||
{
|
||||
DzlFuzzyIndexMatch *match = g_list_model_get_item (model, i);
|
||||
GVariant *document = dzl_fuzzy_index_match_get_document (match);
|
||||
char *str = g_variant_dup_string (document, NULL);
|
||||
g_hash_table_insert (win->visible, str, GINT_TO_POINTER (i + 1));
|
||||
}
|
||||
g_object_unref (model);
|
||||
gtk_tree_model_filter_refilter (win->filter_model);
|
||||
}
|
||||
|
||||
static void
|
||||
search_text_changed (GtkEntry *entry, IconBrowserWindow *win)
|
||||
{
|
||||
@@ -73,7 +97,7 @@ search_text_changed (GtkEntry *entry, IconBrowserWindow *win)
|
||||
if (text[0] == '\0')
|
||||
return;
|
||||
|
||||
gtk_tree_model_filter_refilter (win->filter_model);
|
||||
dzl_fuzzy_index_query_async (win->index, text, 0, NULL, query_cb, win);
|
||||
}
|
||||
|
||||
static GdkPixbuf *
|
||||
@@ -134,19 +158,6 @@ item_activated (GtkIconView *icon_view, GtkTreePath *path, IconBrowserWindow *wi
|
||||
set_image (win->image3, name, 32);
|
||||
set_image (win->image4, name, 48);
|
||||
set_image (win->image5, name, 64);
|
||||
if (win->symbolic)
|
||||
{
|
||||
gtk_widget_show (win->image6);
|
||||
gtk_widget_show (win->label6);
|
||||
gtk_widget_show (gtk_widget_get_parent (win->image6));
|
||||
set_image (win->image6, name, 64);
|
||||
}
|
||||
else
|
||||
{
|
||||
gtk_widget_hide (win->image6);
|
||||
gtk_widget_hide (win->label6);
|
||||
gtk_widget_hide (gtk_widget_get_parent (win->image6));
|
||||
}
|
||||
if (description && description[0])
|
||||
{
|
||||
gtk_label_set_text (GTK_LABEL (win->description), description);
|
||||
@@ -321,11 +332,9 @@ icon_visible_func (GtkTreeModel *model,
|
||||
gchar *name;
|
||||
gint column;
|
||||
gboolean search;
|
||||
const gchar *search_text;
|
||||
gboolean visible;
|
||||
|
||||
search = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (win->search));
|
||||
search_text = gtk_entry_get_text (GTK_ENTRY (win->searchentry));
|
||||
|
||||
if (win->symbolic)
|
||||
column = ICON_STORE_SYMBOLIC_NAME_COLUMN;
|
||||
@@ -339,7 +348,7 @@ icon_visible_func (GtkTreeModel *model,
|
||||
if (!name)
|
||||
visible = FALSE;
|
||||
else if (search)
|
||||
visible = strstr (name, search_text) != NULL;
|
||||
visible = g_hash_table_lookup (win->visible, name) != NULL;
|
||||
else
|
||||
visible = win->current_context != NULL && g_strcmp0 (context, win->current_context->id) == 0;
|
||||
|
||||
@@ -375,6 +384,8 @@ search_mode_toggled (GObject *searchbar, GParamSpec *pspec, IconBrowserWindow *w
|
||||
{
|
||||
if (gtk_search_bar_get_search_mode (GTK_SEARCH_BAR (searchbar)))
|
||||
gtk_list_box_unselect_all (GTK_LIST_BOX (win->context_list));
|
||||
|
||||
gtk_tree_model_filter_refilter (win->filter_model);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -400,35 +411,6 @@ get_image_data (GtkWidget *widget,
|
||||
g_object_unref (pixbuf);
|
||||
}
|
||||
|
||||
static void
|
||||
get_scalable_image_data (GtkWidget *widget,
|
||||
GdkDragContext *context,
|
||||
GtkSelectionData *selection,
|
||||
guint target_info,
|
||||
guint time,
|
||||
gpointer data)
|
||||
{
|
||||
gchar *uris[2];
|
||||
GtkIconInfo *info;
|
||||
GtkWidget *image;
|
||||
GFile *file;
|
||||
const gchar *name;
|
||||
|
||||
image = gtk_bin_get_child (GTK_BIN (widget));
|
||||
gtk_image_get_icon_name (GTK_IMAGE (image), &name, NULL);
|
||||
|
||||
info = gtk_icon_theme_lookup_icon (gtk_icon_theme_get_default (), name, -1, 0);
|
||||
file = g_file_new_for_path (gtk_icon_info_get_filename (info));
|
||||
uris[0] = g_file_get_uri (file);
|
||||
uris[1] = NULL;
|
||||
|
||||
gtk_selection_data_set_uris (selection, uris);
|
||||
|
||||
g_free (uris[0]);
|
||||
g_object_unref (info);
|
||||
g_object_unref (file);
|
||||
}
|
||||
|
||||
static void
|
||||
setup_image_dnd (GtkWidget *image)
|
||||
{
|
||||
@@ -440,17 +422,46 @@ setup_image_dnd (GtkWidget *image)
|
||||
g_signal_connect (parent, "drag-data-get", G_CALLBACK (get_image_data), NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
setup_scalable_image_dnd (GtkWidget *image)
|
||||
static gint
|
||||
sort_func (GtkTreeModel *model,
|
||||
GtkTreeIter *a,
|
||||
GtkTreeIter *b,
|
||||
gpointer data)
|
||||
{
|
||||
GtkWidget *parent;
|
||||
IconBrowserWindow *win = data;
|
||||
char *aname = NULL;
|
||||
char *bname = NULL;
|
||||
int column;
|
||||
int apos, bpos;
|
||||
gboolean search;
|
||||
int ret;
|
||||
|
||||
parent = gtk_widget_get_parent (image);
|
||||
gtk_drag_source_set (parent, GDK_BUTTON1_MASK,
|
||||
target_table, G_N_ELEMENTS (target_table),
|
||||
GDK_ACTION_COPY);
|
||||
search = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (win->search));
|
||||
|
||||
g_signal_connect (parent, "drag-data-get", G_CALLBACK (get_scalable_image_data), NULL);
|
||||
if (win->symbolic)
|
||||
column = ICON_STORE_SYMBOLIC_NAME_COLUMN;
|
||||
else
|
||||
column = ICON_STORE_NAME_COLUMN;
|
||||
|
||||
gtk_tree_model_get (model, a, column, &aname, -1);
|
||||
gtk_tree_model_get (model, b, column, &bname, -1);
|
||||
|
||||
if (!aname || !bname)
|
||||
ret = 0;
|
||||
else if (search)
|
||||
{
|
||||
apos = GPOINTER_TO_INT (g_hash_table_lookup (win->visible, aname));
|
||||
bpos = GPOINTER_TO_INT (g_hash_table_lookup (win->visible, bname));
|
||||
|
||||
ret = apos - bpos;
|
||||
}
|
||||
else
|
||||
ret = strcmp (aname, bname);
|
||||
|
||||
g_free (aname);
|
||||
g_free (bname);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -459,6 +470,8 @@ icon_browser_window_init (IconBrowserWindow *win)
|
||||
GtkTargetList *list;
|
||||
GtkTargetEntry *targets;
|
||||
gint n_targets;
|
||||
GFile *file;
|
||||
GError *error = NULL;
|
||||
|
||||
gtk_widget_init_template (GTK_WIDGET (win));
|
||||
|
||||
@@ -479,11 +492,11 @@ icon_browser_window_init (IconBrowserWindow *win)
|
||||
setup_image_dnd (win->image3);
|
||||
setup_image_dnd (win->image4);
|
||||
setup_image_dnd (win->image5);
|
||||
setup_scalable_image_dnd (win->image6);
|
||||
|
||||
win->contexts = g_hash_table_new_full (g_str_hash, g_str_equal, NULL, context_free);
|
||||
|
||||
gtk_tree_model_filter_set_visible_func (win->filter_model, icon_visible_func, win, NULL);
|
||||
gtk_tree_sortable_set_default_sort_func (GTK_TREE_SORTABLE (win->sort_model), sort_func, win, NULL);
|
||||
gtk_window_set_transient_for (GTK_WINDOW (win->details), GTK_WINDOW (win));
|
||||
|
||||
g_signal_connect (win->searchbar, "notify::search-mode-enabled",
|
||||
@@ -492,6 +505,18 @@ icon_browser_window_init (IconBrowserWindow *win)
|
||||
symbolic_toggled (GTK_TOGGLE_BUTTON (win->symbolic_radio), win);
|
||||
|
||||
populate (win);
|
||||
|
||||
win->index = dzl_fuzzy_index_new ();
|
||||
file = g_file_new_for_path ("icon.index");
|
||||
if (!dzl_fuzzy_index_load_file (win->index, file, NULL, &error))
|
||||
{
|
||||
g_printerr ("Failed to load index: %s\n", error->message);
|
||||
g_error_free (error);
|
||||
}
|
||||
|
||||
g_object_unref (file);
|
||||
|
||||
win->visible = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -504,6 +529,7 @@ icon_browser_window_class_init (IconBrowserWindowClass *class)
|
||||
|
||||
gtk_widget_class_bind_template_child (GTK_WIDGET_CLASS (class), IconBrowserWindow, context_list);
|
||||
gtk_widget_class_bind_template_child (GTK_WIDGET_CLASS (class), IconBrowserWindow, filter_model);
|
||||
gtk_widget_class_bind_template_child (GTK_WIDGET_CLASS (class), IconBrowserWindow, sort_model);
|
||||
gtk_widget_class_bind_template_child (GTK_WIDGET_CLASS (class), IconBrowserWindow, symbolic_radio);
|
||||
gtk_widget_class_bind_template_child (GTK_WIDGET_CLASS (class), IconBrowserWindow, details);
|
||||
|
||||
@@ -519,8 +545,6 @@ icon_browser_window_class_init (IconBrowserWindowClass *class)
|
||||
gtk_widget_class_bind_template_child (GTK_WIDGET_CLASS (class), IconBrowserWindow, image3);
|
||||
gtk_widget_class_bind_template_child (GTK_WIDGET_CLASS (class), IconBrowserWindow, image4);
|
||||
gtk_widget_class_bind_template_child (GTK_WIDGET_CLASS (class), IconBrowserWindow, image5);
|
||||
gtk_widget_class_bind_template_child (GTK_WIDGET_CLASS (class), IconBrowserWindow, image6);
|
||||
gtk_widget_class_bind_template_child (GTK_WIDGET_CLASS (class), IconBrowserWindow, label6);
|
||||
gtk_widget_class_bind_template_child (GTK_WIDGET_CLASS (class), IconBrowserWindow, description);
|
||||
|
||||
gtk_widget_class_bind_template_callback (GTK_WIDGET_CLASS (class), search_text_changed);
|
||||
|
@@ -1,8 +1,84 @@
|
||||
#include <string.h>
|
||||
#include <gtk/gtk.h>
|
||||
#include <iconbrowserapp.h>
|
||||
#include <fuzzy/dzl-fuzzy-index-builder.h>
|
||||
|
||||
static void
|
||||
build_fuzzy_index (void)
|
||||
{
|
||||
DzlFuzzyIndexBuilder *builder;
|
||||
GFile *file;
|
||||
GKeyFile *kf;
|
||||
char *data;
|
||||
gsize length;
|
||||
char **groups;
|
||||
int i;
|
||||
GFile *outfile;
|
||||
GError *error = NULL;
|
||||
|
||||
builder = dzl_fuzzy_index_builder_new ();
|
||||
dzl_fuzzy_index_builder_set_case_sensitive (builder, FALSE);
|
||||
|
||||
file = g_file_new_for_uri ("resource:/org/gtk/iconbrowser/gtk/icon.list");
|
||||
g_file_load_contents (file, NULL, &data, &length, NULL, NULL);
|
||||
|
||||
kf = g_key_file_new ();
|
||||
g_key_file_load_from_data (kf, data, length, G_KEY_FILE_NONE, NULL);
|
||||
|
||||
groups = g_key_file_get_groups (kf, &length);
|
||||
for (i = 0; i < length; i++)
|
||||
{
|
||||
const char *context;
|
||||
char **keys;
|
||||
gsize len;
|
||||
int j;
|
||||
|
||||
context = groups[i];
|
||||
|
||||
keys = g_key_file_get_keys (kf, context, &len, NULL);
|
||||
for (j = 0; j < len; j++)
|
||||
{
|
||||
const char *key = keys[j];
|
||||
char *symbolic;
|
||||
|
||||
if (strcmp (key, "Name") == 0 || strcmp (key, "Description") == 0)
|
||||
continue;
|
||||
|
||||
dzl_fuzzy_index_builder_insert (builder, key, g_variant_new_string (key));
|
||||
|
||||
symbolic = g_strconcat (key, "-symbolic", NULL);
|
||||
|
||||
dzl_fuzzy_index_builder_insert (builder, symbolic, g_variant_new_string (symbolic));
|
||||
|
||||
g_free (symbolic);
|
||||
}
|
||||
g_strfreev (keys);
|
||||
}
|
||||
g_strfreev (groups);
|
||||
|
||||
outfile = g_file_new_for_path ("icon.index");
|
||||
|
||||
if (!dzl_fuzzy_index_builder_write (builder, outfile, G_PRIORITY_DEFAULT, NULL, &error))
|
||||
{
|
||||
g_printerr ("%s\n", error->message);
|
||||
g_error_free (error);
|
||||
}
|
||||
else
|
||||
{
|
||||
g_print ("icon.index written\n");
|
||||
}
|
||||
|
||||
g_object_unref (builder);
|
||||
}
|
||||
|
||||
int
|
||||
main (int argc, char *argv[])
|
||||
{
|
||||
if (argc == 2 && strcmp (argv[1], "--generate-index") == 0)
|
||||
{
|
||||
build_fuzzy_index ();
|
||||
return 0;
|
||||
}
|
||||
|
||||
return g_application_run (G_APPLICATION (icon_browser_app_new ()), argc, argv);
|
||||
}
|
||||
|
@@ -1,24 +0,0 @@
|
||||
iconbrowser_sources = [
|
||||
'main.c',
|
||||
'iconbrowserapp.c',
|
||||
'iconbrowserwin.c',
|
||||
'iconstore.c'
|
||||
]
|
||||
|
||||
iconbrowser_resources = gnome.compile_resources(
|
||||
'iconbrowser_resources',
|
||||
'iconbrowser.gresource.xml',
|
||||
source_dir: '.'
|
||||
)
|
||||
|
||||
iconbrowser = executable(
|
||||
'gtk3-icon-browser',
|
||||
iconbrowser_sources,
|
||||
iconbrowser_resources,
|
||||
dependencies: libgtk_dep,
|
||||
include_directories : confinc,
|
||||
install: true
|
||||
)
|
||||
|
||||
# desktop file
|
||||
install_data('gtk3-icon-browser.desktop', install_dir: gtk_applicationsdir)
|
@@ -3,8 +3,11 @@
|
||||
<!-- interface-requires gtk+ 3.8 -->
|
||||
<object class="IconStore" id="store">
|
||||
</object>
|
||||
<object class="GtkTreeModelSort" id="sort_model">
|
||||
<property name="model">store</property>
|
||||
</object>
|
||||
<object class="GtkTreeModelFilter" id="filter_model">
|
||||
<property name="child_model">store</property>
|
||||
<property name="child_model">sort_model</property>
|
||||
</object>
|
||||
<template class="IconBrowserWindow" parent="GtkApplicationWindow">
|
||||
<property name="title" translatable="yes">Icon Browser</property>
|
||||
@@ -150,7 +153,6 @@
|
||||
<property name="margin">10</property>
|
||||
<property name="row-spacing">18</property>
|
||||
<property name="column-spacing">18</property>
|
||||
<property name="halign">center</property>
|
||||
<child>
|
||||
<object class="GtkEventBox">
|
||||
<property name="visible">True</property>
|
||||
@@ -231,22 +233,6 @@
|
||||
<property name="top-attach">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkEventBox">
|
||||
<property name="visible">True</property>
|
||||
<child>
|
||||
<object class="GtkImage" id="image6">
|
||||
<property name="visible">True</property>
|
||||
<property name="halign">center</property>
|
||||
<property name="valign">end</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left-attach">5</property>
|
||||
<property name="top-attach">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<object class="GtkLabel" id="label1">
|
||||
@@ -324,39 +310,34 @@
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="label6">
|
||||
<object class="GtkLabel" id="description">
|
||||
<property name="visible">True</property>
|
||||
<property name="halign">center</property>
|
||||
<property name="valign">baseline</property>
|
||||
<property name="label">scalable</property>
|
||||
<style>
|
||||
<class name="dim-label"/>
|
||||
</style>
|
||||
<property name="wrap">True</property>
|
||||
<property name="max-width-chars">60</property>
|
||||
<property name="xalign">0</property>
|
||||
<property name="valign">start</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left-attach">5</property>
|
||||
<property name="top-attach">2</property>
|
||||
<property name="left-attach">0</property>
|
||||
<property name="top-attach">3</property>
|
||||
<property name="width">5</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">Copy to Clipboard</property>
|
||||
<property name="halign">center</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="margin">20</property>
|
||||
<signal name="clicked" handler="copy_to_clipboard"/>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="left-attach">0</property>
|
||||
<property name="top-attach">4</property>
|
||||
<property name="width">5</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton">
|
||||
<property name="visible">True</property>
|
||||
<property name="label" translatable="yes">Copy to Clipboard</property>
|
||||
<property name="halign">center</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="margin">20</property>
|
||||
<signal name="clicked" handler="copy_to_clipboard"/>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkLabel" id="description">
|
||||
<property name="margin">10</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="wrap">True</property>
|
||||
<property name="max-width-chars">60</property>
|
||||
<property name="valign">start</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
|
@@ -1,3 +0,0 @@
|
||||
subdir('icon-browser')
|
||||
subdir('widget-factory')
|
||||
subdir('gtk-demo')
|
@@ -63,10 +63,10 @@ uninstall-update-icon-cache:
|
||||
EXTRA_DIST += \
|
||||
widget-factory.ui \
|
||||
widget-factory.css \
|
||||
menus.ui \
|
||||
help-overlay.ui \
|
||||
widget-factory.gresource.xml \
|
||||
data/source.svg \
|
||||
data/symbolic-source.svg \
|
||||
meson.build
|
||||
data/symbolic-source.svg
|
||||
|
||||
-include $(top_srcdir)/git.mk
|
||||
|
19
demos/widget-factory/menus.ui
Normal file
19
demos/widget-factory/menus.ui
Normal file
@@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<interface>
|
||||
<!-- interface-requires gtk+ 3.0 -->
|
||||
<menu id="app-menu">
|
||||
<section>
|
||||
<item>
|
||||
<attribute name="label" translatable="yes">About</attribute>
|
||||
<attribute name="action">app.about</attribute>
|
||||
</item>
|
||||
</section>
|
||||
<section>
|
||||
<item>
|
||||
<attribute name="label" translatable="yes">_Quit</attribute>
|
||||
<attribute name="action">app.quit</attribute>
|
||||
<attribute name="accel"><Primary>q</attribute>
|
||||
</item>
|
||||
</section>
|
||||
</menu>
|
||||
</interface>
|
@@ -1,29 +0,0 @@
|
||||
|
||||
widgetfactory_sources = [
|
||||
'widget-factory.c'
|
||||
]
|
||||
|
||||
widgetfactory_resources = gnome.compile_resources(
|
||||
'widgetfactory_resources',
|
||||
'widget-factory.gresource.xml',
|
||||
source_dir: '.'
|
||||
)
|
||||
|
||||
foreach s: [ '16', '22', '24', '32', '48', '256']
|
||||
icon_destdir = join_paths(gtk_datadir, 'icons', 'hicolor', '@0@x@0@'.format(s), 'apps')
|
||||
icons = [join_paths('data', '@0@x@0@'.format(s), 'gtk3-widget-factory.png'),
|
||||
join_paths('data', '@0@x@0@'.format(s), 'gtk3-widget-factory-symbolic.symbolic.png')]
|
||||
install_data(icons, install_dir: icon_destdir)
|
||||
endforeach
|
||||
|
||||
widget_factory = executable(
|
||||
'gtk3-widget-factory',
|
||||
widgetfactory_sources,
|
||||
widgetfactory_resources,
|
||||
dependencies: libgtk_dep,
|
||||
include_directories : confinc,
|
||||
install: true
|
||||
)
|
||||
|
||||
# desktop file
|
||||
install_data('gtk3-widget-factory.desktop', install_dir: gtk_applicationsdir)
|
@@ -211,15 +211,15 @@ activate_about (GSimpleAction *action,
|
||||
gtk_get_micro_version ());
|
||||
|
||||
gtk_show_about_dialog (GTK_WINDOW (gtk_application_get_active_window (app)),
|
||||
"program-name", "GTK Widget Factory",
|
||||
"program-name", "GTK+ Widget Factory",
|
||||
"version", version,
|
||||
"copyright", "© 1997—2019 The GTK Team",
|
||||
"copyright", "(C) 1997-2013 The GTK+ Team",
|
||||
"license-type", GTK_LICENSE_LGPL_2_1,
|
||||
"website", "http://www.gtk.org",
|
||||
"comments", "Program to demonstrate GTK themes and widgets",
|
||||
"comments", "Program to demonstrate GTK+ themes and widgets",
|
||||
"authors", authors,
|
||||
"logo-icon-name", "gtk3-widget-factory",
|
||||
"title", "About GTK Widget Factory",
|
||||
"title", "About GTK+ Widget Factory",
|
||||
NULL);
|
||||
|
||||
g_free (version);
|
||||
@@ -246,14 +246,6 @@ activate_quit (GSimpleAction *action,
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
activate_inspector (GSimpleAction *action,
|
||||
GVariant *parameter,
|
||||
gpointer user_data)
|
||||
{
|
||||
gtk_window_set_interactive_debugging (TRUE);
|
||||
}
|
||||
|
||||
static void
|
||||
spin_value_changed (GtkAdjustment *adjustment, GtkWidget *label)
|
||||
{
|
||||
@@ -1704,7 +1696,7 @@ activate (GApplication *app)
|
||||
gtk_css_provider_load_from_resource (provider, "/org/gtk/WidgetFactory/widget-factory.css");
|
||||
gtk_style_context_add_provider_for_screen (gdk_screen_get_default (),
|
||||
GTK_STYLE_PROVIDER (provider),
|
||||
GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
|
||||
GTK_STYLE_PROVIDER_PRIORITY_USER);
|
||||
g_object_unref (provider);
|
||||
|
||||
builder = gtk_builder_new_from_resource ("/org/gtk/WidgetFactory/widget-factory.ui");
|
||||
@@ -1736,14 +1728,12 @@ activate (GApplication *app)
|
||||
|
||||
widget = (GtkWidget *)gtk_builder_get_object (builder, "statusbar");
|
||||
gtk_statusbar_push (GTK_STATUSBAR (widget), 0, "All systems are operating normally.");
|
||||
action = G_ACTION (g_property_action_new ("statusbar", widget, "visible"));
|
||||
g_action_map_add_action (G_ACTION_MAP (window), action);
|
||||
g_object_unref (G_OBJECT (action));
|
||||
g_action_map_add_action (G_ACTION_MAP (window),
|
||||
G_ACTION (g_property_action_new ("statusbar", widget, "visible")));
|
||||
|
||||
widget = (GtkWidget *)gtk_builder_get_object (builder, "toolbar");
|
||||
action = G_ACTION (g_property_action_new ("toolbar", widget, "visible"));
|
||||
g_action_map_add_action (G_ACTION_MAP (window), action);
|
||||
g_object_unref (G_OBJECT (action));
|
||||
g_action_map_add_action (G_ACTION_MAP (window),
|
||||
G_ACTION (g_property_action_new ("toolbar", widget, "visible")));
|
||||
|
||||
adj = (GtkAdjustment *)gtk_builder_get_object (builder, "adjustment1");
|
||||
|
||||
@@ -1976,7 +1966,6 @@ main (int argc, char *argv[])
|
||||
static GActionEntry app_entries[] = {
|
||||
{ "about", activate_about, NULL, NULL, NULL },
|
||||
{ "quit", activate_quit, NULL, NULL, NULL },
|
||||
{ "inspector", activate_inspector, NULL, NULL, NULL },
|
||||
{ "main", NULL, "s", "'steak'", NULL },
|
||||
{ "wine", NULL, NULL, "false", NULL },
|
||||
{ "beer", NULL, NULL, "false", NULL },
|
||||
|
@@ -2,25 +2,3 @@
|
||||
padding: 0;
|
||||
outline-width: 0;
|
||||
}
|
||||
|
||||
frame.border-inset > border {
|
||||
border-style: inset;
|
||||
}
|
||||
|
||||
frame.border-outset > border {
|
||||
border-style: outset;
|
||||
}
|
||||
|
||||
frame.border-groove > border {
|
||||
border-style: groove;
|
||||
}
|
||||
|
||||
frame.border-ridge > border {
|
||||
border-style: ridge;
|
||||
}
|
||||
|
||||
/* These effects use 2 lines, so show them */
|
||||
frame.border-groove > border,
|
||||
frame.border-ridge > border {
|
||||
border-width: 2px;
|
||||
}
|
||||
|
@@ -6,6 +6,9 @@
|
||||
<gresource prefix="/org/gtk/WidgetFactory">
|
||||
<file>widget-factory.css</file>
|
||||
</gresource>
|
||||
<gresource prefix="/org/gtk/WidgetFactory/gtk">
|
||||
<file preprocess="xml-stripblanks">menus.ui</file>
|
||||
</gresource>
|
||||
<gresource prefix="/org/gtk/WidgetFactory/gtk">
|
||||
<file preprocess="xml-stripblanks">help-overlay.ui</file>
|
||||
</gresource>
|
||||
|
@@ -16,20 +16,6 @@
|
||||
<attribute name="action">win.transition</attribute>
|
||||
</item>
|
||||
</section>
|
||||
<section>
|
||||
<item>
|
||||
<attribute name="label" translatable="yes">_Inspector</attribute>
|
||||
<attribute name="action">app.inspector</attribute>
|
||||
</item>
|
||||
<item>
|
||||
<attribute name="label" translatable="yes">_Keyboard Shortcuts</attribute>
|
||||
<attribute name="action">win.show-help-overlay</attribute>
|
||||
</item>
|
||||
<item>
|
||||
<attribute name="label" translatable="yes">_About Widget Factory</attribute>
|
||||
<attribute name="action">app.about</attribute>
|
||||
</item>
|
||||
</section>
|
||||
</menu>
|
||||
<menu id="dinner_menu">
|
||||
<section>
|
||||
@@ -507,11 +493,9 @@ Suspendisse feugiat quam quis dolor accumsan cursus.</property>
|
||||
<object class="GtkEntry" id="entry1">
|
||||
<property name="visible">1</property>
|
||||
<property name="can_focus">1</property>
|
||||
<property name="enable-emoji-completion">1</property>
|
||||
<property name="invisible_char">•</property>
|
||||
<property name="placeholder-text" translatable="yes">Click icon to change mode</property>
|
||||
<property name="secondary_icon_name">view-refresh-symbolic</property>
|
||||
<property name="secondary_icon_tooltip_text">Change mode</property>
|
||||
<signal name="icon-release" handler="on_entry_icon_release" swapped="no"/>
|
||||
</object>
|
||||
<packing>
|
||||
@@ -1316,13 +1300,11 @@ Suspendisse feugiat quam quis dolor accumsan cursus.</property>
|
||||
<child>
|
||||
<object class="GtkFrame" id="frame1">
|
||||
<property name="visible">1</property>
|
||||
<style>
|
||||
<class name="border-inset"/>
|
||||
</style>
|
||||
<property name="shadow_type">in</property>
|
||||
<child type="label">
|
||||
<object class="GtkLabel" id="label1">
|
||||
<property name="visible">1</property>
|
||||
<property name="label" translatable="yes"><b>Inset</b></property>
|
||||
<property name="label" translatable="yes"><b>In</b></property>
|
||||
<property name="use_markup">1</property>
|
||||
</object>
|
||||
</child>
|
||||
@@ -1334,13 +1316,11 @@ Suspendisse feugiat quam quis dolor accumsan cursus.</property>
|
||||
<child>
|
||||
<object class="GtkFrame" id="frame2">
|
||||
<property name="visible">1</property>
|
||||
<style>
|
||||
<class name="border-outset"/>
|
||||
</style>
|
||||
<property name="shadow_type">out</property>
|
||||
<child type="label">
|
||||
<object class="GtkLabel" id="label2">
|
||||
<property name="visible">1</property>
|
||||
<property name="label" translatable="yes"><b>Outset</b></property>
|
||||
<property name="label" translatable="yes"><b>Out</b></property>
|
||||
<property name="use_markup">1</property>
|
||||
</object>
|
||||
</child>
|
||||
@@ -1353,13 +1333,10 @@ Suspendisse feugiat quam quis dolor accumsan cursus.</property>
|
||||
<child>
|
||||
<object class="GtkFrame" id="frame3">
|
||||
<property name="visible">1</property>
|
||||
<style>
|
||||
<class name="border-groove"/>
|
||||
</style>
|
||||
<child type="label">
|
||||
<object class="GtkLabel" id="label17">
|
||||
<property name="visible">1</property>
|
||||
<property name="label" translatable="yes"><b>Groove</b></property>
|
||||
<property name="label" translatable="yes"><b>Etched in</b></property>
|
||||
<property name="use_markup">1</property>
|
||||
</object>
|
||||
</child>
|
||||
@@ -1372,13 +1349,11 @@ Suspendisse feugiat quam quis dolor accumsan cursus.</property>
|
||||
<child>
|
||||
<object class="GtkFrame" id="frame4">
|
||||
<property name="visible">1</property>
|
||||
<style>
|
||||
<class name="border-ridge"/>
|
||||
</style>
|
||||
<property name="shadow_type">etched-out</property>
|
||||
<child type="label">
|
||||
<object class="GtkLabel" id="label18">
|
||||
<property name="visible">1</property>
|
||||
<property name="label" translatable="yes"><b>Ridge</b></property>
|
||||
<property name="label" translatable="yes"><b>Etched out</b></property>
|
||||
<property name="use_markup">1</property>
|
||||
</object>
|
||||
</child>
|
||||
@@ -3749,7 +3724,6 @@ microphone-sensitivity-medium-symbolic</property>
|
||||
<object class="GtkEntry">
|
||||
<property name="visible">1</property>
|
||||
<property name="can_focus">1</property>
|
||||
<property name="show_emoji_icon">1</property>
|
||||
<property name="placeholder_text" translatable="yes">Age…</property>
|
||||
</object>
|
||||
<packing>
|
||||
|
@@ -5,7 +5,4 @@ SUBDIRS = gdk gtk libgail-util
|
||||
|
||||
GITIGNOREFILES = */*.1
|
||||
|
||||
EXTRA_DIST += \
|
||||
meson.build
|
||||
|
||||
-include $(top_srcdir)/git.mk
|
||||
|
@@ -198,9 +198,7 @@ endif
|
||||
include $(top_srcdir)/gtk-doc.make
|
||||
|
||||
# Other files to distribute
|
||||
EXTRA_DIST += \
|
||||
version.xml.in \
|
||||
meson.build
|
||||
EXTRA_DIST += version.xml.in
|
||||
|
||||
if ENABLE_GTK_DOC
|
||||
TESTS_ENVIRONMENT = cd $(srcdir) && \
|
||||
|
@@ -113,10 +113,6 @@
|
||||
<title>Index of new symbols in 3.22</title>
|
||||
<xi:include href="xml/api-index-3.22.xml"><xi:fallback /></xi:include>
|
||||
</index>
|
||||
<index id="api-index-3-24" role="3.24">
|
||||
<title>Index of new symbols in 3.24</title>
|
||||
<xi:include href="xml/api-index-3.24.xml"><xi:fallback /></xi:include>
|
||||
</index>
|
||||
|
||||
<xi:include href="xml/annotation-glossary.xml"><xi:fallback /></xi:include>
|
||||
|
||||
|
@@ -1,9 +1,8 @@
|
||||
|
||||
# GdkAtom is an opaque typedef
|
||||
<TYPEDEF>
|
||||
<STRUCT>
|
||||
<NAME>GdkAtom</NAME>
|
||||
typedef struct _GdkAtom *GdkAtom;
|
||||
</TYPEDEF>
|
||||
</STRUCT>
|
||||
|
||||
<MACRO>
|
||||
<NAME>GDK_WINDOWING_X11</NAME>
|
||||
|
@@ -386,7 +386,6 @@ gdk_window_move
|
||||
gdk_window_resize
|
||||
gdk_window_move_resize
|
||||
gdk_window_scroll
|
||||
gdk_window_move_to_rect
|
||||
gdk_window_move_region
|
||||
gdk_window_flush
|
||||
gdk_window_has_native
|
||||
@@ -1124,7 +1123,6 @@ gdk_x11_get_default_screen
|
||||
gdk_x11_get_default_xdisplay
|
||||
gdk_x11_grab_server
|
||||
gdk_x11_ungrab_server
|
||||
gdk_x11_get_parent_relative_pattern
|
||||
gdk_x11_cursor_get_xcursor
|
||||
gdk_x11_cursor_get_xdisplay
|
||||
gdk_x11_keymap_get_group_for_state
|
||||
@@ -1272,7 +1270,6 @@ gdk_wayland_device_get_wl_seat
|
||||
gdk_wayland_display_get_wl_compositor
|
||||
gdk_wayland_display_get_wl_display
|
||||
gdk_wayland_display_get_xdg_shell
|
||||
gdk_wayland_display_query_registry
|
||||
gdk_wayland_window_get_wl_surface
|
||||
gdk_wayland_window_set_use_custom_surface
|
||||
GdkWaylandWindowExported
|
||||
|
@@ -1,180 +0,0 @@
|
||||
private_headers = [
|
||||
'gdkintl.h',
|
||||
'gdkmarshalers.h',
|
||||
'gdkkeysyms.h',
|
||||
'gdkinternals.h',
|
||||
'gdkprivate.h',
|
||||
'gdk-private.h',
|
||||
'gdkapplaunchcontextprivate.h',
|
||||
'gdkcursorprivate.h',
|
||||
'gdkdevicemanagerprivate.h',
|
||||
'gdkdeviceprivate.h',
|
||||
'gdkdisplaymanagerprivate.h',
|
||||
'gdkdisplayprivate.h',
|
||||
'gdkdndprivate.h',
|
||||
'gdkframeclockprivate.h',
|
||||
'gdkglcontextprivate.h',
|
||||
'gdkkeysprivate.h',
|
||||
'gdkscreenprivate.h',
|
||||
'gdkseatdefaultprivate.h',
|
||||
'gdkseatprivate.h',
|
||||
'gdkvisualprivate.h',
|
||||
'keyname-table.h',
|
||||
'win32',
|
||||
'x11',
|
||||
'quartz',
|
||||
'broadway',
|
||||
'wayland',
|
||||
]
|
||||
|
||||
images = [
|
||||
'images/rotated-text.png',
|
||||
'images/X_cursor.png',
|
||||
'images/arrow.png',
|
||||
'images/based_arrow_down.png',
|
||||
'images/based_arrow_up.png',
|
||||
'images/boat.png',
|
||||
'images/bogosity.png',
|
||||
'images/bottom_left_corner.png',
|
||||
'images/bottom_right_corner.png',
|
||||
'images/bottom_side.png',
|
||||
'images/bottom_tee.png',
|
||||
'images/box_spiral.png',
|
||||
'images/center_ptr.png',
|
||||
'images/circle.png',
|
||||
'images/clock.png',
|
||||
'images/coffee_mug.png',
|
||||
'images/cross.png',
|
||||
'images/cross_reverse.png',
|
||||
'images/crosshair.png',
|
||||
'images/diamond_cross.png',
|
||||
'images/dot.png',
|
||||
'images/dotbox.png',
|
||||
'images/double_arrow.png',
|
||||
'images/draft_large.png',
|
||||
'images/draft_small.png',
|
||||
'images/draped_box.png',
|
||||
'images/exchange.png',
|
||||
'images/fleur.png',
|
||||
'images/gobbler.png',
|
||||
'images/gumby.png',
|
||||
'images/hand1.png',
|
||||
'images/hand2.png',
|
||||
'images/heart.png',
|
||||
'images/icon.png',
|
||||
'images/iron_cross.png',
|
||||
'images/left_ptr.png',
|
||||
'images/left_side.png',
|
||||
'images/left_tee.png',
|
||||
'images/leftbutton.png',
|
||||
'images/ll_angle.png',
|
||||
'images/lr_angle.png',
|
||||
'images/man.png',
|
||||
'images/middlebutton.png',
|
||||
'images/mouse.png',
|
||||
'images/pencil.png',
|
||||
'images/pirate.png',
|
||||
'images/plus.png',
|
||||
'images/question_arrow.png',
|
||||
'images/right_ptr.png',
|
||||
'images/right_side.png',
|
||||
'images/right_tee.png',
|
||||
'images/rightbutton.png',
|
||||
'images/rtl_logo.png',
|
||||
'images/sailboat.png',
|
||||
'images/sb_down_arrow.png',
|
||||
'images/sb_h_double_arrow.png',
|
||||
'images/sb_left_arrow.png',
|
||||
'images/sb_right_arrow.png',
|
||||
'images/sb_up_arrow.png',
|
||||
'images/sb_v_double_arrow.png',
|
||||
'images/shuttle.png',
|
||||
'images/sizing.png',
|
||||
'images/spider.png',
|
||||
'images/spraycan.png',
|
||||
'images/star.png',
|
||||
'images/target.png',
|
||||
'images/tcross.png',
|
||||
'images/top_left_arrow.png',
|
||||
'images/top_left_corner.png',
|
||||
'images/top_right_corner.png',
|
||||
'images/top_side.png',
|
||||
'images/top_tee.png',
|
||||
'images/trek.png',
|
||||
'images/ul_angle.png',
|
||||
'images/umbrella.png',
|
||||
'images/ur_angle.png',
|
||||
'images/watch.png',
|
||||
'images/xterm.png',
|
||||
'images/alias_cursor.png',
|
||||
'images/all_scroll_cursor.png',
|
||||
'images/cell_cursor.png',
|
||||
'images/col_resize_cursor.png',
|
||||
'images/copy_cursor.png',
|
||||
'images/crosshair_cursor.png',
|
||||
'images/default_cursor.png',
|
||||
'images/e_resize_cursor.png',
|
||||
'images/ew_resize_cursor.png',
|
||||
'images/grabbing_cursor.png',
|
||||
'images/grab_cursor.png',
|
||||
'images/hand_cursor.png',
|
||||
'images/context_menu_cursor.png',
|
||||
'images/help_cursor.png',
|
||||
'images/move_cursor.png',
|
||||
'images/ne_resize_cursor.png',
|
||||
'images/nesw_resize_cursor.png',
|
||||
'images/no_drop_cursor.png',
|
||||
'images/not_allowed_cursor.png',
|
||||
'images/n_resize_cursor.png',
|
||||
'images/ns_resize_cursor.png',
|
||||
'images/nw_resize_cursor.png',
|
||||
'images/nwse_resize_cursor.png',
|
||||
'images/pointer_cursor.png',
|
||||
'images/progress_cursor.png',
|
||||
'images/row_resize_cursor.png',
|
||||
'images/se_resize_cursor.png',
|
||||
'images/s_resize_cursor.png',
|
||||
'images/sw_resize_cursor.png',
|
||||
'images/text_cursor.png',
|
||||
'images/vertical_text_cursor.png',
|
||||
'images/wait_cursor.png',
|
||||
'images/w_resize_cursor.png',
|
||||
'images/X_cursor.png',
|
||||
'images/zoom_in_cursor.png',
|
||||
'images/zoom_out_cursor.png',
|
||||
]
|
||||
|
||||
src_dir = [ gdkinc ]
|
||||
|
||||
if x11_enabled
|
||||
src_dir += [ gdkx11_inc ]
|
||||
endif
|
||||
|
||||
if wayland_enabled
|
||||
src_dir += [ gdkwayland_inc ]
|
||||
endif
|
||||
|
||||
if get_option('gtk_doc')
|
||||
|
||||
configure_file(input: 'version.xml.in', output: 'version.xml', configuration: version_conf)
|
||||
|
||||
gnome.gtkdoc('gdk3',
|
||||
mode: 'none',
|
||||
main_xml: 'gdk-docs.sgml',
|
||||
src_dir: src_dir,
|
||||
dependencies: libgdk_dep,
|
||||
gobject_typesfile: join_paths(meson.current_source_dir(), 'gdk3.types'),
|
||||
scan_args: [
|
||||
'--ignore-decorators=_GDK_EXTERN|G_GNUC_WARN_UNUSED_RESULT',
|
||||
'--ignore-headers=' + ' '.join(private_headers),
|
||||
],
|
||||
fixxref_args: [
|
||||
'--html-dir=@0@'.format(docpath),
|
||||
'--extra-dir=@0@'.format(join_paths(glib_docpath, 'glib')),
|
||||
'--extra-dir=@0@'.format(join_paths(glib_docpath, 'gobject')),
|
||||
'--extra-dir=@0@'.format(join_paths(glib_docpath, 'gio')),
|
||||
'--extra-dir=@0@'.format(cairo_docpath),
|
||||
],
|
||||
html_assets: images,
|
||||
install: true)
|
||||
endif
|
@@ -276,7 +276,7 @@ GTKDOC_LIBS = \
|
||||
|
||||
|
||||
# Extra options to supply to gtkdoc-mkdb
|
||||
MKDB_OPTIONS=--output-format=xml --name-space=gtk --default-includes=gtk/gtk.h
|
||||
MKDB_OPTIONS=--output-format=xml --name-space=gtk
|
||||
|
||||
# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE)
|
||||
content_files = \
|
||||
@@ -287,7 +287,7 @@ content_files = \
|
||||
css-overview.xml \
|
||||
css-properties.xml \
|
||||
drawing-model.xml \
|
||||
$(builddir)/getting_started.xml \
|
||||
getting_started.xml \
|
||||
glossary.xml \
|
||||
gtk3-demo-application.xml \
|
||||
gtk3-demo.xml \
|
||||
@@ -307,6 +307,7 @@ content_files = \
|
||||
migrating-GtkStyleContext.xml \
|
||||
migrating-smclient-GtkApplication.xml \
|
||||
migrating-unique-GtkApplication.xml \
|
||||
mir.xml \
|
||||
osx.sgml \
|
||||
overview.xml \
|
||||
question_index.sgml \
|
||||
@@ -323,7 +324,7 @@ content_files = \
|
||||
expand_content_files = \
|
||||
compiling.sgml \
|
||||
drawing-model.xml \
|
||||
$(builddir)/getting_started.xml \
|
||||
getting_started.xml \
|
||||
glossary.xml \
|
||||
input-handling.xml \
|
||||
migrating-2to3.xml \
|
||||
@@ -495,7 +496,7 @@ endif
|
||||
include $(top_srcdir)/gtk-doc.make
|
||||
|
||||
# Other files to distribute
|
||||
EXTRA_DIST += version.xml.in gtk3.types.in getting_started.xml.in
|
||||
EXTRA_DIST += version.xml.in gtk3.types.in
|
||||
|
||||
########################################################################
|
||||
|
||||
@@ -542,9 +543,7 @@ endif
|
||||
|
||||
MAINTAINERCLEANFILES = $(man_MANS) $(BUILT_SOURCES)
|
||||
|
||||
EXTRA_DIST += \
|
||||
$(man_MANS) \
|
||||
meson.build
|
||||
EXTRA_DIST += $(man_MANS)
|
||||
|
||||
if ENABLE_GTK_DOC
|
||||
TESTS_ENVIRONMENT = cd $(srcdir) && \
|
||||
|
@@ -407,6 +407,11 @@ How to compile GTK+ itself
|
||||
<arg choice="plain">--disable-wayland-backend</arg>
|
||||
</group>
|
||||
<sbr/>
|
||||
<group>
|
||||
<arg choice="plain">--enable-mir-backend</arg>
|
||||
<arg choice="plain">--disable-mir-backend</arg>
|
||||
</group>
|
||||
<sbr/>
|
||||
<group>
|
||||
<arg choice="plain">--enable-introspection=[no/auto/yes]</arg>
|
||||
</group>
|
||||
@@ -604,7 +609,9 @@ How to compile GTK+ itself
|
||||
<systemitem>--enable-broadway-backend</systemitem>,
|
||||
<systemitem>--disable-broadway-backend</systemitem>,
|
||||
<systemitem>--enable-wayland-backend</systemitem>,
|
||||
<systemitem>--disable-wayland-backend</systemitem></title>
|
||||
<systemitem>--disable-wayland-backend</systemitem>
|
||||
<systemitem>--enable-mir-backend</systemitem>, and
|
||||
<systemitem>--disable-mir-backend</systemitem></title>
|
||||
|
||||
<para>
|
||||
Enables specific backends for GDK. If none of these options
|
||||
|
@@ -4,13 +4,13 @@
|
||||
]>
|
||||
<refentry id="chap-css-overview">
|
||||
<refmeta>
|
||||
<refentrytitle>GTK+ CSS Overview</refentrytitle>
|
||||
<refentrytitle>GTK+ CSS</refentrytitle>
|
||||
<manvolnum>3</manvolnum>
|
||||
<refmiscinfo>GTK Library</refmiscinfo>
|
||||
</refmeta>
|
||||
|
||||
<refnamediv>
|
||||
<refname>GTK+ CSS Overview</refname>
|
||||
<refname>GTK+ CSS</refname>
|
||||
<refpurpose>
|
||||
Overview of CSS in GTK+
|
||||
</refpurpose>
|
||||
@@ -21,6 +21,12 @@ Overview of CSS in GTK+
|
||||
Formatting conventions:
|
||||
We use
|
||||
|
||||
‑ U+2011 Non-breaking Hyphen
|
||||
U+00A0 No-break Space
|
||||
|
||||
to control line breaks in the Name and Value columns.
|
||||
We use
|
||||
|
||||
〈 U+2329 Left-pointing Angle Bracket
|
||||
〉 U+232A Right-pointing Angle Bracket
|
||||
|
||||
@@ -117,7 +123,7 @@ scale[.fine-tune]
|
||||
<programlisting><![CDATA[
|
||||
button, entry {
|
||||
color: #ff00ea;
|
||||
font: 12px "Comic Sans";
|
||||
font: Comic Sans 12
|
||||
}
|
||||
]]></programlisting>
|
||||
</example>
|
||||
@@ -136,8 +142,8 @@ button, entry {
|
||||
The syntax for @import rules is as follows:
|
||||
</para>
|
||||
|
||||
<literallayout><code>〈import rule〉 = @import [ 〈url〉 | 〈string〉 ]</code>
|
||||
<code>〈url〉 = url( 〈string〉 )</code>
|
||||
<literallayout><code>〈import rule〉 = @import [ 〈url〉 | 〈string〉] ;</code>
|
||||
<code>〈url〉 = url( 〈string〉)</code>
|
||||
</literallayout>
|
||||
|
||||
<example><title>An example for using the @import rule</title>
|
||||
@@ -181,7 +187,7 @@ button, entry {
|
||||
<title>Theme labels that are descendants of a window</title>
|
||||
<programlisting><![CDATA[
|
||||
window label {
|
||||
background-color: #898989;
|
||||
background-color: #898989
|
||||
}
|
||||
]]></programlisting>
|
||||
</example>
|
||||
@@ -190,7 +196,7 @@ window label {
|
||||
<title>Theme notebooks, and anything within</title>
|
||||
<programlisting><![CDATA[
|
||||
notebook {
|
||||
background-color: #a939f0;
|
||||
background-color: #a939f0
|
||||
}
|
||||
]]></programlisting>
|
||||
</example>
|
||||
@@ -201,7 +207,7 @@ notebook {
|
||||
combobox,
|
||||
notebook > entry {
|
||||
color: @fg_color;
|
||||
background-color: #1209a2;
|
||||
background-color: #1209a2
|
||||
}
|
||||
]]></programlisting>
|
||||
</example>
|
||||
@@ -210,7 +216,7 @@ notebook > entry {
|
||||
<title>Theme any widget within a GtkBox</title>
|
||||
<programlisting><![CDATA[
|
||||
box * {
|
||||
font: 20px Sans;
|
||||
font: Sans 20
|
||||
}
|
||||
]]></programlisting>
|
||||
</example>
|
||||
@@ -219,7 +225,7 @@ box * {
|
||||
<title>Theme a label named title-label</title>
|
||||
<programlisting><![CDATA[
|
||||
label#title-label {
|
||||
font: 15px Sans;
|
||||
font: Sans 15
|
||||
}
|
||||
]]></programlisting>
|
||||
</example>
|
||||
@@ -228,7 +234,7 @@ label#title-label {
|
||||
<title>Theme any widget named main-entry</title>
|
||||
<programlisting><![CDATA[
|
||||
#main-entry {
|
||||
background-color: #f0a810;
|
||||
background-color: #f0a810
|
||||
}
|
||||
]]></programlisting>
|
||||
</example>
|
||||
@@ -246,7 +252,7 @@ label#title-label {
|
||||
<title>Theme the entry of a GtkSpinButton</title>
|
||||
<programlisting><![CDATA[
|
||||
spinbutton entry {
|
||||
color: #900185;
|
||||
color: 900185;
|
||||
}
|
||||
]]></programlisting>
|
||||
</example>
|
||||
@@ -352,134 +358,134 @@ checkbutton:indeterminate {
|
||||
</thead>
|
||||
<tbody>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">*</phrase></entry>
|
||||
<entry>*</entry>
|
||||
<entry>any node</entry>
|
||||
<entry><ulink url="https://www.w3.org/TR/css3-selectors/#universal-selector">CSS</ulink></entry>
|
||||
<entry></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">E</phrase></entry>
|
||||
<entry>E</entry>
|
||||
<entry>any node with name E</entry>
|
||||
<entry><ulink url="https://www.w3.org/TR/css3-selectors/#type-selectors">CSS</ulink></entry>
|
||||
<entry></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">E.class</phrase></entry>
|
||||
<entry>E.class</entry>
|
||||
<entry>any E node with the given style class</entry>
|
||||
<entry><ulink url="https://www.w3.org/TR/css3-selectors/#class-html">CSS</ulink></entry>
|
||||
<entry></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">E#id</phrase></entry>
|
||||
<entry>E#id</entry>
|
||||
<entry>any E node with the given ID</entry>
|
||||
<entry><ulink url="https://www.w3.org/TR/css3-selectors/#id-selectors">CSS</ulink></entry>
|
||||
<entry>GTK+ uses the widget name as ID</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">E:nth-child(〈nth-child〉)</phrase></entry>
|
||||
<entry>E:nth‑child(〈nth‑child〉)</entry>
|
||||
<entry>any E node which is the n-th child of its parent node</entry>
|
||||
<entry><ulink url="https://www.w3.org/TR/css3-selectors/#structural-pseudos">CSS</ulink></entry>
|
||||
<entry></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">E:nth-last-child(〈nth-child〉)</phrase></entry>
|
||||
<entry>E:nth‑last‑child(〈nth‑child〉)</entry>
|
||||
<entry>any E node which is the n-th child of its parent node, counting from the end</entry>
|
||||
<entry><ulink url="https://www.w3.org/TR/css3-selectors/#structural-pseudos">CSS</ulink></entry>
|
||||
<entry></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">E:first-child</phrase></entry>
|
||||
<entry>E:first‑child</entry>
|
||||
<entry>any E node which is the first child of its parent node</entry>
|
||||
<entry><ulink url="https://www.w3.org/TR/css3-selectors/#structural-pseudos">CSS</ulink></entry>
|
||||
<entry></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">E:last-child</phrase></entry>
|
||||
<entry>E:last‑child</entry>
|
||||
<entry>any E node which is the last child of its parent node</entry>
|
||||
<entry><ulink url="https://www.w3.org/TR/css3-selectors/#structural-pseudos">CSS</ulink></entry>
|
||||
<entry></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">E:only-child</phrase></entry>
|
||||
<entry>E:only‑child</entry>
|
||||
<entry>any E node which is the only child of its parent node</entry>
|
||||
<entry><ulink url="https://www.w3.org/TR/css3-selectors/#structural-pseudos">CSS</ulink></entry>
|
||||
<entry>Equivalent to E:first-child:last-child</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">E:link, E:visited</phrase></entry>
|
||||
<entry>E:link, E:visited</entry>
|
||||
<entry>any E node which represents a hyperlink, not yet visited (:link) or already visited (:visited)</entry>
|
||||
<entry><ulink url="https://www.w3.org/TR/css3-selectors/#link">CSS</ulink></entry>
|
||||
<entry>Corresponds to GTK_STATE_FLAG_LINK and GTK_STATE_FLAGS_VISITED</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">E:active, E:hover, E:focus</phrase></entry>
|
||||
<entry>E:active, E:hover, E:focus</entry>
|
||||
<entry>any E node which is part of a widget with the corresponding state</entry>
|
||||
<entry><ulink url="https://www.w3.org/TR/css3-selectors/#useraction-pseudos">CSS</ulink></entry>
|
||||
<entry>Corresponds to GTK_STATE_FLAG_ACTIVE, GTK_STATE_FLAG_PRELIGHT and GTK_STATE_FLAGS_FOCUSED; GTK+ also allows E:prelight and E:focused</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">E:disabled</phrase></entry>
|
||||
<entry>any E node which is part of a widget which is disabled</entry>
|
||||
<entry>E:disabled</entry>
|
||||
<entry>any E node which is part of a widget with is disabled</entry>
|
||||
<entry><ulink url="https://www.w3.org/TR/css3-selectors/#UIstates">CSS</ulink></entry>
|
||||
<entry>Corresponds to GTK_STATE_FLAG_INSENSITIVE; GTK+ also allows E:insensitive</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">E:checked</phrase></entry>
|
||||
<entry>E:checked</entry>
|
||||
<entry>any E node which is part of a widget (e.g. radio- or checkbuttons) which is checked</entry>
|
||||
<entry><ulink url="https://www.w3.org/TR/css3-selectors/#UIstates">CSS</ulink></entry>
|
||||
<entry>Corresponds to GTK_STATE_FLAG_CHECKED</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">E:indeterminate</phrase></entry>
|
||||
<entry>any E node which is part of a widget (e.g. radio- or checkbuttons) which is in an indeterminate state</entry>
|
||||
<entry>E:indeterminate</entry>
|
||||
<entry>any E node which is part of a widget (e.g. radio- or checkbuttons) which is in an inconsistent state</entry>
|
||||
<entry><ulink url="https://www.w3.org/TR/css3-selectors/#indeterminate">CSS3</ulink>,
|
||||
<ulink url="https://drafts.csswg.org/selectors/#indeterminate">CSS4</ulink></entry>
|
||||
<entry>Corresponds to GTK_STATE_FLAG_INCONSISTENT; GTK+ also allows E:inconsistent</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">E:backdrop, E:selected</phrase></entry>
|
||||
<entry>E:backdrop, E:selected</entry>
|
||||
<entry>any E node which is part of a widget with the corresponding state</entry>
|
||||
<entry></entry>
|
||||
<entry>Corresponds to GTK_STATE_FLAG_BACKDROP, GTK_STATE_FLAG_SELECTED</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">E:not(〈selector〉)</phrase></entry>
|
||||
<entry>E:not(〈selector〉)</entry>
|
||||
<entry>any E node which does not match the simple selector 〈selector〉</entry>
|
||||
<entry><ulink url="https://www.w3.org/TR/css3-selectors/#negation">CSS</ulink></entry>
|
||||
<entry></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">E:dir(ltr), E:dir(rtl)</phrase></entry>
|
||||
<entry>E:dir(ltr), E:dir(rtl)</entry>
|
||||
<entry>any E node that has the corresponding text direction</entry>
|
||||
<entry><ulink url="https://drafts.csswg.org/selectors/#the-dir-pseudo">CSS4</ulink></entry>
|
||||
<entry></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">E:drop(active)</phrase></entry>
|
||||
<entry>E:drop(active)</entry>
|
||||
<entry>any E node that is an active drop target for a current DND operation</entry>
|
||||
<entry><ulink url="https://drafts.csswg.org/selectors/#drag-pseudos">CSS4</ulink></entry>
|
||||
<entry></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">E F</phrase></entry>
|
||||
<entry>E F</entry>
|
||||
<entry>any F node which is a descendent of an E node</entry>
|
||||
<entry><ulink url="https://www.w3.org/TR/css3-selectors/#descendent-combinators">CSS</ulink></entry>
|
||||
<entry></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">E > F</phrase></entry>
|
||||
<entry>E > F</entry>
|
||||
<entry>any F node which is a child of an E node</entry>
|
||||
<entry><ulink url="https://www.w3.org/TR/css3-selectors/#child-combinators">CSS</ulink></entry>
|
||||
<entry></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">E ~ F</phrase></entry>
|
||||
<entry>E ~ F</entry>
|
||||
<entry>any F node which is preceded by an E node</entry>
|
||||
<entry><ulink url="https://www.w3.org/TR/css3-selectors/#general-sibling-combinators">CSS</ulink></entry>
|
||||
<entry></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">E + F</phrase></entry>
|
||||
<entry>E + F</entry>
|
||||
<entry>any F node which is immediately preceded by an E node</entry>
|
||||
<entry><ulink url="https://www.w3.org/TR/css3-selectors/#adjacent-sibling-combinators">CSS</ulink></entry>
|
||||
<entry></entry>
|
||||
@@ -508,8 +514,8 @@ checkbutton:indeterminate {
|
||||
</para>
|
||||
|
||||
<literallayout><code>〈color〉 = currentColor | transparent | 〈color name〉 | 〈rgb color〉 | 〈rgba color〉 | 〈hex color〉 | 〈gtk color〉</code>
|
||||
<code>〈rgb color〉 = rgb( 〈number〉, 〈number〉, 〈number〉 ) | rgb( 〈percentage〉, 〈percentage〉, 〈percentage〉 )</code>
|
||||
<code>〈rgba color〉 = rgba( 〈number〉, 〈number〉, 〈number〉, 〈alpha value〉 ) | rgba( 〈percentage〉, 〈percentage〉, 〈percentage〉, 〈alpha value〉 )</code>
|
||||
<code>〈rgb color 〉 = rgb( 〈number〉, 〈number〉, 〈number〉 ) | rgb( 〈percentage〉, 〈percentage〉, 〈percentage〉 )</code>
|
||||
<code>〈rgba color 〉 = rgba(〈number〉, 〈number〉, 〈number〉, 〈alpha value〉) | rgba( 〈percentage〉, 〈percentage〉, 〈percentage〉, 〈alpha value〉 )</code>
|
||||
<code>〈hex color〉 = #〈hex digits〉</code>
|
||||
<code>〈alpha value〉 = 〈number〉</code>, clamped to values between 0 and 1
|
||||
</literallayout>
|
||||
@@ -546,7 +552,7 @@ checkbutton:indeterminate {
|
||||
GTK+ adds several additional ways to specify colors.
|
||||
</para>
|
||||
|
||||
<literallayout><code>〈gtk color〉 = 〈symbolic color〉 | 〈color expression〉 | 〈win32 color〉</code>
|
||||
<literallayout><code>〈gtk color〉 = 〈symbolic color〉 | 〈color expression〉| 〈win32 color〉</code>
|
||||
</literallayout>
|
||||
|
||||
<para>
|
||||
@@ -570,7 +576,7 @@ checkbutton:indeterminate {
|
||||
@define-color bg_color #f9a039;
|
||||
|
||||
* {
|
||||
background-color: @bg_color;
|
||||
background-color: @bg_color;
|
||||
}
|
||||
]]></programlisting>
|
||||
</example>
|
||||
@@ -590,15 +596,14 @@ checkbutton:indeterminate {
|
||||
number from 0 to 1 and applies that as the opacity of the supplied color.
|
||||
</para>
|
||||
|
||||
<literallayout><code>〈color expression〉 = lighter( 〈color〉 ) | darker( 〈color〉 ) | shade( 〈color〉, 〈number〉 ) |</code>
|
||||
<code> alpha( 〈color〉, 〈number〉 ) | mix( 〈color〉, 〈color〉, 〈number〉 )</code>
|
||||
<literallayout><code>〈color expression〉 = lighter(〈color〉) | darker(〈color〉) | shade(〈color〉,〈number〉) | alpha(〈color〉,〈number〉) | mix(〈color〉,〈color〉,〈number〉)</code>
|
||||
</literallayout>
|
||||
|
||||
<para>
|
||||
On Windows, GTK+ allows to refer to system colors, as follows:
|
||||
</para>
|
||||
|
||||
<literallayout><code>〈win32 color〉 = -gtk-win32-color( 〈name〉, 〈integer〉 )</code>
|
||||
<literallayout><code>〈win32 color〉 = -gtk-win32-color( 〈name〉, 〈integer〉)</code>
|
||||
</literallayout>
|
||||
|
||||
</refsect2>
|
||||
@@ -612,17 +617,17 @@ checkbutton:indeterminate {
|
||||
</para>
|
||||
|
||||
<literallayout><code>〈image〉 = 〈url〉 | 〈crossfade〉 | 〈alternatives〉 | 〈gradient〉 | 〈gtk image〉</code>
|
||||
<code>〈crossfade〉 = cross-fade( 〈percentage〉, 〈image〉, 〈image〉 )</code>
|
||||
<code>〈alternatives〉 = image([ 〈image〉, ]* [ 〈image〉 | 〈color〉 ] )</code>
|
||||
<code>〈crossfade〉 = cross-fade( 〈percentage〉, 〈image〉, 〈image〉)</code>
|
||||
<code>〈alternatives〉 = image([ 〈image〉, ]* [ 〈image〉 | 〈color〉 ])</code>
|
||||
<code>〈gradient〉 = 〈linear gradient〉 | 〈radial gradient〉</code>
|
||||
<code>〈linear gradient〉 = [ linear-gradient | repeating-linear-gradient ] (</code>
|
||||
<code> [ [ 〈angle〉 | to 〈side or corner〉 ] , ]?</code>
|
||||
<code> 〈color stops〉 )</code>
|
||||
<code>〈radial gradient〉 = [ radial-gradient | repeating-radial-gradient ] (</code>
|
||||
<code>〈radial gradient〉 = [ radial‑gradient | repeating‑radial‑gradient ] (</code>
|
||||
<code> [ [ 〈shape〉 || 〈size〉 ] [ at 〈position〉 ]? , | at 〈position〉, ]?</code>
|
||||
<code> 〈color stops〉 )</code>
|
||||
<code>〈side or corner〉 = [ left | right ] || [ top | bottom ]</code>
|
||||
<code>〈color stops〉 = 〈color stop〉 [ , 〈color stop〉 ]+</code>
|
||||
<code>〈color stops〉 = 〈color stop〉 [ , 〈color stop〉]+</code>
|
||||
<code>〈color stop〉 = 〈color〉 [ 〈percentage〉 | 〈length〉 ]?</code>
|
||||
<code>〈shape〉 = circle | ellipse</code>
|
||||
<code>〈size〉 = 〈extent keyword〉 | 〈length〉 | [ 〈length〉 | 〈percentage〉 ]{1,2}</code>
|
||||
@@ -843,7 +848,7 @@ arrow.fancy {
|
||||
CSS, this can be done with the -gtk-scaled syntax.
|
||||
</para>
|
||||
|
||||
<literallayout><code>〈scaled image〉 = -gtk-scaled( 〈image〉[ , 〈image〉 ]* )</code>
|
||||
<literallayout><code>〈scaled image〉 = -gtk-scaled( 〈image〉[, 〈image〉]* )</code>
|
||||
</literallayout>
|
||||
|
||||
<para>
|
||||
@@ -862,7 +867,7 @@ arrow {
|
||||
]]></programlisting>
|
||||
</example>
|
||||
|
||||
<literallayout><code>〈recolored image〉 = -gtk-recolor( 〈url〉 [ , 〈color palette〉 ] )</code>
|
||||
<literallayout><code>〈recolored image〉 = -gtk-recolored( 〈url〉[, 〈color palette〉] )</code>
|
||||
</literallayout>
|
||||
|
||||
<para>
|
||||
@@ -888,7 +893,7 @@ arrow {
|
||||
</para>
|
||||
|
||||
<literallayout><code>〈win32 theme part〉 = -gtk-win32-theme-part( 〈name〉, 〈integer〉 〈integer〉</code>
|
||||
<code> [ , [ over( 〈integer〉 〈integer〉 [ , 〈alpha value〉 ]? ) | margins( 〈integer〉{1,4} ) ] ]* )</code>
|
||||
<code> [, [ over( 〈integer〉 〈integer〉 [ , 〈alpha value〉]? ) | margins( 〈integer〉{1,4} ) ] ]* )</code>
|
||||
</literallayout>
|
||||
|
||||
</refsect2>
|
||||
@@ -939,7 +944,7 @@ arrow {
|
||||
|
||||
<literallayout><code>〈keyframe rule〉 = @keyframes 〈name〉 { 〈animation rule〉 }</code>
|
||||
<code>〈animation rule〉 = 〈animation selector〉 { 〈declaration〉* }</code>
|
||||
<code>〈animation selector〉 = 〈single animation selector〉 [ , 〈single animation selector〉 ]*</code>
|
||||
<code>〈animation selector〉 = 〈single animation selector〉 [ , 〈single animation selector ]*</code>
|
||||
<code>〈single animation selector〉 = from | to | 〈percentage〉</code>
|
||||
</literallayout>
|
||||
|
||||
@@ -989,10 +994,10 @@ spinner {
|
||||
The syntax for @binding-set rules is as follows:
|
||||
</para>
|
||||
|
||||
<literallayout><code>〈binding set rule〉 = @binding-set 〈binding name〉 { [ [ 〈binding〉 | 〈unbinding〉 ] ; ]* }</code>
|
||||
<literallayout><code>〈binding set rule〉 = @binding-set 〈binding name〉{ [ [ 〈binding〉 | 〈unbinding〉] ; ]* }</code>
|
||||
<code>〈binding〉 = bind "〈accelerator〉" { 〈signal emission〉* }</code>
|
||||
<code>〈signal emission〉 = "〈signal name〉" ( [ 〈argument〉 [ , 〈argument〉 ]* ]? }</code>
|
||||
<code>〈unbinding〉 = unbind "〈accelerator〉"</code>
|
||||
<code>〈signal emission〉 = "〈signal name〉" ( [ 〈argument〉[ , 〈argument〉]* ]? }</code>
|
||||
<code>〈unbinding〉 = unbind "〈accelerator〉" ;</code>
|
||||
</literallayout>
|
||||
|
||||
<para>
|
||||
|
@@ -4,15 +4,15 @@
|
||||
]>
|
||||
<refentry id="chap-css-properties">
|
||||
<refmeta>
|
||||
<refentrytitle>GTK+ CSS Properties</refentrytitle>
|
||||
<refentrytitle>GTK+ CSS</refentrytitle>
|
||||
<manvolnum>3</manvolnum>
|
||||
<refmiscinfo>GTK Library</refmiscinfo>
|
||||
</refmeta>
|
||||
|
||||
<refnamediv>
|
||||
<refname>GTK+ CSS Properties</refname>
|
||||
<refname>GTK+ CSS</refname>
|
||||
<refpurpose>
|
||||
CSS Properties in GTK+
|
||||
GTK+ CSS Properties
|
||||
</refpurpose>
|
||||
</refnamediv>
|
||||
|
||||
@@ -21,6 +21,12 @@ CSS Properties in GTK+
|
||||
Formatting conventions:
|
||||
We use
|
||||
|
||||
‑ U+2011 Non-breaking Hyphen
|
||||
U+00A0 No-break Space
|
||||
|
||||
to control line breaks in the Name and Value columns.
|
||||
We use
|
||||
|
||||
〈 U+2329 Left-pointing Angle Bracket
|
||||
〉 U+232A Right-pointing Angle Bracket
|
||||
|
||||
@@ -71,12 +77,11 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
</para>
|
||||
|
||||
<literallayout>
|
||||
<code>〈win32 theme size〉 = 〈win32 size〉 | 〈win32 part size〉</code>
|
||||
<code>〈win32 theme size〉 = 〈win32 size〉| 〈win32 part size〉</code>
|
||||
<code>〈win32 size〉 = -gtk-win32-size ( 〈theme name〉, 〈metric id〉 )</code>
|
||||
<code>〈win32 part size〉 = [ -gtk-win32-part-width | -gtk-win32-part-height |</code>
|
||||
<code> -gtk-win32-part-border-top | -gtk-win32-part-border-right |</code>
|
||||
<code> -gtk-win32-part-border-bottom | -gtk-win32-part-border-left ]</code>
|
||||
<code> ( 〈theme name〉 , 〈integer〉 , 〈integer〉 )</code>
|
||||
<code> -gtk-win32-part-border-top | -gtk-win32-part-border-right |</code>
|
||||
<code> -gtk-win32-part-border-bottom | -gtk-win32-part-border-left ] ( 〈theme name〉 , 〈integer〉 , 〈integer〉 )</code>
|
||||
</literallayout>
|
||||
|
||||
<literallayout><code>〈calc expression〉 = calc( 〈calc sum〉 )</code>
|
||||
@@ -124,7 +129,7 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
</thead>
|
||||
<tbody>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">color</phrase></entry>
|
||||
<entry>color</entry>
|
||||
<entry><code>〈color〉</code></entry>
|
||||
<entry><code>rgba(1,1,1,1)</code></entry>
|
||||
<entry>✓</entry>
|
||||
@@ -134,7 +139,7 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
<entry></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">opacity</phrase></entry>
|
||||
<entry>opacity</entry>
|
||||
<entry><code>〈alpha value〉</code></entry>
|
||||
<entry><code>1</code></entry>
|
||||
<entry></entry>
|
||||
@@ -162,7 +167,7 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
</thead>
|
||||
<tbody>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">font-family</phrase></entry>
|
||||
<entry>font‑family</entry>
|
||||
<entry><code>〈family name〉 [ , 〈family name〉 ]*</code></entry>
|
||||
<entry>gtk-font-name setting</entry>
|
||||
<entry>✓</entry>
|
||||
@@ -172,7 +177,7 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
<entry></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">font-size</phrase></entry>
|
||||
<entry>font‑size</entry>
|
||||
<entry><code>〈absolute size〉 | 〈relative size〉 | 〈length〉 | 〈percentage〉</code></entry>
|
||||
<entry>gtk-font-name setting</entry>
|
||||
<entry>✓</entry>
|
||||
@@ -182,7 +187,7 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
<entry></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">font-style</phrase></entry>
|
||||
<entry>font‑style</entry>
|
||||
<entry><code>normal | oblique | italic</code></entry>
|
||||
<entry><code>normal</code></entry>
|
||||
<entry>✓</entry>
|
||||
@@ -192,7 +197,7 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
<entry></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">font-variant</phrase></entry>
|
||||
<entry>font‑variant</entry>
|
||||
<entry><code>normal | small-caps</code></entry>
|
||||
<entry><code>normal</code></entry>
|
||||
<entry>✓</entry>
|
||||
@@ -202,7 +207,7 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
<entry>only CSS2 values supported</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">font-weight</phrase></entry>
|
||||
<entry>font‑weight</entry>
|
||||
<entry><code>normal | bold | bolder | lighter | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900</code></entry>
|
||||
<entry><code>normal</code></entry>
|
||||
<entry>✓</entry>
|
||||
@@ -212,7 +217,7 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
<entry>normal is synonymous with 400, bold with 700</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">font-stretch</phrase></entry>
|
||||
<entry>font‑stretch</entry>
|
||||
<entry><code>ultra-condensed | extra-condensed | condensed | semi-condensed | normal | semi-expanded | expanded | extra-expanded | ultra-expanded</code></entry>
|
||||
<entry><code>normal</code></entry>
|
||||
<entry>✓</entry>
|
||||
@@ -221,7 +226,7 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
<entry></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">-gtk-dpi</phrase></entry>
|
||||
<entry>‑gtk‑dpi</entry>
|
||||
<entry><code>〈number〉</code></entry>
|
||||
<entry>screen resolution</entry>
|
||||
<entry>✓</entry>
|
||||
@@ -237,7 +242,7 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
</thead>
|
||||
<tbody>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">font</phrase></entry>
|
||||
<entry>font</entry>
|
||||
<entry><code>[ 〈font-style〉 || 〈font-variant〉 || 〈font-weight〉 || 〈font-stretch〉 ]? 〈font-size〉 〈font-family〉</code></entry>
|
||||
<entry>see individual properties</entry>
|
||||
<entry><ulink url="https://www.w3.org/TR/2011/REC-CSS2-20110607/fonts.html#font-shorthand">CSS2</ulink>,
|
||||
@@ -268,7 +273,7 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
</thead>
|
||||
<tbody>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">caret-color</phrase></entry>
|
||||
<entry>caret-color</entry>
|
||||
<entry><code>〈color〉</code></entry>
|
||||
<entry><code>currentColor</code></entry>
|
||||
<entry>✓</entry>
|
||||
@@ -277,7 +282,7 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
<entry>CSS allows an auto value</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">-gtk-secondary-caret-color</phrase></entry>
|
||||
<entry>-gtk-secondary-caret-color</entry>
|
||||
<entry><code>〈color〉</code></entry>
|
||||
<entry><code>currentColor</code></entry>
|
||||
<entry>✓</entry>
|
||||
@@ -304,7 +309,7 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
</thead>
|
||||
<tbody>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">letter-spacing</phrase></entry>
|
||||
<entry>letter‑spacing</entry>
|
||||
<entry><code>〈length〉</code></entry>
|
||||
<entry><code>0px</code></entry>
|
||||
<entry>✓</entry>
|
||||
@@ -313,7 +318,7 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
<entry></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">text-decoration-line</phrase></entry>
|
||||
<entry>text‑decoration‑line</entry>
|
||||
<entry><code>none | underline | line-through</code></entry>
|
||||
<entry><code>none</code></entry>
|
||||
<entry></entry>
|
||||
@@ -323,7 +328,7 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
<entry>CSS allows overline</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">text-decoration-color</phrase></entry>
|
||||
<entry>text‑decoration‑color</entry>
|
||||
<entry><code>〈color〉</code></entry>
|
||||
<entry><code>currentColor</code></entry>
|
||||
<entry></entry>
|
||||
@@ -332,7 +337,7 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
<entry></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">text-decoration-style</phrase></entry>
|
||||
<entry>text‑decoration‑style</entry>
|
||||
<entry><code>solid | double | wavy</code></entry>
|
||||
<entry><code>solid</code></entry>
|
||||
<entry></entry>
|
||||
@@ -341,7 +346,7 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
<entry>CSS allows dashed and dotted</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">text-shadow</phrase></entry>
|
||||
<entry>text‑shadow</entry>
|
||||
<entry><code>none | 〈shadow〉</code></entry>
|
||||
<entry><code>none</code></entry>
|
||||
<entry>✓</entry>
|
||||
@@ -357,7 +362,7 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
</thead>
|
||||
<tbody>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">text-decoration</phrase></entry>
|
||||
<entry>text‑decoration</entry>
|
||||
<entry><code>〈text-decoration-line〉 || 〈text-decoration-style〉 || 〈text-decoration-color〉</code></entry>
|
||||
<entry>see individual properties</entry>
|
||||
<entry><ulink url="https://www.w3.org/TR/css-text-decor-3/#text-decoration-property">CSS3</ulink></entry>
|
||||
@@ -385,7 +390,7 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
</thead>
|
||||
<tbody>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">-gtk-icon-source</phrase></entry>
|
||||
<entry>‑gtk‑icon‑source</entry>
|
||||
<entry><code>builtin | 〈image〉 | none</code></entry>
|
||||
<entry><code>builtin</code></entry>
|
||||
<entry></entry>
|
||||
@@ -394,7 +399,7 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
<entry></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">-gtk-icon-transform</phrase></entry>
|
||||
<entry>‑gtk‑icon‑transform</entry>
|
||||
<entry><code>none | 〈transform〉+</code></entry>
|
||||
<entry><code>none</code></entry>
|
||||
<entry></entry>
|
||||
@@ -403,7 +408,7 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
<entry></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">-gtk-icon-style</phrase></entry>
|
||||
<entry>‑gtk‑icon‑style</entry>
|
||||
<entry><code>requested | regular | symbolic</code></entry>
|
||||
<entry><code>requested</code></entry>
|
||||
<entry>✓</entry>
|
||||
@@ -412,7 +417,7 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
<entry>Determines the preferred style for application-loaded icons</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">-gtk-icon-theme</phrase></entry>
|
||||
<entry>‑gtk‑icon‑theme</entry>
|
||||
<entry><code>〈name〉</code></entry>
|
||||
<entry>current icon theme</entry>
|
||||
<entry>✓</entry>
|
||||
@@ -421,7 +426,7 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
<entry>The icon theme to use with -gtk-icontheme(). Since 3.20</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">-gtk-icon-palette</phrase></entry>
|
||||
<entry>‑gtk‑icon‑palette</entry>
|
||||
<entry><code>〈color palette〉</code></entry>
|
||||
<entry><code>default</code></entry>
|
||||
<entry>✓</entry>
|
||||
@@ -430,7 +435,7 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
<entry>Used to recolor symbolic icons (both application-loaded and from -gtk-icontheme()). Since 3.20</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">-gtk-icon-shadow</phrase></entry>
|
||||
<entry>‑gtk‑icon‑shadow</entry>
|
||||
<entry><code>none | 〈shadow〉</code></entry>
|
||||
<entry><code>none</code></entry>
|
||||
<entry>✓</entry>
|
||||
@@ -439,7 +444,7 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
<entry></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">-gtk-icon-effect</phrase></entry>
|
||||
<entry>‑gtk‑icon‑effect</entry>
|
||||
<entry><code>none | highlight | dim</code></entry>
|
||||
<entry><code>none</code></entry>
|
||||
<entry>✓</entry>
|
||||
@@ -452,7 +457,7 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
</table>
|
||||
|
||||
<literallayout><code>〈transform〉 = matrix( 〈number〉 [ , 〈number〉 ]{5} ) | translate( 〈length〉, 〈length〉 ) | translateX( 〈length〉 ) | translateY( 〈length〉 ) |</code>
|
||||
<code> scale( 〈number〉 [ , 〈number〉 ]? ) | scaleX( 〈number〉 ) | scaleY( 〈number〉 ) | rotate( 〈angle〉 ) | skew( 〈angle〉 [ , 〈angle〉 ]? ) |</code>
|
||||
<code> scale( 〈number〉[ , 〈number〉 ]? ) | scaleX( 〈number〉 ) | scaleY( 〈number〉 ) | rotate( 〈angle〉 ) | skew( 〈angle〉 [ , 〈angle〉 ]? ) |</code>
|
||||
<code> skewX( 〈angle〉 ) | skewY( 〈angle〉 )</code>
|
||||
<code>〈color palette〉 = default | 〈name〉 〈color〉 [ , 〈name〉 〈color〉 ]*</code>
|
||||
</literallayout>
|
||||
@@ -477,7 +482,7 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
icons. The recognized names for colors in symbolic icons are error,
|
||||
warning and success. The default palette maps these three names to
|
||||
symbolic colors with the names @error_color, @warning_color and
|
||||
@success_color respectively.
|
||||
@error_color.
|
||||
</para>
|
||||
|
||||
<table pgwide="1">
|
||||
@@ -490,7 +495,7 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
</thead>
|
||||
<tbody>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">min-width</phrase></entry>
|
||||
<entry>min‑width</entry>
|
||||
<entry><code>〈length〉</code></entry>
|
||||
<entry><code>0px</code></entry>
|
||||
<entry></entry>
|
||||
@@ -500,7 +505,7 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
<entry>CSS allows percentages</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">min-height</phrase></entry>
|
||||
<entry>min‑height</entry>
|
||||
<entry><code>〈length〉</code></entry>
|
||||
<entry><code>0px</code></entry>
|
||||
<entry></entry>
|
||||
@@ -510,7 +515,7 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
<entry>CSS allows percentages</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">margin-top</phrase></entry>
|
||||
<entry>margin‑top</entry>
|
||||
<entry><code>〈length〉</code></entry>
|
||||
<entry><code>0px</code></entry>
|
||||
<entry></entry>
|
||||
@@ -520,7 +525,7 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
<entry>CSS allows percentages or auto</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">margin-right</phrase></entry>
|
||||
<entry>margin‑right</entry>
|
||||
<entry><code>〈length〉</code></entry>
|
||||
<entry><code>0px</code></entry>
|
||||
<entry></entry>
|
||||
@@ -530,7 +535,7 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
<entry>CSS allows percentages or auto</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">margin-bottom</phrase></entry>
|
||||
<entry>margin‑bottom</entry>
|
||||
<entry><code>〈length〉</code></entry>
|
||||
<entry><code>0px</code></entry>
|
||||
<entry></entry>
|
||||
@@ -540,7 +545,7 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
<entry>CSS allows percentages or auto</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">margin-left</phrase></entry>
|
||||
<entry>margin‑left</entry>
|
||||
<entry><code>〈length〉</code></entry>
|
||||
<entry><code>0px</code></entry>
|
||||
<entry></entry>
|
||||
@@ -550,7 +555,7 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
<entry>CSS allows percentages or auto</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">padding-top</phrase></entry>
|
||||
<entry>padding‑top</entry>
|
||||
<entry><code>〈length〉</code></entry>
|
||||
<entry><code>0px</code></entry>
|
||||
<entry></entry>
|
||||
@@ -560,7 +565,7 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
<entry>CSS allows percentages</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">padding-right</phrase></entry>
|
||||
<entry>padding‑right</entry>
|
||||
<entry><code>〈length〉</code></entry>
|
||||
<entry><code>0px</code></entry>
|
||||
<entry></entry>
|
||||
@@ -570,7 +575,7 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
<entry>CSS allows percentages</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">padding-bottom</phrase></entry>
|
||||
<entry>padding‑bottom</entry>
|
||||
<entry><code>〈length〉</code></entry>
|
||||
<entry><code>0px</code></entry>
|
||||
<entry></entry>
|
||||
@@ -580,7 +585,7 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
<entry>CSS allows percentages</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">padding-left</phrase></entry>
|
||||
<entry>padding‑left</entry>
|
||||
<entry><code>〈length〉</code></entry>
|
||||
<entry><code>0px</code></entry>
|
||||
<entry></entry>
|
||||
@@ -597,7 +602,7 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
</thead>
|
||||
<tbody>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">margin</phrase></entry>
|
||||
<entry>margin</entry>
|
||||
<entry><code>〈length〉{1,4}</code></entry>
|
||||
<entry>see individual properties</entry>
|
||||
<entry><ulink url="https://www.w3.org/TR/2011/REC-CSS2-20110607/box.html#propdef-margin">CSS2</ulink>,
|
||||
@@ -605,7 +610,7 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
<entry>a 'four sides' shorthand</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">padding</phrase></entry>
|
||||
<entry>padding</entry>
|
||||
<entry><code>〈length〉{1,4}</code></entry>
|
||||
<entry>see individual properties</entry>
|
||||
<entry><ulink url="https://www.w3.org/TR/2011/REC-CSS2-20110607/box.html#propdef-padding">CSS2</ulink>,
|
||||
@@ -626,7 +631,7 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
</thead>
|
||||
<tbody>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">border-top-width</phrase></entry>
|
||||
<entry>border‑top‑width</entry>
|
||||
<entry><code>〈length〉</code></entry>
|
||||
<entry><code>0px</code></entry>
|
||||
<entry></entry>
|
||||
@@ -636,7 +641,7 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
<entry>CSS allows other values</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">border-right-width</phrase></entry>
|
||||
<entry>border‑right‑width</entry>
|
||||
<entry><code>〈length〉</code></entry>
|
||||
<entry><code>0px</code></entry>
|
||||
<entry></entry>
|
||||
@@ -646,7 +651,7 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
<entry>CSS allows other values</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">border-bottom-width</phrase></entry>
|
||||
<entry>border‑bottom‑width</entry>
|
||||
<entry><code>〈length〉</code></entry>
|
||||
<entry><code>0px</code></entry>
|
||||
<entry></entry>
|
||||
@@ -656,17 +661,17 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
<entry>CSS allows other values</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">border-left-width</phrase></entry>
|
||||
<entry>border‑right‑width</entry>
|
||||
<entry><code>〈length〉</code></entry>
|
||||
<entry><code>0px</code></entry>
|
||||
<entry></entry>
|
||||
<entry>✓</entry>
|
||||
<entry><ulink url="https://www.w3.org/TR/2011/REC-CSS2-20110607/box.html#propdef-border-left-width">CSS2</ulink>,
|
||||
<entry><ulink url="https://www.w3.org/TR/2011/REC-CSS2-20110607/box.html#propdef-border-right-width">CSS2</ulink>,
|
||||
<ulink url="https://www.w3.org/TR/css3-background/#the-border-width">CSS3</ulink></entry>
|
||||
<entry>CSS allows other values</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">border-top-style</phrase></entry>
|
||||
<entry>border‑top‑style</entry>
|
||||
<entry><code>〈border style〉</code></entry>
|
||||
<entry><code>none</code></entry>
|
||||
<entry></entry>
|
||||
@@ -676,7 +681,7 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
<entry></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">border-right-style</phrase></entry>
|
||||
<entry>border‑right‑style</entry>
|
||||
<entry><code>〈border style〉</code></entry>
|
||||
<entry><code>none</code></entry>
|
||||
<entry></entry>
|
||||
@@ -686,7 +691,7 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
<entry></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">border-bottom-style</phrase></entry>
|
||||
<entry>border‑bottom‑style</entry>
|
||||
<entry><code>〈border style〉</code></entry>
|
||||
<entry><code>none</code></entry>
|
||||
<entry></entry>
|
||||
@@ -696,7 +701,7 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
<entry></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">border-left-style</phrase></entry>
|
||||
<entry>border‑left‑style</entry>
|
||||
<entry><code>〈border style〉</code></entry>
|
||||
<entry><code>none</code></entry>
|
||||
<entry></entry>
|
||||
@@ -706,7 +711,7 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
<entry></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">border-top-right-radius</phrase></entry>
|
||||
<entry>border‑top‑right‑radius</entry>
|
||||
<entry><code>〈corner radius〉</code></entry>
|
||||
<entry><code>0</code></entry>
|
||||
<entry></entry>
|
||||
@@ -716,7 +721,7 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
<entry></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">border-bottom-right-radius</phrase></entry>
|
||||
<entry>border‑bottom‑right‑radius</entry>
|
||||
<entry><code>〈corner radius〉</code></entry>
|
||||
<entry><code>0</code></entry>
|
||||
<entry></entry>
|
||||
@@ -726,7 +731,7 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
<entry></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">border-bottom-left-radius</phrase></entry>
|
||||
<entry>border‑bottom‑left‑radius</entry>
|
||||
<entry><code>〈corner radius〉</code></entry>
|
||||
<entry><code>0</code></entry>
|
||||
<entry></entry>
|
||||
@@ -736,7 +741,7 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
<entry></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">border-top-left-radius</phrase></entry>
|
||||
<entry>border‑top‑left‑radius</entry>
|
||||
<entry><code>〈corner radius〉</code></entry>
|
||||
<entry><code>0</code></entry>
|
||||
<entry></entry>
|
||||
@@ -746,7 +751,7 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
<entry></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">border-top-color</phrase></entry>
|
||||
<entry>border‑top‑color</entry>
|
||||
<entry><code>〈color〉</code></entry>
|
||||
<entry><code>currentColor</code></entry>
|
||||
<entry></entry>
|
||||
@@ -756,7 +761,7 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
<entry></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">border-right-color</phrase></entry>
|
||||
<entry>border‑right‑color</entry>
|
||||
<entry><code>〈color〉</code></entry>
|
||||
<entry><code>currentColor</code></entry>
|
||||
<entry></entry>
|
||||
@@ -766,7 +771,7 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
<entry></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">border-bottom-color</phrase></entry>
|
||||
<entry>border‑bottom‑color</entry>
|
||||
<entry><code>〈color〉</code></entry>
|
||||
<entry><code>currentColor</code></entry>
|
||||
<entry></entry>
|
||||
@@ -776,7 +781,7 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
<entry></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">border-left-color</phrase></entry>
|
||||
<entry>border‑left‑color</entry>
|
||||
<entry><code>〈color〉</code></entry>
|
||||
<entry><code>currentColor</code></entry>
|
||||
<entry></entry>
|
||||
@@ -786,7 +791,7 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
<entry></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">border-image-source</phrase></entry>
|
||||
<entry>border‑image‑source</entry>
|
||||
<entry><code>〈image〉 | none</code></entry>
|
||||
<entry><code>none</code></entry>
|
||||
<entry></entry>
|
||||
@@ -795,7 +800,7 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
<entry></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">border-image-repeat</phrase></entry>
|
||||
<entry>border‑image‑repeat</entry>
|
||||
<entry><code>〈border repeat〉{1,2}</code></entry>
|
||||
<entry><code>stretch</code></entry>
|
||||
<entry></entry>
|
||||
@@ -804,7 +809,7 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
<entry></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">border-image-slice</phrase></entry>
|
||||
<entry>border‑image‑slice</entry>
|
||||
<entry><code>[ 〈number〉 | 〈percentage〉 ]{1,4} && fill?</code></entry>
|
||||
<entry><code>100%</code></entry>
|
||||
<entry></entry>
|
||||
@@ -813,8 +818,8 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
<entry>a 'four sides' shorthand</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">border-image-width</phrase></entry>
|
||||
<entry><code>[ 〈length〉 | 〈number〉 | 〈percentage〉 | auto ]{1,4}</code></entry>
|
||||
<entry>border‑image‑width</entry>
|
||||
<entry><code>[ 〈length〉 | 〈number〉 | 〈percentage〉 | auto ]{1,4}</code></entry>
|
||||
<entry><code>1</code></entry>
|
||||
<entry></entry>
|
||||
<entry></entry>
|
||||
@@ -830,7 +835,7 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
</thead>
|
||||
<tbody>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">border-width</phrase></entry>
|
||||
<entry>border‑width</entry>
|
||||
<entry><code>〈length〉{1,4}</code></entry>
|
||||
<entry>see individual properties</entry>
|
||||
<entry><ulink url="https://www.w3.org/TR/2011/REC-CSS2-20110607/box.html#propdef-border-width">CSS2</ulink>,
|
||||
@@ -838,7 +843,7 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
<entry>a 'four sides' shorthand</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">border-style</phrase></entry>
|
||||
<entry>border‑style</entry>
|
||||
<entry><code>〈border style〉{1,4}</code></entry>
|
||||
<entry>see individual properties</entry>
|
||||
<entry><ulink url="https://www.w3.org/TR/2011/REC-CSS2-20110607/box.html#propdef-border-style">CSS2</ulink>,
|
||||
@@ -846,14 +851,14 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
<entry>a 'four sides' shorthand</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">border-color</phrase></entry>
|
||||
<entry>border‑color</entry>
|
||||
<entry><code>〈color〉{1,4}</code></entry>
|
||||
<entry>see individual properties</entry>
|
||||
<entry><ulink url="https://www.w3.org/TR/css3-background/#border-color">CSS3</ulink></entry>
|
||||
<entry>a 'four sides' shorthand</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">border-top</phrase></entry>
|
||||
<entry>border‑top</entry>
|
||||
<entry><code>〈length〉 || 〈border style〉 || 〈color〉</code></entry>
|
||||
<entry>see individual properties</entry>
|
||||
<entry><ulink url="https://www.w3.org/TR/2011/REC-CSS2-20110607/box.html#propdef-border-top">CSS2</ulink>,
|
||||
@@ -861,23 +866,7 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
<entry></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">border-right</phrase></entry>
|
||||
<entry><code>〈length〉 || 〈border style〉 || 〈color〉</code></entry>
|
||||
<entry>see individual properties</entry>
|
||||
<entry><ulink url="https://www.w3.org/TR/2011/REC-CSS2-20110607/box.html#propdef-border-right">CSS2</ulink>,
|
||||
<ulink url="https://www.w3.org/TR/css3-background/#border-right">CSS3</ulink></entry>
|
||||
<entry></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">border-bottom</phrase></entry>
|
||||
<entry><code>〈length〉 || 〈border style〉 || 〈color〉</code></entry>
|
||||
<entry>see individual properties</entry>
|
||||
<entry><ulink url="https://www.w3.org/TR/2011/REC-CSS2-20110607/box.html#propdef-border-bottom">CSS2</ulink>,
|
||||
<ulink url="https://www.w3.org/TR/css3-background/#border-bottom">CSS3</ulink></entry>
|
||||
<entry></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">border-left</phrase></entry>
|
||||
<entry>border‑left</entry>
|
||||
<entry><code>〈length〉 || 〈border style〉 || 〈color〉</code></entry>
|
||||
<entry>see individual properties</entry>
|
||||
<entry><ulink url="https://www.w3.org/TR/2011/REC-CSS2-20110607/box.html#propdef-border-left">CSS2</ulink>,
|
||||
@@ -885,7 +874,23 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
<entry></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">border</phrase></entry>
|
||||
<entry>border‑bottom</entry>
|
||||
<entry><code>〈length〉 || 〈border style〉 || 〈color〉</code></entry>
|
||||
<entry>see individual properties</entry>
|
||||
<entry><ulink url="https://www.w3.org/TR/2011/REC-CSS2-20110607/box.html#propdef-border-bottom">CSS2</ulink>,
|
||||
<ulink url="https://www.w3.org/TR/css3-background/#border-bottom">CSS3</ulink></entry>
|
||||
<entry></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>border‑right</entry>
|
||||
<entry><code>〈length〉 || 〈border style〉 || 〈color〉</code></entry>
|
||||
<entry>see individual properties</entry>
|
||||
<entry><ulink url="https://www.w3.org/TR/2011/REC-CSS2-20110607/box.html#propdef-border-right">CSS2</ulink>,
|
||||
<ulink url="https://www.w3.org/TR/css3-background/#border-right">CSS3</ulink></entry>
|
||||
<entry></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>border</entry>
|
||||
<entry><code>〈length〉 || 〈border style〉 || 〈color〉</code></entry>
|
||||
<entry>see individual properties</entry>
|
||||
<entry><ulink url="https://www.w3.org/TR/2011/REC-CSS2-20110607/box.html#propdef-border-right">CSS2</ulink>,
|
||||
@@ -893,14 +898,14 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
<entry></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">border-radius</phrase></entry>
|
||||
<entry><code>[ 〈length〉 | 〈percentage〉 ]{1,4} [ / [ 〈length〉 | 〈percentage〉 ]{1,4} ]?</code></entry>
|
||||
<entry>border‑radius</entry>
|
||||
<entry><code>[ 〈length〉 | 〈percentage〉 ]{1,4} [ / [ 〈length〉 | 〈percentage> ]{1,4} ]?</code></entry>
|
||||
<entry>see individual properties</entry>
|
||||
<entry><ulink url="https://www.w3.org/TR/css3-background/#border-radius">CSS3</ulink></entry>
|
||||
<entry></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">border-image</phrase></entry>
|
||||
<entry>border‑image</entry>
|
||||
<entry><code>〈border-image-source〉 || 〈border-image-slice〉 [ / 〈border-image-width〉 | / 〈border-image-width〉? / 〈border-image-outset〉 ]? || 〈border-image-repeat〉</code></entry>
|
||||
<entry>see individual properties</entry>
|
||||
<entry><ulink url="https://www.w3.org/TR/css3-background/#border-image">CSS3</ulink></entry>
|
||||
@@ -924,7 +929,7 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
</thead>
|
||||
<tbody>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">outline-style</phrase></entry>
|
||||
<entry>outline‑style</entry>
|
||||
<entry><code>none | solid | inset | outset | hidden | dotted | dashed | double | groove | ridge</code></entry>
|
||||
<entry><code>none</code></entry>
|
||||
<entry></entry>
|
||||
@@ -934,7 +939,7 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
<entry></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">outline-width</phrase></entry>
|
||||
<entry>outline‑width</entry>
|
||||
<entry><code>〈length〉</code></entry>
|
||||
<entry><code>0px</code></entry>
|
||||
<entry></entry>
|
||||
@@ -944,7 +949,7 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
<entry></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">outline-color</phrase></entry>
|
||||
<entry>outline‑color</entry>
|
||||
<entry><code>〈color〉</code></entry>
|
||||
<entry><code>currentColor</code></entry>
|
||||
<entry></entry>
|
||||
@@ -954,7 +959,7 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
<entry></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">outline-offset</phrase></entry>
|
||||
<entry>outline‑offset</entry>
|
||||
<entry><code>〈length〉</code></entry>
|
||||
<entry><code>0px</code></entry>
|
||||
<entry></entry>
|
||||
@@ -963,7 +968,7 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
<entry></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">-gtk-outline-top-left-radius</phrase></entry>
|
||||
<entry>‑gtk‑outline‑top‑left‑radius</entry>
|
||||
<entry><code>〈corner radius〉</code></entry>
|
||||
<entry><code>0</code></entry>
|
||||
<entry></entry>
|
||||
@@ -972,7 +977,7 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
<entry></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">-gtk-outline-top-right-radius</phrase></entry>
|
||||
<entry>‑gtk‑outline‑top‑right‑radius</entry>
|
||||
<entry><code>〈corner radius〉</code></entry>
|
||||
<entry><code>0</code></entry>
|
||||
<entry></entry>
|
||||
@@ -981,7 +986,7 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
<entry></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">-gtk-outline-bottom-right-radius</phrase></entry>
|
||||
<entry>‑gtk‑outline‑bottom‑right‑radius</entry>
|
||||
<entry><code>〈corner radius〉</code></entry>
|
||||
<entry><code>0</code></entry>
|
||||
<entry></entry>
|
||||
@@ -990,7 +995,7 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
<entry></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">-gtk-outline-bottom-left-radius</phrase></entry>
|
||||
<entry>‑gtk‑outline‑bottom‑left‑radius</entry>
|
||||
<entry><code>〈corner radius〉</code></entry>
|
||||
<entry><code>0</code></entry>
|
||||
<entry></entry>
|
||||
@@ -1006,7 +1011,7 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
</thead>
|
||||
<tbody>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">outline</phrase></entry>
|
||||
<entry>outline</entry>
|
||||
<entry><code>〈outline-color〉 || 〈outline-style〉 || 〈outline-width〉</code></entry>
|
||||
<entry>see individual properties</entry>
|
||||
<entry><ulink url="https://www.w3.org/TR/2011/REC-CSS2-20110607/ui.html#propdef-outline">CSS2</ulink>,
|
||||
@@ -1014,8 +1019,8 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
<entry></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">-gtk-outline-radius</phrase></entry>
|
||||
<entry><code>[ 〈length〉 | 〈percentage〉 ]{1,4} [ / [ 〈length〉 | 〈percentage〉 ]{1,4} ]?</code></entry>
|
||||
<entry>‑gtk‑outline‑radius</entry>
|
||||
<entry><code>[ 〈length〉|〈percentage〉 ]{1,4} [ / [〈length〉 | 〈percentage> ]{1,4} ]?</code></entry>
|
||||
<entry>see individual properties</entry>
|
||||
<entry></entry>
|
||||
<entry></entry>
|
||||
@@ -1038,7 +1043,7 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
</thead>
|
||||
<tbody>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">background-color</phrase></entry>
|
||||
<entry>background‑color</entry>
|
||||
<entry><code>〈color〉</code></entry>
|
||||
<entry><code>rgba(0,0,0,0)</code></entry>
|
||||
<entry></entry>
|
||||
@@ -1048,7 +1053,7 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
<entry></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">background-clip</phrase></entry>
|
||||
<entry>background‑clip</entry>
|
||||
<entry><code>〈box〉 [ , 〈box〉 ]*</code></entry>
|
||||
<entry><code>border-box</code></entry>
|
||||
<entry></entry>
|
||||
@@ -1057,7 +1062,7 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
<entry></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">background-origin</phrase></entry>
|
||||
<entry>background‑origin</entry>
|
||||
<entry><code>〈box〉 [ , 〈box〉 ]*</code></entry>
|
||||
<entry><code>padding-box</code></entry>
|
||||
<entry></entry>
|
||||
@@ -1066,7 +1071,7 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
<entry></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">background-size</phrase></entry>
|
||||
<entry>background‑size</entry>
|
||||
<entry><code>〈bg-size〉 [ , 〈bg-size〉 ]*</code></entry>
|
||||
<entry><code>auto</code></entry>
|
||||
<entry></entry>
|
||||
@@ -1075,8 +1080,8 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
<entry></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">background-position</phrase></entry>
|
||||
<entry><code>〈position〉 [ , 〈position〉 ]*</code></entry>
|
||||
<entry>background‑position</entry>
|
||||
<entry><code>〈position〉 [ , 〈position〉 ]*</code></entry>
|
||||
<entry><code>0</code></entry>
|
||||
<entry></entry>
|
||||
<entry>✓</entry>
|
||||
@@ -1085,8 +1090,8 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
<entry></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">background-repeat</phrase></entry>
|
||||
<entry><code>〈bg-repeat〉 [ , 〈bg-repeat〉 ]*</code></entry>
|
||||
<entry>background‑repeat</entry>
|
||||
<entry><code>〈bg-repeat 〉[ , 〈bg-repeat〉 ]*</code></entry>
|
||||
<entry><code>repeat</code></entry>
|
||||
<entry></entry>
|
||||
<entry></entry>
|
||||
@@ -1095,8 +1100,8 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
<entry></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">background-image</phrase></entry>
|
||||
<entry><code>〈bg-image〉 [ , 〈bg-image〉 ]*</code></entry>
|
||||
<entry>background‑image</entry>
|
||||
<entry><code>〈bg-image〉[ , 〈bg-image〉 ]*</code></entry>
|
||||
<entry><code>none</code></entry>
|
||||
<entry></entry>
|
||||
<entry>✓</entry>
|
||||
@@ -1105,8 +1110,8 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
<entry>not supported: urls without quotes, CSS radial gradients, colors in crossfades</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">background-blend-mode</phrase></entry>
|
||||
<entry><code>〈blend-mode〉 [ , 〈blend-mode〉 ]*</code></entry>
|
||||
<entry>background-blend-mode</entry>
|
||||
<entry><code>〈blend-mode〉 [ , 〈blend-mode〉 ]*</code></entry>
|
||||
<entry><code>normal</code></entry>
|
||||
<entry></entry>
|
||||
<entry></entry>
|
||||
@@ -1114,8 +1119,8 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
<entry>only affects multiple backgrounds</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">box-shadow</phrase></entry>
|
||||
<entry><code>none | 〈box shadow〉 [ , 〈box shadow〉 ]*</code></entry>
|
||||
<entry>box‑shadow</entry>
|
||||
<entry><code>none | 〈box shadow〉 [ , 〈box shadow〉 ]*</code></entry>
|
||||
<entry><code>none</code></entry>
|
||||
<entry></entry>
|
||||
<entry>✓</entry>
|
||||
@@ -1130,7 +1135,7 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
</thead>
|
||||
<tbody>
|
||||
<row>
|
||||
<entry>background</entry>
|
||||
<entry><para>background</para></entry>
|
||||
<entry><code>[ 〈bg-layer〉 , ]* 〈final-bg-layer〉</code></entry>
|
||||
<entry>see individual properties</entry>
|
||||
<entry><ulink url="https://www.w3.org/TR/2011/REC-CSS2-20110607/colors.html#propdef-background">CSS2</ulink>,
|
||||
@@ -1147,10 +1152,8 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
<code>〈bg-repeat〉 = repeat-x | repeat-y | [ no-repeat | repeat | round | space ]{1,2}</code>
|
||||
<code>〈bg-image〉 = 〈image〉 | none</code>
|
||||
<code>〈bg-layer〉 = 〈bg-image〉 || 〈position〉 [ / 〈bg-size〉 ]? || 〈bg-repeat〉 || 〈box〉 || 〈box〉</code>
|
||||
<code>〈final-bg-layer〉 = 〈bg-image〉 || 〈position〉 [ / 〈bg-size〉 ]? || 〈bg-repeat〉 || 〈box〉 || 〈box〉 || 〈color〉</code>
|
||||
<code>〈blend-mode〉 = color || color-burn || color-dodge || darken || difference || exclusion ||</code>
|
||||
<code> hard-light || hue || lighten || luminosity || multiply || normal || overlay ||</code>
|
||||
<code> saturate || screen || soft-light</code>
|
||||
<code>〈final-bg-layer〉 = 〈bg-image〉 || 〈position〉 [ / 〈bg-size〉 ]? || 〈bg-repeat〉 || 〈box〉 || 〈box〉|| 〈color〉</code>
|
||||
<code>〈blend-mode〉 = color || color-burn || color-dodge || darken || difference || exclusion || hard-light || hue || lighten || luminosity || multiply || normal || overlay || saturate || screen || soft-light</code>
|
||||
<code>〈box shadow〉 = inset? && 〈length〉{2,4}? && 〈color〉?</code>
|
||||
</literallayout>
|
||||
|
||||
@@ -1173,7 +1176,7 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
</thead>
|
||||
<tbody>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">transition-property</phrase></entry>
|
||||
<entry>transition‑property</entry>
|
||||
<entry><code>none | all | 〈property name〉 [ , 〈property name〉 ]*</code></entry>
|
||||
<entry><code>all</code></entry>
|
||||
<entry></entry>
|
||||
@@ -1182,7 +1185,7 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
<entry></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">transition-duration</phrase></entry>
|
||||
<entry>transition‑duration</entry>
|
||||
<entry><code>〈time〉 [ , 〈time〉 ]*</code></entry>
|
||||
<entry><code>0s</code></entry>
|
||||
<entry></entry>
|
||||
@@ -1191,8 +1194,8 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
<entry></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">transition-timing-function</phrase></entry>
|
||||
<entry><code>〈single-timing-function〉 [ , 〈single-timing-function〉 ]*</code></entry>
|
||||
<entry>transition‑timing‑function</entry>
|
||||
<entry><code>〈single‑timing‑function〉[ , 〈single‑timing‑function〉 ]*</code></entry>
|
||||
<entry><code>ease</code></entry>
|
||||
<entry></entry>
|
||||
<entry></entry>
|
||||
@@ -1200,7 +1203,7 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
<entry></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">transition-delay</phrase></entry>
|
||||
<entry>transition‑delay</entry>
|
||||
<entry><code>〈time〉 [ , 〈time〉 ]*</code></entry>
|
||||
<entry><code>0s</code></entry>
|
||||
<entry></entry>
|
||||
@@ -1216,7 +1219,7 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
</thead>
|
||||
<tbody>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">transition</phrase></entry>
|
||||
<entry>transition</entry>
|
||||
<entry><code>〈single-transition〉 [ , 〈single-transition〉 ]*</code></entry>
|
||||
<entry>see individual properties</entry>
|
||||
<entry><ulink url="https://www.w3.org/TR/css3-transitions/#transition">CSS3</ulink></entry>
|
||||
@@ -1227,8 +1230,8 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
</table>
|
||||
|
||||
<literallayout><code>〈single-timing-function〉 = ease | linear | ease-in | ease-out | ease-in-out |</code>
|
||||
<code> step-start | step-end | steps( 〈integer〉 [ , [ start | end ] ]? ) |</code>
|
||||
<code> cubic-bezier( 〈number〉, 〈number〉, 〈number〉, 〈number〉 )</code>
|
||||
<code> step-start | step-end | steps( 〈integer〉 [ , [ start | end ] ]? ) |</code>
|
||||
<code> cubic-bezier( 〈number〉, 〈number〉, 〈number〉, 〈number〉 )</code>
|
||||
<code>〈single-transition〉 = [ none | 〈property name〉 ] || 〈time〉 || 〈single-transition-timing-function〉 || 〈time〉</code>
|
||||
</literallayout>
|
||||
|
||||
@@ -1242,7 +1245,7 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
</thead>
|
||||
<tbody>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">animation-name</phrase></entry>
|
||||
<entry>animation‑name</entry>
|
||||
<entry><code>〈single-animation-name〉 [ , 〈single-animation-name〉 ]*</code></entry>
|
||||
<entry><code>none</code></entry>
|
||||
<entry></entry>
|
||||
@@ -1251,7 +1254,7 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
<entry></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">animation-duration</phrase></entry>
|
||||
<entry>animation‑duration</entry>
|
||||
<entry><code>〈time〉 [ , 〈time〉 ]*</code></entry>
|
||||
<entry><code>0s</code></entry>
|
||||
<entry></entry>
|
||||
@@ -1260,8 +1263,8 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
<entry></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">animation-timing-function</phrase></entry>
|
||||
<entry><code>〈single-timing-function〉 [ , 〈single-timing-function〉 ]*</code></entry>
|
||||
<entry>animation‑timing‑function</entry>
|
||||
<entry><code>〈single‑timing‑function〉 [ , 〈single‑timing‑function〉 ]*</code></entry>
|
||||
<entry><code>ease</code></entry>
|
||||
<entry></entry>
|
||||
<entry></entry>
|
||||
@@ -1269,8 +1272,8 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
<entry></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">animation-iteration-count</phrase></entry>
|
||||
<entry><code>〈single-animation-iteration-count〉 [ , 〈single-animation-iteration-count〉 ]*</code></entry>
|
||||
<entry>animation‑iteration-count</entry>
|
||||
<entry><code>〈single‑animation‑iteration‑count〉 [ , 〈single‑animation‑iteration‑count〉 ]*</code></entry>
|
||||
<entry><code>1</code></entry>
|
||||
<entry></entry>
|
||||
<entry></entry>
|
||||
@@ -1278,8 +1281,8 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
<entry></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">animation-direction</phrase></entry>
|
||||
<entry><code>〈single-animation-direction〉 [ , 〈single-animation-direction〉 ]*</code></entry>
|
||||
<entry>animation‑direction</entry>
|
||||
<entry><code>〈single‑animation‑direction〉 [ , 〈single‑animation‑direction〉 ]*</code></entry>
|
||||
<entry><code>normal</code></entry>
|
||||
<entry></entry>
|
||||
<entry></entry>
|
||||
@@ -1287,8 +1290,8 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
<entry></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">animation-play-state</phrase></entry>
|
||||
<entry><code>〈single-animation-play-state〉 [ , 〈single-animation-play-state〉 ]*</code></entry>
|
||||
<entry>animation‑play‑state</entry>
|
||||
<entry><code>〈single‑animation‑play‑state〉 [ , 〈single‑animation‑play‑state〉 ]*</code></entry>
|
||||
<entry><code>running</code></entry>
|
||||
<entry></entry>
|
||||
<entry></entry>
|
||||
@@ -1296,7 +1299,7 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
<entry></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">animation-delay</phrase></entry>
|
||||
<entry>animation‑delay</entry>
|
||||
<entry><code>〈time〉 [ , 〈time〉 ]*</code></entry>
|
||||
<entry><code>0s</code></entry>
|
||||
<entry></entry>
|
||||
@@ -1305,8 +1308,8 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
<entry></entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">animation-fill-mode</phrase></entry>
|
||||
<entry><code>〈single-animation-fill-mode〉 [ , 〈single-animation-fill-mode〉 ]*</code></entry>
|
||||
<entry>animation‑fill‑mode</entry>
|
||||
<entry><code>〈single‑animation‑fill‑mode〉 [ , 〈single‑animation‑fill‑mode〉 ]*</code></entry>
|
||||
<entry><code>none</code></entry>
|
||||
<entry></entry>
|
||||
<entry></entry>
|
||||
@@ -1321,8 +1324,8 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
</thead>
|
||||
<tbody>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">animation</phrase></entry>
|
||||
<entry><code>〈single-animation〉 [ , 〈single-animation〉 ]*</code></entry>
|
||||
<entry>animation</entry>
|
||||
<entry><code>〈single‑animation〉 [ , 〈single‑animation〉]*</code></entry>
|
||||
<entry>see individual properties</entry>
|
||||
<entry><ulink url="https://www.w3.org/TR/css3-animations/#animation">CSS3</ulink></entry>
|
||||
<entry></entry>
|
||||
@@ -1337,8 +1340,7 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
<code>〈single-animation-play-state〉 = running | paused</code>
|
||||
<code>〈single-animation-fill-mode〉 = none | forwards | backwards | both</code>
|
||||
<code>〈single-animation〉 = 〈single-animation-name〉 || 〈time〉 || 〈single-timing-function〉 || 〈time〉 ||</code>
|
||||
<code> 〈single-animation-iteration-count〉 || 〈single-animation-direction〉 ||</code>
|
||||
<code> 〈single-animation-play-state〉 || 〈single-animation-fill-mode〉</code>
|
||||
<code> 〈single-animation-iteration-count〉 || 〈single-animation-direction〉 || 〈single-animation-play-state〉 || 〈single-animation-fill-mode〉</code>
|
||||
</literallayout>
|
||||
|
||||
<table pgwide="1">
|
||||
@@ -1351,7 +1353,7 @@ We use <literallayout> for syntax productions, and each line is put in a <code>
|
||||
</thead>
|
||||
<tbody>
|
||||
<row>
|
||||
<entry><phrase role="nowrap">-gtk-key-bindings</phrase></entry>
|
||||
<entry>‑gtk‑key‑bindings</entry>
|
||||
<entry><code>none | 〈binding name〉 [ , 〈binding name〉 ]*</code></entry>
|
||||
<entry><code>none</code></entry>
|
||||
<entry></entry>
|
||||
|
@@ -44,7 +44,7 @@
|
||||
|
||||
<informalexample>
|
||||
<para>Create a new file with the following content named <filename>example-0.c.</filename></para>
|
||||
<programlisting><xi:include href="@abs_top_srcdir@/examples/window-default.c" parse="text"><xi:fallback>MISSING XINCLUDE CONTENT</xi:fallback></xi:include></programlisting>
|
||||
<programlisting><xi:include href="../../../../examples/window-default.c" parse="text"><xi:fallback>MISSING XINCLUDE CONTENT</xi:fallback></xi:include></programlisting>
|
||||
</informalexample>
|
||||
|
||||
<para>
|
||||
@@ -153,7 +153,7 @@
|
||||
<example id="gtk-getting-started-hello-world">
|
||||
<title>Hello World in GTK+</title>
|
||||
<para>Create a new file with the following content named example-1.c.</para>
|
||||
<programlisting><xi:include href="@abs_top_srcdir@/examples/hello-world.c" parse="text">
|
||||
<programlisting><xi:include href="../../../../examples/hello-world.c" parse="text">
|
||||
<xi:fallback>MISSING XINCLUDE CONTENT</xi:fallback></xi:include></programlisting>
|
||||
</example>
|
||||
|
||||
@@ -233,7 +233,7 @@
|
||||
<example id="gtk-getting-started-grid-packing">
|
||||
<title>Packing buttons</title>
|
||||
<para>Create a new file with the following content named example-2.c.</para>
|
||||
<programlisting><xi:include href="@abs_top_srcdir@/examples/grid-packing.c" parse="text"><xi:fallback>MISSING XINCLUDE CONTENT</xi:fallback></xi:include></programlisting>
|
||||
<programlisting><xi:include href="../../../../examples/grid-packing.c" parse="text"><xi:fallback>MISSING XINCLUDE CONTENT</xi:fallback></xi:include></programlisting>
|
||||
</example>
|
||||
<para>
|
||||
You can compile the program above with GCC using:
|
||||
@@ -256,15 +256,15 @@
|
||||
|
||||
<example>
|
||||
<title>Packing buttons with GtkBuilder</title>
|
||||
<para>Create a new file with the following content named example-3.c.</para>
|
||||
<programlisting><xi:include href="@abs_top_srcdir@/examples/builder.c" parse="text"><xi:fallback>MISSING XINCLUDE CONTENT</xi:fallback></xi:include></programlisting>
|
||||
<para>Create a new file with the following content named example-4.c.</para>
|
||||
<programlisting><xi:include href="../../../../examples/builder.c" parse="text"><xi:fallback>MISSING XINCLUDE CONTENT</xi:fallback></xi:include></programlisting>
|
||||
<para>Create a new file with the following content named builder.ui.</para>
|
||||
<programlisting><xi:include href="@abs_top_srcdir@/examples/builder.ui" parse="text"><xi:fallback>MISSING XINCLUDE CONTENT</xi:fallback></xi:include></programlisting>
|
||||
<programlisting><xi:include href="../../../../examples/builder.ui" parse="text"><xi:fallback>MISSING XINCLUDE CONTENT</xi:fallback></xi:include></programlisting>
|
||||
</example>
|
||||
<para>
|
||||
You can compile the program above with GCC using:
|
||||
<literallayout>
|
||||
<literal>gcc `pkg-config --cflags gtk+-3.0` -o example-3 example-3.c `pkg-config --libs gtk+-3.0`</literal>
|
||||
<literal>gcc `pkg-config --cflags gtk+-3.0` -o example-4 example-4.c `pkg-config --libs gtk+-3.0`</literal>
|
||||
</literallayout>
|
||||
</para>
|
||||
|
||||
@@ -346,7 +346,7 @@
|
||||
of our application class.</para>
|
||||
|
||||
<informalexample>
|
||||
<programlisting><xi:include href="@abs_top_srcdir@/examples/application1/main.c" parse="text"><xi:fallback>MISSING XINCLUDE CONTENT</xi:fallback></xi:include></programlisting>
|
||||
<programlisting><xi:include href="../../../../examples/application1/main.c" parse="text"><xi:fallback>MISSING XINCLUDE CONTENT</xi:fallback></xi:include></programlisting>
|
||||
</informalexample>
|
||||
|
||||
<para>All the application logic is in the application class, which
|
||||
@@ -364,7 +364,7 @@
|
||||
GIO <ulink url="https://developer.gnome.org/gio/2.36/GApplication.html#GApplication.description">documentation</ulink>.</para>
|
||||
|
||||
<informalexample>
|
||||
<programlisting><xi:include href="@abs_top_srcdir@/examples/application1/exampleapp.c" parse="text"><xi:fallback>MISSING XINCLUDE CONTENT</xi:fallback></xi:include></programlisting>
|
||||
<programlisting><xi:include href="../../../../examples/application1/exampleapp.c" parse="text"><xi:fallback>MISSING XINCLUDE CONTENT</xi:fallback></xi:include></programlisting>
|
||||
</informalexample>
|
||||
|
||||
<para>Another important class that is part of the application support
|
||||
@@ -373,7 +373,7 @@
|
||||
window.</para>
|
||||
|
||||
<informalexample>
|
||||
<programlisting><xi:include href="@abs_top_srcdir@/examples/application1/exampleappwin.c" parse="text"><xi:fallback>MISSING XINCLUDE CONTENT</xi:fallback></xi:include></programlisting>
|
||||
<programlisting><xi:include href="../../../../examples/application1/exampleappwin.c" parse="text"><xi:fallback>MISSING XINCLUDE CONTENT</xi:fallback></xi:include></programlisting>
|
||||
</informalexample>
|
||||
|
||||
<para>As part of the initial setup of our application, we also
|
||||
@@ -388,7 +388,7 @@
|
||||
</informalfigure>
|
||||
|
||||
<informalexample>
|
||||
<programlisting><xi:include href="@abs_top_srcdir@/examples/application1/exampleapp.desktop" parse="text"><xi:fallback>MISSING XINCLUDE CONTENT</xi:fallback></xi:include></programlisting>
|
||||
<programlisting><xi:include href="../../../../examples/application1/exampleapp.desktop" parse="text"><xi:fallback>MISSING XINCLUDE CONTENT</xi:fallback></xi:include></programlisting>
|
||||
</informalexample>
|
||||
|
||||
<para>Note that <replaceable>@<!-- -->bindir@</replaceable> needs to be replaced
|
||||
@@ -420,7 +420,7 @@
|
||||
</para>
|
||||
|
||||
<informalexample>
|
||||
<programlisting><xi:include href="@abs_top_srcdir@/examples/application2/window.ui" parse="text"><xi:fallback>MISSING XINCLUDE CONTENT</xi:fallback></xi:include></programlisting>
|
||||
<programlisting><xi:include href="../../../../examples/application2/window.ui" parse="text"><xi:fallback>MISSING XINCLUDE CONTENT</xi:fallback></xi:include></programlisting>
|
||||
</informalexample>
|
||||
|
||||
<para>To make use of this file in our application, we revisit
|
||||
@@ -450,17 +450,17 @@ example_app_window_class_init (ExampleAppWindowClass *class)
|
||||
|
||||
...
|
||||
]]></programlisting>
|
||||
<para>(<ulink url="https://gitlab.gnome.org/GNOME/gtk/blob/gtk-3-22/examples/application2/exampleappwin.c">full source</ulink>)</para>
|
||||
<para>(<ulink url="https://git.gnome.org/browse/gtk+/tree/examples/application2/exampleappwin.c">full source</ulink>)</para>
|
||||
</informalexample>
|
||||
|
||||
<para>You may have noticed that we used the <literal>_from_resource(<!-- -->)</literal> variant
|
||||
of the function that sets a template. Now we need to use <ulink url="https://developer.gnome.org/gio/stable/GResource.html">GLib's resource functionality</ulink>
|
||||
to include the ui file in the binary. This is commonly done by listing
|
||||
all resources in a .gresource.xml file, such as this:
|
||||
of the function that sets a template. Now we need to use GLib's resource
|
||||
functionality to include the ui file in the binary. This is commonly
|
||||
done by listing all resources in a .gresource.xml file, such as this:
|
||||
</para>
|
||||
|
||||
<informalexample>
|
||||
<programlisting><xi:include href="@abs_top_srcdir@/examples/application2/exampleapp.gresource.xml" parse="text"><xi:fallback>MISSING XINCLUDE CONTENT</xi:fallback></xi:include></programlisting>
|
||||
<programlisting><xi:include href="../../../../examples/application2/exampleapp.gresource.xml" parse="text"><xi:fallback>MISSING XINCLUDE CONTENT</xi:fallback></xi:include></programlisting>
|
||||
</informalexample>
|
||||
|
||||
<para>This file has to be converted into a C source file that will be
|
||||
@@ -518,7 +518,7 @@ example_app_window_class_init (ExampleAppWindowClass *class)
|
||||
|
||||
...
|
||||
]]></programlisting>
|
||||
<para>(<ulink url="https://gitlab.gnome.org/GNOME/gtk/blob/gtk-3-22/examples/application3/exampleappwin.c">full source</ulink>)</para>
|
||||
<para>(<ulink url="https://git.gnome.org/browse/gtk+/tree/examples/application3/exampleappwin.c">full source</ulink>)</para>
|
||||
</informalexample>
|
||||
|
||||
<para>Now we revisit the example_app_window_open() function that
|
||||
@@ -567,7 +567,7 @@ example_app_window_open (ExampleAppWindow *win,
|
||||
|
||||
...
|
||||
]]></programlisting>
|
||||
<para>(<ulink url="https://gitlab.gnome.org/GNOME/gtk/blob/gtk-3-22/examples/application3/exampleappwin.c">full source</ulink>)</para>
|
||||
<para>(<ulink url="https://git.gnome.org/browse/gtk+/tree/examples/application3/exampleappwin.c">full source</ulink>)</para>
|
||||
</informalexample>
|
||||
|
||||
<para>Note that we did not have to touch the stack switcher
|
||||
@@ -598,7 +598,7 @@ example_app_window_open (ExampleAppWindow *win,
|
||||
in a ui file, and add it as a resource to our binary.</para>
|
||||
|
||||
<informalexample>
|
||||
<programlisting><xi:include href="@abs_top_srcdir@/examples/application4/app-menu.ui" parse="text"><xi:fallback>MISSING XINCLUDE CONTENT</xi:fallback></xi:include></programlisting>
|
||||
<programlisting><xi:include href="../../../../examples/application4/app-menu.ui" parse="text"><xi:fallback>MISSING XINCLUDE CONTENT</xi:fallback></xi:include></programlisting>
|
||||
</informalexample>
|
||||
|
||||
<para>To associate the app menu with the application, we have to call
|
||||
@@ -665,7 +665,7 @@ example_app_class_init (ExampleAppClass *class)
|
||||
|
||||
...
|
||||
</programlisting>
|
||||
<para>(<ulink url="https://gitlab.gnome.org/GNOME/gtk/blob/gtk-3-22/examples/application4/exampleapp.c">full source</ulink>)</para>
|
||||
<para>(<ulink url="https://git.gnome.org/browse/gtk+/tree/examples/application4/exampleapp.c">full source</ulink>)</para>
|
||||
</informalexample>
|
||||
|
||||
<para>Our preferences menu item does not do anything yet,
|
||||
@@ -697,7 +697,7 @@ example_app_class_init (ExampleAppClass *class)
|
||||
GSettings requires a schema that describes our settings:</para>
|
||||
|
||||
<informalexample>
|
||||
<programlisting><xi:include href="@abs_top_srcdir@/examples/application5/org.gtk.exampleapp.gschema.xml" parse="text"><xi:fallback>MISSING XINCLUDE CONTENT</xi:fallback></xi:include></programlisting>
|
||||
<programlisting><xi:include href="../../../../examples/application5/org.gtk.exampleapp.gschema.xml" parse="text"><xi:fallback>MISSING XINCLUDE CONTENT</xi:fallback></xi:include></programlisting>
|
||||
</informalexample>
|
||||
|
||||
<para>Before we can make use of this schema in our application,
|
||||
@@ -731,7 +731,7 @@ example_app_window_init (ExampleAppWindow *win)
|
||||
|
||||
...
|
||||
]]></programlisting>
|
||||
<para>(<ulink url="https://gitlab.gnome.org/GNOME/gtk/blob/gtk-3-22/examples/application5/exampleappwin.c">full source</ulink>)</para>
|
||||
<para>(<ulink url="https://git.gnome.org/browse/gtk+/tree/examples/application5/exampleappwin.c">full source</ulink>)</para>
|
||||
</informalexample>
|
||||
|
||||
<para>The code to connect the font setting is a little more involved,
|
||||
@@ -749,13 +749,13 @@ example_app_window_init (ExampleAppWindow *win)
|
||||
<para>Lets start with the template.</para>
|
||||
|
||||
<informalexample>
|
||||
<programlisting><xi:include href="@abs_top_srcdir@/examples/application6/prefs.ui" parse="text"><xi:fallback>MISSING XINCLUDE CONTENT</xi:fallback></xi:include></programlisting>
|
||||
<programlisting><xi:include href="../../../../examples/application6/prefs.ui" parse="text"><xi:fallback>MISSING XINCLUDE CONTENT</xi:fallback></xi:include></programlisting>
|
||||
</informalexample>
|
||||
|
||||
<para>Next comes the dialog subclass.</para>
|
||||
|
||||
<informalexample>
|
||||
<programlisting><xi:include href="@abs_top_srcdir@/examples/application6/exampleappprefs.c" parse="text"><xi:fallback>MISSING XINCLUDE CONTENT</xi:fallback></xi:include></programlisting>
|
||||
<programlisting><xi:include href="../../../../examples/application6/exampleappprefs.c" parse="text"><xi:fallback>MISSING XINCLUDE CONTENT</xi:fallback></xi:include></programlisting>
|
||||
</informalexample>
|
||||
|
||||
<para>Now we revisit the <literal>preferences_activated(<!-- -->)</literal> function in our
|
||||
@@ -780,7 +780,7 @@ preferences_activated (GSimpleAction *action,
|
||||
|
||||
...
|
||||
]]></programlisting>
|
||||
<para>(<ulink url="https://gitlab.gnome.org/GNOME/gtk/blob/gtk-3-22/examples/application6/exampleapp.c">full source</ulink>)</para>
|
||||
<para>(<ulink url="https://git.gnome.org/browse/gtk+/tree/examples/application6/exampleapp.c">full source</ulink>)</para>
|
||||
</informalexample>
|
||||
|
||||
<para>After all this work, our application can now show
|
||||
@@ -807,7 +807,7 @@ preferences_activated (GSimpleAction *action,
|
||||
to slide out the search bar below the header bar.</para>
|
||||
|
||||
<informalexample>
|
||||
<programlisting><xi:include href="@abs_top_srcdir@/examples/application7/window.ui" parse="text"><xi:fallback>MISSING XINCLUDE CONTENT</xi:fallback></xi:include></programlisting>
|
||||
<programlisting><xi:include href="../../../../examples/application7/window.ui" parse="text"><xi:fallback>MISSING XINCLUDE CONTENT</xi:fallback></xi:include></programlisting>
|
||||
</informalexample>
|
||||
|
||||
<para>Implementing the search needs quite a few code changes that
|
||||
@@ -866,7 +866,7 @@ example_app_window_init (ExampleAppWindow *win)
|
||||
|
||||
...
|
||||
]]></programlisting>
|
||||
<para>(<ulink url="https://gitlab.gnome.org/GNOME/gtk/blob/gtk-3-22/examples/application7/exampleappwin.c">full source</ulink>)</para>
|
||||
<para>(<ulink url="https://git.gnome.org/browse/gtk+/tree/examples/application7/exampleappwin.c">full source</ulink>)</para>
|
||||
</informalexample>
|
||||
|
||||
<para>With the search bar, our application now looks like this:</para>
|
||||
@@ -887,7 +887,7 @@ example_app_window_init (ExampleAppWindow *win)
|
||||
which demonstrates #GtkMenuButton, #GtkRevealer and #GtkListBox.</para>
|
||||
|
||||
<informalexample>
|
||||
<programlisting><xi:include href="@abs_top_srcdir@/examples/application8/window.ui" parse="text"><xi:fallback>MISSING XINCLUDE CONTENT</xi:fallback></xi:include></programlisting>
|
||||
<programlisting><xi:include href="../../../../examples/application8/window.ui" parse="text"><xi:fallback>MISSING XINCLUDE CONTENT</xi:fallback></xi:include></programlisting>
|
||||
</informalexample>
|
||||
|
||||
<para>The code to populate the sidebar with buttons for the words
|
||||
@@ -898,7 +898,7 @@ example_app_window_init (ExampleAppWindow *win)
|
||||
ui file.</para>
|
||||
|
||||
<informalexample>
|
||||
<programlisting><xi:include href="@abs_top_srcdir@/examples/application8/gears-menu.ui" parse="text"><xi:fallback>MISSING XINCLUDE CONTENT</xi:fallback></xi:include></programlisting>
|
||||
<programlisting><xi:include href="../../../../examples/application8/gears-menu.ui" parse="text"><xi:fallback>MISSING XINCLUDE CONTENT</xi:fallback></xi:include></programlisting>
|
||||
</informalexample>
|
||||
|
||||
<para>To connect the menuitem to the show-words setting, we use
|
||||
@@ -926,7 +926,7 @@ example_app_window_init (ExampleAppWindow *win)
|
||||
|
||||
...
|
||||
]]></programlisting>
|
||||
<para>(<ulink url="https://gitlab.gnome.org/GNOME/gtk/blob/gtk-3-22/examples/application8/exampleappwin.c">full source</ulink>)</para>
|
||||
<para>(<ulink url="https://git.gnome.org/browse/gtk+/tree/examples/application8/exampleappwin.c">full source</ulink>)</para>
|
||||
</informalexample>
|
||||
|
||||
<para>What our application looks like now:</para>
|
||||
@@ -957,7 +957,7 @@ example_app_window_init (ExampleAppWindow *win)
|
||||
triggers the show-lines action:</para>
|
||||
|
||||
<informalexample>
|
||||
<programlisting><xi:include href="@abs_top_srcdir@/examples/application9/gears-menu.ui" parse="text"><xi:fallback>MISSING XINCLUDE CONTENT</xi:fallback></xi:include></programlisting>
|
||||
<programlisting><xi:include href="../../../../examples/application9/gears-menu.ui" parse="text"><xi:fallback>MISSING XINCLUDE CONTENT</xi:fallback></xi:include></programlisting>
|
||||
</informalexample>
|
||||
|
||||
<para>To make this menu item do something, we create a property
|
||||
@@ -989,12 +989,12 @@ example_app_window_init (ExampleAppWindow *win)
|
||||
|
||||
...
|
||||
</programlisting>
|
||||
<para>(<ulink url="https://gitlab.gnome.org/GNOME/gtk/blob/gtk-3-22/examples/application9/exampleappwin.c">full source</ulink>)</para>
|
||||
<para>(<ulink url="https://git.gnome.org/browse/gtk+/tree/examples/application9/exampleappwin.c">full source</ulink>)</para>
|
||||
</informalexample>
|
||||
|
||||
<para>We also need a function that counts the lines of the currently
|
||||
active tab, and updates the @lines label. See the
|
||||
<ulink url="https://gitlab.gnome.org/GNOME/gtk/blob/gtk-3-22/examples/application9/exampleappwin.c">full source</ulink>
|
||||
<ulink url="https://git.gnome.org/browse/gtk+/tree/examples/application9/exampleappwin.c">full source</ulink>
|
||||
if you are interested in the details.</para>
|
||||
|
||||
<para>This brings our example application to this appearance:</para>
|
||||
@@ -1017,7 +1017,7 @@ example_app_window_init (ExampleAppWindow *win)
|
||||
be a direct child of the window, and set its type to be titlebar.</para>
|
||||
|
||||
<informalexample>
|
||||
<programlisting><xi:include href="@abs_top_srcdir@/examples/application10/window.ui" parse="text"><xi:fallback>MISSING XINCLUDE CONTENT</xi:fallback></xi:include></programlisting>
|
||||
<programlisting><xi:include href="../../../../examples/application10/window.ui" parse="text"><xi:fallback>MISSING XINCLUDE CONTENT</xi:fallback></xi:include></programlisting>
|
||||
</informalexample>
|
||||
|
||||
<para>A small extra bonus of using a header bar is that we get
|
||||
@@ -1072,13 +1072,13 @@ example_app_window_init (ExampleAppWindow *win)
|
||||
|
||||
<example id="gtk-getting-started-drawing">
|
||||
<title>Drawing in response to input</title>
|
||||
<para>Create a new file with the following content named example-4.c.</para>
|
||||
<programlisting><xi:include href="@abs_top_srcdir@/examples/drawing.c" parse="text"><xi:fallback>MISSING XINCLUDE CONTENT</xi:fallback></xi:include></programlisting>
|
||||
<para>Create a new file with the following content named example-3.c.</para>
|
||||
<programlisting><xi:include href="../../../../examples/drawing.c" parse="text"><xi:fallback>MISSING XINCLUDE CONTENT</xi:fallback></xi:include></programlisting>
|
||||
</example>
|
||||
<para>
|
||||
You can compile the program above with GCC using:
|
||||
<literallayout>
|
||||
<literal>gcc `pkg-config --cflags gtk+-3.0` -o example-4 example-4.c `pkg-config --libs gtk+-3.0`</literal>
|
||||
<literal>gcc `pkg-config --cflags gtk+-3.0` -o example-3 example-3.c `pkg-config --libs gtk+-3.0`</literal>
|
||||
</literallayout>
|
||||
</para>
|
||||
</section>
|
@@ -301,9 +301,6 @@
|
||||
<chapter id="Gestures">
|
||||
<title>Gestures and event handling</title>
|
||||
<xi:include href="xml/gtkeventcontroller.xml" />
|
||||
<xi:include href="xml/gtkeventcontrollerkey.xml" />
|
||||
<xi:include href="xml/gtkeventcontrollerscroll.xml" />
|
||||
<xi:include href="xml/gtkeventcontrollermotion.xml" />
|
||||
<xi:include href="xml/gtkgesture.xml" />
|
||||
<xi:include href="xml/gtkgesturesingle.xml" />
|
||||
<xi:include href="xml/gtkgesturedrag.xml" />
|
||||
@@ -313,7 +310,6 @@
|
||||
<xi:include href="xml/gtkgestureswipe.xml" />
|
||||
<xi:include href="xml/gtkgesturerotate.xml" />
|
||||
<xi:include href="xml/gtkgesturezoom.xml" />
|
||||
<xi:include href="xml/gtkgesturestylus.xml" />
|
||||
<xi:include href="xml/gtkpadcontroller.xml" />
|
||||
</chapter>
|
||||
|
||||
@@ -437,6 +433,7 @@
|
||||
<xi:include href="osx.sgml" />
|
||||
<xi:include href="broadway.xml" />
|
||||
<xi:include href="wayland.xml" />
|
||||
<xi:include href="mir.xml" />
|
||||
</part>
|
||||
|
||||
<xi:include href="glossary.xml" />
|
||||
@@ -497,10 +494,6 @@
|
||||
<title>Index of new symbols in 3.22</title>
|
||||
<xi:include href="xml/api-index-3.22.xml"><xi:fallback /></xi:include>
|
||||
</index>
|
||||
<index id="api-index-3-24" role="3.24">
|
||||
<title>Index of new symbols in 3.24</title>
|
||||
<xi:include href="xml/api-index-3.24.xml"><xi:fallback /></xi:include>
|
||||
</index>
|
||||
|
||||
<xi:include href="xml/annotation-glossary.xml"><xi:fallback /></xi:include>
|
||||
|
||||
|
@@ -1,3 +1,6 @@
|
||||
|
||||
<INCLUDE>gtk/gtk.h</INCLUDE>
|
||||
|
||||
<SECTION>
|
||||
<FILE>gtkaboutdialog</FILE>
|
||||
<TITLE>GtkAboutDialog</TITLE>
|
||||
@@ -1402,10 +1405,6 @@ gtk_file_chooser_get_preview_filename
|
||||
gtk_file_chooser_get_preview_uri
|
||||
gtk_file_chooser_set_extra_widget
|
||||
gtk_file_chooser_get_extra_widget
|
||||
gtk_file_chooser_add_choice
|
||||
gtk_file_chooser_remove_choice
|
||||
gtk_file_chooser_set_choice
|
||||
gtk_file_chooser_get_choice
|
||||
gtk_file_chooser_add_filter
|
||||
gtk_file_chooser_remove_filter
|
||||
gtk_file_chooser_list_filters
|
||||
@@ -1666,11 +1665,6 @@ GtkFontFilterFunc
|
||||
gtk_font_chooser_set_filter_func
|
||||
gtk_font_chooser_set_font_map
|
||||
gtk_font_chooser_get_font_map
|
||||
gtk_font_chooser_set_level
|
||||
gtk_font_chooser_get_level
|
||||
gtk_font_chooser_get_font_features
|
||||
gtk_font_chooser_set_language
|
||||
gtk_font_chooser_get_language
|
||||
|
||||
<SUBSECTION Standard>
|
||||
GtkFontChooserIface
|
||||
@@ -2494,8 +2488,6 @@ gtk_info_bar_get_action_area
|
||||
gtk_info_bar_get_content_area
|
||||
gtk_info_bar_get_show_close_button
|
||||
gtk_info_bar_set_show_close_button
|
||||
gtk_info_bar_get_revealed
|
||||
gtk_info_bar_set_revealed
|
||||
|
||||
<SUBSECTION Standard>
|
||||
GTK_TYPE_INFO_BAR
|
||||
@@ -7090,6 +7082,7 @@ GtkPrintOperationPrivate
|
||||
|
||||
|
||||
<SECTION>
|
||||
<INCLUDE>gtk/gtkunixprint.h</INCLUDE>
|
||||
<FILE>gtkprintunixdialog</FILE>
|
||||
<TITLE>GtkPrintUnixDialog</TITLE>
|
||||
GtkPrintUnixDialog
|
||||
@@ -7436,6 +7429,7 @@ gtk_print_context_get_type
|
||||
|
||||
|
||||
<SECTION>
|
||||
<INCLUDE>gtk/gtkunixprint.h</INCLUDE>
|
||||
<FILE>gtkprintjob</FILE>
|
||||
<TITLE>GtkPrintJob</TITLE>
|
||||
GtkPrintJob
|
||||
@@ -7487,6 +7481,7 @@ gtk_print_job_get_type
|
||||
|
||||
|
||||
<SECTION>
|
||||
<INCLUDE>gtk/gtkunixprint.h</INCLUDE>
|
||||
<FILE>gtkpagesetupunixdialog</FILE>
|
||||
<TITLE>GtkPageSetupUnixDialog</TITLE>
|
||||
GtkPageSetupUnixDialog
|
||||
@@ -8264,63 +8259,6 @@ GtkEventControllerPriv
|
||||
gtk_event_controller_get_type
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>gtkeventcontrollerscroll</FILE>
|
||||
<TITLE>GtkEventControllerScroll</TITLE>
|
||||
GtkEventControllerScroll
|
||||
GtkEventControllerScrollFlags
|
||||
gtk_event_controller_scroll_new
|
||||
gtk_event_controller_scroll_set_flags
|
||||
gtk_event_controller_scroll_get_flags
|
||||
|
||||
<SUBSECTION Standard>
|
||||
GTK_TYPE_EVENT_CONTROLLER_SCROLL
|
||||
GTK_EVENT_CONTROLLER_SCROLL
|
||||
GTK_EVENT_CONTROLLER_SCROLL_CLASS
|
||||
GTK_IS_EVENT_CONTROLLER_SCROLL
|
||||
GTK_IS_EVENT_CONTROLLER_SCROLL_CLASS
|
||||
GTK_EVENT_CONTROLLER_SCROLL_GET_CLASS
|
||||
|
||||
<SUBSECTION Private>
|
||||
gtk_event_controller_scroll_get_type
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>gtkeventcontrollermotion</FILE>
|
||||
<TITLE>GtkEventControllerMotion</TITLE>
|
||||
GtkEventControllerMotion
|
||||
gtk_event_controller_motion_new
|
||||
|
||||
<SUBSECTION Standard>
|
||||
GTK_TYPE_EVENT_CONTROLLER_MOTION
|
||||
GTK_EVENT_CONTROLLER_MOTION
|
||||
GTK_EVENT_CONTROLLER_MOTION_CLASS
|
||||
GTK_IS_EVENT_CONTROLLER_MOTION
|
||||
GTK_IS_EVENT_CONTROLLER_MOTION_CLASS
|
||||
GTK_EVENT_CONTROLLER_MOTION_GET_CLASS
|
||||
|
||||
<SUBSECTION Private>
|
||||
gtk_event_controller_motion_get_type
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>gtkeventcontrollerkey</FILE>
|
||||
<TITLE>GtkEventControllerKey</TITLE>
|
||||
GtkEventControllerKey
|
||||
gtk_event_controller_key_new
|
||||
|
||||
<SUBSECTION Standard>
|
||||
GTK_TYPE_EVENT_CONTROLLER_KEY
|
||||
GTK_EVENT_CONTROLLER_KEY
|
||||
GTK_EVENT_CONTROLLER_KEY_CLASS
|
||||
GTK_IS_EVENT_CONTROLLER_KEY
|
||||
GTK_IS_EVENT_CONTROLLER_KEY_CLASS
|
||||
GTK_EVENT_CONTROLLER_KEY_GET_CLASS
|
||||
|
||||
<SUBSECTION Private>
|
||||
gtk_event_controller_key_get_type
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>gtkgesture</FILE>
|
||||
<TITLE>GtkGesture</TITLE>
|
||||
@@ -8545,30 +8483,6 @@ GTK_PAD_CONTROLLER_GET_CLASS
|
||||
gtk_pad_controller_get_type
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>gtkgesturestylus</FILE>
|
||||
<TITLE>GtkGestureStylus</TITLE>
|
||||
GtkGestureStylus
|
||||
|
||||
gtk_gesture_stylus_new
|
||||
gtk_gesture_stylus_get_axis
|
||||
gtk_gesture_stylus_get_axes
|
||||
gtk_gesture_stylus_get_backlog
|
||||
gtk_gesture_stylus_get_device_tool
|
||||
|
||||
<SUBSECTION Standard>
|
||||
GTK_TYPE_GESTURE_STYLUS
|
||||
GTK_GESTURE_STYLUS
|
||||
GTK_GESTURE_STYLUS_CLASS
|
||||
GTK_IS_GESTURE_STYLUS
|
||||
GTK_IS_GESTURE_STYLUS_CLASS
|
||||
GTK_GESTURE_STYLUS_GET_CLASS
|
||||
GtkGestureStylusClass
|
||||
|
||||
<SUBSECTION Private>
|
||||
gtk_gesture_stylus_get_type
|
||||
</SECTION>
|
||||
|
||||
<SECTION>
|
||||
<FILE>gtkstacksidebar</FILE>
|
||||
GtkStackSidebar
|
||||
|
@@ -65,9 +65,6 @@ gtk_entry_completion_get_type
|
||||
gtk_entry_get_type
|
||||
gtk_event_box_get_type
|
||||
gtk_event_controller_get_type
|
||||
gtk_event_controller_key_get_type
|
||||
gtk_event_controller_motion_get_type
|
||||
gtk_event_controller_scroll_get_type
|
||||
gtk_expander_get_type
|
||||
gtk_file_chooser_button_get_type
|
||||
gtk_file_chooser_dialog_get_type
|
||||
@@ -91,7 +88,6 @@ gtk_gesture_multi_press_get_type
|
||||
gtk_gesture_pan_get_type
|
||||
gtk_gesture_rotate_get_type
|
||||
gtk_gesture_single_get_type
|
||||
gtk_gesture_stylus_get_type
|
||||
gtk_gesture_swipe_get_type
|
||||
gtk_gesture_zoom_get_type
|
||||
gtk_gl_area_get_type
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user