diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 000000000..fc6daf739 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,5 @@ +.git +target +libphosh-rs +phosh/_build +*.log diff --git a/.github/Dockerfile b/.github/Dockerfile index 707da5203..dec715b69 100644 --- a/.github/Dockerfile +++ b/.github/Dockerfile @@ -2,32 +2,56 @@ FROM registry.gitlab.gnome.org/world/phosh/phosh/debian:v0.0.2025-11-06 -ARG PHOSH_REMOTE=https://gitlab.gnome.org/World/Phosh/phosh.git -ARG PHOSH_REF=v0.51.0 +# GTK with the custom surface / GtkPlain work that the GTK4 phosh build needs. +# Pinned to a commit rather than a branch so image builds stay reproducible. +# Bump this together with the phosh/ subtree in the phrog repo. +ARG GTK_REMOTE=https://gitlab.gnome.org/guidog/gtk.git +ARG GTK_REF=a4cba2e3c84fafc4745c7d4cacbe062b32774e0e -ARG PHOC_REMOTE=https://gitlab.gnome.org/World/Phosh/phoc.git -ARG PHOC_REF=v0.51.0 +# The shared and embedded modes use the same checked-in Phosh subtree, +# including downstream GTK4 compatibility fixes. +# The custom GTK in /usr/local must win over the distro GTK for building and +# running phrog. phoc comes from the base image (phosh's own CI image ships +# it); building it here would drag in wlroots, which Debian does not package. +ENV PKG_CONFIG_PATH=/usr/local/lib/pkgconfig +ENV LD_LIBRARY_PATH=/usr/local/lib + +# Keep dependency installation and native builds in separate layers so a Phosh +# setup failure does not discard a successfully built custom GTK. RUN export DEBIAN_FRONTEND=noninteractive \ && apt-get -y update \ && apt-get -y install --no-install-recommends \ - curl \ - dh-cargo \ - foot \ - wf-recorder \ - && eatmydata git clone ${PHOC_REMOTE} \ - && cd phoc \ - && git checkout ${PHOC_REF} \ - && DEB_BUILD_PROFILES=pkg.phoc.embedwlroots eatmydata apt-get --no-install-recommends -y build-dep . \ - && eatmydata meson setup --prefix=/usr -Dembed-wlroots=enabled _build . \ - && eatmydata meson compile -C _build \ - && eatmydata meson install -C _build \ - && cd .. \ - && eatmydata git clone ${PHOSH_REMOTE} \ - && cd phosh \ - && git checkout ${PHOSH_REF} \ + curl dh-cargo foot wf-recorder \ + meson ninja-build pkg-config glslc \ + libglib2.0-dev libgdk-pixbuf-2.0-dev libpango1.0-dev libcairo2-dev \ + libgraphene-1.0-dev libepoxy-dev libegl1-mesa-dev libwayland-dev \ + wayland-protocols libxkbcommon-dev iso-codes shared-mime-info + +RUN eatmydata git clone ${GTK_REMOTE} /gtk \ + && git -C /gtk checkout ${GTK_REF} + +RUN apt-get -y install --no-install-recommends libdrm-dev libgbm-dev + +RUN eatmydata meson setup --prefix=/usr/local -Dlibdir=lib \ + -Dbuild-tests=false -Dbuild-demos=false -Dbuild-examples=false \ + -Ddocumentation=false -Dintrospection=disabled -Dmedia-gstreamer=disabled \ + /gtk/_build /gtk \ + && eatmydata meson compile -C /gtk/_build \ + && eatmydata meson install -C /gtk/_build + +COPY phosh /phosh + +RUN export DEBIAN_FRONTEND=noninteractive \ + && apt-get -y update \ + && cd /phosh \ && eatmydata apt-get --no-install-recommends -y build-dep . \ - && eatmydata meson setup --prefix=/usr -Dbindings-lib=true _build . \ - && eatmydata meson compile -C _build \ - && eatmydata meson install -C _build \ + && apt-get --no-install-recommends -y install \ + libgcr-4-dev libgnome-desktop-4-dev libgnome-bg-4-dev phoc + +RUN eatmydata meson setup --prefix=/usr -Dbindings-lib=true -Dtests=false \ + -Dphoc_tests=disabled -Dlockscreen-plugins=false -Dquick-setting-plugins=false \ + /phosh/_build /phosh \ + && eatmydata meson compile -C /phosh/_build \ + && eatmydata meson install -C /phosh/_build \ && eatmydata apt-get clean diff --git a/.github/workflows/alpine.yml b/.github/workflows/alpine.yml index da9f5c678..12a1dce11 100644 --- a/.github/workflows/alpine.yml +++ b/.github/workflows/alpine.yml @@ -21,7 +21,8 @@ permissions: jobs: alpine: - if: inputs.release_mode == 'pr' || inputs.release_mode == 'tag' || github.event_name != 'pull_request' || (contains(github.event.pull_request.labels.*.name, 'apk') && !startsWith(github.event.pull_request.head.ref || '', 'release/v')) + # Re-enable with a distro repository providing the pinned GTK4/Phosh stack. + if: ${{ false }} runs-on: ubuntu-24.04${{ matrix.arch == 'aarch64' && '-arm' || '' }} strategy: fail-fast: false diff --git a/.github/workflows/build-image.yml b/.github/workflows/build-image.yml index 5dc489de8..ca4bbb0fc 100644 --- a/.github/workflows/build-image.yml +++ b/.github/workflows/build-image.yml @@ -28,11 +28,11 @@ jobs: id: hash run: | set -uexo pipefail - echo "value=${{ hashFiles('.github/Dockerfile') }}" >> $GITHUB_OUTPUT + echo "value=${{ hashFiles('.github/Dockerfile', '.dockerignore', 'phosh/**') }}" >> $GITHUB_OUTPUT - name: Build and push uses: docker/build-push-action@v6 with: - context: .github/ + context: . file: .github/Dockerfile push: true tags: ghcr.io/samcday/phrog-ci:${{ steps.hash.outputs.value }} diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 72546a29d..90bf5e3e4 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -9,14 +9,14 @@ on: type: boolean default: false push: - branches: [main] + branches: [gtk4] pull_request_target: - branches: [main, vendor-base] + branches: [gtk4, main, vendor-base] types: [labeled, opened, reopened, synchronize] workflow_dispatch: {} concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.head.sha || github.sha }} + group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.event.pull_request.head.sha || github.sha }} cancel-in-progress: true env: @@ -42,7 +42,7 @@ jobs: id: hash run: | set -uexo pipefail - echo "value=${{ hashFiles('.github/Dockerfile') }}" >> $GITHUB_OUTPUT + echo "value=${{ hashFiles('.github/Dockerfile', '.dockerignore', 'phosh/**') }}" >> $GITHUB_OUTPUT build: if: inputs.release_mode || github.event_name != 'pull_request_target' || !startsWith(github.event.pull_request.head.ref || '', 'release/v') needs: image-hash @@ -99,15 +99,15 @@ jobs: - name: Lint run: | ${{ matrix.cargo }} clippy --locked --all-targets --no-deps --verbose -- -D warnings + - name: Check Rust/C ABI + if: matrix.libphosh == 'system' + run: cargo test --locked --manifest-path libphosh-rs/Cargo.toml -p libphosh-sys --test abi - name: Test embedding build support if: matrix.libphosh == 'bundled' run: cargo vendored-phosh test --locked --manifest-path libphosh-rs/Cargo.toml -p libphosh-sys --test native_source - - name: Verify registry package - if: matrix.libphosh == 'system' - run: cargo package --locked --no-verify - name: Lint (fmt) run: | - ${{ matrix.cargo }} fmt --all --check + ${{ matrix.cargo }} fmt -p phrog -p xtask --check - uses: actions/upload-artifact@v4 with: name: x86-64-debug${{ matrix.libphosh == 'bundled' && '-bundled' || '' }} diff --git a/.github/workflows/debian-unstable.yml b/.github/workflows/debian-unstable.yml index 58087e7e8..c78025a05 100644 --- a/.github/workflows/debian-unstable.yml +++ b/.github/workflows/debian-unstable.yml @@ -20,7 +20,8 @@ concurrency: jobs: build: - if: inputs.release_mode == 'pr' || inputs.release_mode == 'tag' || github.event_name != 'pull_request' || (contains(github.event.pull_request.labels.*.name, 'debs') && !startsWith(github.event.pull_request.head.ref || '', 'release/v')) + # Re-enable with a distro repository providing the pinned GTK4/Phosh stack. + if: ${{ false }} name: Build unstable .debs runs-on: ${{ matrix.runner }} container: debian:unstable diff --git a/.github/workflows/next-rc-on-merge.yml b/.github/workflows/next-rc-on-merge.yml index dc6867379..e0b7be03e 100644 --- a/.github/workflows/next-rc-on-merge.yml +++ b/.github/workflows/next-rc-on-merge.yml @@ -10,7 +10,7 @@ permissions: jobs: tag-release-pr: - if: github.event.pull_request.merged == true && github.event.pull_request.head.repo.full_name == github.repository && startsWith(github.event.pull_request.head.ref, 'release/v') + if: github.event.pull_request.base.ref == 'main' && github.event.pull_request.merged == true && github.event.pull_request.head.repo.full_name == github.repository && startsWith(github.event.pull_request.head.ref, 'release/v') runs-on: ubuntu-latest steps: - name: Require release automation token @@ -66,7 +66,7 @@ jobs: -f sha="$MERGE_SHA" >/dev/null next-rc: - if: github.event.pull_request.merged == true && github.event.pull_request.head.repo.full_name == github.repository && startsWith(github.event.pull_request.head.ref, 'release/v') + if: github.event.pull_request.base.ref == 'main' && github.event.pull_request.merged == true && github.event.pull_request.head.repo.full_name == github.repository && startsWith(github.event.pull_request.head.ref, 'release/v') runs-on: ubuntu-latest steps: - name: Parse next rc version from merged release branch diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 702827895..976c5df40 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -14,6 +14,8 @@ permissions: jobs: gate: + # GTK4 snapshots are CI artifacts; stable/RC publication belongs to main. + if: ${{ false }} runs-on: ubuntu-latest outputs: enabled: ${{ steps.detect.outputs.enabled }} diff --git a/.packit.yaml b/.packit.yaml index 6ff7d8a34..a4d7b62b2 100644 --- a/.packit.yaml +++ b/.packit.yaml @@ -16,35 +16,6 @@ actions: - cargo vendor --locked --versioned-dirs vendor - tar -H pax --create --gzip --sort=name --owner=0 --group=0 --numeric-owner --file phrog-vendor.tar.gz vendor -jobs: - # Build PRs against the non-vendor path, leaning on the gtk3-rs RPMs - # resurrected in samcday/phrog-nightly. - - job: copr_build - manual_trigger: true - trigger: pull_request - additional_repos: - - copr://samcday/phosh-nightly - - copr://samcday/phrog-nightly - targets: - fedora-41-aarch64: &opts - without_opts: - - vendor - fedora-41-x86_64: *opts - fedora-rawhide-aarch64: *opts - fedora-rawhide-x86_64: *opts - - # Build main commits in samcday/phrog-nightly COPR via the vendor path, - # mirroring what ships in Fedora dist-git. - - job: copr_build - trigger: commit - branch: main - owner: samcday - project: phrog-nightly - additional_repos: - - copr://samcday/phosh-nightly - - # Build tagged releases in samcday/phrog COPR via the vendor path. - - job: copr_build - trigger: release - owner: samcday - project: phrog +# GTK4 depends on unreleased GTK/Phosh. Existing stable and nightly COPRs +# remain GTK3 channels managed from main; GTK4 currently produces CI artifacts. +jobs: [] diff --git a/Cargo.lock b/Cargo.lock index e0e27bc43..c22543092 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -212,29 +212,6 @@ dependencies = [ "syn 2.0.118", ] -[[package]] -name = "atk" -version = "0.18.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "241b621213072e993be4f6f3a9e4b45f65b7e6faad43001be957184b7bb1824b" -dependencies = [ - "atk-sys", - "glib 0.18.5", - "libc", -] - -[[package]] -name = "atk-sys" -version = "0.18.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5e48b684b0ca77d2bbadeef17424c2ea3c897d44d566a1617e7e8f30614d086" -dependencies = [ - "glib-sys 0.18.1", - "gobject-sys 0.18.0", - "libc", - "system-deps 6.2.2", -] - [[package]] name = "atomic-waker" version = "1.1.2" @@ -280,27 +257,25 @@ checksum = "72f5acc6cb2ba439de613abc23857ec3d78374d8ed5ac84e9d11336e87da8649" [[package]] name = "cairo-rs" -version = "0.18.5" +version = "0.22.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ca26ef0159422fb77631dc9d17b102f253b876fe1586b03b803e63a309b4ee2" +checksum = "df683f1d30b457964673a5541a4603208ef95ab6873d2a55871895cf310f3b56" dependencies = [ "bitflags", "cairo-sys-rs", - "glib 0.18.5", + "glib", "libc", - "once_cell", - "thiserror", ] [[package]] name = "cairo-sys-rs" -version = "0.18.2" +version = "0.22.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "685c9fa8e590b8b3d678873528d83411db17242a73fccaed827770ea0fedda51" +checksum = "ee548131103ad8f698c6725669647b9c757b3b66992dd6a026037596417bee21" dependencies = [ - "glib-sys 0.18.1", + "glib-sys", "libc", - "system-deps 6.2.2", + "system-deps 9.0.0", ] [[package]] @@ -313,16 +288,6 @@ dependencies = [ "shlex", ] -[[package]] -name = "cfg-expr" -version = "0.15.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02" -dependencies = [ - "smallvec", - "target-lexicon 0.12.16", -] - [[package]] name = "cfg-expr" version = "0.20.8" @@ -330,7 +295,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fb693542bcafa528e198be0ebd9d3632ca5b7c93dbe7237460e199910835997c" dependencies = [ "smallvec", - "target-lexicon 0.13.5", + "target-lexicon", ] [[package]] @@ -373,7 +338,7 @@ version = "4.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f2ce8604710f6733aa641a2b3731eaa1e8b3d9973d5e3565da11800813f997a9" dependencies = [ - "heck 0.5.0", + "heck", "proc-macro2", "quote", "syn 2.0.118", @@ -580,61 +545,60 @@ dependencies = [ ] [[package]] -name = "gdk" -version = "0.18.2" +name = "gdk-pixbuf" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9f245958c627ac99d8e529166f9823fb3b838d1d41fd2b297af3075093c2691" +checksum = "25f420376dbee041b2db374ce4573892a36222bb3f6c0c43e24f0d67eae9b646" dependencies = [ - "cairo-rs", - "gdk-pixbuf", - "gdk-sys", - "gio 0.18.4", - "glib 0.18.5", + "gdk-pixbuf-sys", + "gio", + "glib", "libc", - "pango", ] [[package]] -name = "gdk-pixbuf" -version = "0.18.5" +name = "gdk-pixbuf-sys" +version = "0.22.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50e1f5f1b0bfb830d6ccc8066d18db35c487b1b2b1e8589b5dfe9f07e8defaec" +checksum = "9d5209294ba3775f9b650bf78bfadeba4332089f2329b3e2f6ce0a4957a45bff" dependencies = [ - "gdk-pixbuf-sys", - "gio 0.18.4", - "glib 0.18.5", + "gio-sys", + "glib-sys", + "gobject-sys", "libc", - "once_cell", + "system-deps 9.0.0", ] [[package]] -name = "gdk-pixbuf-sys" -version = "0.18.0" +name = "gdk4" +version = "0.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9839ea644ed9c97a34d129ad56d38a25e6756f99f3a88e15cd39c20629caf7" +checksum = "d81e2a6c6ecba2aab60633a98df1868b03fa0bfdce8105edc27c1bccf71f0e39" dependencies = [ - "gio-sys 0.18.1", - "glib-sys 0.18.1", - "gobject-sys 0.18.0", + "cairo-rs", + "gdk-pixbuf", + "gdk4-sys", + "gio", + "glib", "libc", - "system-deps 6.2.2", + "pango", ] [[package]] -name = "gdk-sys" -version = "0.18.2" +name = "gdk4-sys" +version = "0.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c2d13f38594ac1e66619e188c6d5a1adb98d11b2fcf7894fc416ad76aa2f3f7" +checksum = "3d8f608d8d7d229975c4d0d026f5d3071598c4ddab3c5262b0a31840fec78d13" dependencies = [ "cairo-sys-rs", "gdk-pixbuf-sys", - "gio-sys 0.18.1", - "glib-sys 0.18.1", - "gobject-sys 0.18.0", + "gio-sys", + "glib-sys", + "gobject-sys", "libc", "pango-sys", "pkg-config", - "system-deps 6.2.2", + "system-deps 7.0.8", ] [[package]] @@ -672,35 +636,16 @@ dependencies = [ [[package]] name = "gio" -version = "0.18.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4fc8f532f87b79cbc51a79748f16a6828fb784be93145a322fa14d06d354c73" -dependencies = [ - "futures-channel", - "futures-core", - "futures-io", - "futures-util", - "gio-sys 0.18.1", - "glib 0.18.5", - "libc", - "once_cell", - "pin-project-lite", - "smallvec", - "thiserror", -] - -[[package]] -name = "gio" -version = "0.21.5" +version = "0.22.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5ff48bf600c68b476e61dc6b7c762f2f4eb91deef66583ba8bb815c30b5811a" +checksum = "b399f4650bb52c051f3fdf49a234e8a27ab5725c8cd774556c55eee64b2c0350" dependencies = [ "futures-channel", "futures-core", "futures-io", "futures-util", - "gio-sys 0.21.5", - "glib 0.21.5", + "gio-sys", + "glib", "libc", "pin-project-lite", "smallvec", @@ -708,35 +653,22 @@ dependencies = [ [[package]] name = "gio-sys" -version = "0.18.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37566df850baf5e4cb0dfb78af2e4b9898d817ed9263d1090a2df958c64737d2" -dependencies = [ - "glib-sys 0.18.1", - "gobject-sys 0.18.0", - "libc", - "system-deps 6.2.2", - "winapi", -] - -[[package]] -name = "gio-sys" -version = "0.21.5" +version = "0.22.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0071fe88dba8e40086c8ff9bbb62622999f49628344b1d1bf490a48a29d80f22" +checksum = "6c28739f914c15b87a9856000bed9cbd5b3a8afbca5e982d9a299e1601422cb5" dependencies = [ - "glib-sys 0.21.5", - "gobject-sys 0.21.5", + "glib-sys", + "gobject-sys", "libc", - "system-deps 7.0.8", + "system-deps 9.0.0", "windows-sys", ] [[package]] name = "glib" -version = "0.18.5" +version = "0.22.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "233daaf6e83ae6a12a52055f568f9d7cf4671dabb78ff9560ab6da230ce00ee5" +checksum = "18b9b8d350db41f690ec1b87109f202782748bbd8ab2f2ede17cb40d29e2838c" dependencies = [ "bitflags", "futures-channel", @@ -744,93 +676,42 @@ dependencies = [ "futures-executor", "futures-task", "futures-util", - "gio-sys 0.18.1", - "glib-macros 0.18.5", - "glib-sys 0.18.1", - "gobject-sys 0.18.0", + "gio-sys", + "glib-macros", + "glib-sys", + "gobject-sys", "libc", "log", "memchr", - "once_cell", - "smallvec", - "thiserror", -] - -[[package]] -name = "glib" -version = "0.21.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16de123c2e6c90ce3b573b7330de19be649080ec612033d397d72da265f1bd8b" -dependencies = [ - "bitflags", - "futures-channel", - "futures-core", - "futures-executor", - "futures-task", - "futures-util", - "gio-sys 0.21.5", - "glib-macros 0.21.5", - "glib-sys 0.21.5", - "gobject-sys 0.21.5", - "libc", - "memchr", "smallvec", ] [[package]] name = "glib-build-tools" -version = "0.21.0" +version = "0.22.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86aebe63bb050d4918cb1d629880cb35fcba7ccda6f6fc0ec1beffdaa1b9d5c3" -dependencies = [ - "gio 0.21.5", -] +checksum = "f9871f38b67853c358b8190f77b9f878eb27d933a950f1045b244c4559a9f5f0" [[package]] name = "glib-macros" -version = "0.18.5" +version = "0.22.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bb0228f477c0900c880fd78c8759b95c7636dbd7842707f49e132378aa2acdc" +checksum = "c9597c68fa7bdf4154a3079642cd21c4dccac0b0bdd2897d82861523bf91e7b9" dependencies = [ - "heck 0.4.1", - "proc-macro-crate 2.0.2", - "proc-macro-error", + "heck", "proc-macro2", "quote", - "syn 2.0.118", -] - -[[package]] -name = "glib-macros" -version = "0.21.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf59b675301228a696fe01c3073974643365080a76cc3ed5bc2cbc466ad87f17" -dependencies = [ - "heck 0.5.0", - "proc-macro-crate 3.5.0", - "proc-macro2", - "quote", - "syn 2.0.118", -] - -[[package]] -name = "glib-sys" -version = "0.18.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "063ce2eb6a8d0ea93d2bf8ba1957e78dbab6be1c2220dd3daca57d5a9d869898" -dependencies = [ - "libc", - "system-deps 6.2.2", + "syn 3.0.6", ] [[package]] name = "glib-sys" -version = "0.21.5" +version = "0.22.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d95e1a3a19ae464a7286e14af9a90683c64d70c02532d88d87ce95056af3e6c" +checksum = "99b38907e67e40dec9b60f858bcada952598719cb512a13eb13d6cdcd16f8295" dependencies = [ "libc", - "system-deps 7.0.8", + "system-deps 9.0.0", ] [[package]] @@ -841,24 +722,34 @@ checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" [[package]] name = "gobject-sys" -version = "0.18.0" +version = "0.22.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0850127b514d1c4a4654ead6dedadb18198999985908e6ffe4436f53c785ce44" +checksum = "07595c9ba696bd9819cb6a8df39f08078f3dd679508fe052dd558492c2053834" dependencies = [ - "glib-sys 0.18.1", + "glib-sys", "libc", - "system-deps 6.2.2", + "system-deps 9.0.0", ] [[package]] -name = "gobject-sys" -version = "0.21.5" +name = "graphene-rs" +version = "0.22.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dca35da0d19a18f4575f3cb99fe1c9e029a2941af5662f326f738a21edaf294" +checksum = "eb856b9c558971c3f13ab692358926da710b046932a4e087aedcc35b040d7dff" dependencies = [ - "glib-sys 0.21.5", + "glib", + "graphene-sys", +] + +[[package]] +name = "graphene-sys" +version = "0.22.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97842c7543828f98aa5583aa54fcda28aa84fa2b0f8c556142177f7bbb638057" +dependencies = [ + "glib-sys", "libc", - "system-deps 7.0.8", + "system-deps 9.0.0", ] [[package]] @@ -873,57 +764,88 @@ dependencies = [ ] [[package]] -name = "gtk" -version = "0.18.2" +name = "gsk4" +version = "0.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd56fb197bfc42bd5d2751f4f017d44ff59fbb58140c6b49f9b3b2bdab08506a" +checksum = "b867be1c5f14dcb8f552c0eff6e9a9b1da5f8b43943e8efc3a63c889d84952ff" dependencies = [ - "atk", "cairo-rs", - "field-offset", - "futures-channel", - "gdk", - "gdk-pixbuf", - "gio 0.18.4", - "glib 0.18.5", - "gtk-sys", - "gtk3-macros", + "gdk4", + "glib", + "graphene-rs", + "gsk4-sys", "libc", "pango", - "pkg-config", ] [[package]] -name = "gtk-sys" -version = "0.18.2" +name = "gsk4-sys" +version = "0.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f29a1c21c59553eb7dd40e918be54dccd60c52b049b75119d5d96ce6b624414" +checksum = "5b7c7eb2e681ee896646cfb8872b431f24d09f53ba9283289d9b10caa6707088" dependencies = [ - "atk-sys", "cairo-sys-rs", - "gdk-pixbuf-sys", - "gdk-sys", - "gio-sys 0.18.1", - "glib-sys 0.18.1", - "gobject-sys 0.18.0", + "gdk4-sys", + "glib-sys", + "gobject-sys", + "graphene-sys", "libc", "pango-sys", - "system-deps 6.2.2", + "system-deps 7.0.8", +] + +[[package]] +name = "gtk4" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98a0a0466484f64b07b5b8184d43fa46be78eb0b8e04ae4e179af31d770b76d9" +dependencies = [ + "cairo-rs", + "field-offset", + "futures-channel", + "gdk-pixbuf", + "gdk4", + "gio", + "glib", + "graphene-rs", + "gsk4", + "gtk4-macros", + "gtk4-sys", + "libc", + "pango", ] [[package]] -name = "gtk3-macros" -version = "0.18.2" +name = "gtk4-macros" +version = "0.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52ff3c5b21f14f0736fed6dcfc0bfb4225ebf5725f3c0209edeec181e4d73e9d" +checksum = "5ac7179400a36a04de039c24206bb841c5596992b907b43b23ee8d5bdc40d00e" dependencies = [ - "proc-macro-crate 1.3.1", - "proc-macro-error", + "proc-macro-crate", "proc-macro2", "quote", "syn 2.0.118", ] +[[package]] +name = "gtk4-sys" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82b8f954786af0b1984425c4446b77f5ff6594346181316be3f850caab1c6f01" +dependencies = [ + "cairo-sys-rs", + "gdk-pixbuf-sys", + "gdk4-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "graphene-sys", + "gsk4-sys", + "libc", + "pango-sys", + "system-deps 7.0.8", +] + [[package]] name = "hashbrown" version = "0.15.5" @@ -939,12 +861,6 @@ version = "0.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a" -[[package]] -name = "heck" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" - [[package]] name = "heck" version = "0.5.0" @@ -1023,55 +939,49 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" [[package]] -name = "libc" -version = "0.2.186" +name = "libadwaita" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66" - -[[package]] -name = "libhandy" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "215ba3371132b1535b8359b99ada6d2a538d53fdea498da91b4d62e1d0289dad" +checksum = "85b9900e67182a4b5b1f157b448d94f0715c8b9770cce21cf000801917f53bfa" dependencies = [ - "gdk", - "gdk-pixbuf", - "gio 0.18.4", - "glib 0.18.5", - "gtk", - "libc", - "libhandy-sys", + "gdk4", + "gio", + "glib", + "gtk4", + "libadwaita-sys", "pango", ] [[package]] -name = "libhandy-sys" -version = "0.11.1" +name = "libadwaita-sys" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d814ea1e409715aef1dd9885994cb6801f52129ba2898bfe74591b9547b998ad" +checksum = "28d3c27642b389852aa99341bd4a4c19ec6f8a2b63ebdd7f5ba1952198079ccd" dependencies = [ - "gdk-pixbuf-sys", - "gdk-sys", - "gio-sys 0.18.1", - "glib-sys 0.18.1", - "gobject-sys 0.18.0", - "gtk-sys", + "gdk4-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "gtk4-sys", "libc", "pango-sys", - "pkg-config", - "system-deps 6.2.2", + "system-deps 7.0.8", ] +[[package]] +name = "libc" +version = "0.2.186" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66" + [[package]] name = "libphosh" version = "0.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2a115470102198de201dfdeb81ee085fe1f890bf7c022449eda6c5218cbf26c" dependencies = [ - "gdk", - "gio 0.18.4", - "glib 0.18.5", - "gtk", + "gdk4", + "gio", + "glib", + "gtk4", "libc", "libphosh-sys", ] @@ -1079,19 +989,17 @@ dependencies = [ [[package]] name = "libphosh-sys" version = "0.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a836446772e32d3e9d15c236745e22b1f84436dbcecbf740a37469535298456d" dependencies = [ - "gdk-pixbuf-sys", - "gdk-sys", - "gio-sys 0.18.1", - "glib-sys 0.18.1", - "gobject-sys 0.18.0", - "gtk-sys", + "gdk4-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "gtk4-sys", "libc", - "libhandy-sys", - "pango-sys", + "pkg-config", + "shell-words", "system-deps 7.0.8", + "tempfile", ] [[package]] @@ -1208,27 +1116,25 @@ dependencies = [ [[package]] name = "pango" -version = "0.18.3" +version = "0.22.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ca27ec1eb0457ab26f3036ea52229edbdb74dee1edd29063f5b9b010e7ebee4" +checksum = "0b2022dbbd82e1c42bd950a6f1df9b98c796e725dce5ec275e03cbf9772e4efa" dependencies = [ - "gio 0.18.4", - "glib 0.18.5", - "libc", - "once_cell", + "gio", + "glib", "pango-sys", ] [[package]] name = "pango-sys" -version = "0.18.0" +version = "0.22.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "436737e391a843e5933d6d9aa102cb126d501e815b83601365a948a518555dc5" +checksum = "ca02d64761b74d56cdd4b437db6d73dc95e6c0d40f27e1c707952c0f09052948" dependencies = [ - "glib-sys 0.18.1", - "gobject-sys 0.18.0", + "glib-sys", + "gobject-sys", "libc", - "system-deps 6.2.2", + "system-deps 9.0.0", ] [[package]] @@ -1247,18 +1153,19 @@ dependencies = [ "clap", "futures-util", "gettext-rs", - "glib 0.18.5", + "glib", "glib-build-tools", "glob", "greetd_ipc", - "gtk", + "gtk4", "input-event-codes", "lazy_static", - "libhandy", + "libadwaita", "libphosh", "log", "nix", "serde", + "signal-hook", "tempfile", "wayland-client", "wayland-protocols", @@ -1286,9 +1193,9 @@ dependencies = [ [[package]] name = "pkg-config" -version = "0.3.33" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19f132c84eca552bf34cab8ec81f1c1dcc229b811638f9d283dceabe58c5569e" +checksum = "f6b464fbc74e149a392436b17d523f769e057cb6877f6a5c4618bc6f11800548" [[package]] name = "polling" @@ -1314,57 +1221,13 @@ dependencies = [ "syn 2.0.118", ] -[[package]] -name = "proc-macro-crate" -version = "1.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" -dependencies = [ - "once_cell", - "toml_edit 0.19.15", -] - -[[package]] -name = "proc-macro-crate" -version = "2.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b00f26d3400549137f92511a46ac1cd8ce37cb5598a96d382381458b992a5d24" -dependencies = [ - "toml_datetime 0.6.3", - "toml_edit 0.20.2", -] - [[package]] name = "proc-macro-crate" version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f" dependencies = [ - "toml_edit 0.25.12+spec-1.1.0", -] - -[[package]] -name = "proc-macro-error" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" -dependencies = [ - "proc-macro-error-attr", - "proc-macro2", - "quote", - "syn 1.0.109", - "version_check", -] - -[[package]] -name = "proc-macro-error-attr" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" -dependencies = [ - "proc-macro2", - "quote", - "version_check", + "toml_edit", ] [[package]] @@ -1519,21 +1382,18 @@ dependencies = [ [[package]] name = "serde_spanned" -version = "0.6.9" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3" +checksum = "6662b5879511e06e8999a8a235d848113e942c9124f211511b16466ee2995f26" dependencies = [ - "serde", + "serde_core", ] [[package]] -name = "serde_spanned" +name = "shell-words" version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6662b5879511e06e8999a8a235d848113e942c9124f211511b16466ee2995f26" -dependencies = [ - "serde_core", -] +checksum = "dc6fe69c597f9c37bfeeeeeb33da3530379845f10be461a66d16d03eca2ded77" [[package]] name = "shlex" @@ -1541,6 +1401,16 @@ version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba" +[[package]] +name = "signal-hook" +version = "0.3.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d881a16cf4426aa584979d30bd82cb33429027e42122b169753d6ef1085ed6e2" +dependencies = [ + "libc", + "signal-hook-registry", +] + [[package]] name = "signal-hook-registry" version = "1.4.8" @@ -1571,19 +1441,20 @@ checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" [[package]] name = "syn" -version = "1.0.109" +version = "2.0.118" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +checksum = "1b9ae57f904213ebb649ce6895b8a66c66f0203b9319718f69a5612a065b1422" dependencies = [ "proc-macro2", + "quote", "unicode-ident", ] [[package]] name = "syn" -version = "2.0.118" +version = "3.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b9ae57f904213ebb649ce6895b8a66c66f0203b9319718f69a5612a065b1422" +checksum = "8593e8e72159ed2257d083c7a454a85cbf854f37a0966d8d483aff8c8a3ebcee" dependencies = [ "proc-macro2", "quote", @@ -1592,36 +1463,30 @@ dependencies = [ [[package]] name = "system-deps" -version = "6.2.2" +version = "7.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3e535eb8dded36d55ec13eddacd30dec501792ff23a0b1682c38601b8cf2349" +checksum = "396a35feb67335377e0251fcbc1092fc85c484bd4e3a7a54319399da127796e7" dependencies = [ - "cfg-expr 0.15.8", - "heck 0.5.0", + "cfg-expr", + "heck", "pkg-config", - "toml 0.8.2", + "toml", "version-compare", ] [[package]] name = "system-deps" -version = "7.0.8" +version = "9.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "396a35feb67335377e0251fcbc1092fc85c484bd4e3a7a54319399da127796e7" +checksum = "8a0dae2cbca1f0ff93795713cfe0a4c02f760e3c0b8ae2ab4ec4045808ff429f" dependencies = [ - "cfg-expr 0.20.8", - "heck 0.5.0", + "cfg-expr", + "heck", "pkg-config", - "toml 1.1.2+spec-1.1.0", + "toml", "version-compare", ] -[[package]] -name = "target-lexicon" -version = "0.12.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" - [[package]] name = "target-lexicon" version = "0.13.5" @@ -1667,18 +1532,6 @@ dependencies = [ "syn 2.0.118", ] -[[package]] -name = "toml" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "185d8ab0dfbb35cf1399a6344d8484209c088f75f8f68230da55d48d95d43e3d" -dependencies = [ - "serde", - "serde_spanned 0.6.9", - "toml_datetime 0.6.3", - "toml_edit 0.20.2", -] - [[package]] name = "toml" version = "1.1.2+spec-1.1.0" @@ -1687,20 +1540,11 @@ checksum = "81f3d15e84cbcd896376e6730314d59fb5a87f31e4b038454184435cd57defee" dependencies = [ "indexmap", "serde_core", - "serde_spanned 1.1.1", - "toml_datetime 1.1.1+spec-1.1.0", + "serde_spanned", + "toml_datetime", "toml_parser", "toml_writer", - "winnow 1.0.3", -] - -[[package]] -name = "toml_datetime" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" -dependencies = [ - "serde", + "winnow", ] [[package]] @@ -1712,30 +1556,6 @@ dependencies = [ "serde_core", ] -[[package]] -name = "toml_edit" -version = "0.19.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" -dependencies = [ - "indexmap", - "toml_datetime 0.6.3", - "winnow 0.5.40", -] - -[[package]] -name = "toml_edit" -version = "0.20.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338" -dependencies = [ - "indexmap", - "serde", - "serde_spanned 0.6.9", - "toml_datetime 0.6.3", - "winnow 0.5.40", -] - [[package]] name = "toml_edit" version = "0.25.12+spec-1.1.0" @@ -1743,10 +1563,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d2153edc6955a6c354fad8f5efd38b6a8769bdccf9fe50f8e1329f81b0baa5d7" dependencies = [ "indexmap", - "toml_datetime 1.1.1+spec-1.1.0", + "toml_datetime", "toml_parser", "toml_writer", - "winnow 1.0.3", + "winnow", ] [[package]] @@ -1755,7 +1575,7 @@ version = "1.1.2+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2abe9b86193656635d2411dc43050282ca48aa31c2451210f4202550afb7526" dependencies = [ - "winnow 1.0.3", + "winnow", ] [[package]] @@ -1841,12 +1661,6 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "03c2856837ef78f57382f06b2b8563a2f512f7185d732608fd9176cb3b8edf0e" -[[package]] -name = "version_check" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" - [[package]] name = "wasip2" version = "1.0.4+wasi-0.2.12" @@ -2064,15 +1878,6 @@ dependencies = [ "windows-link", ] -[[package]] -name = "winnow" -version = "0.5.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" -dependencies = [ - "memchr", -] - [[package]] name = "winnow" version = "1.0.3" @@ -2104,7 +1909,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ea61de684c3ea68cb082b7a88508a8b27fcc8b797d738bfc99a82facf1d752dc" dependencies = [ "anyhow", - "heck 0.5.0", + "heck", "wit-parser", ] @@ -2115,7 +1920,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21" dependencies = [ "anyhow", - "heck 0.5.0", + "heck", "indexmap", "prettyplease", "syn 2.0.118", @@ -2182,7 +1987,7 @@ version = "0.0.0" dependencies = [ "clap", "semver", - "toml_edit 0.25.12+spec-1.1.0", + "toml_edit", ] [[package]] @@ -2214,7 +2019,7 @@ dependencies = [ "uds_windows", "uuid", "windows-sys", - "winnow 1.0.3", + "winnow", "zbus_macros", "zbus_names", "zvariant", @@ -2226,7 +2031,7 @@ version = "5.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "adf1bd45a81a103745b1757754762a26e8cd01e4532e4d6c8ec431624b80d1d6" dependencies = [ - "proc-macro-crate 3.5.0", + "proc-macro-crate", "proc-macro2", "quote", "syn 2.0.118", @@ -2242,7 +2047,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7074f3e50b894eac91750142016d30d0a89be8e67dbfd9704fb875825760e52d" dependencies = [ "serde", - "winnow 1.0.3", + "winnow", "zvariant", ] @@ -2261,7 +2066,7 @@ dependencies = [ "endi", "enumflags2", "serde", - "winnow 1.0.3", + "winnow", "zvariant_derive", "zvariant_utils", ] @@ -2272,7 +2077,7 @@ version = "5.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "90bc6cde9c01c511074be97f7ccb6c19d0da89e3f8662e812e999dcfd4638737" dependencies = [ - "proc-macro-crate 3.5.0", + "proc-macro-crate", "proc-macro2", "quote", "syn 2.0.118", @@ -2289,5 +2094,5 @@ dependencies = [ "quote", "serde", "syn 2.0.118", - "winnow 1.0.3", + "winnow", ] diff --git a/Cargo.toml b/Cargo.toml index 946e1cc99..a9975a5ab 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -6,6 +6,7 @@ edition = "2021" license = "GPL-3.0-only" exclude = ["/demo-video", "/phosh", "/libphosh-rs", "/.cargo/vendor.toml", "/.cargo/vendor-runner.sh"] repository = "https://github.com/samcday/phrog" +publish = false [workspace] members = [".", "xtask"] @@ -17,11 +18,12 @@ glob = "0.3.1" greetd_ipc = { version = "0.10.0", features = ["sync-codec"] } async-channel = "2.2.1" anyhow = "1.0.82" -libphosh = "0.0.7" +libphosh = { path = "libphosh-rs/libphosh", version = "0.0.7" } clap = { version = "4.5.4", features = ["derive"] } wayland-client = "0.31" zbus = { version = "5", default-features = false, features = ["blocking", "async-io"] } nix = { version = "0.30", features = ["signal"] } +signal-hook = "0.3" async-global-executor = "3.0.0" futures-util = "0.3.30" log = "0.4.22" @@ -29,19 +31,19 @@ lazy_static = "^1.4" gettext-rs = { version = "0.7", features = ["gettext-system"] } [dependencies.glib] -version = "0.18" +version = "0.22" features = ["log_macros"] [dependencies.gtk] -version = "0.18" -features = ["v3_24"] - -[dependencies.libhandy] +package = "gtk4" version = "0.11" -features = ["v1_6"] +features = ["v4_10"] + +[dependencies.libadwaita] +version = "0.9" [build-dependencies] -glib-build-tools = "<0.22" +glib-build-tools = "0.22" [dev-dependencies] input-event-codes = "6.2.0" diff --git a/README.md b/README.md index 1445ac7aa..771234565 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,9 @@ ## 🐸 (phrog) +> **GTK4 development branch.** GTK3 stable releases continue on `main`. +> This branch needs unreleased GTK and Phosh snapshots, not normal distro +> packages. See [GTK4 development](docs/gtk4.md) for builds and known gaps. +
@@ -71,15 +75,8 @@ cargo binstall phrog ## Development -`libphosh` 0.45 is required to build this project. - -* Alpine (v3.21+): `sudo apk add libphosh` -* Debian (trixie): `sudo apt install libphosh-0.45-dev` -* Fedora: `sudo dnf install libphosh-devel` - -If `libphosh` is not packaged for your distro, you need to build Phosh+libphosh manually. See the [Phosh][] README for more info. - -Once `libphosh` is installed, building and running 🐸 should be quite simple: +Both modes use local GTK4 Rust bindings. Install the pinned GTK4 stack from +[the development notes](docs/gtk4.md) before running these commands: ```sh # To run phrog without greetd, pass --fake diff --git a/docs/gtk4.md b/docs/gtk4.md new file mode 100644 index 000000000..3c87f5379 --- /dev/null +++ b/docs/gtk4.md @@ -0,0 +1,153 @@ +# GTK4 development + +`main` continues GTK3 stable releases alongside Phosh. `gtk4` is a long-running +integration branch for the GTK4/libadwaita migration. It becomes eligible for +integration into `main` when the required GTK/Phosh APIs are available upstream +and the migration's functional and packaging gaps are resolved. + +The remaining work is tracked in [#215](https://github.com/samcday/phrog/issues/215). + +## Branch maintenance + +- The GTK4 series has two layers above #186: PR #213 (`codex/gtk4-phosh`) + imports Guido's Phosh GTK4 subtree and native dependency pins; PR #209 (`gtk4`) + carries the regenerated bindings, phrog migration, and build/CI integration. +- Target Phosh dependency updates at `codex/gtk4-phosh`, then merge that branch + into `gtk4`. Target application and binding changes at `gtk4`. +- Both GTK4 layers remain draft while `main` continues GTK3 stable releases. + The Phosh import layer alone still has GTK3 Rust bindings; build and test the + complete GTK4 application at `gtk4`. +- Land shared fixes on `main` first, then merge `main` into `gtk4` regularly. +- Keep upstream source updates, local native patches, and application changes in + separate commits. Avoid routine rebases of the shared integration branch. +- GTK4 currently produces CI artifacts identified by commit/run. Stable tags, + release candidates, crates.io publication, and the existing distro/COPR + channels remain GTK3. The inherited release/package workflows are disabled + here until a separate GTK4 distribution channel is designed. + +The current reconstruction is based on #186's explicit vendored-build interface. +It does not supersede #186. GTK4 uses that interface to build an unreleased +libphosh snapshot; static embedding remains an independent proposal. + +## Dependency snapshots + +| Component | Source | Commit | +| --- | --- | --- | +| GTK | guidog/gtk, custom-surface | `a4cba2e3c84fafc4745c7d4cacbe062b32774e0e` | +| Phosh | guidog/phosh, phosh-gtk4 | `37d48c69b2414fb8b8f9cee19eae60a700c4c551` | +| libphosh-rs import | upstream main | `580d6093` | +| gir generator | gtk-rs/gir | `601c9bb7f8f42a095df1740453fab3d4d6679788` | +| gvc | guidog/libgnome-volume-control, phosh/0.52.1 | `1cdc1cb2d622d64e9ad2781093bcc63719c5ea5b` | +| libcall-ui | World/Phosh/libcall-ui, v0.2.1 | `f66056ace818ff19b507335634dd67138a92c77f` | + +The GTK custom-surface snapshot provides `GtkPlain`, which this Phosh snapshot +requires. A sufficiently high stock GTK version alone is not enough. GTK is +built in `.github/Dockerfile`; Phosh and its Rust bindings are repository +subtrees. The CI image copies the Phosh subtree, including downstream fixes, so +dynamic and embedded builds use the same native sources. Its image tag hashes +the Dockerfile, build-context exclusions, and Phosh subtree. + +## Build and test + +The supported CI environment builds the pinned GTK and a shared GTK4 libphosh, +then tests both dynamically linked and embedded phrog. Build that environment: + +```sh +podman build -t phrog-gtk4-ci -f .github/Dockerfile . +``` + +Within an environment providing those dependencies and the Rust toolchain from +`rust-toolchain.toml`, run from the repository root: + +```sh +# Dynamic GTK4 libphosh; local GTK4 Rust bindings are used in both modes. +cargo build --locked --all-targets +cargo clippy --locked --all-targets --no-deps -- -D warnings +phoc -S -E 'cargo test --locked -- --test-threads=1' + +# Embed the pinned Phosh source using the interface shared with #186. +cargo vendored-phosh build --locked --all-targets +cargo vendored-phosh clippy --locked --all-targets --no-deps -- -D warnings +phoc -S -E 'cargo vendored-phosh test --locked -- --test-threads=1' +``` + +For headless tests, use the `dbus-run-session xvfb-run ... phoc` invocation in +`.github/workflows/build.yml`. Host prefixes from earlier development sessions +are not assumed to exist. When using your own prefix, set `PKG_CONFIG_PATH`, +`LD_LIBRARY_PATH`, and `XDG_DATA_DIRS` to the custom GTK/Phosh installation. + +GTK3 and GTK4 libphosh currently share the `libphosh-0.45` pkg-config name. +The build rejects metadata that selects GTK3, even if its version satisfies the +minimum. Never mix the GTK4 bindings with the GTK3 shared library. + +The vendor command stages native sources and schemas under `target/vendor`; +its runner selects the matching schemas. `PHROG_VENDOR_OFFLINE=1` disables +native downloads once dependencies are prepared. Embedded libphosh still needs +shared GTK and other native libraries plus schemas, translations, and services. +Distribution recipes are not yet GTK4-ready. + +## Local desktop with Toolbox + +Create a Toolbox from the same patched GTK/Phosh environment used by CI: + +```sh +podman build -t localhost/phrog-gtk4-ci -f .github/Dockerfile . +podman build -t localhost/phrog-gtk4-toolbox -f tools/toolbox/Containerfile tools/toolbox +toolbox create --image localhost/phrog-gtk4-toolbox phrog-gtk4 +``` + +Then, from this checkout in a desktop terminal: + +```sh +toolbox run -c phrog-gtk4 ./tools/toolbox/run +``` + +The launcher builds into `target/toolbox` and opens phrog in a nested Phoc window. +It uses the host's Rust installation in `~/.cargo`, the container's patched native +libraries, software rendering, a private session bus, and in-memory settings. +It prefers the nested X11 backend when `$DISPLAY` is available, with Wayland as +a fallback. Upstream GTK4 diagnostics are saved to `target/toolbox/phrog.log`. +Authentication uses `--fake`; the test password is `0`. Close the nested window +or press Ctrl+C in the launching terminal to stop it. The first build takes +longer; subsequent launches reuse the Cargo build cache. + +For an interactive development shell, use `toolbox enter phrog-gtk4` and change +to this checkout. Native Phosh/GTK dependency changes require rebuilding the +images and recreating the Toolbox; ordinary phrog edits only need another run +of the launcher. + +## Local patches and migration gaps + +- Static Phosh resources are registered explicitly in `phosh_shell_init`, + inherited from #186. Native build output and schemas remain inside Cargo's + target directory; the vendor runner selects the matching schema bundle. +- `libphosh-rs/fix.sh` rewrites the unnamed `GtkPlain` parent instance field to + `Gtk.Widget` / `GtkWidget`. It preserves the field: deleting it makes generated + instance structs too small for subclass registration. This temporary workaround + needs replacement and ABI validation when GtkPlain gains introspection. +- The lockscreen uses the layer surface's `configured` signal to select the + initial page once because the upstream GTK4 port still relies on widget `show`. + Later configure events preserve navigation, including an in-flight transition + to the single-user keypad. +- Downstream system-modal fixes provide the shortcut-manager interface required + by GTK4 mnemonic controls and destroy GtkPlain surfaces correctly. The + emergency test opens the dialler through the power menu, enters a fictional + number, and checks the exact request on a private D-Bus fixture. It also checks + incoming-call presentation, Accept/Hangup, and call removal. No modem or host + Calls service is used. Active-call page pinning remains #100. +- The pinned Rust/C ABI checks compare 21 type sizes/alignments and 12 constants. + They do not validate field offsets, vfunc behavior, or compatibility with future + GTK/Phosh revisions. The C LayerSurface class still embeds GtkWindowClass despite + its GtkPlain parent; Rust must mirror the current C header until both change. +- Other GtkWindow assumptions remain in upstream error-dialog and shutdown paths. + Their GTK critical messages are recorded as migration debt in #215; the passing + emergency path does not establish that those paths are correct. +- GTK4 distro packaging, a separate snapshot distribution channel, and final + upstream ABI compatibility remain outstanding. A passing development build is + not a declaration that GTK4 is ready to replace GTK3 stable releases. + +Bindings were regenerated from the GTK4 Phosh GIR using the pinned gir tool. +Build the generator outside this workspace, apply `fix.sh`, then use the existing +`libphosh-rs/Makefile` generation targets. Preserve the local sys crate's +`build.rs` and `native_source.rs`: generator output does not +replace the embedding implementation inherited from #186. diff --git a/libphosh-rs/.gitlab-ci.yml b/libphosh-rs/.gitlab-ci.yml index d63837216..1030a1beb 100644 --- a/libphosh-rs/.gitlab-ci.yml +++ b/libphosh-rs/.gitlab-ci.yml @@ -45,14 +45,17 @@ variables: - if [ -n "$UPSTREAM_BRANCH" ]; then cd subprojects/phosh && git fetch origin "$UPSTREAM_BRANCH" && git checkout FETCH_HEAD && cd -; fi - cd subprojects/phosh && eatmydata apt -y --no-install-recommends build-dep . && cd - -build: - stage: build - <<: *common_before_script - script: +.common_phosh_build: &common_phosh_build # Build phosh - meson setup _build - meson compile -C _build - meson install -C _build + +build: + stage: build + <<: *common_before_script + script: + - *common_phosh_build # Build gir - cd gir && cargo build && cd - # Rebuild bindings @@ -63,10 +66,11 @@ build-doc: needs: [] variables: GIT_SUBMODULE_STRATEGY: recursive - RUSTFLAGS: --cfg docsrs RUST_VERSION: nightly <<: *common_before_script script: + - *common_phosh_build + # Build doc - ./build-doc.sh - mv target/doc/ docs artifacts: diff --git a/libphosh-rs/Adw-1.gir b/libphosh-rs/Adw-1.gir new file mode 100644 index 000000000..1a6d3c704 --- /dev/null +++ b/libphosh-rs/Adw-1.gir @@ -0,0 +1,54973 @@ + + + + + + + + + + + A dialog showing information about the application. + +<picture> + <source srcset="about-dialog-dark.png" media="(prefers-color-scheme: dark)"> + <img src="about-dialog.png" alt="about-dialog"> +</picture> + +an about dialog is typically opened when the user activates the `About …` +item in the application's primary menu. All parts of the dialog are optional. + +## Main page + +`AdwAboutDialog` prominently displays the application's icon, name, developer +name and version. They can be set with the [property@AboutDialog:application-icon], +[property@AboutDialog:application-name], +[property@AboutDialog:developer-name] and [property@AboutDialog:version] +respectively. + +## What's New + +`AdwAboutDialog` provides a way for applications to display their release +notes, set with the [property@AboutDialog:release-notes] property. + +Release notes are formatted the same way as +[AppStream descriptions](https://freedesktop.org/software/appstream/docs/chap-Metadata.html#tag-description). + +The supported formatting options are: + +* Paragraph (`<p>`) +* Ordered list (`<ol>`), with list items (`<li>`) +* Unordered list (`<ul>`), with list items (`<li>`) + +Within paragraphs and list items, emphasis (`<em>`) and inline code +(`<code>`) text styles are supported. The emphasis is rendered in italic, +while inline code is shown in a monospaced font. + +Any text outside paragraphs or list items is ignored. + +Nested lists are not supported. + +Only one version can be shown at a time. By default, the displayed version +number matches [property@AboutDialog:version]. Use +[property@AboutDialog:release-notes-version] to override it. + +## Details + +The Details page displays the application comments and links. + +The comments can be set with the [property@AboutDialog:comments] property. +Unlike [property@Gtk.AboutDialog:comments], this string can be long and +detailed. It can also contain links and Pango markup. + +To set the application website, use [property@AboutDialog:website]. +To add extra links below the website, use [method@AboutDialog.add_link]. + +If the Details page doesn't have any other content besides website, the +website will be displayed on the main page instead. + +## Troubleshooting + +`AdwAboutDialog` displays the following two links on the main page: + +* Support Questions, set with the [property@AboutDialog:support-url] property, +* Report an Issue, set with the [property@AboutDialog:issue-url] property. + +Additionally, applications can provide debugging information. It will be +shown separately on the Troubleshooting page. Use the +[property@AboutDialog:debug-info] property to specify it. + +It's intended to be attached to issue reports when reporting issues against +the application. As such, it cannot contain markup or links. + +`AdwAboutDialog` provides a quick way to save debug information to a file. +When saving, [property@AboutDialog:debug-info-filename] would be used as +the suggested filename. + +## Credits and Acknowledgements + +The Credits page has the following default sections: + +* Developers, set with the [property@AboutDialog:developers] property, +* Designers, set with the [property@AboutDialog:designers] property, +* Artists, set with the [property@AboutDialog:artists] property, +* Documenters, set with the [property@AboutDialog:documenters] property, +* Translators, set with the [property@AboutDialog:translator-credits] property. + +When setting translator credits, use the strings `"translator-credits"` or +`"translator_credits"` and mark them as translatable. + +The default sections that don't contain any names won't be displayed. + +The Credits page can also contain an arbitrary number of extra sections below +the default ones. Use [method@AboutDialog.add_credit_section] to add them. + +The Acknowledgements page can be used to acknowledge additional people and +organizations for their non-development contributions. Use +[method@AboutDialog.add_acknowledgement_section] to add sections to it. For +example, it can be used to list backers in a crowdfunded project or to give +special thanks. + +Each of the people or organizations can have an email address or a website +specified. To add a email address, use a string like +`Edgar Allan Poe <edgar@poe.com>`. To specify a website with a title, use a +string like `The GNOME Project https://www.gnome.org`: + +<picture> + <source srcset="about-dialog-credits-dark.png" media="(prefers-color-scheme: dark)"> + <img src="about-dialog-credits.png" alt="about-dialog-credits"> +</picture> + +## Legal + +The Legal page displays the copyright and licensing information for the +application and other modules. + +The copyright string is set with the [property@AboutDialog:copyright] +property and should be a short string of one or two lines, for example: +`© 2022 Example`. + +Licensing information can be quickly set from a list of known licenses with +the [property@AboutDialog:license-type] property. If the application's +license is not in the list, [property@AboutDialog:license] can be used +instead. + +To add information about other modules, such as application dependencies or +data, use [method@AboutDialog.add_legal_section]. + +## Other applications + +`AdwAboutDialog` can show links to your other apps at the end of the main +page. To add them, use [method@AboutDialog.add_other_app]. + +By default the other apps section will have "Other Apps by +[property@AboutDialog:developer-name]" as its title. Use +[property@AboutDialog:other-apps-title] to override it. + +## Constructing + +To make constructing an `AdwAboutDialog` as convenient as possible, you can +use the function [func@show_about_dialog] which constructs and shows a +dialog. + +```c +static void +show_about (GtkApplication *app) +{ + const char *developers[] = { + "Angela Avery", + NULL + }; + + const char *designers[] = { + "GNOME Design Team", + NULL + }; + + adw_show_about_dialog (GTK_WIDGET (gtk_application_get_active_window (app)), + "application-name", _("Example"), + "application-icon", "org.example.App", + "version", "1.2.3", + "copyright", "© 2022 Angela Avery", + "issue-url", "https://gitlab.gnome.org/example/example/-/issues/", + "license-type", GTK_LICENSE_GPL_3_0, + "developers", developers, + "designers", designers, + "translator-credits", _("translator-credits"), + NULL); +} +``` + +## CSS nodes + +`AdwAboutDialog` has a main CSS node with the name `dialog` and the +style class `.about`. + + + + + + + Creates a new `AdwAboutDialog`. + + + the newly created `AdwAboutDialog` + + + + + Creates a new `AdwAboutDialog` using AppStream metadata. + +This automatically sets the following properties with the following AppStream +values: + +* [property@AboutDialog:application-icon] is set from the `<id>` +* [property@AboutDialog:application-name] is set from the `<name>` +* [property@AboutDialog:developer-name] is set from the `<name>` within + `<developer>` +* [property@AboutDialog:version] is set from the version of the latest release +* [property@AboutDialog:website] is set from the `<url type="homepage">` +* [property@AboutDialog:support-url] is set from the `<url type="help">` +* [property@AboutDialog:issue-url] is set from the `<url type="bugtracker">` +* [property@AboutDialog:license-type] is set from the `<project_license>`. + If the license type retrieved from AppStream is not listed in + [enum@Gtk.License], it will be set to [enum@Gtk.License.custom]. + +If @release_notes_version is not `NULL`, +[property@AboutDialog:release-notes-version] is set to match it, while +[property@AboutDialog:release-notes] is set from the AppStream release +description for that version. + + + the newly created `AdwAboutDialog` + + + + + The resource to use + + + + The version to retrieve release notes for + + + + + + Adds a section to the Acknowledgements page. + +This can be used to acknowledge additional people and organizations for their +non-development contributions - for example, backers in a crowdfunded +project. + +Each name may contain email addresses and URLs, see the introduction for more +details. + +See also: + +* [property@AboutDialog:developers] +* [property@AboutDialog:designers] +* [property@AboutDialog:artists] +* [property@AboutDialog:documenters] +* [property@AboutDialog:translator-credits] +* [method@AboutDialog.add_credit_section] + + + + + + + an about dialog + + + + the section name + + + + the list of names + + + + + + + + Adds an extra section to the Credits page. + +Extra sections are displayed below the standard categories. + +Each name may contain email addresses and URLs, see the introduction for more +details. + +See also: + +* [property@AboutDialog:developers] +* [property@AboutDialog:designers] +* [property@AboutDialog:artists] +* [property@AboutDialog:documenters] +* [property@AboutDialog:translator-credits] +* [method@AboutDialog.add_acknowledgement_section] + + + + + + + an about dialog + + + + the section name + + + + the list of names + + + + + + + + Adds an extra section to the Legal page. + +Extra sections will be displayed below the application's own information. + +The parameters @copyright, @license_type and @license will be used to present +the it the same way as [property@AboutDialog:copyright], +[property@AboutDialog:license-type] and [property@AboutDialog:license] are +for the application's own information. + +See those properties for more details. + +This can be useful to attribute the application dependencies or data. + +Examples: + +```c +adw_about_dialog_add_legal_section (ADW_ABOUT_DIALOG (about), + _("Copyright and a known license"), + "© 2022 Example", + GTK_LICENSE_LGPL_2_1, + NULL); + +adw_about_dialog_add_legal_section (ADW_ABOUT_DIALOG (about), + _("Copyright and custom license"), + "© 2022 Example", + GTK_LICENSE_CUSTOM, + "Custom license text"); + +adw_about_dialog_add_legal_section (ADW_ABOUT_DIALOG (about), + _("Copyright only"), + "© 2022 Example", + GTK_LICENSE_UNKNOWN, + NULL); + +adw_about_dialog_add_legal_section (ADW_ABOUT_DIALOG (about), + _("Custom license only"), + NULL, + GTK_LICENSE_CUSTOM, + "Something completely custom here."); +``` + + + + + + + an about dialog + + + + the name of the section + + + + a copyright string + + + + the type of license + + + + custom license information + + + + + + Adds an extra link to the Details page. + +Extra links are displayed under the comment and website. + +Underlines in @title will be interpreted as indicating a mnemonic. + +See [property@AboutDialog:website]. + + + + + + + an about dialog + + + + the link title + + + + the link URL + + + + + + Adds another application to @self. + +The application will be displayed at the bottom of the main page, in a +separate section. Each added application will be presented as a row with +@title and @summary, as well as an icon with the name @appid. Clicking the +row will show @appid in the software center app. + +This can be used to link to your other applications if you have multiple. + +Example: + +```c +adw_about_dialog_add_other_app (ADW_ABOUT_DIALOG (about), + "org.gnome.Boxes", + _("Boxes"), + _("Virtualization made simple")); +``` + + + + + + + an about dialog + + + + the application ID + + + + the application name + + + + the application summary + + + + + + Gets the AppStream metadata resource path for @self. + + + the resource path + + + + + an about dialog + + + + + + Gets the name of the application icon for @self. + + + the application icon name + + + + + an about dialog + + + + + + Gets the application name for @self. + + + the application name + + + + + an about dialog + + + + + + Gets the list of artists of the application. + + + The list of artists + + + + + + + an about dialog + + + + + + Gets the comments about the application. + + + the comments + + + + + an about dialog + + + + + + Gets the copyright information for @self. + + + the copyright information + + + + + an about dialog + + + + + + Gets the debug information for @self. + + + the debug information + + + + + an about dialog + + + + + + Gets the debug information filename for @self. + + + the debug information filename + + + + + an about dialog + + + + + + Gets the list of designers of the application. + + + The list of designers + + + + + + + an about dialog + + + + + + Gets the developer name for @self. + + + the developer_name + + + + + an about dialog + + + + + + Gets the list of developers of the application. + + + The list of developers + + + + + + + an about dialog + + + + + + Gets the list of documenters of the application. + + + The list of documenters + + + + + + + an about dialog + + + + + + Gets the issue tracker URL for @self. + + + the issue tracker URL + + + + + an about dialog + + + + + + Gets the license for @self. + + + the license + + + + + an about dialog + + + + + + Gets the license type for @self. + + + the license type + + + + + an about dialog + + + + + + Gets The other apps section title for @self. + + + the section title + + + + + an about dialog + + + + + + Gets the release notes for @self. + + + the release notes + + + + + an about dialog + + + + + + Gets the version described by the application's release notes. + + + the release notes version + + + + + an about dialog + + + + + + Gets the URL of the support page for @self. + + + the support page URL + + + + + an about dialog + + + + + + Gets the translator credits string. + + + The translator credits string + + + + + an about dialog + + + + + + Gets the version for @self. + + + the version + + + + + an about dialog + + + + + + Gets the application website URL for @self. + + + the website URL + + + + + an about dialog + + + + + + Sets the name of the application icon for @self. + +The icon is displayed at the top of the main page. + + + + + + + an about dialog + + + + the application icon name + + + + + + Sets the application name for @self. + +The name is displayed at the top of the main page. + + + + + + + an about dialog + + + + the application name + + + + + + Sets the list of artists of the application. + +It will be displayed on the Credits page. + +Each name may contain email addresses and URLs, see the introduction for more +details. + +See also: + +* [property@AboutDialog:developers] +* [property@AboutDialog:designers] +* [property@AboutDialog:documenters] +* [property@AboutDialog:translator-credits] +* [method@AboutDialog.add_credit_section] +* [method@AboutDialog.add_acknowledgement_section] + + + + + + + an about dialog + + + + the list of artists + + + + + + + + Sets the comments about the application. + +Comments will be shown on the Details page, above links. + +Unlike [property@Gtk.AboutDialog:comments], this string can be long and +detailed. It can also contain links and Pango markup. + + + + + + + an about dialog + + + + the comments + + + + + + Sets the copyright information for @self. + +This should be a short string of one or two lines, for example: +`© 2022 Example`. + +The copyright information will be displayed on the Legal page, before the +application license. + +[method@AboutDialog.add_legal_section] can be used to add copyright +information for the application dependencies or other components. + + + + + + + an about dialog + + + + the copyright information + + + + + + Sets the debug information for @self. + +Debug information will be shown on the Troubleshooting page. It's intended +to be attached to issue reports when reporting issues against the +application. + +`AdwAboutDialog` provides a quick way to save debug information to a file. +When saving, [property@AboutDialog:debug-info-filename] would be used as +the suggested filename. + +Debug information cannot contain markup or links. + + + + + + + an about dialog + + + + the debug information + + + + + + Sets the debug information filename for @self. + +It will be used as the suggested filename when saving debug information to a +file. + +See [property@AboutDialog:debug-info]. + + + + + + + an about dialog + + + + the debug info filename + + + + + + Sets the list of designers of the application. + +It will be displayed on the Credits page. + +Each name may contain email addresses and URLs, see the introduction for more +details. + +See also: + +* [property@AboutDialog:developers] +* [property@AboutDialog:artists] +* [property@AboutDialog:documenters] +* [property@AboutDialog:translator-credits] +* [method@AboutDialog.add_credit_section] +* [method@AboutDialog.add_acknowledgement_section] + + + + + + + an about dialog + + + + the list of designers + + + + + + + + Sets the developer name for @self. + +The developer name is displayed on the main page, under the application name. + +If the application is developed by multiple people, the developer name can be +set to values like "AppName team", "AppName developers" or +"The AppName project", and the individual contributors can be listed on the +Credits page, with [property@AboutDialog:developers] and related properties. + + + + + + + an about dialog + + + + the developer name + + + + + + Sets the list of developers of the application. + +It will be displayed on the Credits page. + +Each name may contain email addresses and URLs, see the introduction for more +details. + +See also: + +* [property@AboutDialog:designers] +* [property@AboutDialog:artists] +* [property@AboutDialog:documenters] +* [property@AboutDialog:translator-credits] +* [method@AboutDialog.add_credit_section] +* [method@AboutDialog.add_acknowledgement_section] + + + + + + + an about dialog + + + + the list of developers + + + + + + + + Sets the list of documenters of the application. + +It will be displayed on the Credits page. + +Each name may contain email addresses and URLs, see the introduction for more +details. + +See also: + +* [property@AboutDialog:developers] +* [property@AboutDialog:designers] +* [property@AboutDialog:artists] +* [property@AboutDialog:translator-credits] +* [method@AboutDialog.add_credit_section] +* [method@AboutDialog.add_acknowledgement_section] + + + + + + + an about dialog + + + + the list of documenters + + + + + + + + Sets the issue tracker URL for @self. + +The issue tracker link is displayed on the main page. + + + + + + + an about dialog + + + + the issue tracker URL + + + + + + Sets the license for @self. + +This can be used to set a custom text for the license if it can't be set via +[property@AboutDialog:license-type]. + +When set, [property@AboutDialog:license-type] will be set to +[enum@Gtk.License.custom]. + +The license text will be displayed on the Legal page, below the copyright +information. + +License text can contain Pango markup and links. + +[method@AboutDialog.add_legal_section] can be used to add license information +for the application dependencies or other components. + + + + + + + an about dialog + + + + the license + + + + + + Sets the license for @self from a list of known licenses. + +If the application's license is not in the list, +[property@AboutDialog:license] can be used instead. The license type will be +automatically set to [enum@Gtk.License.custom] in that case. + +If @license_type is [enum@Gtk.License.unknown], no information will be +displayed. + +If @license_type is different from [enum@Gtk.License.custom]. +[property@AboutDialog:license] will be cleared out. + +The license description will be displayed on the Legal page, below the +copyright information. + +[method@AboutDialog.add_legal_section] can be used to add license information +for the application dependencies or other components. + + + + + + + an about dialog + + + + the license type + + + + + + Sets the "Other apps" section title for @self. + +If not set, the section will say "Other Apps by (developer name)". + +See [method@AboutDialog.add_other_app]. + + + + + + + an about dialog + + + + the new title + + + + + + Sets the release notes for @self. + +Release notes are displayed on the the What's New page. + +Release notes are formatted the same way as +[AppStream descriptions](https://freedesktop.org/software/appstream/docs/chap-Metadata.html#tag-description). + +The supported formatting options are: + +* Paragraph (`<p>`) +* Ordered list (`<ol>`), with list items (`<li>`) +* Unordered list (`<ul>`), with list items (`<li>`) + +Within paragraphs and list items, emphasis (`<em>`) and inline code +(`<code>`) text styles are supported. The emphasis is rendered in italic, +while inline code is shown in a monospaced font. + +Any text outside paragraphs or list items is ignored. + +Nested lists are not supported. + +`AdwAboutDialog` displays the version above the release notes. If set, the +[property@AboutDialog:release-notes-version] of the property will be used +as the version; otherwise, [property@AboutDialog:version] is used. + + + + + + + an about dialog + + + + the release notes + + + + + + Sets the version described by the application's release notes. + +The release notes version is displayed on the What's New page, above the +release notes. + +If not set, [property@AboutDialog:version] will be used instead. + +For example, an application with the current version 2.0.2 might want to +keep the release notes from 2.0.0, and set the release notes version +accordingly. + +See [property@AboutDialog:release-notes]. + + + + + + + an about dialog + + + + the release notes version + + + + + + Sets the URL of the support page for @self. + +The support page link is displayed on the main page. + + + + + + + an about dialog + + + + the support page URL + + + + + + Sets the translator credits string. + +It will be displayed on the Credits page. + +This string should be `"translator-credits"` or `"translator_credits"` and +should be marked as translatable. + +The string may contain email addresses and URLs, see the introduction for +more details. When there is more than one translator, they must be +separated by a newline in the same string. + +See also: + +* [property@AboutDialog:developers] +* [property@AboutDialog:designers] +* [property@AboutDialog:artists] +* [property@AboutDialog:documenters] +* [method@AboutDialog.add_credit_section] +* [method@AboutDialog.add_acknowledgement_section] + + + + + + + an about dialog + + + + the translator credits + + + + + + Sets the version for @self. + +The version is displayed on the main page. + +If [property@AboutDialog:release-notes-version] is not set, the version will +also be displayed above the release notes on the What's New page. + + + + + + + an about dialog + + + + the version + + + + + + Sets the application website URL for @self. + +Website is displayed on the Details page, below comments, or on the main page +if the Details page doesn't have any other content. + +Applications can add other links below, see [method@AboutDialog.add_link]. + + + + + + + an about dialog + + + + the website URL + + + + + + The path to the Appstream metadata resource. + +If provided, the dialog will be constructed from it. + +See [ctor@AboutDialog.new_from_appdata]. + +If [property@AboutDialog:release-notes-version] is set, release notes will +be set from the AppStream release description for that version. + + + + The name of the application icon. + +The icon is displayed at the top of the main page. + + + + The name of the application. + +The name is displayed at the top of the main page. + + + + The list of artists of the application. + +It will be displayed on the Credits page. + +Each name may contain email addresses and URLs, see the introduction for +more details. + +See also: + +* [property@AboutDialog:developers] +* [property@AboutDialog:designers] +* [property@AboutDialog:documenters] +* [property@AboutDialog:translator-credits] +* [method@AboutDialog.add_credit_section] +* [method@AboutDialog.add_acknowledgement_section] + + + + + + The comments about the application. + +Comments will be shown on the Details page, above links. + +Unlike [property@Gtk.AboutDialog:comments], this string can be long and +detailed. It can also contain links and Pango markup. + + + + The copyright information. + +This should be a short string of one or two lines, for example: +`© 2022 Example`. + +The copyright information will be displayed on the Legal page, above the +application license. + +[method@AboutDialog.add_legal_section] can be used to add copyright +information for the application dependencies or other components. + + + + The debug information. + +Debug information will be shown on the Troubleshooting page. It's intended +to be attached to issue reports when reporting issues against the +application. + +`AdwAboutDialog` provides a quick way to save debug information to a file. +When saving, [property@AboutDialog:debug-info-filename] would be used as +the suggested filename. + +Debug information cannot contain markup or links. + + + + The debug information filename. + +It will be used as the suggested filename when saving debug information to +a file. + +See [property@AboutDialog:debug-info]. + + + + The list of designers of the application. + +It will be displayed on the Credits page. + +Each name may contain email addresses and URLs, see the introduction for +more details. + +See also: + +* [property@AboutDialog:developers] +* [property@AboutDialog:artists] +* [property@AboutDialog:documenters] +* [property@AboutDialog:translator-credits] +* [method@AboutDialog.add_credit_section] +* [method@AboutDialog.add_acknowledgement_section] + + + + + + The developer name. + +The developer name is displayed on the main page, under the application +name. + +If the application is developed by multiple people, the developer name can +be set to values like "AppName team", "AppName developers" or +"The AppName project", and the individual contributors can be listed on the +Credits page, with [property@AboutDialog:developers] and related +properties. + + + + The list of developers of the application. + +It will be displayed on the Credits page. + +Each name may contain email addresses and URLs, see the introduction for +more details. + +See also: + +* [property@AboutDialog:designers] +* [property@AboutDialog:artists] +* [property@AboutDialog:documenters] +* [property@AboutDialog:translator-credits] +* [method@AboutDialog.add_credit_section] +* [method@AboutDialog.add_acknowledgement_section] + + + + + + The list of documenters of the application. + +It will be displayed on the Credits page. + +Each name may contain email addresses and URLs, see the introduction for +more details. + +See also: + +* [property@AboutDialog:developers] +* [property@AboutDialog:designers] +* [property@AboutDialog:artists] +* [property@AboutDialog:translator-credits] +* [method@AboutDialog.add_credit_section] +* [method@AboutDialog.add_acknowledgement_section] + + + + + + The URL for the application's issue tracker. + +The issue tracker link is displayed on the main page. + + + + The license text. + +This can be used to set a custom text for the license if it can't be set +via [property@AboutDialog:license-type]. + +When set, [property@AboutDialog:license-type] will be set to +[enum@Gtk.License.custom]. + +The license text will be displayed on the Legal page, below the copyright +information. + +License text can contain Pango markup and links. + +[method@AboutDialog.add_legal_section] can be used to add license +information for the application dependencies or other components. + + + + The license type. + +Allows to set the application's license froma list of known licenses. + +If the application's license is not in the list, +[property@AboutDialog:license] can be used instead. The license type will +be automatically set to [enum@Gtk.License.custom] in that case. + +If set to [enum@Gtk.License.unknown], no information will be displayed. + +If the license type is different from [enum@Gtk.License.custom]. +[property@AboutDialog:license] will be cleared out. + +The license description will be displayed on the Legal page, below the +copyright information. + +[method@AboutDialog.add_legal_section] can be used to add license +information for the application dependencies or other components. + + + + The "Other apps" section title. + +If not set, the section will say "Other Apps by (developer name)". + +See [method@AboutDialog.add_other_app]. + + + + The release notes of the application. + +Release notes are displayed on the the What's New page. + +Release notes are formatted the same way as +[AppStream descriptions](https://freedesktop.org/software/appstream/docs/chap-Metadata.html#tag-description). + +The supported formatting options are: + +* Paragraph (`<p>`) +* Ordered list (`<ol>`), with list items (`<li>`) +* Unordered list (`<ul>`), with list items (`<li>`) + +Within paragraphs and list items, emphasis (`<em>`) and inline code +(`<code>`) text styles are supported. The emphasis is rendered in italic, +while inline code is shown in a monospaced font. + +Any text outside paragraphs or list items is ignored. + +Nested lists are not supported. + +`AdwAboutDialog` displays the version above the release notes. If set, the +[property@AboutDialog:release-notes-version] of the property will be used +as the version; otherwise, [property@AboutDialog:version] is used. + + + + The version described by the application's release notes. + +The release notes version is displayed on the What's New page, above the +release notes. + +If not set, [property@AboutDialog:version] will be used instead. + +For example, an application with the current version 2.0.2 might want to +keep the release notes from 2.0.0, and set the release notes version +accordingly. + +See [property@AboutDialog:release-notes]. + + + + The URL of the application's support page. + +The support page link is displayed on the main page. + + + + The translator credits string. + +It will be displayed on the Credits page. + +This string should be `"translator-credits"` or `"translator_credits"` and +should be marked as translatable. + +The string may contain email addresses and URLs, see the introduction for +more details. + +See also: + +* [property@AboutDialog:developers] +* [property@AboutDialog:designers] +* [property@AboutDialog:artists] +* [property@AboutDialog:documenters] +* [method@AboutDialog.add_credit_section] +* [method@AboutDialog.add_acknowledgement_section] + + + + The version of the application. + +The version is displayed on the main page. + +If [property@AboutDialog:release-notes-version] is not set, the version +will also be displayed above the release notes on the What's New page. + + + + The URL of the application's website. + +Website is displayed on the Details page, below comments, or on the main +page if the Details page doesn't have any other content. + +Applications can add other links below, see [method@AboutDialog.add_link]. + + + + Emitted when a URL is activated. + +Applications may connect to it to override the default behavior, which is +to call [func@Gtk.show_uri]. + + `TRUE` if the link has been activated + + + + + the URI to activate + + + + + + + + + + + + + A window showing information about the application. + +<picture> + <source srcset="about-window-dark.png" media="(prefers-color-scheme: dark)"> + <img src="about-window.png" alt="about-window"> +</picture> + +An about window is typically opened when the user activates the `About …` +item in the application's primary menu. All parts of the window are optional. + +## Main page + +`AdwAboutWindow` prominently displays the application's icon, name, developer +name and version. They can be set with the [property@AboutWindow:application-icon], +[property@AboutWindow:application-name], +[property@AboutWindow:developer-name] and [property@AboutWindow:version] +respectively. + +## What's New + +`AdwAboutWindow` provides a way for applications to display their release +notes, set with the [property@AboutWindow:release-notes] property. + +Release notes are formatted the same way as +[AppStream descriptions](https://freedesktop.org/software/appstream/docs/chap-Metadata.html#tag-description). + +The supported formatting options are: + +* Paragraph (`<p>`) +* Ordered list (`<ol>`), with list items (`<li>`) +* Unordered list (`<ul>`), with list items (`<li>`) + +Within paragraphs and list items, emphasis (`<em>`) and inline code +(`<code>`) text styles are supported. The emphasis is rendered in italic, +while inline code is shown in a monospaced font. + +Any text outside paragraphs or list items is ignored. + +Nested lists are not supported. + +Only one version can be shown at a time. By default, the displayed version +number matches [property@AboutWindow:version]. Use +[property@AboutWindow:release-notes-version] to override it. + +## Details + +The Details page displays the application comments and links. + +The comments can be set with the [property@AboutWindow:comments] property. +Unlike [property@Gtk.AboutDialog:comments], this string can be long and +detailed. It can also contain links and Pango markup. + +To set the application website, use [property@AboutWindow:website]. +To add extra links below the website, use [method@AboutWindow.add_link]. + +If the Details page doesn't have any other content besides website, the +website will be displayed on the main page instead. + +## Troubleshooting + +`AdwAboutWindow` displays the following two links on the main page: + +* Support Questions, set with the [property@AboutWindow:support-url] property, +* Report an Issue, set with the [property@AboutWindow:issue-url] property. + +Additionally, applications can provide debugging information. It will be +shown separately on the Troubleshooting page. Use the +[property@AboutWindow:debug-info] property to specify it. + +It's intended to be attached to issue reports when reporting issues against +the application. As such, it cannot contain markup or links. + +`AdwAboutWindow` provides a quick way to save debug information to a file. +When saving, [property@AboutWindow:debug-info-filename] would be used as +the suggested filename. + +## Credits and Acknowledgements + +The Credits page has the following default sections: + +* Developers, set with the [property@AboutWindow:developers] property, +* Designers, set with the [property@AboutWindow:designers] property, +* Artists, set with the [property@AboutWindow:artists] property, +* Documenters, set with the [property@AboutWindow:documenters] property, +* Translators, set with the [property@AboutWindow:translator-credits] property. + +When setting translator credits, use the strings `"translator-credits"` or +`"translator_credits"` and mark them as translatable. + +The default sections that don't contain any names won't be displayed. + +The Credits page can also contain an arbitrary number of extra sections below +the default ones. Use [method@AboutWindow.add_credit_section] to add them. + +The Acknowledgements page can be used to acknowledge additional people and +organizations for their non-development contributions. Use +[method@AboutWindow.add_acknowledgement_section] to add sections to it. For +example, it can be used to list backers in a crowdfunded project or to give +special thanks. + +Each of the people or organizations can have an email address or a website +specified. To add a email address, use a string like +`Edgar Allan Poe <edgar@poe.com>`. To specify a website with a title, use a +string like `The GNOME Project https://www.gnome.org`: + +<picture> + <source srcset="about-window-credits-dark.png" media="(prefers-color-scheme: dark)"> + <img src="about-window-credits.png" alt="about-window-credits"> +</picture> + +## Legal + +The Legal page displays the copyright and licensing information for the +application and other modules. + +The copyright string is set with the [property@AboutWindow:copyright] +property and should be a short string of one or two lines, for example: +`© 2022 Example`. + +Licensing information can be quickly set from a list of known licenses with +the [property@AboutWindow:license-type] property. If the application's +license is not in the list, [property@AboutWindow:license] can be used +instead. + +To add information about other modules, such as application dependencies or +data, use [method@AboutWindow.add_legal_section]. + +## Constructing + +To make constructing an `AdwAboutWindow` as convenient as possible, you can +use the function [func@show_about_window] which constructs and shows a +window. + +```c +static void +show_about (GtkApplication *app) +{ + const char *developers[] = { + "Angela Avery", + NULL + }; + + const char *designers[] = { + "GNOME Design Team", + NULL + }; + + adw_show_about_window (gtk_application_get_active_window (app), + "application-name", _("Example"), + "application-icon", "org.example.App", + "version", "1.2.3", + "copyright", "© 2022 Angela Avery", + "issue-url", "https://gitlab.gnome.org/example/example/-/issues/", + "license-type", GTK_LICENSE_GPL_3_0, + "developers", developers, + "designers", designers, + "translator-credits", _("translator-credits"), + NULL); +} +``` + +## CSS nodes + +`AdwAboutWindow` has a main CSS node with the name `window` and the +style class `.about`. + Use [class@AboutDialog]. + + + + + + + + + Creates a new `AdwAboutWindow`. + Use [class@AboutDialog]. + + + the newly created `AdwAboutWindow` + + + + + Creates a new `AdwAboutWindow` using AppStream metadata. + +This automatically sets the following properties with the following AppStream +values: + +* [property@AboutWindow:application-icon] is set from the `<id>` +* [property@AboutWindow:application-name] is set from the `<name>` +* [property@AboutWindow:developer-name] is set from the `<name>` within + `<developer>` +* [property@AboutWindow:version] is set from the version of the latest release +* [property@AboutWindow:website] is set from the `<url type="homepage">` +* [property@AboutWindow:support-url] is set from the `<url type="help">` +* [property@AboutWindow:issue-url] is set from the `<url type="bugtracker">` +* [property@AboutWindow:license-type] is set from the `<project_license>`. + If the license type retrieved from AppStream is not listed in + [enum@Gtk.License], it will be set to [enum@Gtk.License.custom]. + +If @release_notes_version is not `NULL`, +[property@AboutWindow:release-notes-version] is set to match it, while +[property@AboutWindow:release-notes] is set from the AppStream release +description for that version. + Use [class@AboutDialog]. + + + the newly created `AdwAboutWindow` + + + + + The resource to use + + + + The version to retrieve release notes for + + + + + + Adds a section to the Acknowledgements page. + +This can be used to acknowledge additional people and organizations for their +non-development contributions - for example, backers in a crowdfunded +project. + +Each name may contain email addresses and URLs, see the introduction for more +details. + +See also: + +* [property@AboutWindow:developers] +* [property@AboutWindow:designers] +* [property@AboutWindow:artists] +* [property@AboutWindow:documenters] +* [property@AboutWindow:translator-credits] +* [method@AboutWindow.add_credit_section] + Use [class@AboutDialog]. + + + + + + + an about window + + + + the section name + + + + the list of names + + + + + + + + Adds an extra section to the Credits page. + +Extra sections are displayed below the standard categories. + +Each name may contain email addresses and URLs, see the introduction for more +details. + +See also: + +* [property@AboutWindow:developers] +* [property@AboutWindow:designers] +* [property@AboutWindow:artists] +* [property@AboutWindow:documenters] +* [property@AboutWindow:translator-credits] +* [method@AboutWindow.add_acknowledgement_section] + Use [class@AboutDialog]. + + + + + + + an about window + + + + the section name + + + + the list of names + + + + + + + + Adds an extra section to the Legal page. + +Extra sections will be displayed below the application's own information. + +The parameters @copyright, @license_type and @license will be used to present +the it the same way as [property@AboutWindow:copyright], +[property@AboutWindow:license-type] and [property@AboutWindow:license] are +for the application's own information. + +See those properties for more details. + +This can be useful to attribute the application dependencies or data. + +Examples: + +```c +adw_about_window_add_legal_section (ADW_ABOUT_WINDOW (about), + _("Copyright and a known license"), + "© 2022 Example", + GTK_LICENSE_LGPL_2_1, + NULL); + +adw_about_window_add_legal_section (ADW_ABOUT_WINDOW (about), + _("Copyright and custom license"), + "© 2022 Example", + GTK_LICENSE_CUSTOM, + "Custom license text"); + +adw_about_window_add_legal_section (ADW_ABOUT_WINDOW (about), + _("Copyright only"), + "© 2022 Example", + GTK_LICENSE_UNKNOWN, + NULL); + +adw_about_window_add_legal_section (ADW_ABOUT_WINDOW (about), + _("Custom license only"), + NULL, + GTK_LICENSE_CUSTOM, + "Something completely custom here."); +``` + Use [class@AboutDialog]. + + + + + + + an about window + + + + the name of the section + + + + a copyright string + + + + the type of license + + + + custom license information + + + + + + Adds an extra link to the Details page. + +Extra links are displayed under the comment and website. + +Underlines in @title will be interpreted as indicating a mnemonic. + +See [property@AboutWindow:website]. + Use [class@AboutDialog]. + + + + + + + an about window + + + + the link title + + + + the link URL + + + + + + Gets the name of the application icon for @self. + Use [class@AboutDialog]. + + + the application icon name + + + + + an about window + + + + + + Gets the application name for @self. + Use [class@AboutDialog]. + + + the application name + + + + + an about window + + + + + + Gets the list of artists of the application. + Use [class@AboutDialog]. + + + The list of artists + + + + + + + an about window + + + + + + Gets the comments about the application. + Use [class@AboutDialog]. + + + the comments + + + + + an about window + + + + + + Gets the copyright information for @self. + Use [class@AboutDialog]. + + + the copyright information + + + + + an about window + + + + + + Gets the debug information for @self. + Use [class@AboutDialog]. + + + the debug information + + + + + an about window + + + + + + Gets the debug information filename for @self. + Use [class@AboutDialog]. + + + the debug information filename + + + + + an about window + + + + + + Gets the list of designers of the application. + Use [class@AboutDialog]. + + + The list of designers + + + + + + + an about window + + + + + + Gets the developer name for @self. + Use [class@AboutDialog]. + + + the developer_name + + + + + an about window + + + + + + Gets the list of developers of the application. + Use [class@AboutDialog]. + + + The list of developers + + + + + + + an about window + + + + + + Gets the list of documenters of the application. + Use [class@AboutDialog]. + + + The list of documenters + + + + + + + an about window + + + + + + Gets the issue tracker URL for @self. + Use [class@AboutDialog]. + + + the issue tracker URL + + + + + an about window + + + + + + Gets the license for @self. + Use [class@AboutDialog]. + + + the license + + + + + an about window + + + + + + Gets the license type for @self. + Use [class@AboutDialog]. + + + the license type + + + + + an about window + + + + + + Gets the release notes for @self. + Use [class@AboutDialog]. + + + the release notes + + + + + an about window + + + + + + Gets the version described by the application's release notes. + Use [class@AboutDialog]. + + + the release notes version + + + + + an about window + + + + + + Gets the URL of the support page for @self. + Use [class@AboutDialog]. + + + the support page URL + + + + + an about window + + + + + + Gets the translator credits string. + Use [class@AboutDialog]. + + + The translator credits string + + + + + an about window + + + + + + Gets the version for @self. + Use [class@AboutDialog]. + + + the version + + + + + an about window + + + + + + Gets the application website URL for @self. + Use [class@AboutDialog]. + + + the website URL + + + + + an about window + + + + + + Sets the name of the application icon for @self. + +The icon is displayed at the top of the main page. + Use [class@AboutDialog]. + + + + + + + an about window + + + + the application icon name + + + + + + Sets the application name for @self. + +The name is displayed at the top of the main page. + Use [class@AboutDialog]. + + + + + + + an about window + + + + the application name + + + + + + Sets the list of artists of the application. + +It will be displayed on the Credits page. + +Each name may contain email addresses and URLs, see the introduction for more +details. + +See also: + +* [property@AboutWindow:developers] +* [property@AboutWindow:designers] +* [property@AboutWindow:documenters] +* [property@AboutWindow:translator-credits] +* [method@AboutWindow.add_credit_section] +* [method@AboutWindow.add_acknowledgement_section] + Use [class@AboutDialog]. + + + + + + + an about window + + + + the list of artists + + + + + + + + Sets the comments about the application. + +Comments will be shown on the Details page, above links. + +Unlike [property@Gtk.AboutDialog:comments], this string can be long and +detailed. It can also contain links and Pango markup. + Use [class@AboutDialog]. + + + + + + + an about window + + + + the comments + + + + + + Sets the copyright information for @self. + +This should be a short string of one or two lines, for example: +`© 2022 Example`. + +The copyright information will be displayed on the Legal page, before the +application license. + +[method@AboutWindow.add_legal_section] can be used to add copyright +information for the application dependencies or other components. + Use [class@AboutDialog]. + + + + + + + an about window + + + + the copyright information + + + + + + Sets the debug information for @self. + +Debug information will be shown on the Troubleshooting page. It's intended +to be attached to issue reports when reporting issues against the +application. + +`AdwAboutWindow` provides a quick way to save debug information to a file. +When saving, [property@AboutWindow:debug-info-filename] would be used as +the suggested filename. + +Debug information cannot contain markup or links. + Use [class@AboutDialog]. + + + + + + + an about window + + + + the debug information + + + + + + Sets the debug information filename for @self. + +It will be used as the suggested filename when saving debug information to a +file. + +See [property@AboutWindow:debug-info]. + Use [class@AboutDialog]. + + + + + + + an about window + + + + the debug info filename + + + + + + Sets the list of designers of the application. + +It will be displayed on the Credits page. + +Each name may contain email addresses and URLs, see the introduction for more +details. + +See also: + +* [property@AboutWindow:developers] +* [property@AboutWindow:artists] +* [property@AboutWindow:documenters] +* [property@AboutWindow:translator-credits] +* [method@AboutWindow.add_credit_section] +* [method@AboutWindow.add_acknowledgement_section] + Use [class@AboutDialog]. + + + + + + + an about window + + + + the list of designers + + + + + + + + Sets the developer name for @self. + +The developer name is displayed on the main page, under the application name. + +If the application is developed by multiple people, the developer name can be +set to values like "AppName team", "AppName developers" or +"The AppName project", and the individual contributors can be listed on the +Credits page, with [property@AboutWindow:developers] and related properties. + Use [class@AboutDialog]. + + + + + + + an about window + + + + the developer name + + + + + + Sets the list of developers of the application. + +It will be displayed on the Credits page. + +Each name may contain email addresses and URLs, see the introduction for more +details. + +See also: + +* [property@AboutWindow:designers] +* [property@AboutWindow:artists] +* [property@AboutWindow:documenters] +* [property@AboutWindow:translator-credits] +* [method@AboutWindow.add_credit_section] +* [method@AboutWindow.add_acknowledgement_section] + Use [class@AboutDialog]. + + + + + + + an about window + + + + the list of developers + + + + + + + + Sets the list of documenters of the application. + +It will be displayed on the Credits page. + +Each name may contain email addresses and URLs, see the introduction for more +details. + +See also: + +* [property@AboutWindow:developers] +* [property@AboutWindow:designers] +* [property@AboutWindow:artists] +* [property@AboutWindow:translator-credits] +* [method@AboutWindow.add_credit_section] +* [method@AboutWindow.add_acknowledgement_section] + Use [class@AboutDialog]. + + + + + + + an about window + + + + the list of documenters + + + + + + + + Sets the issue tracker URL for @self. + +The issue tracker link is displayed on the main page. + Use [class@AboutDialog]. + + + + + + + an about window + + + + the issue tracker URL + + + + + + Sets the license for @self. + +This can be used to set a custom text for the license if it can't be set via +[property@AboutWindow:license-type]. + +When set, [property@AboutWindow:license-type] will be set to +[enum@Gtk.License.custom]. + +The license text will be displayed on the Legal page, below the copyright +information. + +License text can contain Pango markup and links. + +[method@AboutWindow.add_legal_section] can be used to add license information +for the application dependencies or other components. + Use [class@AboutDialog]. + + + + + + + an about window + + + + the license + + + + + + Sets the license for @self from a list of known licenses. + +If the application's license is not in the list, +[property@AboutWindow:license] can be used instead. The license type will be +automatically set to [enum@Gtk.License.custom] in that case. + +If @license_type is [enum@Gtk.License.unknown], no information will be displayed. + +If @license_type is different from [enum@Gtk.License.custom]. +[property@AboutWindow:license] will be cleared out. + +The license description will be displayed on the Legal page, below the +copyright information. + +[method@AboutWindow.add_legal_section] can be used to add license information +for the application dependencies or other components. + Use [class@AboutDialog]. + + + + + + + an about window + + + + the license type + + + + + + Sets the release notes for @self. + +Release notes are displayed on the the What's New page. + +Release notes are formatted the same way as +[AppStream descriptions](https://freedesktop.org/software/appstream/docs/chap-Metadata.html#tag-description). + +The supported formatting options are: + +* Paragraph (`<p>`) +* Ordered list (`<ol>`), with list items (`<li>`) +* Unordered list (`<ul>`), with list items (`<li>`) + +Within paragraphs and list items, emphasis (`<em>`) and inline code +(`<code>`) text styles are supported. The emphasis is rendered in italic, +while inline code is shown in a monospaced font. + +Any text outside paragraphs or list items is ignored. + +Nested lists are not supported. + +`AdwAboutWindow` displays the version above the release notes. If set, the +[property@AboutWindow:release-notes-version] of the property will be used +as the version; otherwise, [property@AboutWindow:version] is used. + Use [class@AboutDialog]. + + + + + + + an about window + + + + the release notes + + + + + + Sets the version described by the application's release notes. + +The release notes version is displayed on the What's New page, above the +release notes. + +If not set, [property@AboutWindow:version] will be used instead. + +For example, an application with the current version 2.0.2 might want to +keep the release notes from 2.0.0, and set the release notes version +accordingly. + +See [property@AboutWindow:release-notes]. + Use [class@AboutDialog]. + + + + + + + an about window + + + + the release notes version + + + + + + Sets the URL of the support page for @self. + +The support page link is displayed on the main page. + Use [class@AboutDialog]. + + + + + + + an about window + + + + the support page URL + + + + + + Sets the translator credits string. + +It will be displayed on the Credits page. + +This string should be `"translator-credits"` or `"translator_credits"` and +should be marked as translatable. + +The string may contain email addresses and URLs, see the introduction for +more details. When there is more than one translator, they must be +separated by a newline in the same string. + +See also: + +* [property@AboutWindow:developers] +* [property@AboutWindow:designers] +* [property@AboutWindow:artists] +* [property@AboutWindow:documenters] +* [method@AboutWindow.add_credit_section] +* [method@AboutWindow.add_acknowledgement_section] + Use [class@AboutDialog]. + + + + + + + an about window + + + + the translator credits + + + + + + Sets the version for @self. + +The version is displayed on the main page. + +If [property@AboutWindow:release-notes-version] is not set, the version will +also be displayed above the release notes on the What's New page. + Use [class@AboutDialog]. + + + + + + + an about window + + + + the version + + + + + + Sets the application website URL for @self. + +Website is displayed on the Details page, below comments, or on the main page +if the Details page doesn't have any other content. + +Applications can add other links below, see [method@AboutWindow.add_link]. + Use [class@AboutDialog]. + + + + + + + an about window + + + + the website URL + + + + + + The name of the application icon. + +The icon is displayed at the top of the main page. + Use [class@AboutDialog]. + + + + The name of the application. + +The name is displayed at the top of the main page. + Use [class@AboutDialog]. + + + + The list of artists of the application. + +It will be displayed on the Credits page. + +Each name may contain email addresses and URLs, see the introduction for +more details. + +See also: + +* [property@AboutWindow:developers] +* [property@AboutWindow:designers] +* [property@AboutWindow:documenters] +* [property@AboutWindow:translator-credits] +* [method@AboutWindow.add_credit_section] +* [method@AboutWindow.add_acknowledgement_section] + Use [class@AboutDialog]. + + + + + + The comments about the application. + +Comments will be shown on the Details page, above links. + +Unlike [property@Gtk.AboutDialog:comments], this string can be long and +detailed. It can also contain links and Pango markup. + Use [class@AboutDialog]. + + + + The copyright information. + +This should be a short string of one or two lines, for example: +`© 2022 Example`. + +The copyright information will be displayed on the Legal page, above the +application license. + +[method@AboutWindow.add_legal_section] can be used to add copyright +information for the application dependencies or other components. + Use [class@AboutDialog]. + + + + The debug information. + +Debug information will be shown on the Troubleshooting page. It's intended +to be attached to issue reports when reporting issues against the +application. + +`AdwAboutWindow` provides a quick way to save debug information to a file. +When saving, [property@AboutWindow:debug-info-filename] would be used as +the suggested filename. + +Debug information cannot contain markup or links. + Use [class@AboutDialog]. + + + + The debug information filename. + +It will be used as the suggested filename when saving debug information to +a file. + +See [property@AboutWindow:debug-info]. + Use [class@AboutDialog]. + + + + The list of designers of the application. + +It will be displayed on the Credits page. + +Each name may contain email addresses and URLs, see the introduction for +more details. + +See also: + +* [property@AboutWindow:developers] +* [property@AboutWindow:artists] +* [property@AboutWindow:documenters] +* [property@AboutWindow:translator-credits] +* [method@AboutWindow.add_credit_section] +* [method@AboutWindow.add_acknowledgement_section] + Use [class@AboutDialog]. + + + + + + The developer name. + +The developer name is displayed on the main page, under the application +name. + +If the application is developed by multiple people, the developer name can +be set to values like "AppName team", "AppName developers" or +"The AppName project", and the individual contributors can be listed on the +Credits page, with [property@AboutWindow:developers] and related +properties. + Use [class@AboutDialog]. + + + + The list of developers of the application. + +It will be displayed on the Credits page. + +Each name may contain email addresses and URLs, see the introduction for +more details. + +See also: + +* [property@AboutWindow:designers] +* [property@AboutWindow:artists] +* [property@AboutWindow:documenters] +* [property@AboutWindow:translator-credits] +* [method@AboutWindow.add_credit_section] +* [method@AboutWindow.add_acknowledgement_section] + Use [class@AboutDialog]. + + + + + + The list of documenters of the application. + +It will be displayed on the Credits page. + +Each name may contain email addresses and URLs, see the introduction for +more details. + +See also: + +* [property@AboutWindow:developers] +* [property@AboutWindow:designers] +* [property@AboutWindow:artists] +* [property@AboutWindow:translator-credits] +* [method@AboutWindow.add_credit_section] +* [method@AboutWindow.add_acknowledgement_section] + Use [class@AboutDialog]. + + + + + + The URL for the application's issue tracker. + +The issue tracker link is displayed on the main page. + Use [class@AboutDialog]. + + + + The license text. + +This can be used to set a custom text for the license if it can't be set +via [property@AboutWindow:license-type]. + +When set, [property@AboutWindow:license-type] will be set to +[enum@Gtk.License.custom]. + +The license text will be displayed on the Legal page, below the copyright +information. + +License text can contain Pango markup and links. + +[method@AboutWindow.add_legal_section] can be used to add license +information for the application dependencies or other components. + Use [class@AboutDialog]. + + + + The license type. + +Allows to set the application's license froma list of known licenses. + +If the application's license is not in the list, +[property@AboutWindow:license] can be used instead. The license type will +be automatically set to [enum@Gtk.License.custom] in that case. + +If set to [enum@Gtk.License.unknown], no information will be displayed. + +If the license type is different from [enum@Gtk.License.custom]. +[property@AboutWindow:license] will be cleared out. + +The license description will be displayed on the Legal page, below the +copyright information. + +[method@AboutWindow.add_legal_section] can be used to add license +information for the application dependencies or other components. + Use [class@AboutDialog]. + + + + The release notes of the application. + +Release notes are displayed on the the What's New page. + +Release notes are formatted the same way as +[AppStream descriptions](https://freedesktop.org/software/appstream/docs/chap-Metadata.html#tag-description). + +The supported formatting options are: + +* Paragraph (`<p>`) +* Ordered list (`<ol>`), with list items (`<li>`) +* Unordered list (`<ul>`), with list items (`<li>`) + +Within paragraphs and list items, emphasis (`<em>`) and inline code +(`<code>`) text styles are supported. The emphasis is rendered in italic, +while inline code is shown in a monospaced font. + +Any text outside paragraphs or list items is ignored. + +Nested lists are not supported. + +`AdwAboutWindow` displays the version above the release notes. If set, the +[property@AboutWindow:release-notes-version] of the property will be used +as the version; otherwise, [property@AboutWindow:version] is used. + Use [class@AboutDialog]. + + + + The version described by the application's release notes. + +The release notes version is displayed on the What's New page, above the +release notes. + +If not set, [property@AboutWindow:version] will be used instead. + +For example, an application with the current version 2.0.2 might want to +keep the release notes from 2.0.0, and set the release notes version +accordingly. + +See [property@AboutWindow:release-notes]. + Use [class@AboutDialog]. + + + + The URL of the application's support page. + +The support page link is displayed on the main page. + Use [class@AboutDialog]. + + + + The translator credits string. + +It will be displayed on the Credits page. + +This string should be `"translator-credits"` or `"translator_credits"` and +should be marked as translatable. + +The string may contain email addresses and URLs, see the introduction for +more details. + +See also: + +* [property@AboutWindow:developers] +* [property@AboutWindow:designers] +* [property@AboutWindow:artists] +* [property@AboutWindow:documenters] +* [method@AboutWindow.add_credit_section] +* [method@AboutWindow.add_acknowledgement_section] + Use [class@AboutDialog]. + + + + The version of the application. + +The version is displayed on the main page. + +If [property@AboutWindow:release-notes-version] is not set, the version +will also be displayed above the release notes on the What's New page. + Use [class@AboutDialog]. + + + + The URL of the application's website. + +Website is displayed on the Details page, below comments, or on the main +page if the Details page doesn't have any other content. + +Applications can add other links below, see [method@AboutWindow.add_link]. + Use [class@AboutDialog]. + + + + Emitted when a URL is activated. + +Applications may connect to it to override the default behavior, which is +to call [func@Gtk.show_uri]. + Use [class@AboutDialog]. + + `TRUE` if the link has been activated + + + + + the URI to activate + + + + + + + + + + + + + Describes the available system accent colors. + + Use a blue color (`#3584e4`). This is the default value. + + + Use a teal color (`#2190a4`). + + + Use a green color (`#3a944a`). + + + Use a yellow color (`#c88800`). + + + Use a orange color (`#ed5b00`). + + + Use a red color (`#e62d42`). + + + Use a pink color (`#d56199`). + + + Use a purple color (`#9141ac`). + + + Use a slate color (`#6f8396`). + + + Converts @self to a `GdkRGBA` representing its background color. + +The matching foreground color is white. + + + + + + + an accent color + + + + return location for the color + + + + + + Converts @self to a `GdkRGBA` representing its standalone color. + +It will typically be darker for light background, and lighter for dark +background, ensuring contrast. + + + + + + + an accent color + + + + Whether to calculate standalone color for light or dark background + + + + return location for the color + + + + + + + A [class@Gtk.ListBoxRow] used to present actions. + +<picture> + <source srcset="action-row-dark.png" media="(prefers-color-scheme: dark)"> + <img src="action-row.png" alt="action-row"> +</picture> + +The `AdwActionRow` widget can have a title, a subtitle and an icon. The row +can receive additional widgets at its end, or prefix widgets at its start. + +It is convenient to present a preference and its related actions. + +`AdwActionRow` is unactivatable by default, giving it an activatable widget +will automatically make it activatable, but unsetting it won't change the +row's activatability. + +## AdwActionRow as GtkBuildable + +The `AdwActionRow` implementation of the [iface@Gtk.Buildable] interface +supports adding a child at its end by specifying “suffix” or omitting the +“type” attribute of a <child> element. + +It also supports adding a child as a prefix widget by specifying “prefix” as +the “type” attribute of a <child> element. + +## CSS nodes + +`AdwActionRow` has a main CSS node with name `row`. + +It contains the subnode `box.header` for its main horizontal box, and +`box.title` for the vertical box containing the title and subtitle labels. + +It contains subnodes `label.title` and `label.subtitle` representing +respectively the title label and subtitle label. + +## Style classes + +`AdwActionRow` can use the [`.property`](style-classes.html#property-rows) +style class to emphasize the row subtitle instead of the row title, which is +useful for displaying read-only properties. + +<picture> + <source srcset="property-row-dark.png" media="(prefers-color-scheme: dark)"> + <img src="property-row.png" alt="property-row"> +</picture> + +When used together with the `.monospace` style class, only the subtitle +becomes monospace, not the title or any extra widgets. + + + + + + + Creates a new `AdwActionRow`. + + + the newly created `AdwActionRow` + + + + + Activates @self. + + + + + + + an action row + + + + + + Activates @self. + + + + + + + an action row + + + + + + Adds a prefix widget to @self. + + + + + + + an action row + + + + a widget + + + + + + Adds a suffix widget to @self. + + + + + + + an action row + + + + a widget + + + + + + Gets the widget activated when @self is activated. + + + the activatable widget for @self + + + + + an action row + + + + + + Gets the icon name for @self. + Use [method@ActionRow.add_prefix] to add an icon. + + + the icon name for @self + + + + + an action row + + + + + + Gets the subtitle for @self. + + + the subtitle for @self + + + + + an action row + + + + + + Gets the number of lines at the end of which the subtitle label will be +ellipsized. + + + the number of lines at the end of which the subtitle label will be + ellipsized + + + + + an action row + + + + + + Gets whether the user can copy the subtitle from the label + + + whether the user can copy the subtitle from the label + + + + + an action row + + + + + + Gets the number of lines at the end of which the title label will be +ellipsized. + + + the number of lines at the end of which the title label will be + ellipsized + + + + + an action row + + + + + + Removes a child from @self. + + + + + + + an action row + + + + the child to be removed + + + + + + Sets the widget to activate when @self is activated. + +The row can be activated either by clicking on it, calling +[method@ActionRow.activate], or via mnemonics in the title. +See the [property@PreferencesRow:use-underline] property to enable mnemonics. + +The target widget will be activated by emitting the +[signal@Gtk.Widget::mnemonic-activate] signal on it. + + + + + + + an action row + + + + the target widget + + + + + + Sets the icon name for @self. + Use [method@ActionRow.add_prefix] to add an icon. + + + + + + + an action row + + + + the icon name + + + + + + Sets the subtitle for @self. + +The subtitle is interpreted as Pango markup unless +[property@PreferencesRow:use-markup] is set to `FALSE`. + + + + + + + an action row + + + + the subtitle + + + + + + Sets the number of lines at the end of which the subtitle label will be +ellipsized. + +If the value is 0, the number of lines won't be limited. + + + + + + + an action row + + + + the number of lines at the end of which the subtitle label will be ellipsized + + + + + + Sets whether the user can copy the subtitle from the label + +See also [property@Gtk.Label:selectable]. + + + + + + + an action row + + + + `TRUE` if the user can copy the subtitle from the label + + + + + + Sets the number of lines at the end of which the title label will be +ellipsized. + +If the value is 0, the number of lines won't be limited. + + + + + + + an action row + + + + the number of lines at the end of which the title label will be ellipsized + + + + + + The widget to activate when the row is activated. + +The row can be activated either by clicking on it, calling +[method@ActionRow.activate], or via mnemonics in the title. +See the [property@PreferencesRow:use-underline] property to enable +mnemonics. + +The target widget will be activated by emitting the +[signal@Gtk.Widget::mnemonic-activate] signal on it. + + + + The icon name for this row. + Use [method@ActionRow.add_prefix] to add an icon. + + + + The subtitle for this row. + +The subtitle is interpreted as Pango markup unless +[property@PreferencesRow:use-markup] is set to `FALSE`. + + + + The number of lines at the end of which the subtitle label will be +ellipsized. + +If the value is 0, the number of lines won't be limited. + + + + Whether the user can copy the subtitle from the label. + +See also [property@Gtk.Label:selectable]. + + + + The number of lines at the end of which the title label will be ellipsized. + +If the value is 0, the number of lines won't be limited. + + + + + + + This signal is emitted after the row has been activated. + + + + + + + + + The parent class + + + + Activates the row to trigger its main action. + + + + + + + + an action row + + + + + + + + + + + + + A dialog presenting a message or a question. + +<picture> + <source srcset="alert-dialog-dark.png" media="(prefers-color-scheme: dark)"> + <img src="alert-dialog.png" alt="alert-dialog"> +</picture> + +Alert dialogs have a heading, a body, an optional child widget, and one or +multiple responses, each presented as a button. + +Each response has a unique string ID, and a button label. Additionally, each +response can be enabled or disabled, and can have a suggested or destructive +appearance. + +When one of the responses is activated, or the dialog is closed, the +[signal@AlertDialog::response] signal will be emitted. This signal is +detailed, and the detail, as well as the `response` parameter will be set to +the ID of the activated response, or to the value of the +[property@AlertDialog:close-response] property if the dialog had been closed +without activating any of the responses. + +Response buttons can be presented horizontally or vertically depending on +available space. + +When a response is activated, `AdwAlertDialog` is closed automatically. + +An example of using an alert dialog: + +```c +AdwDialog *dialog; + +dialog = adw_alert_dialog_new (_("Replace File?"), NULL); + +adw_alert_dialog_format_body (ADW_ALERT_DIALOG (dialog), + _("A file named “%s” already exists. Do you want to replace it?"), + filename); + +adw_alert_dialog_add_responses (ADW_ALERT_DIALOG (dialog), + "cancel", _("_Cancel"), + "replace", _("_Replace"), + NULL); + +adw_alert_dialog_set_response_appearance (ADW_ALERT_DIALOG (dialog), + "replace", + ADW_RESPONSE_DESTRUCTIVE); + +adw_alert_dialog_set_default_response (ADW_ALERT_DIALOG (dialog), "cancel"); +adw_alert_dialog_set_close_response (ADW_ALERT_DIALOG (dialog), "cancel"); + +g_signal_connect (dialog, "response", G_CALLBACK (response_cb), self); + +adw_dialog_present (dialog, parent); +``` + +## Async API + +`AdwAlertDialog` can also be used via the [method@AlertDialog.choose] method. +This API follows the GIO async pattern, for example: + +```c +static void +dialog_cb (AdwAlertDialog *dialog, + GAsyncResult *result, + MyWindow *self) +{ + const char *response = adw_alert_dialog_choose_finish (dialog, result); + + // ... +} + +static void +show_dialog (MyWindow *self) +{ + AdwDialog *dialog; + + dialog = adw_alert_dialog_new (_("Replace File?"), NULL); + + adw_alert_dialog_format_body (ADW_ALERT_DIALOG (dialog), + _("A file named “%s” already exists. Do you want to replace it?"), + filename); + + adw_alert_dialog_add_responses (ADW_ALERT_DIALOG (dialog), + "cancel", _("_Cancel"), + "replace", _("_Replace"), + NULL); + + adw_alert_dialog_set_response_appearance (ADW_ALERT_DIALOG (dialog), + "replace", + ADW_RESPONSE_DESTRUCTIVE); + + adw_alert_dialog_set_default_response (ADW_ALERT_DIALOG (dialog), "cancel"); + adw_alert_dialog_set_close_response (ADW_ALERT_DIALOG (dialog), "cancel"); + + adw_alert_dialog_choose (ADW_ALERT_DIALOG (dialog), GTK_WIDGET (self), + NULL, (GAsyncReadyCallback) dialog_cb, self); +} +``` + +## AdwAlertDialog as GtkBuildable + +`AdwAlertDialog` supports adding responses in UI definitions by via the +`<responses>` element that may contain multiple `<response>` elements, each +representing a response. + +Each of the `<response>` elements must have the `id` attribute specifying the +response ID. The contents of the element are used as the response label. + +Response labels can be translated with the usual `translatable`, `context` +and `comments` attributes. + +The `<response>` elements can also have `enabled` and/or `appearance` +attributes. See [method@AlertDialog.set_response_enabled] and +[method@AlertDialog.set_response_appearance] for details. + +Example of an `AdwAlertDialog` UI definition: + +```xml +<object class="AdwAlertDialog" id="dialog"> + <property name="heading" translatable="yes">Save Changes?</property> + <property name="body" translatable="yes">Open documents contain unsaved changes. Changes which are not saved will be permanently lost.</property> + <property name="default-response">save</property> + <property name="close-response">cancel</property> + <signal name="response" handler="response_cb"/> + <responses> + <response id="cancel" translatable="yes">_Cancel</response> + <response id="discard" translatable="yes" appearance="destructive">_Discard</response> + <response id="save" translatable="yes" appearance="suggested" enabled="false">_Save</response> + </responses> +</object> +``` + + + + + + + Creates a new `AdwAlertDialog`. + +@heading and @body can be set to `NULL`. This can be useful if they need to +be formatted or use markup. In that case, set them to `NULL` and call +[method@AlertDialog.format_body] or similar methods afterwards: + +```c +AdwDialog *dialog; + +dialog = adw_alert_dialog_new (_("Replace File?"), NULL); +adw_alert_dialog_format_body (ADW_ALERT_DIALOG (dialog), + _("A file named “%s” already exists. Do you want to replace it?"), + filename); +``` + + + the newly created `AdwAlertDialog` + + + + + the heading + + + + the body text + + + + + + + + + + + + + + + + + + + + Adds a response with @id and @label to @self. + +Responses are represented as buttons in the dialog. + +Response ID must be unique. It will be used in [signal@AlertDialog::response] +to tell which response had been activated, as well as to inspect and modify +the response later. + +An embedded underline in @label indicates a mnemonic. + +[method@AlertDialog.set_response_label] can be used to change the response +label after it had been added. + +[method@AlertDialog.set_response_enabled] and +[method@AlertDialog.set_response_appearance] can be used to customize the +responses further. + + + + + + + an alert dialog + + + + the response ID + + + + the response label + + + + + + Adds multiple responses to @self. + +This is the same as calling [method@AlertDialog.add_response] repeatedly. The +variable argument list should be `NULL`-terminated list of response IDs and +labels. + +Example: + +```c +adw_alert_dialog_add_responses (dialog, + "cancel", _("_Cancel"), + "discard", _("_Discard"), + "save", _("_Save"), + NULL); +``` + + + + + + + an alert dialog + + + + response id + + + + label for first response, then more id-label pairs + + + + + + This function shows @self to the user. + +If the window is an [class@Window] or [class@ApplicationWindow], the dialog +will be shown within it. Otherwise, it will be a separate window. + + + + + + + an alert dialog + + + + the parent widget + + + + a `GCancellable` to cancel the operation + + + + a callback to call when the operation is complete + + + + data to pass to @callback + + + + + + Finishes the [method@AlertDialog.choose] call and returns the response ID. + + + the ID of the response that was selected, or + [property@AlertDialog:close-response] if the call was cancelled. + + + + + an alert dialog + + + + a `GAsyncResult` + + + + + + Sets the formatted body text of @self. + +See [property@AlertDialog:body]. + + + + + + + an alert dialog + + + + the formatted string for the body text + + + + the parameters to insert into @format + + + + + + Sets the formatted body text of @self with Pango markup. + +The @format is assumed to contain Pango markup. + +Special XML characters in the `printf()` arguments passed to this function +will automatically be escaped as necessary, see +[func@GLib.markup_printf_escaped]. + +See [property@AlertDialog:body]. + + + + + + + an alert dialog + + + + the formatted string for the body text with Pango markup + + + + the parameters to insert into @format + + + + + + Sets the formatted heading of @self. + +See [property@AlertDialog:heading]. + + + + + + + an alert dialog + + + + the formatted string for the heading + + + + the parameters to insert into @format + + + + + + Sets the formatted heading of @self with Pango markup. + +The @format is assumed to contain Pango markup. + +Special XML characters in the `printf()` arguments passed to this function +will automatically be escaped as necessary, see +[func@GLib.markup_printf_escaped]. + +See [property@AlertDialog:heading]. + + + + + + + an alert dialog + + + + the formatted string for the heading with Pango markup + + + + the parameters to insert into @format + + + + + + Gets the body text of @self. + + + the body of @self. + + + + + an alert dialog + + + + + + Gets whether the body text of @self includes Pango markup. + + + whether @self uses markup for body text + + + + + an alert dialog + + + + + + Gets the ID of the close response of @self. + + + the close response ID + + + + + an alert dialog + + + + + + Gets the ID of the default response of @self. + + + the default response ID + + + + + an alert dialog + + + + + + Gets the child widget of @self. + + + the child widget of @self. + + + + + an alert dialog + + + + + + Gets the heading of @self. + + + the heading of @self. + + + + + an alert dialog + + + + + + Gets whether the heading of @self includes Pango markup. + + + whether @self uses markup for heading + + + + + an alert dialog + + + + + + Gets whether @self prefers horizontal button layout. + + + whether to prefer wide layout + + + + + an alert dialog + + + + + + Gets the appearance of @response. + +See [method@AlertDialog.set_response_appearance]. + + + the appearance of @response + + + + + an alert dialog + + + + a response ID + + + + + + Gets whether @response is enabled. + +See [method@AlertDialog.set_response_enabled]. + + + whether @response is enabled + + + + + an alert dialog + + + + a response ID + + + + + + Gets the label of @response. + +See [method@AlertDialog.set_response_label]. + + + the label of @response + + + + + an alert dialog + + + + a response ID + + + + + + Gets whether @self has a response with the ID @response. + + + whether @self has a response with the ID @response. + + + + + an alert dialog + + + + response ID + + + + + + Removes a response from @self. + + + + + + + an alert dialog + + + + the response ID + + + + + + Sets the body text of @self. + + + + + + + an alert dialog + + + + the body of @self + + + + + + Sets whether the body text of @self includes Pango markup. + +See [func@Pango.parse_markup]. + + + + + + + an alert dialog + + + + whether to use markup for body text + + + + + + Sets the ID of the close response of @self. + +It will be passed to [signal@AlertDialog::response] if the dialog is closed +by pressing <kbd>Escape</kbd> or with a system action. + +It doesn't have to correspond to any of the responses in the dialog. + +The default close response is `close`. + + + + + + + an alert dialog + + + + the close response ID + + + + + + Sets the ID of the default response of @self. + +The button corresponding to this response will be set as the default widget +of @self. + +If not set, the default widget will not be set, and the last added response +will be focused by default. + +See [property@Dialog:default-widget]. + + + + + + + an alert dialog + + + + the default response ID + + + + + + Sets the child widget of @self. + +The child widget is displayed below the heading and body. + + + + + + + an alert dialog + + + + the child widget + + + + + + Sets the heading of @self. + + + + + + + an alert dialog + + + + the heading of @self + + + + + + Sets whether the heading of @self includes Pango markup. + +See [func@Pango.parse_markup]. + + + + + + + an alert dialog + + + + whether to use markup for heading + + + + + + Whether to prefer horizontal button layout. + +`AdwAlertDialog` can present buttons horizontally or vertically depending +on available space, how many buttons there are and how wide they are. + +By default it will prefer to stack buttons vertically at medium sizes. + +Set to `TRUE` to prefer horizontal layout in these cases instead. This will +make the dialog slightly wider as well. + +Vertical layout may still be used if the dialog would get too wide +otherwise. + +Does nothing with just one button, or when the buttons are already +horizontal. + + + + + + + an alert dialog + + + + whether to prefer wide layout + + + + + + Sets the appearance for @response. + +<picture> + <source srcset="alert-dialog-appearance-dark.png" media="(prefers-color-scheme: dark)"> + <img src="alert-dialog-appearance.png" alt="alert-dialog-appearance"> +</picture> + +Use [enum@Adw.ResponseAppearance.suggested] to mark important responses such +as the affirmative action, like the Save button in the example. + +Use [enum@Adw.ResponseAppearance.destructive] to draw attention to the +potentially damaging consequences of using @response. This appearance acts as +a warning to the user. The Discard button in the example is using this +appearance. + +The default appearance is [enum@Adw.ResponseAppearance.default]. + +Negative responses like Cancel or Close should use the default appearance. + + + + + + + an alert dialog + + + + a response ID + + + + appearance for @response + + + + + + Sets whether @response is enabled. + +If @response is not enabled, the corresponding button will have +[property@Gtk.Widget:sensitive] set to `FALSE` and it can't be activated as +a default response. + +@response can still be used as [property@AlertDialog:close-response] while +it's not enabled. + +Responses are enabled by default. + + + + + + + an alert dialog + + + + a response ID + + + + whether to enable @response + + + + + + Sets the label of @response to @label. + +Labels are displayed on the dialog buttons. An embedded underline in @label +indicates a mnemonic. + + + + + + + an alert dialog + + + + a response ID + + + + the label of @response + + + + + + The body text of the dialog. + + + + Whether the body text includes Pango markup. + +See [func@Pango.parse_markup]. + + + + The ID of the close response. + +It will be passed to [signal@AlertDialog::response] if the dialog is +closed by pressing <kbd>Escape</kbd> or with a system action. + +It doesn't have to correspond to any of the responses in the dialog. + +The default close response is `close`. + + + + The response ID of the default response. + +The button corresponding to this response will be set as the default widget +of the dialog. + +If not set, the default widget will not be set, and the last added response +will be focused by default. + +See [property@Dialog:default-widget]. + + + + The child widget. + +Displayed below the heading and body. + + + + The heading of the dialog. + + + + Whether the heading includes Pango markup. + +See [func@Pango.parse_markup]. + + + + Whether to prefer horizontal button layout. + +`AdwAlertDialog` can present buttons horizontally or vertically depending +on available space, how many buttons there are and how wide they are. + +By default it will prefer to stack buttons vertically at medium sizes. + +Set to `TRUE` to prefer horizontal layout in these cases instead. This will +make the dialog slightly wider as well. + +Vertical layout may still be used if the dialog would get too wide +otherwise. + +Does nothing with just one button, or when the buttons are already +horizontal. + + + + + + + This signal is emitted when the dialog is closed. + +@response will be set to the response ID of the button that had been +activated. + +if the dialog was closed by pressing <kbd>Escape</kbd> or with a system +action, @response will be set to the value of +[property@AlertDialog:close-response]. + + + + + + the response ID + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + A base class for animations. + +`AdwAnimation` represents an animation on a widget. It has a target that +provides a value to animate, and a state indicating whether the +animation hasn't been started yet, is playing, paused or finished. + +Currently there are two concrete animation types: +[class@TimedAnimation] and [class@SpringAnimation]. + +`AdwAnimation` will automatically skip the animation if +[property@Animation:widget] is unmapped, or if +[property@Gtk.Settings:gtk-enable-animations] is `FALSE`. + +The [signal@Animation::done] signal can be used to perform an action after +the animation ends, for example hiding a widget after animating its +[property@Gtk.Widget:opacity] to 0. + +`AdwAnimation` will be kept alive while the animation is playing. As such, +it's safe to create an animation, start it and immediately unref it: +A fire-and-forget animation: + +```c +static void +animation_cb (double value, + MyObject *self) +{ + // Do something with @value +} + +static void +my_object_animate (MyObject *self) +{ + AdwAnimationTarget *target = + adw_callback_animation_target_new ((AdwAnimationTargetFunc) animation_cb, + self, NULL); + g_autoptr (AdwAnimation) animation = + adw_timed_animation_new (widget, 0, 1, 250, target); + + adw_animation_play (animation); +} +``` + +If there's a chance the previous animation for the same target hasn't yet +finished, the previous animation should be stopped first, or the existing +`AdwAnimation` object can be reused. + + + Gets whether @self should be skipped when animations are globally disabled. + + + whether to follow the global setting + + + + + an animation + + + + + + Gets the current value of @self. + +The state indicates whether @self is currently playing, paused, finished or +hasn't been started yet. + + + the animation value + + + + + an animation + + + + + + Gets the target @self animates. + + + the animation target + + + + + an animation + + + + + + Gets the current value of @self. + + + the current value + + + + + an animation + + + + + + Gets the widget @self was created for. + +It provides the frame clock for the animation. It's not strictly necessary +for this widget to be same as the one being animated. + +The widget must be mapped in order for the animation to work. If it's not +mapped, or if it gets unmapped during an ongoing animation, the animation +will be automatically skipped. + + + the animation widget + + + + + an animation + + + + + + Pauses a playing animation for @self. + +Does nothing if the current state of @self isn't +[enum@Adw.AnimationState.playing]. + +Sets [property@Animation:state] to [enum@Adw.AnimationState.paused]. + + + + + + + an animation + + + + + + Starts the animation for @self. + +If the animation is playing, paused or has been completed, restarts it from +the beginning. This allows to easily play an animation regardless of whether +it's already playing or not. + +Sets [property@Animation:state] to [enum@Adw.AnimationState.playing]. + +The animation will be automatically skipped if [property@Animation:widget] is +unmapped, or if [property@Gtk.Settings:gtk-enable-animations] is `FALSE`. + +As such, it's not guaranteed that the animation will actually run. For +example, when using [func@GLib.idle_add] and starting an animation +immediately afterwards, it's entirely possible that the idle callback will +run after the animation has already finished, and not while it's playing. + + + + + + + an animation + + + + + + Resets the animation for @self. + +Sets [property@Animation:state] to [enum@Adw.AnimationState.idle]. + + + + + + + an animation + + + + + + Resumes a paused animation for @self. + +This function must only be used if the animation has been paused with +[method@Animation.pause]. + +Sets [property@Animation:state] to [enum@Adw.AnimationState.playing]. + + + + + + + an animation + + + + + + Sets whether to skip @self when animations are globally disabled. + +The default behavior is to skip the animation. Set to `FALSE` to disable this +behavior. + +This can be useful for cases where animation is essential, like spinners, or +in demo applications. Most other animations should keep it enabled. + +See [property@Gtk.Settings:gtk-enable-animations]. + + + + + + + an animation + + + + whether to follow the global setting + + + + + + Sets the target @self animates to @target. + + + + + + + an animation + + + + an animation target + + + + + + Skips the animation for @self. + +If the animation hasn't been started yet, is playing, or is paused, instantly +skips the animation to the end and causes [signal@Animation::done] to be +emitted. + +Sets [property@Animation:state] to [enum@Adw.AnimationState.finished]. + + + + + + + an animation + + + + + + Whether to skip the animation when animations are globally disabled. + +The default behavior is to skip the animation. Set to `FALSE` to disable +this behavior. + +This can be useful for cases where animation is essential, like spinners, +or in demo applications. Most other animations should keep it enabled. + +See [property@Gtk.Settings:gtk-enable-animations]. + + + + The animation state. + +The state indicates whether the animation is currently playing, paused, +finished or hasn't been started yet. + + + + The target to animate. + + + + The current value of the animation. + + + + The animation widget. + +It provides the frame clock for the animation. It's not strictly necessary +for this widget to be same as the one being animated. + +The widget must be mapped in order for the animation to work. If it's not +mapped, or if it gets unmapped during an ongoing animation, the animation +will be automatically skipped. + + + + + + + This signal is emitted when the animation has been completed, either on its +own or via calling [method@Animation.skip]. + + + + + + + + + + Describes the possible states of an [class@Animation]. + +The state can be controlled with [method@Animation.play], +[method@Animation.pause], [method@Animation.resume], +[method@Animation.reset] and [method@Animation.skip]. + + The animation hasn't started yet. + + + The animation has been paused. + + + The animation is currently playing. + + + The animation has finished. + + + + Represents a value [class@Animation] can animate. + + + + + + + Prototype for animation targets based on user callbacks. + + + + + + + The animation value + + + + The user data provided when creating the target + + + + + + A base class for Adwaita applications. + +`AdwApplication` handles library initialization by calling [func@init] in the +default [signal@Gio.Application::startup] signal handler, in turn chaining up +as required by [class@Gtk.Application]. Therefore, any subclass of +`AdwApplication` should always chain up its `startup` handler before using +any Adwaita or GTK API. + +## Automatic Resources + +`AdwApplication` will automatically load certain resources located in the +application's resource base path (see +[method@Gio.Application.set_resource_base_path], if they're present. + +### Shortcuts Dialog + +If there's a resource located at `shortcuts-dialog.ui` which defines an +[class@ShortcutsDialog] with the ID `shortcuts_dialog`, `AdwApplication` +will set up an `app.shortcuts` action that creates and presents this dialog, +as well as a <kbd>Ctrl</kbd><kbd>?</kbd> accelerator for it. + +### Stylesheet + +If there's a resource located at `style.css`, `AdwApplication` will load +styles from it. This can be used to add custom styles to the application. + +#### Additional styles (deprecated) + +`AdwApplication` will also load the following stylesheets conditionally: + +- `style-dark.css` when [property@StyleManager:dark] is `TRUE`. + +- `style-hc.css` when the system high contrast preference is enabled. + +- `style-hc-dark.css` when the system high contrast preference is enabled and + [property@StyleManager:dark] is `TRUE`. + +:::warning + These resources are deprecated since 1.9. + + Use `style.css` with the following media queries instead: + + - `prefers-color-scheme: dark` for styles used only for dark appearance. + - `prefers-contrast: more` for styles used only when the system high + contrast preference is enabled. + + + + + Creates a new `AdwApplication`. + +If `application_id` is not `NULL`, then it must be valid. See +[func@Gio.Application.id_is_valid]. + +If no application ID is given then some features (most notably application +uniqueness) will be disabled. + + + the newly created `AdwApplication` + + + + + The application ID + + + + The application flags + + + + + + Gets the style manager for @self. + +This is a convenience property allowing to access `AdwStyleManager` through +property bindings or expressions. + + + the style manager + + + + + an application + + + + + + The style manager for this application. + +This is a convenience property allowing to access `AdwStyleManager` through +property bindings or expressions. + + + + + + + + + + The parent class + + + + + + + + + + A freeform application window. + +<picture> + <source srcset="application-window-dark.png" media="(prefers-color-scheme: dark)"> + <img src="application-window.png" alt="application-window"> +</picture> + +`AdwApplicationWindow` is a [class@Gtk.ApplicationWindow] subclass providing +the same features as [class@Window]. + +See [class@Window] for details. + +Example of an `AdwApplicationWindow` UI definition: + +```xml +<object class="AdwApplicationWindow"> + <property name="content"> + <object class="AdwToolbarView"> + <child type="top"> + <object class="AdwHeaderBar"/> + </child> + <property name="content"> + <!-- put your content here --> + </property> + </object> + </property> +</object> +``` + +Using [property@Gtk.Application:menubar] is not supported and may result in +visual glitches. + + + + + + + + + + + Creates a new `AdwApplicationWindow` for @app. + + + the newly created `AdwApplicationWindow` + + + + + an application instance + + + + + + Adds @breakpoint to @self. + + + + + + + an application window + + + + the breakpoint to add + + + + + + Gets whether adaptive preview for @self is currently open. + + + whether adaptive preview is open. + + + + + an application window + + + + + + Gets the content widget of @self. + +This method should always be used instead of [method@Gtk.Window.get_child]. + + + the content widget of @self + + + + + an application window + + + + + + Gets the current breakpoint. + + + the current breakpoint + + + + + an application window + + + + + + Returns a [iface@Gio.ListModel] that contains the open dialogs of @self. + +This can be used to keep an up-to-date view. + + + a list model for the dialogs of @self + + + + + an application window + + + + + + Returns the currently visible dialog in @self, if there's one. + + + the visible dialog + + + + + an application window + + + + + + Sets whether adaptive preview for @self is currently open. + +Adaptive preview is a debugging tool used for testing the window +contents at specific screen sizes, simulating mobile environment. + +Adaptive preview can always be accessed from inspector. This function +allows applications to open it manually. + +Most applications should not use this function. + + + + + + + an application window + + + + whether to open adaptive preview + + + + + + Sets the content widget of @self. + +This method should always be used instead of [method@Gtk.Window.set_child]. + + + + + + + an application window + + + + the content widget + + + + + + Whether adaptive preview is currently open. + +Adaptive preview is a debugging tool used for testing the window +contents at specific screen sizes, simulating mobile environment. + +Adaptive preview can always be accessed from inspector. This function +allows applications to open it manually. + +Most applications should not use this property. + + + + The content widget. + +This property should always be used instead of [property@Gtk.Window:child]. + + + + The current breakpoint. + + + + The open dialogs. + + + + The currently visible dialog + + + + + + + + + + + + + + + + + + + A widget displaying an image, with a generated fallback. + +<picture> + <source srcset="avatar-dark.png" media="(prefers-color-scheme: dark)"> + <img src="avatar.png" alt="avatar"> +</picture> + +`AdwAvatar` is a widget that shows a round avatar. + +`AdwAvatar` generates an avatar with the initials of the +[property@Avatar:text] on top of a colored background. + +The color is picked based on the hash of the [property@Avatar:text]. + +If [property@Avatar:show-initials] is set to `FALSE`, +[property@Avatar:icon-name] or `adw-avatar-default-symbolic` is shown instead +of the initials. + +Use [property@Avatar:custom-image] to set a custom image. + +## CSS nodes + +`AdwAvatar` has a single CSS node with name `avatar`. + +## Accessibility + +`AdwAvatar` uses the [enum@Gtk.AccessibleRole.img] role. + + + + + + Creates a new `AdwAvatar`. + + + the newly created `AdwAvatar` + + + + + The size of the avatar + + + + the text used to get the initials and color + + + + whether to use initials instead of an icon as fallback + + + + + + Renders @self into a [class@Gdk.Texture] at @scale_factor. + +This can be used to export the fallback avatar. + + + the texture + + + + + an avatar + + + + The scale factor + + + + + + Gets the custom image paintable. + + + the custom image + + + + + an avatar + + + + + + Gets the name of an icon to use as a fallback. + + + the icon name + + + + + an avatar + + + + + + Gets whether initials are used instead of an icon on the fallback avatar. + + + whether initials are used instead of an icon as fallback + + + + + an avatar + + + + + + Gets the size of the avatar. + + + the size of the avatar + + + + + an avatar + + + + + + Gets the text used to generate the fallback initials and color. + + + the text used to generate the fallback initials and + color + + + + + an avatar + + + + + + Sets the custom image paintable. + +Custom image is displayed instead of initials or icon. + + + + + + + an avatar + + + + a custom image + + + + + + Sets the name of an icon to use as a fallback. + +If no name is set, `adw-avatar-default-symbolic` will be used. + + + + + + + an avatar + + + + the icon name + + + + + + Sets whether to use initials instead of an icon on the fallback avatar. + +See [property@Avatar:icon-name] for how to change the fallback icon. + + + + + + + an avatar + + + + whether to use initials instead of an icon as fallback + + + + + + Sets the size of the avatar. + + + + + + + an avatar + + + + The size of the avatar + + + + + + Sets the text used to generate the fallback initials and color. + +It's only used to generate the color if [property@Avatar:show-initials] is +`FALSE`. + + + + + + + an avatar + + + + the text used to get the initials and color + + + + + + A custom image paintable. + +Custom image is displayed instead of initials or icon. + + + + The name of an icon to use as a fallback. + +If no name is set, `adw-avatar-default-symbolic` will be used. + + + + Whether initials are used instead of an icon on the fallback avatar. + +See [property@Avatar:icon-name] for how to change the fallback icon. + + + + The size of the avatar. + + + + Sets the text used to generate the fallback initials and color. + +It's only used to generate the color if [property@Avatar:show-initials] is +`FALSE`. + + + + + + + + + + + A bar with contextual information. + +<picture> + <source srcset="banner-dark.png" media="(prefers-color-scheme: dark)"> + <img src="banner.png" alt="banner"> +</picture> + +Banners are hidden by default, use [property@Banner:revealed] to show them. + +Banners have a title, set with [property@Banner:title]. Titles can be marked +up with Pango markup, use [property@Banner:use-markup] to enable it. + +The title will be shown centered or left-aligned depending on available +space. + +Banners can optionally have a button with text on it, set through +[property@Banner:button-label]. The button can be used with a `GAction`, +or with the [signal@Banner::button-clicked] signal. The button can have +different styles, a gray style and a suggested style. + +<picture> + <source srcset="banner-suggested-dark.png" media="(prefers-color-scheme: dark)"> + <img src="banner-suggested.png" alt="banner with suggested button style"> +</picture> + +## CSS nodes + +`AdwBanner` has a main CSS node with the name `banner`. + + + + + + + Creates a new `AdwBanner`. + + + the newly created `AdwBanner` + + + + + the banner title + + + + + + Gets the button label for @self. + + + the button label for @self + + + + + a banner + + + + + + Gets the style class in use for the banner button. + + + the current button style + + + + + a banner + + + + + + Gets if a banner is revealed + + + Whether a banner is revealed + + + + + a banner + + + + + + Gets the title for @self. + + + the title for @self + + + + + a banner + + + + + + Gets whether to use Pango markup for the banner title. + + + whether to use markup + + + + + a banner + + + + + + Sets the button label for @self. + +If set to `""` or `NULL`, the button won't be shown. + +The button can be used with a `GAction`, or with the +[signal@Banner::button-clicked] signal. + + + + + + + a banner + + + + the label + + + + + + Sets the style class to use for the banner button. + +When set to [enum@Adw.BannerButtonStyle.default], the button is grey. +When set to [enum@Adw.BannerButtonStyle.suggested], the button uses the +[`.suggested-action`](style-classes.html#suggested-action) appearance. + +<picture> + <source srcset="banner-suggested-dark.png" media="(prefers-color-scheme: dark)"> + <img src="banner-suggested.png" alt="banner with suggested button style"> +</picture> + + + + + + + a banner + + + + a button style + + + + + + Sets whether a banner should be revealed + + + + + + + a banner + + + + whether a banner should be revealed + + + + + + Sets the title for this banner. + +See also: [property@Banner:use-markup]. + + + + + + + a banner + + + + the title + + + + + + Sets whether to use Pango markup for the banner title. + +See also [func@Pango.parse_markup]. + + + + + + + a banner + + + + whether to use markup + + + + + + The label to show on the button. + +If set to `""` or `NULL`, the button won't be shown. + +The button can be used with a `GAction`, or with the +[signal@Banner::button-clicked] signal. + + + + The style class to use for the banner button. + +When set to [enum@Adw.BannerButtonStyle.default], the button is grey. +When set to [enum@Adw.BannerButtonStyle.suggested], the button uses the +[`.suggested-action`](style-classes.html#suggested-action) appearance. + +<picture> + <source srcset="banner-suggested-dark.png" media="(prefers-color-scheme: dark)"> + <img src="banner-suggested.png" alt="banner with suggested button style"> +</picture> + + + + Whether the banner is currently revealed. + + + + The title for this banner. + +See also: [property@Banner:use-markup]. + + + + Whether to use Pango markup for the banner title. + +See also [func@Pango.parse_markup]. + + + + This signal is emitted after the action button has been clicked. + +It can be used as an alternative to setting an action. + + + + + + + Describes the available button styles for [class@Banner]. + +New values may be added to this enumeration over time. + +See [property@Banner:button-style]. + + The default button style. + + + A button in the suggested action style. + + + + + + + + + + A widget with one child. + +<picture> + <source srcset="bin-dark.png" media="(prefers-color-scheme: dark)"> + <img src="bin.png" alt="bin"> +</picture> + +The `AdwBin` widget has only one child, set with the [property@Bin:child] +property. + +It is useful for deriving subclasses, since it provides common code needed +for handling a single child widget. + + + + + + Creates a new `AdwBin`. + + + the new created `AdwBin` + + + + + Gets the child widget of @self. + + + the child widget of @self + + + + + a bin + + + + + + Sets the child widget of @self. + + + + + + + a bin + + + + the child widget + + + + + + The child widget of the `AdwBin`. + + + + + + + + + + + + + + A bottom sheet with an optional bottom bar. + +<picture> + <source srcset="bottom-sheet-dark.png" media="(prefers-color-scheme: dark)"> + <img src="bottom-sheet.png" alt="bottom-sheet"> +</picture> + +`AdwBottomSheet` has three child widgets. [property@BottomSheet:content] is +shown persistently. [property@BottomSheet:sheet] is displayed above it when +it's open, and [property@BottomSheet:bottom-bar] is displayed when it's not. + +Bottom sheet and bottom bar are attached to the bottom edge of the widget. +They take the full width by default, but can only take a portion of it if +[property@BottomSheet:full-width] is set to `FALSE`. In this case, +[property@BottomSheet:align] determines where along the bottom edge they are +placed. + +Bottom bar can be hidden using the [property@BottomSheet:reveal-bottom-bar] +property. + +`AdwBottomSheet` can be useful for applications such as music players, that +want to have a persistent bottom bar that expands into a bottom sheet when +clicked. It's meant for cases where a bottom sheet is tightly integrated into +the UI. For more transient bottom sheets, see [class@Dialog]. + +To open or close the bottom sheet, use the [property@BottomSheet:open] +property. + +By default, the bottom sheet has an overlaid drag handle. It can be disabled +by setting [property@BottomSheet:show-drag-handle] to `FALSE`. Note that the +handle also controls whether the sheet can be dragged using a pointer. + +Bottom sheets are modal by default, meaning that the content is dimmed and +cannot be accessed while the sheet is open. Set [property@BottomSheet:modal] +to `FALSE` if this behavior is unwanted. + +To disable user interactions for opening or closing the bottom sheet (such as +swipes or clicking the bottom bar or close button), set +[property@BottomSheet:can-open] or [property@BottomSheet:can-close] to +`FALSE`. + +In some cases, particularly when using a full-width bottom bar, it may be +necessary to shift [property@BottomSheet:content] upwards. Use the +[property@BottomSheet:bottom-bar-height] and +[property@BottomSheet:sheet-height] for that. + +`AdwBottomSheet` is not adaptive, and for larger window sizes applications +may want to replace it with another UI, such as a sidebar. This can be done +using [class@MultiLayoutView]. + +## Sizing + +Unlike [class@Dialog] presented as a bottom sheet, `AdwBottomSheet` just +follows the content's natural size, and it's up to the applications to make +sure their content provides one. For example, when using +[class@Gtk.ScrolledWindow], make sure to set +[property@Gtk.ScrolledWindow:propagate-natural-height] to `TRUE`. + +## Header Bar Integration + +When placed inside an `AdwBottomSheet`, [class@HeaderBar] will not show the +title when [property@BottomSheet:show-drag-handle] is `TRUE`, regardless of +[property@HeaderBar:show-title]. This only applies to the default title, +titles set with [property@HeaderBar:title-widget] will still be shown. + +## `AdwBottomSheet` as `GtkBuildable`: + +The `AdwBottomSheet` implementation of the [iface@Gtk.Buildable] interface +supports setting the sheet widget by specifying “sheet” as the “type” +attribute of a `<child>` element, and the bottom bar by specifying +“bottom-bar”. Specifying “content” or omitting the child type results in +setting the content child. + + + + + + + Creates a new `AdwBottomSheet`. + + + the new created `AdwBottomSheet` + + + + + Gets horizontal alignment of the bottom sheet. + + + the horizontal alignment + + + + + a bottom sheet + + + + + + Gets the bottom bar widget for @self. + + + the bottom bar widget + + + + + a bottom sheet + + + + + + Gets the current bottom bar height. + +It can be used to shift the content upwards permanently to accommodate for +the bottom bar. + + + the bottom bar height + + + + + a bottom sheet + + + + + + Gets whether the bottom sheet can be closed by user. + + + whether the sheet can be closed by user + + + + + a bottom sheet + + + + + + Gets whether the bottom sheet can be opened by user. + + + whether the sheet can be opened by user. + + + + + a bottom sheet + + + + + + Gets the content widget for @self. + + + the content widget + + + + + a bottom sheet + + + + + + Gets whether the bottom sheet takes the full width. + + + whether the sheet takes up the full width + + + + + a bottom sheet + + + + + + Gets whether the bottom sheet is modal. + + + whether the sheet is modal + + + + + a bottom sheet + + + + + + Gets whether the bottom sheet is open. + + + whether the sheet is open + + + + + a bottom sheet + + + + + + Gets whether the bottom bar is revealed. + + + whether the bottom bar is revealed + + + + + a bottom sheet + + + + + + Gets the bottom sheet widget for @self. + + + the sheet widget + + + + + a bottom sheet + + + + + + Gets the current bottom sheet height. + +It can be used to shift the content upwards when the bottom sheet is open. + + + the sheet height + + + + + a bottom sheet + + + + + + Gets whether to show a drag handle in the bottom sheet. + + + whether to show the drag handle + + + + + a bottom sheet + + + + + + Sets horizontal alignment of the bottom sheet. + +0 means the bottom sheet is flush with the start edge, 1 means it's flush +with the end edge. 0.5 means it's centered. + +Only used when [property@BottomSheet:full-width] is set to `FALSE`. + + + + + + + a bottom sheet + + + + the new alignment + + + + + + Sets the bottom bar widget for @self. + +Shown when [property@BottomSheet:open] is `FALSE`. When open, morphs into +the [property@BottomSheet:sheet]. + +Bottom bar can be temporarily hidden using the +[property@BottomSheet:reveal-bottom-bar] property. + + + + + + + a bottom sheet + + + + the bottom bar widget + + + + + + Sets whether the bottom sheet can be closed by user. + +It can be closed via the close button, swiping down, pressing +<kbd>Escape</kbd> or clicking the content dimming (when modal). + +Bottom sheet can still be closed using [property@BottomSheet:open]. + + + + + + + a bottom sheet + + + + whether the sheet can be closed by user + + + + + + Sets whether the bottom sheet can be opened by user. + +It can be opened via clicking or swiping up from the bottom bar. + +Does nothing if [property@BottomSheet:bottom-bar] is not set. + +Bottom sheet can still be opened using [property@BottomSheet:open]. + + + + + + + a bottom sheet + + + + whether the sheet can be opened by user. + + + + + + Sets the content widget for @self. + +It's always shown, and the bottom sheet is overlaid over it. + + + + + + + a bottom sheet + + + + the content widget + + + + + + Sets whether the bottom sheet takes the full width. + +When full width, [property@BottomSheet:align] is ignored. + + + + + + + a bottom sheet + + + + whether the sheet takes up the full width + + + + + + Sets whether the bottom sheet is modal. + +When modal, [property@BottomSheet:content] will be dimmed when the bottom +sheet is open, and clicking it will close the bottom sheet. It also cannot be +focused with keyboard. + +Otherwise, the content is accessible even when the bottom sheet is open. + + + + + + + a bottom sheet + + + + whether the sheet is modal + + + + + + Sets whether the bottom sheet is open. + + + + + + + a bottom sheet + + + + whether to open the sheet + + + + + + Sets whether to reveal the bottom bar. + +The transition will be animated. + +See [property@BottomSheet:bottom-bar] and +[property@BottomSheet:bottom-bar-height]. + + + + + + + a bottom sheet + + + + whether to reveal the bottom bar + + + + + + Sets the bottom sheet widget for @self. + +Only shown when [property@BottomSheet:open] is `TRUE`. + + + + + + + a bottom sheet + + + + the sheet widget + + + + + + Sets whether to show a drag handle in the bottom sheet. + +The handle will be overlaid over [property@BottomSheet:sheet]. + +When the handle is shown, [class@HeaderBar] will hide its default title, and +[class@ToolbarView] will reserve space if there are no top bars. + +Showing drag handle also allows to swipe the bottom sheet down (and to swipe +the bottom bar up) with a pointer, instead of just touchscreen. + + + + + + + a bottom sheet + + + + whether to show the drag handle + + + + + + Horizontal alignment of the bottom sheet. + +0 means the bottom sheet is flush with the start edge, 1 means it's flush +with the end edge. 0.5 means it's centered. + +Only used when [property@BottomSheet:full-width] is set to `FALSE`. + + + + The bottom bar widget. + +Shown when [property@BottomSheet:open] is `FALSE`. When open, morphs into +the [property@BottomSheet:sheet]. + +Bottom bar can be temporarily hidden using the +[property@BottomSheet:reveal-bottom-bar] property. + + + + The current bottom bar height. + +It can be used to shift the content upwards permanently to accommodate for +the bottom bar. + + + + Whether the bottom sheet can be closed by user. + +It can be closed via the close button, swiping down, pressing +<kbd>Escape</kbd> or clicking the content dimming (when modal). + +Bottom sheet can still be closed using [property@BottomSheet:open]. + + + + Whether the bottom sheet can be opened by user. + +It can be opened via clicking or swiping up from the bottom bar. + +Does nothing if [property@BottomSheet:bottom-bar] is not set. + +Bottom sheet can still be opened using [property@BottomSheet:open]. + + + + The content widget. + +It's always shown, and the bottom sheet is overlaid over it. + + + + Whether the bottom sheet takes the full width. + +When full width, [property@BottomSheet:align] is ignored. + + + + Whether the bottom sheet is modal. + +When modal, [property@BottomSheet:content] will be dimmed when the bottom +sheet is open, and clicking it will close the bottom sheet. It also cannot +be focused with keyboard. + +Otherwise, the content is accessible even when the bottom sheet is open. + + + + Whether the bottom sheet is open. + + + + Whether to reveal the bottom bar. + +The transition will be animated. + +See [property@BottomSheet:bottom-bar] and +[property@BottomSheet:bottom-bar-height]. + + + + The bottom sheet widget. + +Only shown when [property@BottomSheet:open] is `TRUE`. + + + + The current bottom sheet height. + +It can be used to shift the content upwards when the bottom sheet is open. + + + + Whether to overlay a drag handle in the bottom sheet. + +The handle will be overlaid over [property@BottomSheet:sheet]. + +When the handle is shown, [class@HeaderBar] will hide its default title, +and [class@ToolbarView] will reserve space if there are no top bars. + +Showing drag handle also allows to swipe the bottom sheet down (and to +swipe the bottom bar up) with a pointer, instead of just touchscreen. + + + + Emitted when the close button or shortcut is used while +[property@Dialog:can-close] is set to `FALSE`. + + + + + + + + + + + + + Describes a breakpoint for [class@Window] or [class@Dialog]. + +Breakpoints are used to create adaptive UI, allowing to change the layout +depending on available size. + +Breakpoint is a size threshold, specified by its condition, as well as one or +more setters. + +Each setter has a target object, a property and a value. When a breakpoint +is applied, each setter sets the target property on their target object to +the specified value, and reset it back to the original value when it's +unapplied. + +For more complicated scenarios, [signal@Breakpoint::apply] and +[signal@Breakpoint::unapply] can be used instead. + +Breakpoints can be used within [class@Window], [class@ApplicationWindow], +[class@Dialog] or [class@BreakpointBin]. + +## `AdwBreakpoint` as `GtkBuildable`: + +`AdwBreakpoint` supports specifying its condition via the `<condition>` +element. The contents of the element must be a string in a format accepted by +[func@BreakpointCondition.parse]. + +It also supports adding setters via the `<setter>` element. Each `<setter>` +element must have the `object` attribute specifying the target object, and +the `property` attribute specifying the property name. The contents of the +element are used as the setter value. + +For `G_TYPE_OBJECT` and `G_TYPE_BOXED` derived properties, empty contents are +treated as `NULL`. + +Setter values can be translated with the usual `translatable`, `context` and +`comments` attributes. + +Example of an `AdwBreakpoint` UI definition: + +```xml +<object class="AdwBreakpoint"> + <condition>max-width: 400px</condition> + <setter object="button" property="visible">True</setter> + <setter object="box" property="orientation">vertical</setter> + <setter object="page" property="title" translatable="yes">Example</setter> +</object> +``` + + + + Creates a new `AdwBreakpoint` with @condition. + + + the newly created `AdwBreakpoint` + + + + + the condition + + + + + + Adds a setter to @self. + +The setter will automatically set @property on @object to @value when +applying the breakpoint, and set it back to its original value upon +unapplying it. + +::: note + Setting properties to their original values does not work for properties + that have irreversible side effects. For example, changing + [property@Gtk.Button:label] while [property@Gtk.Button:icon-name] is set + will reset the icon. However, resetting the label will not set + `icon-name` to its original value. + +Use the [signal@Breakpoint::apply] and [signal@Breakpoint::unapply] signals +for those properties instead, as follows: + +```c +static void +breakpoint_apply_cb (MyWidget *self) +{ + gtk_button_set_icon_name (self->button, "go-previous-symbolic"); +} + +static void +breakpoint_apply_cb (MyWidget *self) +{ + gtk_button_set_label (self->button, _("_Back")); +} + +// ... + +g_signal_connect_swapped (breakpoint, "apply", + G_CALLBACK (breakpoint_apply_cb), self); +g_signal_connect_swapped (breakpoint, "unapply", + G_CALLBACK (breakpoint_unapply_cb), self); +``` + + + + + + + a breakpoint + + + + the target object + + + + the target property + + + + the value to set + + + + + + Adds multiple setters to @self. + +See [method@Breakpoint.add_setter]. + +Example: + +```c +adw_breakpoint_add_setters (breakpoint, + G_OBJECT (box), "orientation", GTK_ORIENTATION_VERTICAL, + G_OBJECT (button), "halign", GTK_ALIGN_FILL, + G_OBJECT (button), "valign", GTK_ALIGN_END, + NULL); +``` + + + + + + + a breakpoint + + + + the first target object + + + + the first target property + + + + the value of the first setter, followed by a list of object, property + and value triplets, terminated by `NULL` + + + + + + Adds multiple setters to @self. + +See [method@Breakpoint.add_setters]. + + + + + + + a breakpoint + + + + the first target object + + + + the first target property + + + + the value of the first setter, followed by a list of object, property + and value triplets, terminated by `NULL` + + + + + + Adds @n_setters setters to @self. + +This is a convenience function for adding multiple setters at once. + +See [method@Breakpoint.add_setter]. + +This function is meant to be used by language bindings. + + + + + + + a breakpoint + + + + the number of setters to add + + + + setter target object + + + + + + setter target properties + + + + + + setter values + + + + + + + + Gets the condition for @self. + + + the condition + + + + + a breakpoint + + + + + + Sets the condition for @self. + + + + + + + a breakpoint + + + + the new condition + + + + + + The breakpoint's condition. + + + + Emitted when the breakpoint is applied. + +This signal is emitted after the setters have been applied. + + + + + + Emitted when the breakpoint is unapplied. + +This signal is emitted before resetting the setter values. + + + + + + + A widget that changes layout based on available size. + +<picture> + <source srcset="breakpoint-bin-dark.png" media="(prefers-color-scheme: dark)"> + <img src="breakpoint-bin.png" alt="breakpoint-bin"> +</picture> + +`AdwBreakpointBin` provides a way to use breakpoints without [class@Window], +[class@ApplicationWindow] or [class@Dialog]. It can be useful for limiting +breakpoints to a single page and similar purposes. Most applications +shouldn't need it. + +`AdwBreakpointBin` is similar to [class@Bin]. It has one child, set via the +[property@BreakpointBin:child] property. + +When `AdwBreakpointBin` is resized, its child widget can rearrange its layout +at specific thresholds. + +The thresholds and layout changes are defined via [class@Breakpoint] objects. +They can be added using [method@BreakpointBin.add_breakpoint]. + +Each breakpoint has a condition, specifying the bin's size and/or aspect +ratio, and setters that automatically set object properties when that +happens. The [signal@Breakpoint::apply] and [signal@Breakpoint::unapply] can +be used instead for more complex scenarios. + +Breakpoints are only allowed to modify widgets inside the `AdwBreakpointBin`, +but not on the `AdwBreakpointBin` itself or any other widgets. + +If multiple breakpoints can be used for the current size, the last one is +always picked. The current breakpoint can be tracked using the +[property@BreakpointBin:current-breakpoint] property. + +If none of the breakpoints can be used, that property will be set to `NULL`, +and the original property values will be used instead. + +## Minimum Size + +Adding a breakpoint to `AdwBreakpointBin` will result in it having no minimum +size. The [property@Gtk.Widget:width-request] and +[property@Gtk.Widget:height-request] properties must always be set when using +breakpoints, indicating the smallest size you want to support. + +The minimum size and breakpoint conditions must be carefully selected so that +the child widget completely fits. If it doesn't, it will overflow and a +warning message will be printed. + +When choosing minimum size, consider translations and text scale factor +changes. Make sure to leave enough space for text labels, and enable +ellipsizing or wrapping if they might not fit. + +For [class@Gtk.Label] this can be done via [property@Gtk.Label:ellipsize], or +via [property@Gtk.Label:wrap] together with [property@Gtk.Label:wrap-mode]. + +For buttons, use [property@Gtk.Button:can-shrink], +[property@Gtk.MenuButton:can-shrink], [property@Adw.SplitButton:can-shrink], +or [property@Adw.ButtonContent:can-shrink]. + +## Example + +```c +GtkWidget *bin, *child; +AdwBreakpoint *breakpoint; + +bin = adw_breakpoint_bin_new (); +gtk_widget_set_size_request (bin, 150, 150); + +child = gtk_label_new ("Wide"); +gtk_label_set_ellipsize (GTK_LABEL (label), PANGO_ELLIPSIZE_END); +gtk_widget_add_css_class (child, "title-1"); +adw_breakpoint_bin_set_child (ADW_BREAKPOINT_BIN (bin), child); + +breakpoint = adw_breakpoint_new (adw_breakpoint_condition_parse ("max-width: 200px")); +adw_breakpoint_add_setters (breakpoint, + G_OBJECT (child), "label", "Narrow", + NULL); +adw_breakpoint_bin_add_breakpoint (ADW_BREAKPOINT_BIN (bin), breakpoint); +``` + +The bin has a single label inside it, displaying "Wide". When the bin's width +is smaller than or equal to 200px, it changes to "Narrow". + +## `AdwBreakpointBin` as `GtkBuildable` + +`AdwBreakpointBin` allows adding `AdwBreakpoint` objects as children. + +Example of an `AdwBreakpointBin` UI definition: + +```xml +<object class="AdwBreakpointBin"> + <property name="width-request">150</property> + <property name="height-request">150</property> + <property name="child"> + <object class="GtkLabel" id="child"> + <property name="label">Wide</property> + <property name="ellipsize">end</property> + <style> + <class name="title-1"/> + </style> + </object> + </property> + <child> + <object class="AdwBreakpoint"> + <condition>max-width: 200px</condition> + <setter object="child" property="label">Narrow</setter> + </object> + </child> +</object> +``` + +See [class@Breakpoint] documentation for details. + + + + + + Creates a new `AdwBreakpointBin`. + + + the newly created `AdwBreakpointBin` + + + + + Adds @breakpoint to @self. + + + + + + + a breakpoint bin + + + + the breakpoint to add + + + + + + Gets the child widget of @self. + + + the child widget of @self + + + + + a breakpoint bin + + + + + + Gets the current breakpoint. + + + the current breakpoint + + + + + a breakpoint bin + + + + + + Removes @breakpoint from @self. + + + + + + + a breakpoint bin + + + + a breakpoint to remove + + + + + + Sets the child widget of @self. + + + + + + + a breakpoint bin + + + + the child widget + + + + + + The child widget. + + + + The current breakpoint. + + + + + + + + + + + + + + + + + + + + + + + + + Describes condition for an [class@Breakpoint]. + + + Creates a condition that triggers when @condition_1 and @condition_2 are both +true. + + + the newly created condition + + + + + first condition + + + + second condition + + + + + + Creates a condition that triggers on length changes. + + + the newly created condition + + + + + the length type + + + + the length value + + + + the length unit + + + + + + Creates a condition that triggers when either @condition_1 or @condition_2 is +true. + + + the newly created condition + + + + + first condition + + + + second condition + + + + + + Creates a condition that triggers on ratio changes. + +The ratio is represented as @width divided by @height. + + + the newly created condition + + + + + the ratio type + + + + ratio width + + + + ratio height + + + + + + Copies @self. + + + a copy of @self + + + + + a breakpoint condition + + + + + + Frees @self. + + + + + + + a breakpoint condition + + + + + + Returns a textual representation of @self. + +The returned string can be parsed by [func@BreakpointCondition.parse]. + + + A newly allocated text string + + + + + a breakpoint condition + + + + + + Parses a condition from a string. + +Length conditions are specified as `<type>: <value>[<unit>]`, where: + +- `<type>` can be `min-width`, `max-width`, `min-height` or `max-height` +- `<value>` is a fractional number +- `<unit>` can be `px`, `pt` or `sp` + +If the unit is omitted, `px` is assumed. + +See [ctor@BreakpointCondition.new_length]. + +Examples: + +- `min-width: 500px` +- `min-height: 400pt` +- `max-width: 100sp` +- `max-height: 500` + +Ratio conditions are specified as `<type>: <width>[/<height>]`, where: + +- `<type>` can be `min-aspect-ratio` or `max-aspect-ratio` +- `<width>` and `<height>` are integer numbers + +See [ctor@BreakpointCondition.new_ratio]. + +The ratio is represented as `<width>` divided by `<height>`. + +If `<height>` is omitted, it's assumed to be 1. + +Examples: + +- `min-aspect-ratio: 4/3` +- `max-aspect-ratio: 1` + +The logical operators `and`, `or` can be used to compose a complex condition +as follows: + +- `<condition> and <condition>`: the condition is true when both + `<condition>`s are true, same as when using + [ctor@BreakpointCondition.new_and] +- `<condition> or <condition>`: the condition is true when either of the + `<condition>`s is true, same as when using + [ctor@BreakpointCondition.new_or] + +Examples: + +- `min-width: 400px and max-aspect-ratio: 4/3` +- `max-width: 360sp or max-width: 360px` + +Conditions can be further nested using parentheses, for example: + +- `min-width: 400px and (max-aspect-ratio: 4/3 or max-height: 400px)` + +If parentheses are omitted, the first operator takes priority. + + + the parsed condition + + + + + the string specifying the condition + + + + + + + Describes length types for [struct@BreakpointCondition]. + +See [ctor@BreakpointCondition.new_length]. + +New values may be added to this enumeration over time. + + true if the width is greater than or + equal to the condition value + + + true if the width is less than or + equal to the condition value + + + true if the height is greater than or + equal to the condition value + + + true if the height is less than or + equal to the condition value + + + + Describes ratio types for [struct@BreakpointCondition]. + +See [ctor@BreakpointCondition.new_ratio]. + +New values may be added to this enumeration over time. + + true if the aspect ratio is + greater than or equal to the condition value + + + true if the aspect ratio is + less than or equal to the condition value + + + + A helper widget for creating buttons. + +<picture> + <source srcset="button-content-dark.png" media="(prefers-color-scheme: dark)"> + <img src="button-content.png" alt="button-content"> +</picture> + +`AdwButtonContent` is a box-like widget with an icon and a label. + +It's intended to be used as a direct child of [class@Gtk.Button], +[class@Gtk.MenuButton] or [class@SplitButton], when they need to have both an +icon and a label, as follows: + +```xml +<object class="GtkButton"> + <property name="child"> + <object class="AdwButtonContent"> + <property name="icon-name">document-open-symbolic</property> + <property name="label" translatable="yes">_Open</property> + <property name="use-underline">True</property> + </object> + </property> +</object> +``` + +`AdwButtonContent` handles style classes and connecting the mnemonic to the +button automatically. + +## CSS nodes + +``` +buttoncontent +╰── box + ├── image + ╰── label +``` + +`AdwButtonContent`'s CSS node is called `buttoncontent`. It contains a `box` +subnode that serves as a container for the `image` and `label` nodes. + +When inside a `GtkButton` or `AdwSplitButton`, the button will receive the +`.image-text-button` style class. When inside a `GtkMenuButton`, the +internal `GtkButton` will receive it instead. + +## Accessibility + +`AdwButtonContent` uses the [enum@Gtk.AccessibleRole.group] role. + + + + + + Creates a new `AdwButtonContent`. + + + the new created `AdwButtonContent` + + + + + gets whether the button can be smaller than the natural size of its contents. + + + whether the button can shrink + + + + + a button content + + + + + + Gets the name of the displayed icon. + + + the icon name + + + + + a button content + + + + + + Gets the displayed label. + + + the label + + + + + a button content + + + + + + Gets whether an underline in the text indicates a mnemonic. + + + whether an underline in the text indicates a mnemonic + + + + + a button content + + + + + + Sets whether the button can be smaller than the natural size of its contents. + +If set to `TRUE`, the label will ellipsize. + +See [method@Gtk.Button.set_can_shrink]. + + + + + + + a button content + + + + whether the button can shrink + + + + + + Sets the name of the displayed icon. + +If empty, the icon is not shown. + + + + + + + a button content + + + + the new icon name + + + + + + Sets the displayed label. + + + + + + + a button content + + + + the new label + + + + + + Sets whether an underline in the text indicates a mnemonic. + +The mnemonic can be used to activate the parent button. + +See [property@ButtonContent:label]. + + + + + + + a button content + + + + whether an underline in the text indicates a mnemonic + + + + + + Whether the button can be smaller than the natural size of its contents. + +If set to `TRUE`, the label will ellipsize. + +See [property@Gtk.Button:can-shrink]. + + + + The name of the displayed icon. + +If empty, the icon is not shown. + + + + The displayed label. + + + + Whether an underline in the text indicates a mnemonic. + +The mnemonic can be used to activate the parent button. + +See [property@ButtonContent:label]. + + + + + + + + + + + A [class@Gtk.ListBoxRow] that looks like a button. + +<picture> + <source srcset="button-rows-dark.png" media="(prefers-color-scheme: dark)"> + <img src="button-rows.png" alt="button-rows"> +</picture> + +The `AdwButtonRow` widget has a title and two icons: before and after the +title. + +It is convenient for presenting actions like "Delete" at the end of a boxed +list. + +`AdwButtonRow` is always activatable. + +## CSS nodes + +`AdwButtonRow` has a main CSS node with name `row` and the style class +`.button`. + +It contains the subnode `box` for its main horizontal box, which contains the +nodes: `image.icon.start` for the start icon, `label.title` for the title, +and `image.icon.end` for the end icon. + +## Style classes + +The [`.suggested-action`](style-classes.html#suggested-action) style class +makes `AdwButtonRow` use accent color for its background. It should be used +very sparingly to denote important buttons. + +<picture> + <source srcset="button-row-suggested-action-dark.png" media="(prefers-color-scheme: dark)"> + <img src="button-row-suggested-action.png" alt="button-row-suggested-action"> +</picture> + +The [`.destructive-action`](style-classes.html#destructive-action) style +makes the row use destructive colors. It can be used to draw attention to the +potentially damaging consequences of using it. This style acts as a warning +to the user. + +<picture> + <source srcset="button-row-destructive-action-dark.png" media="(prefers-color-scheme: dark)"> + <img src="button-row-destructive-action.png" alt="button-row-destructive-action"> +</picture> + + + + + + + Creates a new `AdwButtonRow`. + + + the newly created `AdwButtonRow` + + + + + Gets the end icon name for @self. + + + the end icon name for @self + + + + + a button row + + + + + + Gets the start icon name for @self. + + + the start icon name for @self + + + + + a button row + + + + + + Sets the end icon name for @self. + + + + + + + a button row + + + + the end icon name + + + + + + Sets the start icon name for @self. + + + + + + + a button row + + + + the start icon name + + + + + + The icon name to show after the title. + + + + The icon name to show before the title. + + + + This signal is emitted after the row has been activated. + + + + + + + + + + + + + Compile-time version checking. Evaluates to `TRUE` if the version +of Adwaita is greater than the required one. + + + + required major version + + + required minor version + + + required micro version + + + + + An [class@AnimationTarget] that calls a given callback during the +animation. + + + Creates a new `AdwAnimationTarget` that calls the given @callback during +the animation. + + + the newly created callback target + + + + + the callback to call + + + + the data to be passed to @callback + + + + the function to be called when the + callback action is finalized + + + + + + + + + + A paginated scrolling widget. + +<picture> + <source srcset="carousel-dark.png" media="(prefers-color-scheme: dark)"> + <img src="carousel.png" alt="carousel"> +</picture> + +The `AdwCarousel` widget can be used to display a set of pages with +swipe-based navigation between them. + +[class@CarouselIndicatorDots] and [class@CarouselIndicatorLines] can be used +to provide page indicators for `AdwCarousel`. + +## CSS nodes + +`AdwCarousel` has a single CSS node with name `carousel`. + + + + + + + + Creates a new `AdwCarousel`. + + + the newly created `AdwCarousel` + + + + + Appends @child to @self. + + + + + + + a carousel + + + + a widget to add + + + + + + Gets whether to allow swiping for more than one page at a time. + + + `TRUE` if long swipes are allowed + + + + + a carousel + + + + + + Sets whether @self can be dragged with mouse pointer. + + + whether @self can be dragged with mouse pointer + + + + + a carousel + + + + + + Gets whether @self will respond to scroll wheel events. + + + `TRUE` if @self will respond to scroll wheel events + + + + + a carousel + + + + + + Gets whether @self can be navigated. + + + whether @self can be navigated + + + + + a carousel + + + + + + Gets the number of pages in @self. + + + the number of pages in @self + + + + + a carousel + + + + + + Gets the page at position @n. + + + the page + + + + + a carousel + + + + index of the page + + + + + + Gets current scroll position in @self, unitless. + +1 matches 1 page. Use [method@Carousel.scroll_to] for changing it. + + + the scroll position + + + + + a carousel + + + + + + Gets the page reveal duration, in milliseconds. + + + the duration + + + + + a carousel + + + + + + Gets the scroll animation spring parameters for @self. + + + the animation parameters + + + + + a carousel + + + + + + Gets spacing between pages in pixels. + + + spacing between pages + + + + + a carousel + + + + + + Inserts @child into @self at position @position. + +If position is -1, or larger than the number of pages, +@child will be appended to the end. + + + + + + + a carousel + + + + a widget to add + + + + the position to insert @child at + + + + + + Prepends @child to @self. + + + + + + + a carousel + + + + a widget to add + + + + + + Removes @child from @self. + + + + + + + a carousel + + + + a widget to remove + + + + + + Moves @child into position @position. + +If position is -1, or larger than the number of pages, @child will be moved +at the end. + + + + + + + a carousel + + + + a widget to add + + + + the position to move @child to + + + + + + Scrolls to @widget. + +If @animate is `TRUE`, the transition will be animated. + + + + + + + a carousel + + + + a child of @self + + + + whether to animate the transition + + + + + + Sets whether to allow swiping for more than one page at a time. + +If @allow_long_swipes is `FALSE`, each swipe can only move to the adjacent +pages. + + + + + + + a carousel + + + + whether to allow long swipes + + + + + + Sets whether @self can be dragged with mouse pointer. + +If @allow_mouse_drag is `FALSE`, dragging is only available on touch. + + + + + + + a carousel + + + + whether @self can be dragged with mouse pointer + + + + + + Sets whether @self will respond to scroll wheel events. + +If @allow_scroll_wheel is `FALSE`, wheel events will be ignored. + + + + + + + a carousel + + + + whether @self will respond to scroll wheel events + + + + + + Sets whether @self can be navigated. + +This can be used to temporarily disable the carousel to only allow navigating +it in a certain state. + + + + + + + a carousel + + + + whether @self can be navigated + + + + + + Sets the page reveal duration, in milliseconds. + +Reveal duration is used when animating adding or removing pages. + + + + + + + a carousel + + + + the new reveal duration value + + + + + + Sets the scroll animation spring parameters for @self. + +The default value is equivalent to: + +```c +adw_spring_params_new (1, 0.5, 500) +``` + + + + + + + a carousel + + + + the new parameters + + + + + + Sets spacing between pages in pixels. + + + + + + + a carousel + + + + the new spacing value + + + + + + Whether to allow swiping for more than one page at a time. + +If the value is `FALSE`, each swipe can only move to the adjacent pages. + + + + Sets whether the `AdwCarousel` can be dragged with mouse pointer. + +If the value is `FALSE`, dragging is only available on touch. + + + + Whether the widget will respond to scroll wheel events. + +If the value is `FALSE`, wheel events will be ignored. + + + + Whether the carousel can be navigated. + +This can be used to temporarily disable the carousel to only allow +navigating it in a certain state. + + + + The number of pages in a `AdwCarousel`. + + + + Current scrolling position, unitless. + +1 matches 1 page. Use [method@Carousel.scroll_to] for changing it. + + + + Page reveal duration, in milliseconds. + +Reveal duration is used when animating adding or removing pages. + + + + Scroll animation spring parameters. + +The default value is equivalent to: + +```c +adw_spring_params_new (1, 0.5, 500) +``` + + + + Spacing between pages in pixels. + + + + This signal is emitted after a page has been changed. + +It can be used to implement "infinite scrolling" by amending the pages +after every scroll. + +::: note + An empty carousel is indicated by `(int)index == -1`. + + + + + + current page + + + + + + + + + + + + + A dots indicator for [class@Carousel]. + +<picture> + <source srcset="carousel-indicator-dots-dark.png" media="(prefers-color-scheme: dark)"> + <img src="carousel-indicator-dots.png" alt="carousel-indicator-dots"> +</picture> + +The `AdwCarouselIndicatorDots` widget shows a set of dots for each page of a +given [class@Carousel]. The dot representing the carousel's active page is +larger and more opaque than the others, the transition to the active and +inactive state is gradual to match the carousel's position. + +See also [class@CarouselIndicatorLines]. + +## CSS nodes + +`AdwCarouselIndicatorDots` has a single CSS node with name +`carouselindicatordots`. + + + + + + + Creates a new `AdwCarouselIndicatorDots`. + + + the newly created `AdwCarouselIndicatorDots` + + + + + Gets the displayed carousel. + + + the displayed carousel + + + + + an indicator + + + + + + Sets the displayed carousel. + + + + + + + an indicator + + + + a carousel + + + + + + The displayed carousel. + + + + + + + + + + + A lines indicator for [class@Carousel]. + +<picture> + <source srcset="carousel-indicator-lines-dark.png" media="(prefers-color-scheme: dark)"> + <img src="carousel-indicator-lines.png" alt="carousel-indicator-lines"> +</picture> + +The `AdwCarouselIndicatorLines` widget shows a set of lines for each page of +a given [class@Carousel]. The carousel's active page is shown as another line +that moves between them to match the carousel's position. + +See also [class@CarouselIndicatorDots]. + +## CSS nodes + +`AdwCarouselIndicatorLines` has a single CSS node with name +`carouselindicatorlines`. + + + + + + + Creates a new `AdwCarouselIndicatorLines`. + + + the newly created `AdwCarouselIndicatorLines` + + + + + Gets the displayed carousel. + + + the displayed carousel + + + + + an indicator + + + + + + Sets the displayed carousel. + + + + + + + an indicator + + + + a carousel + + + + + + The displayed carousel. + + + + + + + + + + + Describes title centering behavior of a [class@HeaderBar] widget. + + Keep the title centered when possible + + + Keep the title centered at all cost + + + + A widget constraining its child to a given size. + +<picture> + <source srcset="clamp-wide-dark.png" media="(prefers-color-scheme: dark)"> + <img src="clamp-wide.png" alt="clamp-wide"> +</picture> +<picture> + <source srcset="clamp-narrow-dark.png" media="(prefers-color-scheme: dark)"> + <img src="clamp-narrow.png" alt="clamp-narrow"> +</picture> + +The `AdwClamp` widget constrains the size of the widget it contains to a +given maximum size. It will constrain the width if it is horizontal, or the +height if it is vertical. The expansion of the child from its minimum to its +maximum size is eased out for a smooth transition. + +If the child requires more than the requested maximum size, it will be +allocated the minimum size it can fit in instead. + +`AdwClamp` can scale with the text scale factor, use the +[property@Clamp:unit] property to enable that behavior. + +See also: [class@ClampLayout], [class@ClampScrollable]. + +## CSS nodes + +`AdwClamp` has a single CSS node with name `clamp`. + + + + + + + Creates a new `AdwClamp`. + + + the newly created `AdwClamp` + + + + + Gets the child widget of @self. + + + the child widget of @self + + + + + a clamp + + + + + + Gets the maximum size allocated to the child. + + + the maximum size to allocate to the child + + + + + a clamp + + + + + + Gets the size above which the child is clamped. + + + the size above which the child is clamped + + + + + a clamp + + + + + + Gets the length unit for maximum size and tightening threshold. + + + the length unit + + + + + a clamp + + + + + + Sets the child widget of @self. + + + + + + + a clamp + + + + the child widget + + + + + + Sets the maximum size allocated to the child. + +It is the width if the clamp is horizontal, or the height if it is vertical. + + + + + + + a clamp + + + + the maximum size + + + + + + Sets the size above which the child is clamped. + +Starting from this size, the clamp will tighten its grip on the child, slowly +allocating less and less of the available size up to the maximum allocated +size. Below that threshold and below the maximum size, the child will be +allocated all the available size. + +If the threshold is greater than the maximum size to allocate to the child, +the child will be allocated all the size up to the maximum. If the threshold +is lower than the minimum size to allocate to the child, that size will be +used as the tightening threshold. + +Effectively, tightening the grip on the child before it reaches its maximum +size makes transitions to and from the maximum size smoother when resizing. + + + + + + + a clamp + + + + the tightening threshold + + + + + + Sets the length unit for maximum size and tightening threshold. + +Allows the sizes to vary depending on the text scale factor. + + + + + + + a clamp + + + + the length unit + + + + + + The child widget of the `AdwClamp`. + + + + The maximum size allocated to the child. + +It is the width if the clamp is horizontal, or the height if it is vertical. + + + + The size above which the child is clamped. + +Starting from this size, the clamp will tighten its grip on the child, +slowly allocating less and less of the available size up to the maximum +allocated size. Below that threshold and below the maximum size, the child +will be allocated all the available size. + +If the threshold is greater than the maximum size to allocate to the child, +the child will be allocated all the size up to the maximum. +If the threshold is lower than the minimum size to allocate to the child, +that size will be used as the tightening threshold. + +Effectively, tightening the grip on the child before it reaches its maximum +size makes transitions to and from the maximum size smoother when resizing. + + + + The length unit for maximum size and tightening threshold. + +Allows the sizes to vary depending on the text scale factor. + + + + + + + + + + + A layout manager constraining its children to a given size. + +<picture> + <source srcset="clamp-wide-dark.png" media="(prefers-color-scheme: dark)"> + <img src="clamp-wide.png" alt="clamp-wide"> +</picture> +<picture> + <source srcset="clamp-narrow-dark.png" media="(prefers-color-scheme: dark)"> + <img src="clamp-narrow.png" alt="clamp-narrow"> +</picture> + +`AdwClampLayout` constraints the size of the widgets it contains to a given +maximum size. It will constrain the width if it is horizontal, or the height +if it is vertical. The expansion of the children from their minimum to their +maximum size is eased out for a smooth transition. + +If a child requires more than the requested maximum size, it will be +allocated the minimum size it can fit in instead. + +`AdwClampLayout` can scale with the text scale factor, use the +[property@ClampLayout:unit] property to enable that behavior. + +See also: [class@Clamp], [class@ClampScrollable]. + + + + Creates a new `AdwClampLayout`. + + + the newly created `AdwClampLayout` + + + + + Gets the maximum size allocated to the children. + + + the maximum size to allocate to the children + + + + + a clamp layout + + + + + + Gets the size above which the children are clamped. + + + the size above which the children are clamped + + + + + a clamp layout + + + + + + Gets the length unit for maximum size and tightening threshold. + + + the length unit + + + + + a clamp layout + + + + + + Sets the maximum size allocated to the children. + +It is the width if the layout is horizontal, or the height if it is vertical. + + + + + + + a clamp layout + + + + the maximum size + + + + + + Sets the size above which the children are clamped. + +Starting from this size, the layout will tighten its grip on the children, +slowly allocating less and less of the available size up to the maximum +allocated size. Below that threshold and below the maximum size, the children +will be allocated all the available size. + +If the threshold is greater than the maximum size to allocate to the +children, they will be allocated the whole size up to the maximum. If the +threshold is lower than the minimum size to allocate to the children, that +size will be used as the tightening threshold. + +Effectively, tightening the grip on a child before it reaches its maximum +size makes transitions to and from the maximum size smoother when resizing. + + + + + + + a clamp layout + + + + the tightening threshold + + + + + + Sets the length unit for maximum size and tightening threshold. + +Allows the sizes to vary depending on the text scale factor. + + + + + + + a clamp layout + + + + the length unit + + + + + + The maximum size to allocate to the children. + +It is the width if the layout is horizontal, or the height if it is +vertical. + + + + The size above which the children are clamped. + +Starting from this size, the layout will tighten its grip on the children, +slowly allocating less and less of the available size up to the maximum +allocated size. Below that threshold and below the maximum size, the +children will be allocated all the available size. + +If the threshold is greater than the maximum size to allocate to the +children, they will be allocated the whole size up to the maximum. If the +threshold is lower than the minimum size to allocate to the children, that +size will be used as the tightening threshold. + +Effectively, tightening the grip on a child before it reaches its maximum +size makes transitions to and from the maximum size smoother when resizing. + + + + The length unit for maximum size and tightening threshold. + +Allows the sizes to vary depending on the text scale factor. + + + + + + + + + + + A scrollable [class@Clamp]. + +`AdwClampScrollable` is a variant of [class@Clamp] that implements the +[iface@Gtk.Scrollable] interface. + +The primary use case for `AdwClampScrollable` is clamping +[class@Gtk.ListView]. + +See also: [class@ClampLayout]. + + + + + + + + Creates a new `AdwClampScrollable`. + + + the newly created `AdwClampScrollable` + + + + + Gets the child widget of @self. + + + the child widget of @self + + + + + a clamp scrollable + + + + + + Gets the maximum size allocated to the child. + + + the maximum size to allocate to the child + + + + + a clamp scrollable + + + + + + Gets the size above which the child is clamped. + + + the size above which the child is clamped + + + + + a clamp scrollable + + + + + + Gets the length unit for maximum size and tightening threshold. + + + the length unit + + + + + a clamp scrollable + + + + + + Sets the child widget of @self. + + + + + + + a clamp scrollable + + + + the child widget + + + + + + Sets the maximum size allocated to the child. + +It is the width if the clamp is horizontal, or the height if it is vertical. + + + + + + + a clamp scrollable + + + + the maximum size + + + + + + Sets the size above which the child is clamped. + +Starting from this size, the clamp will tighten its grip on the child, slowly +allocating less and less of the available size up to the maximum allocated +size. Below that threshold and below the maximum width, the child will be +allocated all the available size. + +If the threshold is greater than the maximum size to allocate to the child, +the child will be allocated all the width up to the maximum. If the threshold +is lower than the minimum size to allocate to the child, that size will be +used as the tightening threshold. + +Effectively, tightening the grip on the child before it reaches its maximum +size makes transitions to and from the maximum size smoother when resizing. + + + + + + + a clamp scrollable + + + + the tightening threshold + + + + + + Sets the length unit for maximum size and tightening threshold. + +Allows the sizes to vary depending on the text scale factor. + + + + + + + a clamp + + + + the length unit + + + + + + The child widget of the `AdwClampScrollable`. + + + + The maximum size allocated to the child. + +It is the width if the clamp is horizontal, or the height if it is vertical. + + + + The size above which the child is clamped. + +Starting from this size, the clamp will tighten its grip on the child, +slowly allocating less and less of the available size up to the maximum +allocated size. Below that threshold and below the maximum width, the child +will be allocated all the available size. + +If the threshold is greater than the maximum size to allocate to the child, +the child will be allocated all the width up to the maximum. +If the threshold is lower than the minimum size to allocate to the child, +that size will be used as the tightening threshold. + +Effectively, tightening the grip on the child before it reaches its maximum +size makes transitions to and from the maximum size smoother when resizing. + + + + The length unit for maximum size and tightening threshold. + +Allows the sizes to vary depending on the text scale factor. + + + + + + + + + + + Application color schemes for [property@StyleManager:color-scheme]. + + Inherit the parent color-scheme. When set on the + `AdwStyleManager` returned by [func@StyleManager.get_default], it's + equivalent to [enum@Adw.ColorScheme.prefer-light]. + + + Always use light appearance. + + + Use light appearance unless the system + prefers dark colors. + + + Use dark appearance unless the system prefers + prefers light colors. + + + Always use dark appearance. + + + + A [class@Gtk.ListBoxRow] used to choose from a list of items. + +<picture> + <source srcset="combo-row-dark.png" media="(prefers-color-scheme: dark)"> + <img src="combo-row.png" alt="combo-row"> +</picture> + +The `AdwComboRow` widget allows the user to choose from a list of valid +choices. The row displays the selected choice. When activated, the row +displays a popover which allows the user to make a new choice. + +Example of an `AdwComboRow` UI definition: +```xml +<object class="AdwComboRow"> + <property name="title" translatable="yes">Combo Row</property> + <property name="model"> + <object class="GtkStringList"> + <items> + <item translatable="yes">Foo</item> + <item translatable="yes">Bar</item> + <item translatable="yes">Baz</item> + </items> + </object> + </property> +</object> +``` + +The [property@ComboRow:selected] and [property@ComboRow:selected-item] +properties can be used to keep track of the selected item and react to their +changes. + +`AdwComboRow` mirrors [class@Gtk.DropDown], see that widget for details. + +`AdwComboRow` is [property@Gtk.ListBoxRow:activatable] if a model is set. + +## CSS nodes + +`AdwComboRow` has a main CSS node with name `row` and the `.combo` style +class. + +Its popover has the node named `popover` with the `.menu` style class, it +contains a [class@Gtk.ScrolledWindow], which in turn contains a +[class@Gtk.ListView], both are accessible via their regular nodes. + +## Accessibility + +`AdwComboRow` uses the [enum@Gtk.AccessibleRole.combo-box] role. + + + + + + + Creates a new `AdwComboRow`. + + + the newly created `AdwComboRow` + + + + + Gets whether search is enabled. + +If set to `TRUE`, a search entry will be shown in the popup that +allows to search for items in the list. + +Search requires [property@ComboRow:expression] to be set. + + + whether the popup includes a search entry + + + + + a combo row + + + + + + Gets the expression used to obtain strings from items. + + + the expression used to obtain strings from items + + + + + a combo row + + + + + + Gets the factory for populating list items. + + + the factory in use + + + + + a combo row + + + + + + Gets the factory that's currently used to create header widgets for the popup. + + + The factory in use + + + + + a combo row + + + + + + Gets the factory for populating list items in the popup. + + + the factory in use + + + + + a combo row + + + + + + Gets the model that provides the displayed items. + + + The model in use + + + + + a combo row + + + + + + Returns the match mode that the search filter is using. + + + the match mode of the search filter + + + + + a combo row + + + + + + Gets the position of the selected item. + + + the position of the selected item, or + [const@Gtk.INVALID_LIST_POSITION] if no item is selected + + + + + a combo row + + + + + + Gets the selected item. + + + the selected item + + + + + a combo row + + + + + + Gets whether to use the current value as the subtitle. + + + whether to use the current value as the subtitle + + + + + a combo row + + + + + + Sets whether to enable search. + +If set to `TRUE`, a search entry will be shown in the popup that +allows to search for items in the list. + +Search requires [property@ComboRow:expression] to be set. + + + + + + + a combo row + + + + whether to enable search + + + + + + Sets the expression used to obtain strings from items. + +The expression must have a value type of `G_TYPE_STRING`. + +It's used to bind strings to labels produced by the default factory if +[property@ComboRow:factory] is not set, or when +[property@ComboRow:use-subtitle] is set to `TRUE`. + + + + + + + a combo row + + + + an expression + + + + + + Sets the factory for populating list items. + +This factory is always used for the item in the row. It is also used for +items in the popup unless [property@ComboRow:list-factory] is set. + + + + + + + a combo row + + + + the factory to use + + + + + + Sets the factory to use for creating header widgets for the popup. + + + + + + + a combo row + + + + the factory to use + + + + + + Sets the factory for populating list items in the popup. + +If this is not set, [property@ComboRow:factory] is used. + + + + + + + a combo row + + + + the factory to use + + + + + + Sets the model that provides the displayed items. + + + + + + + a combo row + + + + the model to use + + + + + + Sets the match mode for the search filter. + + + + + + + a combo row + + + + the new match mode + + + + + + Selects the item at the given position. + + + + + + + a combo row + + + + the position of the item to select, or + [const@Gtk.INVALID_LIST_POSITION] + + + + + + Sets whether to use the current value as the subtitle. + +If you use a custom list item factory, you will need to give the row a +name conversion expression with [property@ComboRow:expression]. + +If set to `TRUE`, you should not access [property@ActionRow:subtitle]. + +The subtitle is interpreted as Pango markup if +[property@PreferencesRow:use-markup] is set to `TRUE`. + + + + + + + a combo row + + + + whether to use the current value as the subtitle + + + + + + Whether to show a search entry in the popup. + +If set to `TRUE`, a search entry will be shown in the popup that +allows to search for items in the list. + +Search requires [property@ComboRow:expression] to be set. + + + + An expression used to obtain strings from items. + +The expression must have a value type of `G_TYPE_STRING`. + +It's used to bind strings to labels produced by the default factory if +[property@ComboRow:factory] is not set, or when +[property@ComboRow:use-subtitle] is set to `TRUE`. + + + + Factory for populating list items. + +This factory is always used for the item in the row. It is also used for +items in the popup unless [property@ComboRow:list-factory] is set. + + + + The factory for creating header widgets for the popup. + + + + The factory for populating list items in the popup. + +If this is not set, [property@ComboRow:factory] is used. + + + + The model that provides the displayed items. + + + + The match mode for the search filter. + + + + The position of the selected item. + +If no item is selected, the property has the value +[const@Gtk.INVALID_LIST_POSITION] + + + + The selected item. + + + + Whether to use the current value as the subtitle. + +If you use a custom list item factory, you will need to give the row a +name conversion expression with [property@ComboRow:expression]. + +If set to `TRUE`, you should not access [property@ActionRow:subtitle]. + +The subtitle is interpreted as Pango markup if +[property@PreferencesRow:use-markup] is set to `TRUE`. + + + + + + + + + + The parent class + + + + + + + + + + A binding between a [class@GObject.Object] property and a CSS class on a +[class@Gtk.Widget]. + +To create a binding, use [func@Adw.bind_property_to_css_class]. + +Whenever the source property changes, a CSS class is toggled on the target +object; for instance, given the following binding: + +```c +adw_bind_property_to_css_class (source, "property", + target, "css-class", + G_BINDING_DEFAULT); +``` + +when `property` is a boolean property, `css-class` will be set every time the +value of `property` is changed to `TRUE`, and vice versa. + +Using [func@Adw.bind_property_to_css_class_full], it's possible to define a +custom mapping between a property and the boolean enable state, that is, +defining a mapping between any arbitrary property type and a boolean type. +This allows for any property, not just boolean properties, to be bound to a +CSS class; for instance, the following binding + +```c +adw_bind_property_to_css_class_full (source, "property", + target, "css-class", + G_BINDING_DEFAULT, + int_to_bool, + bool_to_int, + NULL, NULL); +``` + +will map an integer-typed `property` to a boolean value, and use the value of +that boolean to toggle the CSS class. + +It is possible to invert the type of a boolean without using a custom map +function by using the [flags@GObject.BindingFlags.INVERT_BOOLEAN] flag. + +A binding will be removed, and any allocated resources freed, whenever either +one of the source or target instances are finalized, or when the binding +instances loses its last reference. + +Languages with garbage collection, or developers wanting to fully control the +lifecycle of a binding may use [method@CssClassBinding.unbind] to expliticly +release a binding, instead of relying on the last reference on the binding, +source, and target instances to drop. + + + Gets the flags passed when constructing the binding. + + + the binding flags + + + + + a binding + + + + + + Gets the object instance passed as the source of the binding. + +While a binding can outlive the source as the binding doesn't hold a strong +reference to the source, the binding will try to finalize itself when it does +not have a valid source. If the source, however, is destroyed before the +binding is fully finalized then this function will return `NULL`. + + + the source, or `NULL` if it doesn't + exist anymore + + + + + a binding + + + + + + Gets the name of the property bound from [property@CssClassBinding:source]. + + + the name of the source property + + + + + a binding + + + + + + Gets the widget instance passed as the target of the binding. + +While a binding can outlive the target as the binding doesn't hold a strong +reference to the target, the binding will try to finalize itself when it does +not have a valid target. If the target, however, is destroyed before the +binding is fully finalized then this function will return `NULL`. + + + the target, or `NULL` if it doesn't + exist anymore + + + + + a binding + + + + + + Gets the CSS class to toggle on [property@CssClassBinding:target]. + + + the name of the target CSS class + + + + + a binding + + + + + + Explicitly releases the binding between the source and the target. + +This function will release the reference that is being held on @self if the +binding is still bound; if you want to hold on to the binding instance after +calling this method, you will need to manually hold a reference to it. + +Note that this function does not take ownership of @self, it only unrefs the +instance that was initially created by [func@Adw.bind_property_to_css_class] +and is owned by the binding. + + + + + + + a binding + + + + + + Flags to be used to control the binding. + + + + The object to use as the source of the CSS class binding. + + + + The name of the property that shoudl be used as the source of the binding. + + + + The widget to use as the target of the CSS class binding. + + + + The name of the CSS class that should be toggled on the target object. + + + + + + + + + + + Prototype for mapping properties to CSS classes for a [class@CssClassBinding]. + + + whether to apply the target CSS class + + + + + The binding class + + + + the source property value + + + + The user data provided when creating the binding + + + + + + Prototype for mapping CSS classes to properties for a [class@CssClassBinding]. + + + + + + + The binding class + + + + whether the target CSS class is applied + + + + The value to use for the source property + + + + The user data provided when creating the binding + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Indicates an [class@Animation] with an infinite duration. + +This value is mostly used internally. + + + + + An adaptive dialog container. + +<picture> + <source srcset="dialog-floating-dark.png" media="(prefers-color-scheme: dark)"> + <img src="dialog-floating.png" alt="dialog-floating"> +</picture> +<picture> + <source srcset="dialog-bottom-dark.png" media="(prefers-color-scheme: dark)"> + <img src="dialog-bottom.png" alt="dialog-bottom"> +</picture> + +`AdwDialog` is similar to a window, but is shown within another window. It +can be used with [class@Window] and [class@ApplicationWindow], use +[method@Dialog.present] to show it. + +`AdwDialog` is not resizable. Use the [property@Dialog:content-width] and +[property@Dialog:content-height] properties to set its size, or set +[property@Dialog:follows-content-size] to `TRUE` to make the dialog track the +content's size as it changes. `AdwDialog` can never be larger than its parent +window. + +`AdwDialog` can be presented as a centered floating window or a bottom sheet. +By default it's automatic depending on the available size. +[property@Dialog:presentation-mode] can be used to change that. + +`AdwDialog` can be closed via [method@Dialog.close]. + +When presented as a bottom sheet, `AdwDialog` can also be closed via swiping +it down. + +The [property@Dialog:can-close] can be used to prevent closing. In that case, +[signal@Dialog::close-attempt] gets emitted instead. + +Use [method@Dialog.force_close] to close the dialog even when `can-close` is set to +`FALSE`. + +`AdwDialog` is transient and doesn't integrate with the window below it, for +example it's not possible to collapse it into a bottom bar. See +[class@BottomSheet] for persistent and more tightly integrated bottom sheets. + +## Header Bar Integration + +When placed inside an `AdwDialog`, [class@HeaderBar] will display the dialog +title instead of window title. It will also adjust the decoration layout to +ensure it always has a close button and nothing else. Set +[property@HeaderBar:show-start-title-buttons] and +[property@HeaderBar:show-end-title-buttons] to `FALSE` to remove it if it's +unwanted. + +## Breakpoints + +`AdwDialog` can be used with [class@Breakpoint] the same way as +[class@BreakpointBin]. Refer to that widget's documentation for details. + +Like `AdwBreakpointBin`, if breakpoints are used, `AdwDialog` doesn't have a +minimum size, and [property@Gtk.Widget:width-request] and +[property@Gtk.Widget:height-request] properties must be set manually. + + + + + + + Creates a new `AdwDialog`. + + + the new created `AdwDialog` + + + + + + + + + + + + + + + + + + + + + + + + + + + Adds @breakpoint to @self. + + + + + + + a dialog + + + + the breakpoint to add + + + + + + Attempts to close @self. + +If the [property@Dialog:can-close] property is set to `FALSE`, the +[signal@Dialog::close-attempt] signal is emitted. + +See also: [method@Dialog.force_close]. + + + whether @self was successfully closed + + + + + a dialog + + + + + + Closes @self. + +Unlike [method@Dialog.close], it succeeds even if [property@Dialog:can-close] +is set to `FALSE`. + + + + + + + a dialog + + + + + + Gets whether @self can be closed. + + + whether the dialog can be closed + + + + + a dialog + + + + + + Gets the child widget of @self. + + + the child widget of @self + + + + + a dialog + + + + + + Gets the height of the dialog's contents. + + + the content height + + + + + a dialog + + + + + + Gets the width of the dialog's contents. + + + the content width + + + + + a dialog + + + + + + Gets the current breakpoint. + + + the current breakpoint + + + + + a dialog + + + + + + Gets the default widget for @self. + + + the default widget + + + + + a dialog + + + + + + Gets the focus widget for @self. + + + the focus widget + + + + + a dialog + + + + + + Gets whether to size content of @self automatically. + + + whether to size content automatically + + + + + a dialog + + + + + + Gets presentation mode for @self. + + + the presentation mode + + + + + a dialog + + + + + + Gets the title of @self. + + + the title + + + + + a dialog + + + + + + Presents @self within @parent's window. + +If @self is already shown, raises it to the top instead. + +If the window is an [class@Window] or [class@ApplicationWindow], the dialog +will be shown within it. Otherwise, it will be a separate window. + + + + + + + a dialog + + + + a widget within the toplevel + + + + + + Sets whether @self can be closed. + +If set to `FALSE`, the close button, shortcuts and +[method@Dialog.close] will result in [signal@Dialog::close-attempt] being +emitted instead, and bottom sheet close swipe will be disabled. +[method@Dialog.force_close] still works. + + + + + + + a dialog + + + + whether to allow closing + + + + + + Sets the child widget of @self. + + + + + + + a dialog + + + + the child widget + + + + + + Sets the height of the dialog's contents. + +Set it to -1 to reset it to the content's natural height. + +See also: [property@Gtk.Window:default-height] + + + + + + + a dialog + + + + the content height + + + + + + Sets the width of the dialog's contents. + +Set it to -1 to reset it to the content's natural width. + +See also: [property@Gtk.Window:default-width] + + + + + + + a dialog + + + + the content width + + + + + + Sets the default widget for @self. + +It's activated when the user presses Enter. + + + + + + + a dialog + + + + the default widget + + + + + + Sets the focus widget for @self. + +If @focus is not the current focus widget, and is focusable, sets it as the +focus widget for the dialog. + +If focus is `NULL`, unsets the focus widget for this dialog. To set the focus +to a particular widget in the dialog, it is usually more convenient to use +[method@Gtk.Widget.grab_focus] instead of this function. + + + + + + + a dialog + + + + the focus widget + + + + + + Sets whether to size content of @self automatically. + +If set to `TRUE`, always use the content's natural size instead of +[property@Dialog:content-width] and [property@Dialog:content-height]. If +the content resizes, the dialog will immediately resize as well. + +See also: [property@Gtk.Window:resizable] + + + + + + + a dialog + + + + whether to size content automatically + + + + + + Sets presentation mode for @self. + +When set to [enum@Adw.DialogPresentationMode.auto], the dialog appears as a +bottom sheet when the following condition is met: +`max-width: 450px or max-height: 360px`, and as a floating window otherwise. + +Set it to [enum@Adw.DialogPresentationMode.floating] or +[enum@Adw.DialogPresentationMode.bottom-sheet] to always present it a +floating window or a bottom sheet respectively, regardless of available size. + +Presentation mode does nothing for dialogs presented as a window. + + + + + + + a dialog + + + + the new presentation mode + + + + + + Sets the title of @self. + + + + + + + a dialog + + + + the new title + + + + + + Whether the dialog can be closed. + +If set to `FALSE`, the close button, shortcuts and +[method@Dialog.close] will result in [signal@Dialog::close-attempt] being +emitted instead, and bottom sheet close swipe will be disabled. +[method@Dialog.force_close] still works. + + + + The child widget of the `AdwDialog`. + + + + The height of the dialog's contents. + +Set it to -1 to reset it to the content's natural height. + +See also: [property@Gtk.Window:default-height] + + + + The width of the dialog's contents. + +Set it to -1 to reset it to the content's natural width. + +See also: [property@Gtk.Window:default-width] + + + + The current breakpoint. + + + + The default widget. + +It's activated when the user presses Enter. + + + + The focus widget. + + + + Whether to size content automatically. + +If set to `TRUE`, always use the content's natural size instead of +[property@Dialog:content-width] and [property@Dialog:content-height]. If +the content resizes, the dialog will immediately resize as well. + +See also: [property@Gtk.Window:resizable] + + + + The dialog's presentation mode. + +When set to [enum@Adw.DialogPresentationMode.auto], the dialog appears as a +bottom sheet when the following condition is met: +`max-width: 450px or max-height: 360px`, and as a floating window otherwise. + +Set it to [enum@Adw.DialogPresentationMode.floating] or +[enum@Adw.DialogPresentationMode.bottom-sheet] to always present it a +floating window or a bottom sheet respectively, regardless of available +size. + +Presentation mode does nothing for dialogs presented as a window. + + + + The title of the dialog. + + + + + + + Emitted when the close button or shortcut is used, or +[method@Dialog.close] is called while [property@Dialog:can-close] is set to +`FALSE`. + + + + + + Emitted when the dialog is successfully closed. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Describes the available presentation modes for [class@Dialog]. + +New values may be added to this enumeration over time. + +See [property@Dialog:presentation-mode]. + + Switch between [enum@Adw.DialogPresentationMode.floating] + and [enum@Adw.DialogPresentationMode.bottom-sheet] depending on available + size. + + + Present dialog as a centered floating window. + + + Present dialog as a bottom sheet. + + + + + + + + + + + + + + + Describes the available easing functions for use with +[class@TimedAnimation]. + +New values may be added to this enumeration over time. + + Linear tweening. + + + Quadratic tweening. + + + Quadratic tweening, inverse of + [enum@Adw.Easing.ease-in-quad]. + + + Quadratic tweening, combining + [enum@Adw.Easing.ease-in-quad] and [enum@Adw.Easing.ease-out-quad]. + + + Cubic tweening. + + + Cubic tweening, inverse of + [enum@Adw.Easing.ease-in-cubic]. + + + Cubic tweening, combining + [enum@Adw.Easing.ease-in-cubic] and [enum@Adw.Easing.ease-out-cubic]. + + + Quartic tweening. + + + Quartic tweening, inverse of + [enum@Adw.Easing.ease-in-quart]. + + + Quartic tweening, combining + [enum@Adw.Easing.ease-in-quart] and [enum@Adw.Easing.ease-out-quart]. + + + Quintic tweening. + + + Quintic tweening, inverse of + [enum@Adw.Easing.ease-in-quint]. + + + Quintic tweening, combining + [enum@Adw.Easing.ease-in-quint] and [enum@Adw.Easing.ease-out-quint]. + + + Sine wave tweening. + + + Sine wave tweening, inverse of + [enum@Adw.Easing.ease-in-sine]. + + + Sine wave tweening, combining + [enum@Adw.Easing.ease-in-sine] and [enum@Adw.Easing.ease-out-sine]. + + + Exponential tweening. + + + Exponential tweening, inverse of + [enum@Adw.Easing.ease-in-expo]. + + + Exponential tweening, combining + [enum@Adw.Easing.ease-in-expo] and [enum@Adw.Easing.ease-out-expo]. + + + Circular tweening. + + + Circular tweening, inverse of + [enum@Adw.Easing.ease-in-circ]. + + + Circular tweening, combining + [enum@Adw.Easing.ease-in-circ] and [enum@Adw.Easing.ease-out-circ]. + + + Elastic tweening, with offshoot on start. + + + Elastic tweening, with offshoot on end, inverse of + [enum@Adw.Easing.ease-in-elastic]. + + + Elastic tweening, with offshoot on both ends, + combining [enum@Adw.Easing.ease-in-elastic] and + [enum@Adw.Easing.ease-out-elastic]. + + + Overshooting cubic tweening, with backtracking on start. + + + Overshooting cubic tweening, with backtracking on end, + inverse of [enum@Adw.Easing.ease-in-back]. + + + Overshooting cubic tweening, with backtracking on both + ends, combining [enum@Adw.Easing.ease-in-back] and + [enum@Adw.Easing.ease-out-back]. + + + Exponentially decaying parabolic (bounce) tweening, + on start. + + + Exponentially decaying parabolic (bounce) tweening, + with bounce on end, inverse of [enum@Adw.Easing.ease-in-bounce]. + + + Exponentially decaying parabolic (bounce) tweening, + with bounce on both ends, combining [enum@Adw.Easing.ease-in-bounce] and + [enum@Adw.Easing.ease-out-bounce]. + + + Cubic bezier tweening, with control points in (0.25, 0.1) and (0.25, 1.0). + +Increases in velocity towards the middle of the animation, slowing back down +at the end. + + + Cubic bezier tweening, with control points in (0.42, 0.0) and (1.0, 1.0). + +Starts off slowly, with the speed of the animation increasing until complete. + + + Cubic bezier tweening, with control points in (0.0, 0.0) and (0.58, 1.0). + +Starts quickly, slowing down the animation until complete. + + + Cubic bezier tweening, with control points in (0.42, 0.0) and (0.58, 1.0). + +Starts off slowly, speeds up in the middle, and then slows down again. + + + Computes easing with @easing for @value. + +@value should generally be in the [0, 1] range. + + + the easing for @value + + + + + an easing value + + + + a value to ease + + + + + + + A [class@Gtk.ListBoxRow] with an embedded text entry. + +<picture> + <source srcset="entry-row-dark.png" media="(prefers-color-scheme: dark)"> + <img src="entry-row.png" alt="entry-row"> +</picture> + +`AdwEntryRow` has a title that doubles as placeholder text. It shows an icon +indicating that it's editable and can receive additional widgets before or +after the editable part. + +If [property@EntryRow:show-apply-button] is set to `TRUE`, `AdwEntryRow` can +show an apply button when editing its contents. This can be useful if +changing its contents can result in an expensive operation, such as network +activity. + +`AdwEntryRow` provides only minimal API and should be used with the +[iface@Gtk.Editable] API. + +See also [class@PasswordEntryRow]. + +## AdwEntryRow as GtkBuildable + +The `AdwEntryRow` implementation of the [iface@Gtk.Buildable] interface +supports adding a child at its end by specifying “suffix” or omitting the +“type” attribute of a <child> element. + +It also supports adding a child as a prefix widget by specifying “prefix” as +the “type” attribute of a <child> element. + +## CSS nodes + +`AdwEntryRow` has a single CSS node with name `row` and the `.entry` style +class. + + + + + + + + Creates a new `AdwEntryRow`. + + + the newly created `AdwEntryRow` + + + + + Adds a prefix widget to @self. + + + + + + + an entry row + + + + a widget + + + + + + Adds a suffix widget to @self. + + + + + + + an entry row + + + + a widget + + + + + + Gets whether activating the embedded entry can activate the default widget. + + + whether to activate the default widget + + + + + an entry row + + + + + + Gets Pango attributes applied to the text of the embedded entry. + + + the list of attributes + + + + + an entry row + + + + + + Gets whether to suggest emoji replacements on @self. + + + whether or not emoji completion is enabled + + + + + an entry row + + + + + + Gets the additional input hints of @self. + + + The input hints + + + + + an entry row + + + + + + Gets the input purpose of @self. + + + the input purpose + + + + + an entry row + + + + + + Retrieves the maximum length of the entry. + + + The maximum length of the entry. + + + + + an entry row + + + + + + Gets whether @self can show the apply button. + + + whether to show the apply button + + + + + an entry row + + + + + + Retrieves the current length of the text in @self. + + + The current number of characters in @self, or 0 if there are none. + + + + + an entry row + + + + + + Causes @self to have keyboard focus without selecting the text. + +See [method@Gtk.Text.grab_focus_without_selecting] for more information. + + + whether the focus is now inside @self + + + + + an entry row + + + + + + Removes a child from @self. + + + + + + + an entry row + + + + the child to be removed + + + + + + Sets whether activating the embedded entry can activate the default widget. + + + + + + + an entry row + + + + whether to activate the default widget + + + + + + Sets Pango attributes to apply to the text of the embedded entry. + +The [struct@Pango.Attribute]'s `start_index` and `end_index` must refer to +the [class@Gtk.EntryBuffer] text, i.e. without the preedit string. + + + + + + + an entry row + + + + a list of attributes + + + + + + Sets whether to suggest emoji replacements on @self. + +Emoji replacement is done with :-delimited names, like `:heart:`. + + + + + + + an entry row + + + + Whether emoji completion should be enabled or not + + + + + + Set additional input hints for @self. + +Input hints allow input methods to fine-tune their behavior. + +See also: [property@AdwEntryRow:input-purpose] + + + + + + + an entry row + + + + the hints + + + + + + Sets the input purpose of @self. + +The input purpose can be used by input methods to adjust their behavior. + + + + + + + an entry row + + + + the purpose + + + + + + Sets the maximum length of the entry. + + + + + + + an entry row + + + + maximum length of the entry + + + + + + Sets whether @self can show the apply button. + +When set to `TRUE`, typing text in the entry will reveal an apply button. +Clicking it or pressing the <kbd>Enter</kbd> key will hide the button and +emit the [signal@EntryRow::apply] signal. + +This is useful if changing the entry contents can trigger an expensive +operation, e.g. network activity, to avoid triggering it after typing every +character. + + + + + + + an entry row + + + + whether to show the apply button + + + + + + Whether activating the embedded entry can activate the default widget. + + + + A list of Pango attributes to apply to the text of the embedded entry. + +The [struct@Pango.Attribute]'s `start_index` and `end_index` must refer to +the [class@Gtk.EntryBuffer] text, i.e. without the preedit string. + + + + Whether to suggest emoji replacements on the entry row. + +Emoji replacement is done with :-delimited names, like `:heart:`. + + + + Additional input hints for the entry row. + +Input hints allow input methods to fine-tune their behavior. + +See also: [property@Adw.EntryRow:input-purpose] + + + + The input purpose of the entry row. + +The input purpose can be used by input methods to adjust their behavior. + + + + Maximum number of characters for the entry. + + + + Whether to show the apply button. + +When set to `TRUE`, typing text in the entry will reveal an apply button. +Clicking it or pressing the <kbd>Enter</kbd> key will hide the button and +emit the [signal@EntryRow::apply] signal. + +This is useful if changing the entry contents can trigger an expensive +operation, e.g. network activity, to avoid triggering it after typing every +character. + + + + The length of the text in the entry row. + + + + + + + Emitted when the apply button is pressed. + +See [property@EntryRow:show-apply-button]. + + + + + + Emitted when the embedded entry is activated. + + + + + + + + + The parent class + + + + + `AdwEnumListItem` is the type of items in a [class@EnumListModel]. + Use [class@Gtk.EnumListItem]. + + + Gets the enum value name. + Use [class@Gtk.EnumListItem]. + + + the enum value name + + + + + + + + + + Gets the enum value nick. + Use [class@Gtk.EnumListItem]. + + + the enum value nick + + + + + + + + + + Gets the enum value. + Use [class@Gtk.EnumListItem]. + + + the enum value + + + + + + + + + + The enum value name. + Use [class@Gtk.EnumListItem]. + + + + The enum value nick. + Use [class@Gtk.EnumListItem]. + + + + The enum value. + Use [class@Gtk.EnumListItem]. + + + + + + + + + + + A [iface@Gio.ListModel] representing values of a given enum. + +`AdwEnumListModel` contains objects of type [class@EnumListItem]. + Use [class@Gtk.EnumList]. + + + + Creates a new `AdwEnumListModel` for @enum_type. + Use [class@Gtk.EnumList]. + + + the newly created `AdwEnumListModel` + + + + + the type of the enum to construct the model from + + + + + + Finds the position of a given enum value in @self. + +If the value is not found, [const@Gtk.INVALID_LIST_POSITION] is returned. + Use [class@Gtk.EnumList]. + + + the position of the value + + + + + + + + an enum value + + + + + + Gets the type of the enum represented by @self. + Use [class@Gtk.EnumList]. + + + the enum type + + + + + + + + + + The type of the enum represented by the model. + Use [class@Gtk.EnumList]. + + + + The type of the items. See [method@Gio.ListModel.get_item_type]. + Use [class@Gtk.EnumList]. + + + + The number of items. See [method@Gio.ListModel.get_n_items]. + Use [class@Gtk.EnumList]. + + + + + + + + + + + A [class@Gtk.ListBoxRow] used to reveal widgets. + +<picture> + <source srcset="expander-row-dark.png" media="(prefers-color-scheme: dark)"> + <img src="expander-row.png" alt="expander-row"> +</picture> + +The `AdwExpanderRow` widget allows the user to reveal or hide widgets below +it. It also allows the user to enable the expansion of the row, allowing to +disable all that the row contains. + +## AdwExpanderRow as GtkBuildable + +The `AdwExpanderRow` implementation of the [iface@Gtk.Buildable] interface +supports adding a child as an suffix widget by specifying “suffix” as the +“type” attribute of a <child> element. + +It also supports adding it as a prefix widget by specifying “prefix” as the +“type” attribute of a <child> element. + +## CSS nodes + +`AdwExpanderRow` has a main CSS node with name `row` and the `.expander` +style class. It has the `.empty` style class when it contains no children. + +It contains the subnodes `row.header` for its main embedded row, +`list.nested` for the list it can expand, and `image.expander-row-arrow` for +its arrow. + +## Style classes + +`AdwExpanderRow` can use the [`.`](style-classes.html#property-rows) +style class to emphasize the row subtitle instead of the row title, which is +useful for displaying read-only properties. + +When used together with the `.monospace` style class, only the subtitle +becomes monospace, not the title or any extra widgets. + + + + + + + Creates a new `AdwExpanderRow`. + + + the newly created `AdwExpanderRow` + + + + + Adds an action widget to @self. + Use [method@ExpanderRow.add_suffix] to add a suffix. + + + + + + + an expander row + + + + a widget + + + + + + Adds a prefix widget to @self. + + + + + + + an expander row + + + + a widget + + + + + + Adds a widget to @self. + +The widget will appear in the expanding list below @self. + + + + + + + an expander row + + + + a widget + + + + + + Adds an suffix widget to @self. + + + + + + + an expander row + + + + a widget + + + + + + Gets whether the expansion of @self is enabled. + + + whether the expansion of @self is enabled. + + + + + an expander row + + + + + + Gets whether @self is expanded. + + + whether @self is expanded + + + + + an expander row + + + + + + Gets the icon name for @self. + Use [method@ExpanderRow.add_prefix] to add an icon. + + + the icon name for @self + + + + + an expander row + + + + + + Gets whether the switch enabling the expansion of @self is visible. + + + whether the switch enabling the expansion is visible + + + + + an expander row + + + + + + Gets the subtitle for @self. + + + the subtitle for @self + + + + + an expander row + + + + + + Gets the number of lines at the end of which the subtitle label will be +ellipsized. + + + the number of lines at the end of which the subtitle label will be + ellipsized + + + + + an expander row + + + + + + Gets the number of lines at the end of which the title label will be +ellipsized. + + + the number of lines at the end of which the title label will be + ellipsized + + + + + an expander row + + + + + + Removes a child from @self. + + + + + + + an expander row + + + + the child to be removed + + + + + + Sets whether the expansion of @self is enabled. + + + + + + + an expander row + + + + whether to enable the expansion + + + + + + Sets whether @self is expanded. + + + + + + + an expander row + + + + whether to expand the row + + + + + + Sets the icon name for @self. + Use [method@ExpanderRow.add_prefix] to add an icon. + + + + + + + an expander row + + + + the icon name + + + + + + Sets whether the switch enabling the expansion of @self is visible. + + + + + + + an expander row + + + + whether to show the switch enabling the expansion + + + + + + Sets the subtitle for @self. + +The subtitle is interpreted as Pango markup unless +[property@PreferencesRow:use-markup] is set to `FALSE`. + + + + + + + an expander row + + + + the subtitle + + + + + + Sets the number of lines at the end of which the subtitle label will be +ellipsized. + +If the value is 0, the number of lines won't be limited. + + + + + + + an expander row + + + + the number of lines at the end of which the subtitle label will be ellipsized + + + + + + Sets the number of lines at the end of which the title label will be +ellipsized. + +If the value is 0, the number of lines won't be limited. + + + + + + + an expander row + + + + the number of lines at the end of which the title label will be ellipsized + + + + + + Whether expansion is enabled. + + + + Whether the row is expanded. + + + + The icon name for this row. + Use [method@ExpanderRow.add_prefix] to add an icon. + + + + Whether the switch enabling the expansion is visible. + + + + The subtitle for this row. + +The subtitle is interpreted as Pango markup unless +[property@PreferencesRow:use-markup] is set to `FALSE`. + + + + The number of lines at the end of which the subtitle label will be +ellipsized. + +If the value is 0, the number of lines won't be limited. + + + + The number of lines at the end of which the title label will be ellipsized. + +If the value is 0, the number of lines won't be limited. + + + + + + + + + + The parent class + + + + + + + + + + An adaptive container acting like a box or an overlay. + +<picture> + <source srcset="flap-wide-dark.png" media="(prefers-color-scheme: dark)"> + <img src="flap-wide.png" alt="flap-wide"> +</picture> +<picture> + <source srcset="flap-narrow-dark.png" media="(prefers-color-scheme: dark)"> + <img src="flap-narrow.png" alt="flap-narrow"> +</picture> + +The `AdwFlap` widget can display its children like a [class@Gtk.Box] does or +like a [class@Gtk.Overlay] does, according to the +[property@Flap:fold-policy] value. + +`AdwFlap` has at most three children: [property@Flap:content], +[property@Flap:flap] and [property@Flap:separator]. Content is the primary +child, flap is displayed next to it when unfolded, or overlays it when +folded. Flap can be shown or hidden by changing the +[property@Flap:reveal-flap] value, as well as via swipe gestures if +[property@Flap:swipe-to-open] and/or [property@Flap:swipe-to-close] are set +to `TRUE`. + +Optionally, a separator can be provided, which would be displayed between +the content and the flap when there's no shadow to separate them, depending +on the transition type. + +[property@Flap:flap] is transparent by default; add the +[`.background`](style-classes.html#background) style class to it if this is +unwanted. + +If [property@Flap:modal] is set to `TRUE`, content becomes completely +inaccessible when the flap is revealed while folded. + +The position of the flap and separator children relative to the content is +determined by orientation, as well as the [property@Flap:flap-position] +value. + +Folding the flap will automatically hide the flap widget, and unfolding it +will automatically reveal it. If this behavior is not desired, the +[property@Flap:locked] property can be used to override it. + +Common use cases include sidebars, header bars that need to be able to +overlap the window content (for example, in fullscreen mode) and bottom +sheets. + +## AdwFlap as GtkBuildable + +The `AdwFlap` implementation of the [iface@Gtk.Buildable] interface supports +setting the flap child by specifying “flap” as the “type” attribute of a +`<child>` element, and separator by specifying “separator”. Specifying +“content” child type or omitting it results in setting the content child. + +## CSS nodes + +`AdwFlap` has a single CSS node with name `flap`. The node will get the style +classes `.folded` when it is folded, and `.unfolded` when it's not. + See [the migration guide](migrating-to-breakpoints.html#replace-adwflap) + + + + + + + + Creates a new `AdwFlap`. + See [the migration guide](migrating-to-breakpoints.html#replace-adwflap) + + + the newly created `AdwFlap` + + + + + Gets the content widget for @self. + See [the migration guide](migrating-to-breakpoints.html#replace-adwflap) + + + the content widget for @self + + + + + a flap + + + + + + Gets the flap widget for @self. + See [the migration guide](migrating-to-breakpoints.html#replace-adwflap) + + + the flap widget for @self + + + + + a flap + + + + + + Gets the flap position for @self. + See [the migration guide](migrating-to-breakpoints.html#replace-adwflap) + + + the flap position for @self + + + + + a flap + + + + + + Gets the fold transition animation duration for @self, in milliseconds. + See [the migration guide](migrating-to-breakpoints.html#replace-adwflap) + + + the fold transition duration + + + + + a flap + + + + + + Gets the fold policy for @self. + See [the migration guide](migrating-to-breakpoints.html#replace-adwflap) + + + the fold policy for @self + + + + + a flap + + + + + + Gets the fold threshold policy for @self. + See [the migration guide](migrating-to-breakpoints.html#replace-adwflap) + + + the fold threshold policy + + + + + a flap + + + + + + Gets whether @self is currently folded. + +See [property@Flap:fold-policy]. + See [the migration guide](migrating-to-breakpoints.html#replace-adwflap) + + + `TRUE` if @self is currently folded + + + + + a flap + + + + + + Gets whether @self is locked. + See [the migration guide](migrating-to-breakpoints.html#replace-adwflap) + + + `TRUE` if @self is locked + + + + + a flap + + + + + + Gets whether @self is modal. + See [the migration guide](migrating-to-breakpoints.html#replace-adwflap) + + + `TRUE` if @self is modal + + + + + a flap + + + + + + Gets whether the flap widget is revealed for @self. + See [the migration guide](migrating-to-breakpoints.html#replace-adwflap) + + + `TRUE` if the flap widget is revealed + + + + + a flap + + + + + + Gets the reveal animation spring parameters for @self. + See [the migration guide](migrating-to-breakpoints.html#replace-adwflap) + + + the reveal animation parameters + + + + + a flap + + + + + + Gets the current reveal progress for @self. + +0 means fully hidden, 1 means fully revealed. + +See [property@Flap:reveal-flap]. + See [the migration guide](migrating-to-breakpoints.html#replace-adwflap) + + + the current reveal progress for @self + + + + + a flap + + + + + + Gets the separator widget for @self. + See [the migration guide](migrating-to-breakpoints.html#replace-adwflap) + + + the separator widget for @self + + + + + a flap + + + + + + Gets whether @self can be closed with a swipe gesture. + See [the migration guide](migrating-to-breakpoints.html#replace-adwflap) + + + `TRUE` if @self can be closed with a swipe gesture + + + + + a flap + + + + + + Gets whether @self can be opened with a swipe gesture. + See [the migration guide](migrating-to-breakpoints.html#replace-adwflap) + + + `TRUE` if @self can be opened with a swipe gesture + + + + + a flap + + + + + + Gets the type of animation used for reveal and fold transitions in @self. + See [the migration guide](migrating-to-breakpoints.html#replace-adwflap) + + + the current transition type of @self + + + + + a flap + + + + + + Sets the content widget for @self. + +It's always displayed when unfolded, and partially visible when folded. + See [the migration guide](migrating-to-breakpoints.html#replace-adwflap) + + + + + + + a flap + + + + the content widget + + + + + + Sets the flap widget for @self. + +It's only visible when [property@Flap:reveal-progress] is greater than 0. + See [the migration guide](migrating-to-breakpoints.html#replace-adwflap) + + + + + + + a flap + + + + the flap widget + + + + + + Sets the flap position for @self. + +If it's set to [enum@Gtk.PackType.start], the flap is displayed before the +content, if [enum@Gtk.PackType.end], it's displayed after the content. + See [the migration guide](migrating-to-breakpoints.html#replace-adwflap) + + + + + + + a flap + + + + the new value + + + + + + Sets the fold transition animation duration for @self, in milliseconds. + See [the migration guide](migrating-to-breakpoints.html#replace-adwflap) + + + + + + + a flap + + + + the new duration, in milliseconds + + + + + + Sets the fold policy for @self. + See [the migration guide](migrating-to-breakpoints.html#replace-adwflap) + + + + + + + a flap + + + + the fold policy + + + + + + Sets the fold threshold policy for @self. + +If set to [enum@Adw.FoldThresholdPolicy.minimum], flap will only fold when +the children cannot fit anymore. With [enum@Adw.FoldThresholdPolicy.natural], +it will fold as soon as children don't get their natural size. + +This can be useful if you have a long ellipsizing label and want to let it +ellipsize instead of immediately folding. + See [the migration guide](migrating-to-breakpoints.html#replace-adwflap) + + + + + + + a flap + + + + the policy to use + + + + + + Sets whether @self is locked. + +If `FALSE`, folding when the flap is revealed automatically closes it, and +unfolding it when the flap is not revealed opens it. If `TRUE`, +[property@Flap:reveal-flap] value never changes on its own. + See [the migration guide](migrating-to-breakpoints.html#replace-adwflap) + + + + + + + a flap + + + + the new value + + + + + + Sets whether @self is modal. + +If `TRUE`, clicking the content widget while flap is revealed, as well as +pressing the <kbd>Esc</kbd> key, will close the flap. If `FALSE`, clicks are +passed through to the content widget. + See [the migration guide](migrating-to-breakpoints.html#replace-adwflap) + + + + + + + a flap + + + + whether @self is modal + + + + + + Sets whether the flap widget is revealed for @self. + See [the migration guide](migrating-to-breakpoints.html#replace-adwflap) + + + + + + + a flap + + + + whether to reveal the flap widget + + + + + + Sets the reveal animation spring parameters for @self. + +The default value is equivalent to: + +```c +adw_spring_params_new (1, 0.5, 500) +``` + See [the migration guide](migrating-to-breakpoints.html#replace-adwflap) + + + + + + + a flap + + + + the new parameters + + + + + + Sets the separator widget for @self. + +It's displayed between content and flap when there's no shadow to display. +When exactly it's visible depends on the [property@Flap:transition-type] +value. + See [the migration guide](migrating-to-breakpoints.html#replace-adwflap) + + + + + + + a flap + + + + the separator widget + + + + + + Sets whether @self can be closed with a swipe gesture. + +The area that can be swiped depends on the [property@Flap:transition-type] +value. + See [the migration guide](migrating-to-breakpoints.html#replace-adwflap) + + + + + + + a flap + + + + whether @self can be closed with a swipe gesture + + + + + + Sets whether @self can be opened with a swipe gesture. + +The area that can be swiped depends on the [property@Flap:transition-type] +value. + See [the migration guide](migrating-to-breakpoints.html#replace-adwflap) + + + + + + + a flap + + + + whether @self can be opened with a swipe gesture + + + + + + Sets the type of animation used for reveal and fold transitions in @self. + +[property@Flap:flap] is transparent by default, which means the content will +be seen through it with [enum@Adw.FlapTransitionType.over] transitions; add +the [`.background`](style-classes.html#background) style class to it if this +is unwanted. + See [the migration guide](migrating-to-breakpoints.html#replace-adwflap) + + + + + + + a flap + + + + the new transition type + + + + + + The content widget. + +It's always displayed when unfolded, and partially visible when folded. + See [the migration guide](migrating-to-breakpoints.html#replace-adwflap) + + + + The flap widget. + +It's only visible when [property@Flap:reveal-progress] is greater than 0. + See [the migration guide](migrating-to-breakpoints.html#replace-adwflap) + + + + The flap position. + +If it's set to [enum@Gtk.PackType.start], the flap is displayed before the +content, if [enum@Gtk.PackType.end], it's displayed after the content. + See [the migration guide](migrating-to-breakpoints.html#replace-adwflap) + + + + The fold transition animation duration, in milliseconds. + See [the migration guide](migrating-to-breakpoints.html#replace-adwflap) + + + + The fold policy for the flap. + See [the migration guide](migrating-to-breakpoints.html#replace-adwflap) + + + + Determines when the flap will fold. + +If set to [enum@Adw.FoldThresholdPolicy.minimum], flap will only fold when +the children cannot fit anymore. With [enum@Adw.FoldThresholdPolicy.natural], +it will fold as soon as children don't get their natural size. + +This can be useful if you have a long ellipsizing label and want to let it +ellipsize instead of immediately folding. + See [the migration guide](migrating-to-breakpoints.html#replace-adwflap) + + + + Whether the flap is currently folded. + +See [property@Flap:fold-policy]. + See [the migration guide](migrating-to-breakpoints.html#replace-adwflap) + + + + Whether the flap is locked. + +If `FALSE`, folding when the flap is revealed automatically closes it, and +unfolding it when the flap is not revealed opens it. If `TRUE`, +[property@Flap:reveal-flap] value never changes on its own. + See [the migration guide](migrating-to-breakpoints.html#replace-adwflap) + + + + Whether the flap is modal. + +If `TRUE`, clicking the content widget while flap is revealed, as well as +pressing the <kbd>Esc</kbd> key, will close the flap. If `FALSE`, clicks +are passed through to the content widget. + See [the migration guide](migrating-to-breakpoints.html#replace-adwflap) + + + + Whether the flap widget is revealed. + See [the migration guide](migrating-to-breakpoints.html#replace-adwflap) + + + + The reveal animation spring parameters. + +The default value is equivalent to: + +```c +adw_spring_params_new (1, 0.5, 500) +``` + See [the migration guide](migrating-to-breakpoints.html#replace-adwflap) + + + + The current reveal transition progress. + +0 means fully hidden, 1 means fully revealed. + +See [property@Flap:reveal-flap]. + See [the migration guide](migrating-to-breakpoints.html#replace-adwflap) + + + + The separator widget. + +It's displayed between content and flap when there's no shadow to display. +When exactly it's visible depends on the [property@Flap:transition-type] +value. + See [the migration guide](migrating-to-breakpoints.html#replace-adwflap) + + + + Whether the flap can be closed with a swipe gesture. + +The area that can be swiped depends on the [property@Flap:transition-type] +value. + See [the migration guide](migrating-to-breakpoints.html#replace-adwflap) + + + + Whether the flap can be opened with a swipe gesture. + +The area that can be swiped depends on the [property@Flap:transition-type] +value. + See [the migration guide](migrating-to-breakpoints.html#replace-adwflap) + + + + the type of animation used for reveal and fold transitions. + +[property@Flap:flap] is transparent by default, which means the content +will be seen through it with [enum@Adw.FlapTransitionType.over] transitions; +add the [`.background`](style-classes.html#background) style class to it if +this is unwanted. + See [the migration guide](migrating-to-breakpoints.html#replace-adwflap) + + + + + + + + + + + Describes the possible folding behavior of a [class@Flap] widget. + See [the migration guide](migrating-to-breakpoints.html#replace-adwflap) + + Disable folding, the flap cannot reach narrow + sizes. + + + Keep the flap always folded. + + + Fold and unfold the flap based on available + space. + + + + Describes transitions types of a [class@Flap] widget. + +It determines the type of animation when transitioning between children in a +[class@Flap] widget, as well as which areas can be swiped via +[property@Flap:swipe-to-open] and [property@Flap:swipe-to-close]. + See [the migration guide](migrating-to-breakpoints.html#replace-adwflap) + + The flap slides over the content, which is + dimmed. When folded, only the flap can be swiped. + + + The content slides over the flap. Only the + content can be swiped. + + + The flap slides offscreen when hidden, + neither the flap nor content overlap each other. Both widgets can be + swiped. + + + + Determines when [class@Flap] and [class@Leaflet] will fold. + Stop using `AdwLeaflet` and `AdwFlap` + + Folding is based on the minimum size + + + Folding is based on the natural size + + + + A title bar widget. + +<picture> + <source srcset="header-bar-dark.png" media="(prefers-color-scheme: dark)"> + <img src="header-bar.png" alt="header-bar"> +</picture> + +`AdwHeaderBar` is similar to [class@Gtk.HeaderBar], but provides additional +features compared to it. Refer to `GtkHeaderBar` for details. It is typically +used as a top bar within [class@ToolbarView]. + +## Dialog Integration + +When placed inside an [class@Dialog], `AdwHeaderBar` will display the dialog +title instead of window title. It will also adjust the decoration layout to +ensure it always has a close button and nothing else. Set +[property@HeaderBar:show-start-title-buttons] and +[property@HeaderBar:show-end-title-buttons] to `FALSE` to remove it if it's +unwanted. + +## Navigation View Integration + +When placed inside an [class@NavigationPage], `AdwHeaderBar` will display the +page title instead of window title. + +When used together with [class@NavigationView] or [class@NavigationSplitView], +it will also display a back button that can be used to go back to the previous +page. The button also has a context menu, allowing to pop multiple pages at +once, potentially across multiple navigation views. + +Set [property@HeaderBar:show-back-button] to `FALSE` to disable this behavior +in rare scenarios where it's unwanted. + +## Split View Integration + +When placed inside [class@NavigationSplitView] or [class@OverlaySplitView], +`AdwHeaderBar` will automatically hide the title buttons other than at the +edges of the window. + +## Bottom Sheet Integration + +When played inside [class@BottomSheet], `AdwHeaderBar` will not show the title +unless [property@BottomSheet:show-drag-handle] is set to `FALSE`, regardless +of [property@HeaderBar:show-title]. This only applies to the default title, +titles set with [property@HeaderBar:title-widget] will still be shown. + +## Centering Policy + +[property@HeaderBar:centering-policy] allows to enforce strict centering of +the title widget. This can be useful for entries inside [class@Clamp]. + +## Title Buttons + +Unlike `GtkHeaderBar`, `AdwHeaderBar` allows to toggle title button +visibility for each side individually, using the +[property@HeaderBar:show-start-title-buttons] and +[property@HeaderBar:show-end-title-buttons] properties. + +## CSS nodes + +``` +headerbar +╰── windowhandle + ╰── box + ├── widget + │ ╰── box.start + │ ├── windowcontrols.start + │ ├── widget + │ │ ╰── [button.back] + │ ╰── [other children] + ├── widget + │ ╰── [Title Widget] + ╰── widget + ╰── box.end + ├── [other children] + ╰── windowcontrols.end +``` + +`AdwHeaderBar`'s CSS node is called `headerbar`. It contains a `windowhandle` +subnode, which contains a `box` subnode, which contains three `widget` +subnodes at the start, center and end of the header bar. The start and end +subnodes contain a `box` subnode with the `.start` and `.end` style classes +respectively, and the center node contains a node that represents the title. + +Each of the boxes contains a `windowcontrols` subnode, see +[class@Gtk.WindowControls] for details, as well as other children. + +When [property@HeaderBar:show-back-button] is `TRUE`, the start box also +contains a node with the name `widget` that contains a node with the name +`button` and `.back` style class. + +## Accessibility + +`AdwHeaderBar` uses the [enum@Gtk.AccessibleRole.group] role. + + + + + + Creates a new `AdwHeaderBar`. + + + the newly created `AdwHeaderBar`. + + + + + Gets the policy for aligning the center widget. + + + the centering policy + + + + + a header bar + + + + + + Gets the decoration layout for @self. + + + the decoration layout + + + + + a header bar + + + + + + Gets whether @self can show the back button. + + + whether to show the back button + + + + + a header bar + + + + + + Gets whether to show title buttons at the end of @self. + + + `TRUE` if title buttons at the end are shown + + + + + a header bar + + + + + + Gets whether to show title buttons at the start of @self. + + + `TRUE` if title buttons at the start are shown + + + + + a header bar + + + + + + Gets whether the title widget should be shown. + + + whether the title widget should be shown. + + + + + a header bar + + + + + + Gets the title widget widget of @self. + + + the title widget + + + + + a header bar + + + + + + Adds @child to @self, packed with reference to the end of @self. + + + + + + + a header bar + + + + the widget to be added to @self + + + + + + Adds @child to @self, packed with reference to the start of the @self. + + + + + + + a header bar + + + + the widget to be added to @self + + + + + + Removes a child from @self. + +The child must have been added with [method@HeaderBar.pack_start], +[method@HeaderBar.pack_end] or [property@HeaderBar:title-widget]. + + + + + + + a header bar + + + + the child to remove + + + + + + Sets the policy for aligning the center widget. + + + + + + + a header bar + + + + the centering policy + + + + + + Sets the decoration layout for @self. + +If this property is not set, the +[property@Gtk.Settings:gtk-decoration-layout] setting is used. + +The format of the string is button names, separated by commas. A colon +separates the buttons that should appear at the start from those at the end. +Recognized button names are minimize, maximize, close and icon (the window +icon). + +For example, “icon:minimize,maximize,close” specifies an icon at the start, +and minimize, maximize and close buttons at the end. + + + + + + + a header bar + + + + a decoration layout + + + + + + Sets whether @self can show the back button. + +The back button will never be shown unless the header bar is placed inside an +[class@NavigationView]. Usually, there is no reason to set it to `FALSE`. + + + + + + + a header bar + + + + whether to show the back button + + + + + + Sets whether to show title buttons at the end of @self. + +See [property@HeaderBar:show-start-title-buttons] for the other side. + +Which buttons are actually shown and where is determined by the +[property@HeaderBar:decoration-layout] property, and by the state of the +window (e.g. a close button will not be shown if the window can't be closed). + + + + + + + a header bar + + + + `TRUE` to show standard title buttons + + + + + + Sets whether to show title buttons at the start of @self. + +See [property@HeaderBar:show-end-title-buttons] for the other side. + +Which buttons are actually shown and where is determined by the +[property@HeaderBar:decoration-layout] property, and by the state of the +window (e.g. a close button will not be shown if the window can't be closed). + + + + + + + a header bar + + + + `TRUE` to show standard title buttons + + + + + + Sets whether the title widget should be shown. + + + + + + + a header bar + + + + whether the title widget is visible + + + + + + Sets the title widget for @self. + +When set to `NULL`, the header bar will display the title of the window it +is contained in. + +To use a different title, use [class@WindowTitle]: + +```xml +<object class="AdwHeaderBar"> + <property name="title-widget"> + <object class="AdwWindowTitle"> + <property name="title" translatable="yes">Title</property> + </object> + </property> +</object> +``` + + + + + + + a header bar + + + + a widget to use for a title + + + + + + The policy for aligning the center widget. + + + + The decoration layout for buttons. + +If this property is not set, the +[property@Gtk.Settings:gtk-decoration-layout] setting is used. + +The format of the string is button names, separated by commas. A colon +separates the buttons that should appear at the start from those at the +end. Recognized button names are minimize, maximize, close and icon (the +window icon). + +For example, “icon:minimize,maximize,close” specifies an icon at the start, +and minimize, maximize and close buttons at the end. + + + + Whether the header bar can show the back button. + +The back button will never be shown unless the header bar is placed inside an +[class@NavigationView]. Usually, there is no reason to set this to `FALSE`. + + + + Whether to show title buttons at the end of the header bar. + +See [property@HeaderBar:show-start-title-buttons] for the other side. + +Which buttons are actually shown and where is determined by the +[property@HeaderBar:decoration-layout] property, and by the state of the +window (e.g. a close button will not be shown if the window can't be +closed). + + + + Whether to show title buttons at the start of the header bar. + +See [property@HeaderBar:show-end-title-buttons] for the other side. + +Which buttons are actually shown and where is determined by the +[property@HeaderBar:decoration-layout] property, and by the state of the +window (e.g. a close button will not be shown if the window can't be +closed). + + + + Whether the title widget should be shown. + + + + The title widget to display. + +When set to `NULL`, the header bar will display the title of the window it +is contained in. + +To use a different title, use [class@WindowTitle]: + +```xml +<object class="AdwHeaderBar"> + <property name="title-widget"> + <object class="AdwWindowTitle"> + <property name="title" translatable="yes">Title</property> + </object> + </property> +</object> +``` + + + + + + + + + + + A view switcher that uses a toggle group. + +<picture> + <source srcset="inline-view-switcher-dark.png" media="(prefers-color-scheme: dark)"> + <img src="inline-view-switcher.png" alt="inline-view-switcher"> +</picture> + +A view switcher showing pages of an [class@ViewStack] within an +[class@ToggleGroup], similar to [class@ViewSwitcher]. + +The toggles can display either an icon, a label or both. Use the +[property@InlineViewSwitcher:display-mode] to control this. + +<picture> + <source srcset="inline-view-switcher-display-modes-dark.png" media="(prefers-color-scheme: dark)"> + <img src="inline-view-switcher-display-modes.png" alt="inline-view-switcher-display-modes"> +</picture> + +## CSS nodes + +`AdwInlineViewSwitcher` has a single CSS node with the name +`inline-view-switcher`. + +## Style classes + +Like `AdwToggleGroup`, it can accept the [`.flat`](style-classes.html#flat_1) +and [`.round`](style-classes.html#round) style classes. + +<picture> + <source srcset="inline-view-switcher-style-classes-dark.png" media="(prefers-color-scheme: dark)"> + <img src="inline-view-switcher-style-classes.png" alt="inline-view-switcher-style-classes"> +</picture> + +## Accessibility + +The internal toggle group uses the [enum@Gtk.AccessibleRole.tab-list] role. +Its toggles use the [enum@Gtk.AccessibleRole.tab] role. + +See also: [class@ViewSwitcher], [class@ViewSwitcherBar], +[class@ViewSwitcherSidebar]. + + + + + + + Creates a new `AdwInlineViewSwitcher`. + + + the newly created `AdwInlineViewSwitcher` + + + + + Gets whether the toggles can be smaller than the natural size of their +contents. + + + whether the toggles can shrink + + + + + an inline stack switcher + + + + + + Gets the display mode of @self. + + + the display mode + + + + + an inline stack switcher + + + + + + Gets whether all toggles within @self take the same size. + + + whether all toggles take the same size + + + + + an inline stack switcher + + + + + + Gets the stack @self controls. + + + The stack of @self + + + + + an inline stack switcher + + + + + + Sets whether the toggles can be smaller than the natural size of their +contents. + +If @can_shrink is `TRUE`, the toggle labels will ellipsize. + +See [property@ToggleGroup:can-shrink]. + + + + + + + an inline stack switcher + + + + whether the toggles can shrink + + + + + + Sets the display mode of @self. + +Determines what the toggles display: a label, an icon or both. + +<picture> + <source srcset="inline-view-switcher-display-modes-dark.png" media="(prefers-color-scheme: dark)"> + <img src="inline-view-switcher-display-modes.png" alt="inline-view-switcher-display-modes"> +</picture> + + + + + + + an inline stack switcher + + + + the display mode + + + + + + Sets whether all toggles within @self take the same size. + + + + + + + an inline stack switcher + + + + whether all toggles should take the same size + + + + + + Sets the stack to control. + + + + + + + an inline stack switcher + + + + a stack + + + + + + Whether the toggles can be smaller than the natural size of their contents. + +If set to `TRUE`, the toggle labels will ellipsize. + +See [property@ToggleGroup:can-shrink]. + + + + The display mode. + +Determines what the toggles display: a label, an icon or both. + +<picture> + <source srcset="inline-view-switcher-display-modes-dark.png" media="(prefers-color-scheme: dark)"> + <img src="inline-view-switcher-display-modes.png" alt="inline-view-switcher-display-modes"> +</picture> + + + + Whether all toggles take the same size. + + + + The stack the view switcher controls. + + + + + + + + + + + Describes what [class@InlineViewSwitcher] toggles display. + +<picture> + <source srcset="inline-view-switcher-display-modes-dark.png" media="(prefers-color-scheme: dark)"> + <img src="inline-view-switcher-display-modes.png" alt="inline-view-switcher-display-modes"> +</picture> + + Toggles only display labels. + + + Toggles only display icons. + + + Toggles display both icons and labels. + + + + Describes line justify behaviors in a [class@WrapLayout] or [class@WrapBox]. + +See [property@WrapLayout:justify] and [property@WrapBox:justify]. + + Don't justify children within a line. + + + Stretch each child within the line, keeping consistent + spacing, so that the line fills the entire length. + + + Increase spacing between children, moving the children + so that the first and last child are aligned with the beginning and end + of the line. If the line only contains a single widget, it will be + stretched regardless. + + + + An individual layout in [class@MultiLayoutView]. + + + + Creates a new `AdwLayout` that contains @content. + + + a new `AdwLayout` + + + + + the content widget to use + + + + + + Gets the content widget. + + + The content + + + + + a layout + + + + + + Gets the name of the layout. + + + the name of the layout + + + + + a layout + + + + + + Sets the name of the layout. + + + + + + + a layout + + + + the layout name + + + + + + The content widget. + + + + The name of the layout. + + + + + + + + + + + A child slot within [class@Layout]. + +While it contains a layout child, the [property@Gtk.Widget:visible] property +of the slot is updated to match that of the layout child. + +See [class@MultiLayoutView]. + + + + + + Creates a new `AdwLayoutSlot` with its ID set to @id. + + + a new `AdwLayoutSlot` + + + + + the slot ID + + + + + + Gets the slot id of @self. + + + the slot ID + + + + + a layout slot + + + + + + The slot ID. + +See [method@MultiLayoutView.set_child]. + + + + + + + + + + + An adaptive container acting like a box or a stack. + +<picture> + <source srcset="leaflet-wide-dark.png" media="(prefers-color-scheme: dark)"> + <img src="leaflet-wide.png" alt="leaflet-wide"> +</picture> +<picture> + <source srcset="leaflet-narrow-dark.png" media="(prefers-color-scheme: dark)"> + <img src="leaflet-narrow.png" alt="leaflet-narrow"> +</picture> + +The `AdwLeaflet` widget can display its children like a [class@Gtk.Box] does +or like a [class@Gtk.Stack] does, adapting to size changes by switching +between the two modes. + +When there is enough space the children are displayed side by side, otherwise +only one is displayed and the leaflet is said to be “folded”. +The threshold is dictated by the preferred minimum sizes of the children. +When a leaflet is folded, the children can be navigated using swipe gestures. + +The “over” and “under” transition types stack the children one on top of the +other, while the “slide” transition puts the children side by side. While +navigating to a child on the side or below can be performed by swiping the +current child away, navigating to an upper child requires dragging it from +the edge where it resides. This doesn't affect non-dragging swipes. + +## CSS nodes + +`AdwLeaflet` has a single CSS node with name `leaflet`. The node will get the +style classes `.folded` when it is folded, `.unfolded` when it's not, or none +if it hasn't computed its fold yet. + See [the migration guide](migrating-to-breakpoints.html#replace-adwleaflet) + + + + + + + + Creates a new `AdwLeaflet`. + See [the migration guide](migrating-to-breakpoints.html#replace-adwleaflet) + + + the new created `AdwLeaflet` + + + + + Adds a child to @self. + See [the migration guide](migrating-to-breakpoints.html#replace-adwleaflet) + + + the [class@LeafletPage] for @child + + + + + a leaflet + + + + the widget to add + + + + + + Finds the previous or next navigatable child. + +This will be the same child [method@Leaflet.navigate] or swipe gestures will +navigate to. + +If there's no child to navigate to, `NULL` will be returned instead. + +See [property@LeafletPage:navigatable]. + See [the migration guide](migrating-to-breakpoints.html#replace-adwleaflet) + + + the previous or next child + + + + + a leaflet + + + + the direction + + + + + + Gets whether gestures and shortcuts for navigating backward are enabled. + See [the migration guide](migrating-to-breakpoints.html#replace-adwleaflet) + + + Whether gestures and shortcuts are enabled. + + + + + a leaflet + + + + + + Gets whether gestures and shortcuts for navigating forward are enabled. + See [the migration guide](migrating-to-breakpoints.html#replace-adwleaflet) + + + Whether gestures and shortcuts are enabled. + + + + + a leaflet + + + + + + Gets whether @self can unfold. + See [the migration guide](migrating-to-breakpoints.html#replace-adwleaflet) + + + whether @self can unfold + + + + + a leaflet + + + + + + Finds the child of @self with @name. + +Returns `NULL` if there is no child with this name. + +See [property@LeafletPage:name]. + See [the migration guide](migrating-to-breakpoints.html#replace-adwleaflet) + + + the requested child of @self + + + + + a leaflet + + + + the name of the child to find + + + + + + Gets the child transition spring parameters for @self. + See [the migration guide](migrating-to-breakpoints.html#replace-adwleaflet) + + + the child transition parameters + + + + + a leaflet + + + + + + Gets whether a child transition is currently running for @self. + See [the migration guide](migrating-to-breakpoints.html#replace-adwleaflet) + + + whether a transition is currently running + + + + + a leaflet + + + + + + Gets the fold threshold policy for @self. + See [the migration guide](migrating-to-breakpoints.html#replace-adwleaflet) + + + the fold threshold policy + + + + + a leaflet + + + + + + Gets whether @self is folded. + +The leaflet will be folded if the size allocated to it is smaller than the +sum of the minimum or natural sizes of the children (see +[property@Leaflet:fold-threshold-policy]), it will be unfolded otherwise. + See [the migration guide](migrating-to-breakpoints.html#replace-adwleaflet) + + + whether @self is folded. + + + + + a leaflet + + + + + + Gets whether @self is homogeneous. + See [the migration guide](migrating-to-breakpoints.html#replace-adwleaflet) + + + whether @self is homogeneous + + + + + a leaflet + + + + + + Gets the mode transition animation duration for @self. + See [the migration guide](migrating-to-breakpoints.html#replace-adwleaflet) + + + the mode transition duration, in milliseconds. + + + + + a leaflet + + + + + + Returns the [class@LeafletPage] object for @child. + See [the migration guide](migrating-to-breakpoints.html#replace-adwleaflet) + + + the page object for @child + + + + + a leaflet + + + + a child of @self + + + + + + Returns a [iface@Gio.ListModel] that contains the pages of the leaflet. + +This can be used to keep an up-to-date view. The model also implements +[iface@Gtk.SelectionModel] and can be used to track and change the visible +page. + See [the migration guide](migrating-to-breakpoints.html#replace-adwleaflet) + + + a `GtkSelectionModel` for the leaflet's children + + + + + a leaflet + + + + + + Gets the type of animation used for transitions between modes and children. + See [the migration guide](migrating-to-breakpoints.html#replace-adwleaflet) + + + the current transition type of @self + + + + + a leaflet + + + + + + Gets the widget currently visible when the leaflet is folded. + See [the migration guide](migrating-to-breakpoints.html#replace-adwleaflet) + + + the visible child + + + + + a leaflet + + + + + + Gets the name of the currently visible child widget. + See [the migration guide](migrating-to-breakpoints.html#replace-adwleaflet) + + + the name of the visible child + + + + + a leaflet + + + + + + Inserts @child in the position after @sibling in the list of children. + +If @sibling is `NULL`, inserts @child at the first position. + See [the migration guide](migrating-to-breakpoints.html#replace-adwleaflet) + + + the [class@LeafletPage] for @child + + + + + a leaflet + + + + the widget to insert + + + + the sibling after which to insert @child + + + + + + Navigates to the previous or next child. + +The child must have the [property@LeafletPage:navigatable] property set to +`TRUE`, otherwise it will be skipped. + +This will be the same child as returned by +[method@Leaflet.get_adjacent_child] or navigated to via swipe gestures. + See [the migration guide](migrating-to-breakpoints.html#replace-adwleaflet) + + + whether the visible child was changed + + + + + a leaflet + + + + the direction + + + + + + Inserts @child at the first position in @self. + See [the migration guide](migrating-to-breakpoints.html#replace-adwleaflet) + + + the [class@LeafletPage] for @child + + + + + a leaflet + + + + the widget to prepend + + + + + + Removes a child widget from @self. + See [the migration guide](migrating-to-breakpoints.html#replace-adwleaflet) + + + + + + + a leaflet + + + + the child to remove + + + + + + Moves @child to the position after @sibling in the list of children. + +If @sibling is `NULL`, moves @child to the first position. + See [the migration guide](migrating-to-breakpoints.html#replace-adwleaflet) + + + + + + + a leaflet + + + + the widget to move, must be a child of @self + + + + the sibling to move @child after + + + + + + Sets whether gestures and shortcuts for navigating backward are enabled. + +The supported gestures are: + +- One-finger swipe on touchscreens +- Horizontal scrolling on touchpads (usually two-finger swipe) +- Back/forward mouse buttons + +The keyboard back/forward keys are also supported, as well as the +<kbd>Alt</kbd>+<kbd>←</kbd> shortcut for horizontal orientation, or +<kbd>Alt</kbd>+<kbd>↑</kbd> for vertical orientation. + +If the orientation is horizontal, for right-to-left locales, gestures and +shortcuts are reversed. + +Only children that have [property@LeafletPage:navigatable] set to `TRUE` can +be navigated to. + See [the migration guide](migrating-to-breakpoints.html#replace-adwleaflet) + + + + + + + a leaflet + + + + the new value + + + + + + Sets whether gestures and shortcuts for navigating forward are enabled. + +The supported gestures are: + +- One-finger swipe on touchscreens +- Horizontal scrolling on touchpads (usually two-finger swipe) +- Back/forward mouse buttons + +The keyboard back/forward keys are also supported, as well as the +<kbd>Alt</kbd>+<kbd>→</kbd> shortcut for horizontal orientation, or +<kbd>Alt</kbd>+<kbd>↓</kbd> for vertical orientation. + +If the orientation is horizontal, for right-to-left locales, gestures and +shortcuts are reversed. + +Only children that have [property@LeafletPage:navigatable] set to `TRUE` can +be navigated to. + See [the migration guide](migrating-to-breakpoints.html#replace-adwleaflet) + + + + + + + a leaflet + + + + the new value + + + + + + Sets whether @self can unfold. + See [the migration guide](migrating-to-breakpoints.html#replace-adwleaflet) + + + + + + + a leaflet + + + + whether @self can unfold + + + + + + Sets the child transition spring parameters for @self. + +The default value is equivalent to: + +```c +adw_spring_params_new (1, 0.5, 500) +``` + See [the migration guide](migrating-to-breakpoints.html#replace-adwleaflet) + + + + + + + a leaflet + + + + the new parameters + + + + + + Sets the fold threshold policy for @self. + +If set to [enum@Adw.FoldThresholdPolicy.minimum], it will only fold when the +children cannot fit anymore. With [enum@Adw.FoldThresholdPolicy.natural], it +will fold as soon as children don't get their natural size. + +This can be useful if you have a long ellipsizing label and want to let it +ellipsize instead of immediately folding. + See [the migration guide](migrating-to-breakpoints.html#replace-adwleaflet) + + + + + + + a leaflet + + + + the policy to use + + + + + + Sets @self to be homogeneous or not. + +If set to `FALSE`, different children can have different size along the +opposite orientation. + See [the migration guide](migrating-to-breakpoints.html#replace-adwleaflet) + + + + + + + a leaflet + + + + whether to make @self homogeneous + + + + + + Sets the mode transition animation duration for @self. + See [the migration guide](migrating-to-breakpoints.html#replace-adwleaflet) + + + + + + + a leaflet + + + + the new duration, in milliseconds + + + + + + Sets the type of animation used for transitions between modes and children. + +The transition type can be changed without problems at runtime, so it is +possible to change the animation based on the mode or child that is about to +become current. + See [the migration guide](migrating-to-breakpoints.html#replace-adwleaflet) + + + + + + + a leaflet + + + + the new transition type + + + + + + Sets the widget currently visible when the leaflet is folded. + +The transition is determined by [property@Leaflet:transition-type] and +[property@Leaflet:child-transition-params]. The transition can be cancelled +by the user, in which case visible child will change back to the previously +visible child. + See [the migration guide](migrating-to-breakpoints.html#replace-adwleaflet) + + + + + + + a leaflet + + + + the new child + + + + + + Makes the child with the name @name visible. + +See [property@Leaflet:visible-child]. + See [the migration guide](migrating-to-breakpoints.html#replace-adwleaflet) + + + + + + + a leaflet + + + + the name of a child + + + + + + Whether gestures and shortcuts for navigating backward are enabled. + +The supported gestures are: + +- One-finger swipe on touchscreens +- Horizontal scrolling on touchpads (usually two-finger swipe) +- Back/forward mouse buttons + +The keyboard back/forward keys are also supported, as well as the +<kbd>Alt</kbd>+<kbd>←</kbd> shortcut for horizontal orientation, or +<kbd>Alt</kbd>+<kbd>↑</kbd> for vertical orientation. + +If the orientation is horizontal, for right-to-left locales, gestures and +shortcuts are reversed. + +Only children that have [property@LeafletPage:navigatable] set to `TRUE` +can be navigated to. + See [the migration guide](migrating-to-breakpoints.html#replace-adwleaflet) + + + + Whether gestures and shortcuts for navigating forward are enabled. + +The supported gestures are: + +- One-finger swipe on touchscreens +- Horizontal scrolling on touchpads (usually two-finger swipe) +- Back/forward mouse buttons + +The keyboard back/forward keys are also supported, as well as the +<kbd>Alt</kbd>+<kbd>→</kbd> shortcut for horizontal orientation, or +<kbd>Alt</kbd>+<kbd>↓</kbd> for vertical orientation. + +If the orientation is horizontal, for right-to-left locales, gestures and +shortcuts are reversed. + +Only children that have [property@LeafletPage:navigatable] set to `TRUE` +can be navigated to. + See [the migration guide](migrating-to-breakpoints.html#replace-adwleaflet) + + + + Whether or not the leaflet can unfold. + See [the migration guide](migrating-to-breakpoints.html#replace-adwleaflet) + + + + The child transition spring parameters. + +The default value is equivalent to: + +```c +adw_spring_params_new (1, 0.5, 500) +``` + See [the migration guide](migrating-to-breakpoints.html#replace-adwleaflet) + + + + Whether a child transition is currently running. + See [the migration guide](migrating-to-breakpoints.html#replace-adwleaflet) + + + + Determines when the leaflet will fold. + +If set to [enum@Adw.FoldThresholdPolicy.minimum], it will only fold when +the children cannot fit anymore. With [enum@Adw.FoldThresholdPolicy.natural], +it will fold as soon as children don't get their natural size. + +This can be useful if you have a long ellipsizing label and want to let it +ellipsize instead of immediately folding. + See [the migration guide](migrating-to-breakpoints.html#replace-adwleaflet) + + + + Whether the leaflet is folded. + +The leaflet will be folded if the size allocated to it is smaller than the +sum of the minimum or natural sizes of the children (see +[property@Leaflet:fold-threshold-policy]), it will be unfolded otherwise. + See [the migration guide](migrating-to-breakpoints.html#replace-adwleaflet) + + + + Whether the leaflet allocates the same size for all children when folded. + +If set to `FALSE`, different children can have different size along the +opposite orientation. + See [the migration guide](migrating-to-breakpoints.html#replace-adwleaflet) + + + + The mode transition animation duration, in milliseconds. + See [the migration guide](migrating-to-breakpoints.html#replace-adwleaflet) + + + + A selection model with the leaflet's pages. + +This can be used to keep an up-to-date view. The model also implements +[iface@Gtk.SelectionModel] and can be used to track and change the visible +page. + See [the migration guide](migrating-to-breakpoints.html#replace-adwleaflet) + + + + The type of animation used for transitions between modes and children. + +The transition type can be changed without problems at runtime, so it is +possible to change the animation based on the mode or child that is about +to become current. + See [the migration guide](migrating-to-breakpoints.html#replace-adwleaflet) + + + + The widget currently visible when the leaflet is folded. + +The transition is determined by [property@Leaflet:transition-type] and +[property@Leaflet:child-transition-params]. The transition can be cancelled +by the user, in which case visible child will change back to the previously +visible child. + See [the migration guide](migrating-to-breakpoints.html#replace-adwleaflet) + + + + The name of the widget currently visible when the leaflet is folded. + +See [property@Leaflet:visible-child]. + See [the migration guide](migrating-to-breakpoints.html#replace-adwleaflet) + + + + + + + + + + + An auxiliary class used by [class@Leaflet]. + See [the migration guide](migrating-to-breakpoints.html#replace-adwleaflet) + + + Gets the leaflet child to which @self belongs. + See [the migration guide](migrating-to-breakpoints.html#replace-adwleaflet) + + + the child to which @self belongs + + + + + a leaflet page + + + + + + Gets the name of @self. + See [the migration guide](migrating-to-breakpoints.html#replace-adwleaflet) + + + the name of @self. + + + + + a leaflet page + + + + + + Gets whether the child can be navigated to when folded. + See [the migration guide](migrating-to-breakpoints.html#replace-adwleaflet) + + + whether @self can be navigated to when folded + + + + + a leaflet page + + + + + + Sets the name of the @self. + See [the migration guide](migrating-to-breakpoints.html#replace-adwleaflet) + + + + + + + a leaflet page + + + + the new value to set + + + + + + Sets whether @self can be navigated to when folded. + +If `FALSE`, the child will be ignored by [method@Leaflet.get_adjacent_child], +[method@Leaflet.navigate], and swipe gestures. + +This can be used used to prevent switching to widgets like separators. + See [the migration guide](migrating-to-breakpoints.html#replace-adwleaflet) + + + + + + + a leaflet page + + + + whether @self can be navigated to when folded + + + + + + The leaflet child to which the page belongs. + See [the migration guide](migrating-to-breakpoints.html#replace-adwleaflet) + + + + The name of the child page. + See [the migration guide](migrating-to-breakpoints.html#replace-adwleaflet) + + + + Whether the child can be navigated to when folded. + +If `FALSE`, the child will be ignored by +[method@Leaflet.get_adjacent_child], [method@Leaflet.navigate], and swipe +gestures. + +This can be used used to prevent switching to widgets like separators. + See [the migration guide](migrating-to-breakpoints.html#replace-adwleaflet) + + + + + + + + + + + Describes the possible transitions in a [class@Leaflet] widget. + +New values may be added to this enumeration over time. + See [the migration guide](migrating-to-breakpoints.html#replace-adwleaflet) + + Cover the old page or uncover the new page, sliding from or towards the end according to orientation, text direction and children order + + + Uncover the new page or cover the old page, sliding from or towards the start according to orientation, text direction and children order + + + Slide from left, right, up or down according to the orientation, text direction and the children order + + + + Describes length units. + +| Unit | Regular Text | Large Text | +| ---- | ------------ | ---------- | +| 1px | 1px | 1px | +| 1pt | 1.333333px | 1.666667px | +| 1sp | 1px | 1.25px | + +New values may be added to this enumeration over time. + + pixels + + + points, changes with text scale factor + + + scale independent pixels, changes with text scale factor + + + Converts @value from pixels to @unit. + + + the length in @unit + + + + + a length unit + + + + a value in pixels + + + + settings to use, or `NULL` for default settings + + + + + + Converts @value from @unit to pixels. + + + the length in pixels + + + + + a length unit + + + + a value in @unit + + + + settings to use, or `NULL` for default settings + + + + + + + Adwaita major version component (e.g. 1 if the version is 1.2.3). + + + + + Adwaita micro version component (e.g. 3 if the version is 1.2.3). + + + + + Adwaita minor version component (e.g. 2 if the version is 1.2.3). + + + + + A dialog presenting a message or a question. + +<picture> + <source srcset="message-dialog-dark.png" media="(prefers-color-scheme: dark)"> + <img src="message-dialog.png" alt="message-dialog"> +</picture> + +Message dialogs have a heading, a body, an optional child widget, and one or +multiple responses, each presented as a button. + +Each response has a unique string ID, and a button label. Additionally, each +response can be enabled or disabled, and can have a suggested or destructive +appearance. + +When one of the responses is activated, or the dialog is closed, the +[signal@MessageDialog::response] signal will be emitted. This signal is +detailed, and the detail, as well as the `response` parameter will be set to +the ID of the activated response, or to the value of the +[property@MessageDialog:close-response] property if the dialog had been +closed without activating any of the responses. + +Response buttons can be presented horizontally or vertically depending on +available space. + +When a response is activated, `AdwMessageDialog` is closed automatically. + +An example of using a message dialog: + +```c +GtkWidget *dialog; + +dialog = adw_message_dialog_new (parent, _("Replace File?"), NULL); + +adw_message_dialog_format_body (ADW_MESSAGE_DIALOG (dialog), + _("A file named “%s” already exists. Do you want to replace it?"), + filename); + +adw_message_dialog_add_responses (ADW_MESSAGE_DIALOG (dialog), + "cancel", _("_Cancel"), + "replace", _("_Replace"), + NULL); + +adw_message_dialog_set_response_appearance (ADW_MESSAGE_DIALOG (dialog), "replace", ADW_RESPONSE_DESTRUCTIVE); + +adw_message_dialog_set_default_response (ADW_MESSAGE_DIALOG (dialog), "cancel"); +adw_message_dialog_set_close_response (ADW_MESSAGE_DIALOG (dialog), "cancel"); + +g_signal_connect (dialog, "response", G_CALLBACK (response_cb), self); + +gtk_window_present (GTK_WINDOW (dialog)); +``` + +## Async API + +`AdwMessageDialog` can also be used via the [method@MessageDialog.choose] +method. This API follows the GIO async pattern, for example: + +```c +static void +dialog_cb (AdwMessageDialog *dialog, + GAsyncResult *result, + MyWindow *self) +{ + const char *response = adw_message_dialog_choose_finish (dialog, result); + + // ... +} + +static void +show_dialog (MyWindow *self) +{ + GtkWidget *dialog; + + dialog = adw_message_dialog_new (GTK_WINDOW (self), _("Replace File?"), NULL); + + adw_message_dialog_format_body (ADW_MESSAGE_DIALOG (dialog), + _("A file named “%s” already exists. Do you want to replace it?"), + filename); + + adw_message_dialog_add_responses (ADW_MESSAGE_DIALOG (dialog), + "cancel", _("_Cancel"), + "replace", _("_Replace"), + NULL); + + adw_message_dialog_set_response_appearance (ADW_MESSAGE_DIALOG (dialog), "replace", ADW_RESPONSE_DESTRUCTIVE); + + adw_message_dialog_set_default_response (ADW_MESSAGE_DIALOG (dialog), "cancel"); + adw_message_dialog_set_close_response (ADW_MESSAGE_DIALOG (dialog), "cancel"); + + adw_message_dialog_choose (ADW_MESSAGE_DIALOG (dialog), NULL, (GAsyncReadyCallback) dialog_cb, self); +} +``` + +## AdwMessageDialog as GtkBuildable + +`AdwMessageDialog` supports adding responses in UI definitions by via the +`<responses>` element that may contain multiple `<response>` elements, each +representing a response. + +Each of the `<response>` elements must have the `id` attribute specifying the +response ID. The contents of the element are used as the response label. + +Response labels can be translated with the usual `translatable`, `context` +and `comments` attributes. + +The `<response>` elements can also have `enabled` and/or `appearance` +attributes. See [method@MessageDialog.set_response_enabled] and +[method@MessageDialog.set_response_appearance] for details. + +Example of an `AdwMessageDialog` UI definition: + +```xml +<object class="AdwMessageDialog" id="dialog"> + <property name="heading" translatable="yes">Save Changes?</property> + <property name="body" translatable="yes">Open documents contain unsaved changes. Changes which are not saved will be permanently lost.</property> + <property name="default-response">save</property> + <property name="close-response">cancel</property> + <signal name="response" handler="response_cb"/> + <responses> + <response id="cancel" translatable="yes">_Cancel</response> + <response id="discard" translatable="yes" appearance="destructive">_Discard</response> + <response id="save" translatable="yes" appearance="suggested" enabled="false">_Save</response> + </responses> +</object> +``` + +## Accessibility + +`AdwMessageDialog` uses the [enum@Gtk.AccessibleRole.dialog] role. + Use [class@AlertDialog]. + + + + + + + + + Creates a new `AdwMessageDialog`. + +@heading and @body can be set to `NULL`. This can be useful if they need to +be formatted or use markup. In that case, set them to `NULL` and call +[method@MessageDialog.format_body] or similar methods afterwards: + +```c +GtkWidget *dialog; + +dialog = adw_message_dialog_new (parent, _("Replace File?"), NULL); +adw_message_dialog_format_body (ADW_MESSAGE_DIALOG (dialog), + _("A file named “%s” already exists. Do you want to replace it?"), + filename); +``` + Use [class@AlertDialog]. + + + the newly created `AdwMessageDialog` + + + + + transient parent + + + + the heading + + + + the body text + + + + + + + Emits the [signal@MessageDialog::response] signal with the given response ID. + +Used to indicate that the user has responded to the dialog in some way. + Use [class@AlertDialog]. + + + + + + + a message dialog + + + + response ID + + + + + + Adds a response with @id and @label to @self. + +Responses are represented as buttons in the dialog. + +Response ID must be unique. It will be used in +[signal@MessageDialog::response] to tell which response had been activated, +as well as to inspect and modify the response later. + +An embedded underline in @label indicates a mnemonic. + +[method@MessageDialog.set_response_label] can be used to change the response +label after it had been added. + +[method@MessageDialog.set_response_enabled] and +[method@MessageDialog.set_response_appearance] can be used to customize the +responses further. + Use [class@AlertDialog]. + + + + + + + a message dialog + + + + the response ID + + + + the response label + + + + + + Adds multiple responses to @self. + +This is the same as calling [method@MessageDialog.add_response] repeatedly. +The variable argument list should be `NULL`-terminated list of response IDs +and labels. + +Example: + +```c +adw_message_dialog_add_responses (dialog, + "cancel", _("_Cancel"), + "discard", _("_Discard"), + "save", _("_Save"), + NULL); +``` + Use [class@AlertDialog]. + + + + + + + a message dialog + + + + response id + + + + label for first response, then more id-label pairs + + + + + + This function shows @self to the user. + Use [class@AlertDialog]. + + + + + + + a message dialog + + + + a `GCancellable` to cancel the operation + + + + a callback to call when the operation is complete + + + + data to pass to @callback + + + + + + Finishes the [method@MessageDialog.choose] call and returns the response ID. + Use [class@AlertDialog]. + + + the ID of the response that was selected, or + [property@MessageDialog:close-response] if the call was cancelled. + + + + + a message dialog + + + + a `GAsyncResult` + + + + + + Sets the formatted body text of @self. + +See [property@MessageDialog:body]. + Use [class@AlertDialog]. + + + + + + + a message dialog + + + + the formatted string for the body text + + + + the parameters to insert into @format + + + + + + Sets the formatted body text of @self with Pango markup. + +The @format is assumed to contain Pango markup. + +Special XML characters in the `printf()` arguments passed to this function +will automatically be escaped as necessary, see +[func@GLib.markup_printf_escaped]. + +See [property@MessageDialog:body]. + Use [class@AlertDialog]. + + + + + + + a message dialog + + + + the formatted string for the body text with Pango markup + + + + the parameters to insert into @format + + + + + + Sets the formatted heading of @self. + +See [property@MessageDialog:heading]. + Use [class@AlertDialog]. + + + + + + + a message dialog + + + + the formatted string for the heading + + + + the parameters to insert into @format + + + + + + Sets the formatted heading of @self with Pango markup. + +The @format is assumed to contain Pango markup. + +Special XML characters in the `printf()` arguments passed to this function +will automatically be escaped as necessary, see +[func@GLib.markup_printf_escaped]. + +See [property@MessageDialog:heading]. + Use [class@AlertDialog]. + + + + + + + a message dialog + + + + the formatted string for the heading with Pango markup + + + + the parameters to insert into @format + + + + + + Gets the body text of @self. + Use [class@AlertDialog]. + + + the body of @self. + + + + + a message dialog + + + + + + Gets whether the body text of @self includes Pango markup. + Use [class@AlertDialog]. + + + whether @self uses markup for body text + + + + + a message dialog + + + + + + Gets the ID of the close response of @self. + Use [class@AlertDialog]. + + + the close response ID + + + + + a message dialog + + + + + + Gets the ID of the default response of @self. + Use [class@AlertDialog]. + + + the default response ID + + + + + a message dialog + + + + + + Gets the child widget of @self. + Use [class@AlertDialog]. + + + the child widget of @self. + + + + + a message dialog + + + + + + Gets the heading of @self. + Use [class@AlertDialog]. + + + the heading of @self. + + + + + a message dialog + + + + + + Gets whether the heading of @self includes Pango markup. + Use [class@AlertDialog]. + + + whether @self uses markup for heading + + + + + a message dialog + + + + + + Gets the appearance of @response. + +See [method@MessageDialog.set_response_appearance]. + Use [class@AlertDialog]. + + + the appearance of @response + + + + + a message dialog + + + + a response ID + + + + + + Gets whether @response is enabled. + +See [method@MessageDialog.set_response_enabled]. + Use [class@AlertDialog]. + + + whether @response is enabled + + + + + a message dialog + + + + a response ID + + + + + + Gets the label of @response. + +See [method@MessageDialog.set_response_label]. + Use [class@AlertDialog]. + + + the label of @response + + + + + a message dialog + + + + a response ID + + + + + + Gets whether @self has a response with the ID @response. + Use [class@AlertDialog]. + + + whether @self has a response with the ID @response. + + + + + a message dialog + + + + response ID + + + + + + Removes a response from @self. + Use [class@AlertDialog]. + + + + + + + a message dialog + + + + the response ID + + + + + + + Emits the [signal@MessageDialog::response] signal with the given response ID. + +Used to indicate that the user has responded to the dialog in some way. + Use [class@AlertDialog]. + + + + + + + a message dialog + + + + response ID + + + + + + Sets the body text of @self. + Use [class@AlertDialog]. + + + + + + + a message dialog + + + + the body of @self + + + + + + Sets whether the body text of @self includes Pango markup. + +See [func@Pango.parse_markup]. + Use [class@AlertDialog]. + + + + + + + a message dialog + + + + whether to use markup for body text + + + + + + Sets the ID of the close response of @self. + +It will be passed to [signal@MessageDialog::response] if the window is +closed by pressing <kbd>Escape</kbd> or with a system action. + +It doesn't have to correspond to any of the responses in the dialog. + +The default close response is `close`. + Use [class@AlertDialog]. + + + + + + + a message dialog + + + + the close response ID + + + + + + Sets the ID of the default response of @self. + +The button corresponding to this response will be set as the default widget +of @self. + +If not set, the default widget will not be set, and the last added response +will be focused by default. + +See [property@Gtk.Window:default-widget]. + Use [class@AlertDialog]. + + + + + + + a message dialog + + + + the default response ID + + + + + + Sets the child widget of @self. + +The child widget is displayed below the heading and body. + Use [class@AlertDialog]. + + + + + + + a message dialog + + + + the child widget + + + + + + Sets the heading of @self. + Use [class@AlertDialog]. + + + + + + + a message dialog + + + + the heading of @self + + + + + + Sets whether the heading of @self includes Pango markup. + +See [func@Pango.parse_markup]. + Use [class@AlertDialog]. + + + + + + + a message dialog + + + + whether to use markup for heading + + + + + + Sets the appearance for @response. + +<picture> + <source srcset="message-dialog-appearance-dark.png" media="(prefers-color-scheme: dark)"> + <img src="message-dialog-appearance.png" alt="message-dialog-appearance"> +</picture> + +Use [enum@Adw.ResponseAppearance.suggested] to mark important responses such +as the affirmative action, like the Save button in the example. + +Use [enum@Adw.ResponseAppearance.destructive] to draw attention to the +potentially damaging consequences of using @response. This appearance acts as +a warning to the user. The Discard button in the example is using this +appearance. + +The default appearance is [enum@Adw.ResponseAppearance.default]. + +Negative responses like Cancel or Close should use the default appearance. + Use [class@AlertDialog]. + + + + + + + a message dialog + + + + a response ID + + + + appearance for @response + + + + + + Sets whether @response is enabled. + +If @response is not enabled, the corresponding button will have +[property@Gtk.Widget:sensitive] set to `FALSE` and it can't be activated as +a default response. + +@response can still be used as [property@MessageDialog:close-response] while +it's not enabled. + +Responses are enabled by default. + Use [class@AlertDialog]. + + + + + + + a message dialog + + + + a response ID + + + + whether to enable @response + + + + + + Sets the label of @response to @label. + +Labels are displayed on the dialog buttons. An embedded underline in @label +indicates a mnemonic. + Use [class@AlertDialog]. + + + + + + + a message dialog + + + + a response ID + + + + the label of @response + + + + + + The body text of the dialog. + Use [class@AlertDialog]. + + + + Whether the body text includes Pango markup. + +See [func@Pango.parse_markup]. + Use [class@AlertDialog]. + + + + The ID of the close response. + +It will be passed to [signal@MessageDialog::response] if the window is +closed by pressing <kbd>Escape</kbd> or with a system action. + +It doesn't have to correspond to any of the responses in the dialog. + +The default close response is `close`. + Use [class@AlertDialog]. + + + + The response ID of the default response. + +The button corresponding to this response will be set as the default widget +of the dialog. + +If not set, the default widget will not be set, and the last added response +will be focused by default. + +See [property@Gtk.Window:default-widget]. + Use [class@AlertDialog]. + + + + The child widget. + +Displayed below the heading and body. + Use [class@AlertDialog]. + + + + The heading of the dialog. + Use [class@AlertDialog]. + + + + Whether the heading includes Pango markup. + +See [func@Pango.parse_markup]. + Use [class@AlertDialog]. + + + + + + + This signal is emitted when the dialog is closed. + +@response will be set to the response ID of the button that had been +activated. + +if the dialog was closed by pressing <kbd>Escape</kbd> or with a system +action, @response will be set to the value of +[property@MessageDialog:close-response]. + Use [class@AlertDialog]. + + + + + + the response ID + + + + + + + + + + + + + + + + + + + a message dialog + + + + response ID + + + + + + + + + + + + + A widget for switching between different layouts. + +`AdwMultiLayoutView` contains layouts and children. Each child has +an ID, each layout has slots inside it, each slot also has an ID. When +switching layouts, children are inserted into slots with matching IDs. The +[property@Gtk.Widget:visible] property of each slot is updated to match +that of the inserted child. + +This can be useful for rearranging children when it's difficult to do so +otherwise, for example to move a child from a sidebar to a bottom bar. + +The currently used layout can be switched using the +[property@MultiLayoutView:layout] or [property@MultiLayoutView:layout-name] +properties. For example, it can be done via a [class@Adw.Breakpoint] setter +to change layouts depending on the window size. + +## AdwMultiLayoutView as GtkBuildable + +The `AdwMultiLayoutView` implementation of the [iface@Gtk.Buildable] +interface supports adding layouts via `<child>` element with the `type` +attribute omitted. + +It also supports setting children via `<child type="ID">`. + +Example of an `AdwMultiLayoutView` UI definition that can display a secondary +child as either a sidebar or a bottom sheet. + +```xml +<object class="AdwMultiLayoutView"> + <child> + <object class="AdwLayout"> + <property name="name">sidebar</property> + <property name="content"> + <object class="AdwOverlaySplitView"> + <property name="sidebar"> + <object class="AdwLayoutSlot"> + <property name="id">secondary</property> + </object> + </property> + <property name="content"> + <object class="AdwLayoutSlot"> + <property name="id">primary</property> + </object> + </property> + </object> + </property> + </object> + </child> + <child> + <object class="AdwLayout"> + <property name="name">bottom-sheet</property> + <property name="content"> + <object class="AdwBottomSheet"> + <property name="open">True</property> + <property name="content"> + <object class="AdwLayoutSlot"> + <property name="id">primary</property> + </object> + </property> + <property name="sheet"> + <object class="AdwLayoutSlot"> + <property name="id">secondary</property> + </object> + </property> + </object> + </property> + </object> + </child> + <child type="primary"> + <!-- put your primary child here --> + </child> + <child type="secondary"> + <!-- put your secondary child here --> + </child> +</object> +``` + +## CSS nodes + +`AdwMultiLayoutView` has a single CSS node with name `multi-layout-view`. + + + + + + Creates a new `AdwMultiLayoutView`. + + + the newly created `AdwMultiLayoutView` + + + + + Adds @layout to @self. + + + + + + + a multi-layout view + + + + the layout to add + + + + + + Gets the child for @id to @self. + + + the child for @id + + + + + a multi-layout view + + + + the id of the child + + + + + + Gets the currently used layout of @self. + + + the current layout + + + + + a multi-layout view + + + + + + Gets layout with the name @name from @self, or `NULL` if it doesn't exist. + +See [property@Layout:name]. + + + the layout with @name + + + + + a multi-layout view + + + + the name of the layout + + + + + + Returns the name of the currently used layout of @self. + + + the name of the current layout + + + + + a multi-layout view + + + + + + Removes @layout from @self. + + + + + + + a multi-layout view + + + + the layout to add + + + + + + Sets @child as the child for @id in @self. + +When changing layouts, it will be inserted into the slot with @id. + + + + + + + a multi-layout view + + + + the id of the child + + + + the child to set + + + + + + Makes @layout the current layout of @self. + + + + + + + a multi-layout view + + + + a layout in @self + + + + + + Makes the layout with @name the current layout of @self. + +See [property@Layout:name]. + + + + + + + a multi-layout view + + + + the name of the layout + + + + + + The currently used layout. + + + + The name of the currently used layout. + +See [property@Layout:name]. + + + + + + + + + + + Describes the direction of a swipe navigation gesture. + + Corresponds to start or top, depending on orientation and text direction + + + Corresponds to end or bottom, depending on orientation and text direction + + + + A page within [class@NavigationView] or [class@NavigationSplitView]. + +Each page has a child widget, a title and optionally a tag. + +The [signal@NavigationPage::showing], [signal@NavigationPage::shown], +[signal@NavigationPage::hiding] and [signal@NavigationPage::hidden] signals +can be used to track the page's visibility within its `AdwNavigationView`. + +## Header Bar Integration + +When placed inside `AdwNavigationPage`, [class@HeaderBar] will display the +page title instead of window title. + +When used together with [class@NavigationView], it will also display a back +button that can be used to go back to the previous page. Set +[property@HeaderBar:show-back-button] to `FALSE` to disable that behavior if +it's unwanted. + +## CSS Nodes + +`AdwNavigationPage` has a single CSS node with name +`navigation-view-page`. + +## Accessibility + +`AdwNavigationPage` uses the [enum@Gtk.AccessibleRole.group] role. + + + + + + Creates a new `AdwNavigationPage`. + + + the new created `AdwNavigationPage` + + + + + the child widget + + + + the page title + + + + + + Creates a new `AdwNavigationPage` with provided tag. + + + the new created `AdwNavigationPage` + + + + + the child widget + + + + the page title + + + + the page tag + + + + + + Called when the navigation view transition has been completed and the page +is fully hidden. + + + + + + + a navigation page + + + + + + Called when the page starts hiding at the beginning of the navigation view +transition. + + + + + + + a navigation page + + + + + + Called when the page shows at the beginning of the navigation view +transition. + + + + + + + a navigation page + + + + + + Called when the navigation view transition has been completed and the page +is fully shown. + + + + + + + a navigation page + + + + + + Gets whether @self can be popped from navigation stack. + + + whether the page can be popped from navigation stack + + + + + a navigation page + + + + + + Gets the child widget of @self. + + + the child widget of @self + + + + + a navigation page + + + + + + Gets the tag of @self. + + + the page tag + + + + + a navigation page + + + + + + Gets the title of @self. + + + the title of @self + + + + + a navigation page + + + + + + Sets whether @self can be popped from navigation stack. + +Set it to `FALSE` to disable shortcuts and gestures, as well as remove the +back button from [class@HeaderBar]. + +Manually calling [method@NavigationView.pop] or using the `navigation.pop` +action will still work. + +See [property@HeaderBar:show-back-button] for removing only the back button, +but not shortcuts. + + + + + + + a navigation page + + + + whether the page can be popped from navigation stack + + + + + + Sets the child widget of @self. + + + + + + + a navigation page + + + + the child widget + + + + + + Sets the tag for @self. + +The tag can be used to retrieve the page with +[method@NavigationView.find_page], as well as with +[method@NavigationView.push_by_tag], [method@NavigationView.pop_to_tag] or +[method@NavigationView.replace_with_tags]. + +Tags must be unique within each [class@NavigationView]. + +The tag also must be set to use the `navigation.push` action. + + + + + + + a navigation page + + + + the page tag + + + + + + Sets the title of @self. + +It's displayed in [class@HeaderBar] instead of the window title, and used as +the tooltip on the next page's back button, as well as by screen reader. + + + + + + + a navigation page + + + + the title + + + + + + Whether the page can be popped from navigation stack. + +Set it to `FALSE` to disable shortcuts and gestures, as well as remove the +back button from [class@HeaderBar]. + +Manually calling [method@NavigationView.pop] or using the `navigation.pop` +action will still work. + +See [property@HeaderBar:show-back-button] for removing only the back +button, but not shortcuts. + + + + The child widget. + + + + The page tag. + +The tag can be used to retrieve the page with +[method@NavigationView.find_page], as well as with +[method@NavigationView.push_by_tag], [method@NavigationView.pop_to_tag] or +[method@NavigationView.replace_with_tags]. + +Tags must be unique within each [class@NavigationView]. + +The tag also must be set to use the `navigation.push` action. + + + + The page title. + +It's displayed in [class@HeaderBar] instead of the window title, and used +as the tooltip on the next page's back button, as well as by screen reader. + + + + + + + Emitted when the navigation view transition has been completed and the page +is fully hidden. + +It will always be preceded by [signal@NavigationPage::hiding] or +[signal@NavigationPage::showing]. + + + + + + Emitted when the page starts hiding at the beginning of the navigation view +transition. + +It will always be followed by [signal@NavigationPage::hidden] or +[signal@NavigationPage::shown]. + + + + + + Emitted when the page shows at the beginning of the navigation view +transition. + +It will always be followed by [signal@NavigationPage::shown] or +[signal@NavigationPage::hidden]. + + + + + + Emitted when the navigation view transition has been completed and the page +is fully shown. + +It will always be preceded by [signal@NavigationPage::showing] or +[signal@NavigationPage::hiding]. + + + + + + + + + + + + + + + + + + + a navigation page + + + + + + + + + + + + + + a navigation page + + + + + + + + + + + + + + a navigation page + + + + + + + + + + + + + + a navigation page + + + + + + + + + + + + + A widget presenting sidebar and content side by side or as a navigation view. + +<picture> + <source srcset="navigation-split-view-dark.png" media="(prefers-color-scheme: dark)"> + <img src="navigation-split-view.png" alt="navigation-split-view"> +</picture> +<picture> + <source srcset="navigation-split-view-collapsed-dark.png" media="(prefers-color-scheme: dark)"> + <img src="navigation-split-view-collapsed.png" alt="navigation-split-view-collapsed"> +</picture> + +`AdwNavigationSplitView` has two [class@NavigationPage] children: sidebar and +content, and displays them side by side. + +When [property@NavigationSplitView:collapsed] is set to `TRUE`, it instead +puts both children inside an [class@NavigationView]. The +[property@NavigationSplitView:show-content] controls which child is visible +while collapsed. + +See also [class@OverlaySplitView]. + +`AdwNavigationSplitView` is typically used together with an [class@Breakpoint] +setting the `collapsed` property to `TRUE` on small widths, as follows: + +```xml +<object class="AdwWindow"> + <property name="default-width">800</property> + <property name="default-height">800</property> + <child> + <object class="AdwBreakpoint"> + <condition>max-width: 400sp</condition> + <setter object="split_view" property="collapsed">True</setter> + </object> + </child> + <property name="content"> + <object class="AdwNavigationSplitView" id="split_view"> + <property name="sidebar"> + <object class="AdwNavigationPage"> + <property name="title" translatable="yes">Sidebar</property> + <property name="child"> + <object class="AdwToolbarView"> + <child type="top"> + <object class="AdwHeaderBar"/> + </child> + <property name="content"> + <!-- put your sidebar here, e.g. + AdwSidebar or AdwViewSwitcherSidebar --> + </property> + <object> + </property> + </object> + </property> + <property name="content"> + <object class="AdwNavigationPage"> + <property name="title" translatable="yes">Content</property> + <property name="child"> + <object class="AdwToolbarView"> + <child type="top"> + <object class="AdwHeaderBar"/> + </child> + <property name="content"> + <!-- put your content here --> + </property> + <object> + </property> + </object> + </property> + </object> + </property> +</object> +``` + +## Sizing + +When not collapsed, `AdwNavigationSplitView` changes the sidebar width +depending on its own width. + +If possible, it tries to allocate a fraction of the total width, controlled +with the [property@NavigationSplitView:sidebar-width-fraction] property. + +The sidebar also has minimum and maximum sizes, controlled with the +[property@NavigationSplitView:min-sidebar-width] and +[property@NavigationSplitView:max-sidebar-width] properties. + +The minimum and maximum sizes are using the length unit specified with the +[property@NavigationSplitView:sidebar-width-unit]. + +By default, sidebar is using 25% of the total width, with 180sp as the +minimum size and 280sp as the maximum size. + +## Header Bar Integration + +When used inside `AdwNavigationSplitView`, [class@HeaderBar] will +automatically hide the window buttons in the middle. + +When collapsed, it also displays a back button for the content widget, as +well as the page titles. See [class@NavigationView] documentation for details. + +## Actions + +`AdwNavigationSplitView` defines the same actions as `AdwNavigationView`, but +they can be used even when the split view is not collapsed: + +- `navigation.push` takes a string parameter specifying the tag of the page +to push. If it matches the tag of the content widget, it sets +[property@NavigationSplitView:show-content] to `TRUE`. + +- `navigation.pop` doesn't take any parameters and sets +[property@NavigationSplitView:show-content] to `FALSE`. + +## `AdwNavigationSplitView` as `GtkBuildable` + +The `AdwNavigationSplitView` implementation of the [iface@Gtk.Buildable] +interface supports setting the sidebar widget by specifying “sidebar” as the +“type” attribute of a `<child>` element, Specifying “content” child type or +omitting it results in setting the content widget. + +## CSS nodes + +`AdwNavigationSplitView` has a single CSS node with the name +`navigation-split-view`. + +When collapsed, it contains a child node with the name `navigation-view` +containing both children. + +``` +navigation-split-view +╰── navigation-view + ├── [sidebar child] + ╰── [content child] +``` + +When not collapsed, it contains two nodes with the name `widget`, one with +the `.sidebar-pane` style class, the other one with `.content-view` style +class, containing the sidebar and content children respectively. + +``` +navigation-split-view +├── widget.sidebar-pane +│ ╰── [sidebar child] +╰── widget.content-pane + ╰── [content child] +``` + +## Accessibility + +`AdwNavigationSplitView` uses the [enum@Gtk.AccessibleRole.group] role. + + + + + + Creates a new `AdwNavigationSplitView`. + + + the newly created `AdwNavigationSplitView` + + + + + Gets whether @self is collapsed. + + + whether @self is collapsed + + + + + a navigation split view + + + + + + Sets the content widget for @self. + + + the content widget + + + + + a navigation split view + + + + + + Gets the maximum sidebar width for @self. + + + the maximum width + + + + + a navigation split view + + + + + + Gets the minimum sidebar width for @self. + + + the minimum width + + + + + a navigation split view + + + + + + Gets which page is visible when @self is collapsed. + + + whether to show content when collapsed + + + + + a navigation split view + + + + + + Gets the sidebar widget for @self. + + + the sidebar widget + + + + + a navigation split view + + + + + + Gets the sidebar position for @self. + + + the sidebar position for @self + + + + + a navigation split view + + + + + + Gets the preferred sidebar width fraction for @self. + + + the preferred width fraction + + + + + a navigation split view + + + + + + Gets the length unit for minimum and maximum sidebar widths. + + + the length unit + + + + + a navigation split view + + + + + + Sets whether @self is collapsed. + +When collapsed, the children are put inside an [class@NavigationView], +otherwise they are displayed side by side. + +The [property@NavigationSplitView:show-content] controls which child is +visible while collapsed. + + + + + + + a navigation split view + + + + whether @self is collapsed + + + + + + Sets the content widget for @self. + + + + + + + a navigation split view + + + + the content widget + + + + + + Sets the maximum sidebar width for @self. + +Maximum width is affected by +[property@NavigationSplitView:sidebar-width-unit]. + +The sidebar widget can still be allocated with larger width if its own +minimum width exceeds it. + + + + + + + a navigation split view + + + + the maximum width + + + + + + Sets the minimum sidebar width for @self. + +Minimum width is affected by +[property@NavigationSplitView:sidebar-width-unit]. + +The sidebar widget can still be allocated with larger width if its own +minimum width exceeds it. + + + + + + + a navigation split view + + + + the minimum width + + + + + + Sets which page is visible when @self is collapsed. + +If set to `TRUE`, the content widget will be the visible page when +[property@NavigationSplitView:collapsed] is `TRUE`; otherwise the sidebar +widget will be visible. + +If the split view is already collapsed, the visible page changes immediately. + + + + + + + a navigation split view + + + + whether to show content when collapsed + + + + + + Sets the sidebar widget for @self. + + + + + + + a navigation split view + + + + the sidebar widget + + + + + + Sets the sidebar position for @self. + +If set to [enum@Gtk.PackType.start], the sidebar is displayed before the +content, and the sidebar will be the root page when collapsed. + +If set to [enum@Gtk.PackType.end], the sidebar is displayed after the +content, and the content will be the root page. + + + + + + + a navigation split view + + + + the new position + + + + + + Sets the preferred sidebar width as a fraction of the total width of @self. + +The preferred width is additionally limited by +[property@NavigationSplitView:min-sidebar-width] and +[property@NavigationSplitView:max-sidebar-width]. + +The sidebar widget can be allocated with larger width if its own minimum +width exceeds the preferred width. + + + + + + + a navigation split view + + + + the preferred width fraction + + + + + + Sets the length unit for minimum and maximum sidebar widths. + +See [property@NavigationSplitView:min-sidebar-width] and +[property@NavigationSplitView:max-sidebar-width]. + + + + + + + a navigation split view + + + + the length unit + + + + + + Whether the split view is collapsed. + +When collapsed, the children are put inside an [class@NavigationView], +otherwise they are displayed side by side. + +The [property@NavigationSplitView:show-content] controls which child is +visible while collapsed. + + + + The content widget. + + + + The maximum sidebar width. + +Maximum width is affected by +[property@NavigationSplitView:sidebar-width-unit]. + +The sidebar widget can still be allocated with larger width if its own +minimum width exceeds it. + + + + The minimum sidebar width. + +Minimum width is affected by +[property@NavigationSplitView:sidebar-width-unit]. + +The sidebar widget can still be allocated with larger width if its own +minimum width exceeds it. + + + + Determines the visible page when collapsed. + +If set to `TRUE`, the content widget will be the visible page when +[property@NavigationSplitView:collapsed] is `TRUE`; otherwise the sidebar +widget will be visible. + +If the split view is already collapsed, the visible page changes +immediately. + + + + The sidebar widget. + + + + The sidebar position. + +If set to [enum@Gtk.PackType.start], the sidebar is displayed before the +content, and the sidebar will be the root page when collapsed. + +If set to [enum@Gtk.PackType.end], the sidebar is displayed after the +content, and the content will be the root page. + + + + The preferred sidebar width as a fraction of the total width. + +The preferred width is additionally limited by +[property@NavigationSplitView:min-sidebar-width] and +[property@NavigationSplitView:max-sidebar-width]. + +The sidebar widget can be allocated with larger width if its own minimum +width exceeds the preferred width. + + + + The length unit for minimum and maximum sidebar widths. + +See [property@NavigationSplitView:min-sidebar-width] and +[property@NavigationSplitView:max-sidebar-width]. + + + + + + + + + + + A page-based navigation container. + +<picture> + <source srcset="navigation-view-dark.png" media="(prefers-color-scheme: dark)"> + <img src="navigation-view.png" alt="navigation-view"> +</picture> + +`AdwNavigationView` presents one child at a time, similar to +[class@Gtk.Stack]. + +`AdwNavigationView` can only contain [class@NavigationPage] children. + +It maintains a navigation stack that can be controlled with +[method@NavigationView.push] and [method@NavigationView.pop]. The whole +navigation stack can also be replaced using [method@NavigationView.replace]. + +`AdwNavigationView` allows to manage pages statically or dynamically. + +Static pages can be added using the [method@NavigationView.add] method. The +`AdwNavigationView` will keep a reference to these pages, but they aren't +accessible to the user until [method@NavigationView.push] is called (except +for the first page, which is pushed automatically). Use the +[method@NavigationView.remove] method to remove them. This is useful for +applications that have a small number of unique pages and just need +navigation between them. + +Dynamic pages are automatically destroyed once they are popped off the +navigation stack. To add a page like this, push it using the +[method@NavigationView.push] method without calling +[method@NavigationView.add] first. + +## Tags + +Static pages, as well as any pages in the navigation stack, can be accessed +by their [property@NavigationPage:tag]. For example, +[method@NavigationView.push_by_tag] can be used to push a static page that's +not in the navigation stack without having to keep a reference to it manually. + +## Header Bar Integration + +When used inside `AdwNavigationView`, [class@HeaderBar] will automatically +display a back button that can be used to go back to the previous page when +possible. The button also has a context menu, allowing to pop multiple pages +at once, potentially across multiple navigation views. + +Set [property@HeaderBar:show-back-button] to `FALSE` to disable this behavior +in rare scenarios where it's unwanted. + +`AdwHeaderBar` will also display the title of the `AdwNavigationPage` it's +placed into, so most applications shouldn't need to customize it at all. + +## Shortcuts and Gestures + +`AdwNavigationView` supports the following shortcuts for going to the +previous page: + +- <kbd>Escape</kbd> (unless [property@NavigationView:pop-on-escape] is set to + `FALSE`) +- <kbd>Alt</kbd>+<kbd>←</kbd> +- Back mouse button + +Additionally, it supports interactive gestures: + +- One-finger swipe towards the right on touchscreens +- Scrolling towards the right on touchpads (usually two-finger swipe) + +These gestures have transitions enabled regardless of the +[property@NavigationView:animate-transitions] value. + +Applications can also enable shortcuts for pushing another page onto the +navigation stack via connecting to the [signal@NavigationView::get-next-page] +signal, in that case the following shortcuts are supported: + +- <kbd>Alt</kbd>+<kbd>→</kbd> +- Forward mouse button +- Swipe/scrolling towards the left + +For right-to-left locales, the gestures and shortcuts are reversed. + +[property@NavigationPage:can-pop] can be used to disable them, along with the +header bar back buttons. + +## Actions + +`AdwNavigationView` defines actions for controlling the navigation stack. +actions for controlling the navigation stack: + +- `navigation.push` takes a string parameter specifying the tag of the page to +push, and is equivalent to calling [method@NavigationView.push_by_tag]. + +- `navigation.pop` doesn't take any parameters and pops the current page from +the navigation stack, equivalent to calling [method@NavigationView.pop]. + +## `AdwNavigationView` as `GtkBuildable` + +`AdwNavigationView` allows to add pages as children, equivalent to using the +[method@NavigationView.add] method. + +Example of an `AdwNavigationView` UI definition: + +```xml +<object class="AdwNavigationView"> + <child> + <object class="AdwNavigationPage"> + <property name="title" translatable="yes">Page 1</property> + <property name="child"> + <object class="AdwToolbarView"> + <child type="top"> + <object class="AdwHeaderBar"/> + </child> + <property name="content"> + <object class="GtkButton"> + <property name="label" translatable="yes">Open Page 2</property> + <property name="halign">center</property> + <property name="valign">center</property> + <property name="action-name">navigation.push</property> + <property name="action-target">'page-2'</property> + <style> + <class name="pill"/> + </style> + </object> + </property> + </object> + </property> + </object> + </child> + <child> + <object class="AdwNavigationPage"> + <property name="title" translatable="yes">Page 2</property> + <property name="tag">page-2</property> + <property name="child"> + <object class="AdwToolbarView"> + <child type="top"> + <object class="AdwHeaderBar"/> + </child> + <property name="content"> + <!-- put your content here --> + </property> + </object> + </property> + </object> + </child> +</object> +``` + +<picture> + <source srcset="navigation-view-example-dark.png" media="(prefers-color-scheme: dark)"> + <img src="navigation-view-example.png" alt="navigation-view-example"> +</picture> + +## CSS nodes + +`AdwNavigationView` has a single CSS node with the name `navigation-view`. + +## Accessibility + +`AdwNavigationView` uses the [enum@Gtk.AccessibleRole.group] role. + + + + + + + Creates a new `AdwNavigationView`. + + + the new created `AdwNavigationView` + + + + + Permanently adds @page to @self. + +Any page that has been added will stay in @self even after being popped from +the navigation stack. + +Adding a page while no page is visible will automatically push it to the +navigation stack. + +See [method@NavigationView.remove]. + + + + + + + a navigation view + + + + the page to add + + + + + + Finds a page in @self by its tag. + +See [property@NavigationPage:tag]. + + + the page with the given tag + + + + + a navigation view + + + + a page tag + + + + + + Gets whether @self animates page transitions. + + + whether to animate page transitions + + + + + a navigation view + + + + + + Gets whether @self is horizontally homogeneous. + + + whether @self is horizontally homogeneous + + + + + a navigation view + + + + + + Returns a [iface@Gio.ListModel] that contains the pages in navigation stack. + +The pages are sorted from root page to visible page. + +This can be used to keep an up-to-date view. + + + a list model for the navigation stack + + + + + a navigation view + + + + + + Gets whether pressing Escape pops the current page on @self. + + + whether to pop the current page + + + + + a navigation view + + + + + + Gets the previous page for @page. + +If @page is in the navigation stack, returns the page popping @page will +reveal. + +If @page is the root page or is not in the navigation stack, returns `NULL`. + + + the previous page + + + + + a navigation view + + + + a page in @self + + + + + + Gets whether @self is vertically homogeneous. + + + whether @self is vertically homogeneous + + + + + a navigation view + + + + + + Gets the currently visible page in @self. + + + the currently visible page + + + + + a navigation view + + + + + + Gets the tag of the currently visible page in @self. + + + the tag of the currently visible page + + + + + a navigation view + + + + + + Pops the visible page from the navigation stack. + +Does nothing if the navigation stack contains less than two pages. + +If [method@NavigationView.add] hasn't been called, the page is automatically +removed. + +[signal@NavigationView::popped] will be emitted for the current visible page. + +See [method@NavigationView.pop_to_page] and +[method@NavigationView.pop_to_tag]. + + + `TRUE` if a page has been popped + + + + + a navigation view + + + + + + Pops pages from the navigation stack until @page is visible. + +@page must be in the navigation stack. + +If [method@NavigationView.add] hasn't been called for any of the popped pages, +they are automatically removed. + +[signal@NavigationView::popped] will be be emitted for each of the popped +pages. + +See [method@NavigationView.pop] and [method@NavigationView.pop_to_tag]. + + + `TRUE` if any pages have been popped + + + + + a navigation view + + + + the page to pop to + + + + + + Pops pages from the navigation stack until page with the tag @tag is visible. + +The page must be in the navigation stack. + +If [method@NavigationView.add] hasn't been called for any of the popped pages, +they are automatically removed. + +[signal@NavigationView::popped] will be emitted for each of the popped pages. + +See [method@NavigationView.pop_to_page] and [property@NavigationPage:tag]. + + + `TRUE` if any pages have been popped + + + + + a navigation view + + + + a page tag + + + + + + Pushes @page onto the navigation stack. + +If [method@NavigationView.add] hasn't been called, the page is automatically +removed once it's popped. + +[signal@NavigationView::pushed] will be emitted for @page. + +See [method@NavigationView.push_by_tag]. + + + + + + + a navigation view + + + + the page to push + + + + + + Pushes the page with the tag @tag onto the navigation stack. + +If [method@NavigationView.add] hasn't been called, the page is automatically +removed once it's popped. + +[signal@NavigationView::pushed] will be emitted for the page. + +See [method@NavigationView.push] and [property@NavigationPage:tag]. + + + + + + + a navigation view + + + + the page tag + + + + + + Removes @page from @self. + +If @page is currently in the navigation stack, it will be removed once it's +popped. Otherwise, it's removed immediately. + +See [method@NavigationView.add]. + + + + + + + a navigation view + + + + the page to remove + + + + + + Replaces the current navigation stack with @pages. + +The last page becomes the visible page. + +Replacing the navigation stack has no animation. + +If [method@NavigationView.add] hasn't been called for any pages that are no +longer in the navigation stack, they are automatically removed. + +@n_pages can be 0, in that case no page will be visible after calling this +method. This can be useful for removing all pages from @self. + +The [signal@NavigationView::replaced] signal will be emitted. + +See [method@NavigationView.replace_with_tags]. + + + + + + + a navigation view + + + + the new navigation stack + + + + + + the number of pages in @pages + + + + + + Replaces the current navigation stack with pages with the tags @tags. + +The last page becomes the visible page. + +Replacing the navigation stack has no animation. + +If [method@NavigationView.add] hasn't been called for any pages that are no +longer in the navigation stack, they are automatically removed. + +@n_tags can be 0, in that case no page will be visible after calling this +method. This can be useful for removing all pages from @self. + +The [signal@NavigationView::replaced] signal will be emitted. + +See [method@NavigationView.replace] and [property@NavigationPage:tag]. + + + + + + + a navigation view + + + + tags of the pages in the + navigation stack + + + + + + the number of tags + + + + + + Sets whether @self should animate page transitions. + +Gesture-based transitions are always animated. + + + + + + + a navigation view + + + + whether to animate page transitions + + + + + + Sets @self to be horizontally homogeneous or not. + +If the view is horizontally homogeneous, it allocates the same width for +all pages. + +If it's not, the view may change width when a different page becomes visible. + + + + + + + a navigation view + + + + whether to make @self horizontally homogeneous + + + + + + Sets whether pressing Escape pops the current page on @self. + +Applications using `AdwNavigationView` to implement a browser may want to +disable it. + + + + + + + a navigation view + + + + whether to pop the current page when pressing Escape + + + + + + Sets @self to be vertically homogeneous or not. + +If the view is vertically homogeneous, it allocates the same height for +all pages. + +If it's not, the view may change height when a different page becomes +visible. + + + + + + + a navigation view + + + + whether to make @self vertically homogeneous + + + + + + Whether to animate page transitions. + +Gesture-based transitions are always animated. + + + + Whether the view is horizontally homogeneous. + +If the view is horizontally homogeneous, it allocates the same width for +all pages. + +If it's not, the page may change width when a different page becomes +visible. + + + + A list model that contains the pages in navigation stack. + +The pages are sorted from root page to visible page. + +This can be used to keep an up-to-date view. + + + + Whether pressing Escape pops the current page. + +Applications using `AdwNavigationView` to implement a browser may want to +disable it. + + + + Whether the view is vertically homogeneous. + +If the view is vertically homogeneous, it allocates the same height for +all pages. + +If it's not, the view may change height when a different page becomes +visible. + + + + The currently visible page. + + + + The tag of the currently visible page. + + + + Emitted when a push shortcut or a gesture is triggered. + +To support the push shortcuts and gestures, the application is expected to +return the page to push in the handler. + +This signal can be emitted multiple times for the gestures, for example +when the gesture is cancelled by the user. As such, the application must +not make any irreversible changes in the handler, such as removing the page +from a forward stack. + +Instead, it should be done in the [signal@NavigationView::pushed] handler. + + the page to push + + + + + Emitted after @page has been popped from the navigation stack. + +See [method@NavigationView.pop]. + +When using [method@NavigationView.pop_to_page] or +[method@NavigationView.pop_to_tag], this signal is emitted for each of the +popped pages. + + + + + + the popped page + + + + + + Emitted after a page has been pushed to the navigation stack. + +See [method@NavigationView.push]. + + + + + + Emitted after the navigation stack has been replaced. + +See [method@NavigationView.replace]. + + + + + + + + + + + + + An [class@AnimationTarget] that doesn't do anything. + + + Creates a new `AdwAnimationTarget` that doesn't do anything. + + + the newly created target + + + + + + + + + A widget presenting sidebar and content side by side or as an overlay. + +<picture> + <source srcset="overlay-split-view-dark.png" media="(prefers-color-scheme: dark)"> + <img src="overlay-split-view.png" alt="overlay-split-view"> +</picture> +<picture> + <source srcset="overlay-split-view-collapsed-dark.png" media="(prefers-color-scheme: dark)"> + <img src="overlay-split-view-collapsed.png" alt="overlay-split-view-collapsed"> +</picture> + +`AdwOverlaySplitView` has two children: sidebar and content, and displays +them side by side. + +When [property@OverlaySplitView:collapsed] is set to `TRUE`, the sidebar is +instead shown as an overlay above the content widget. + +The sidebar can be hidden or shown using the +[property@OverlaySplitView:show-sidebar] property. + +Sidebar can be displayed before or after the content, this can be controlled +with the [property@OverlaySplitView:sidebar-position] property. + +Collapsing the split view automatically hides the sidebar widget, and +uncollapsing it shows the sidebar. If this behavior is not desired, the +[property@OverlaySplitView:pin-sidebar] property can be used to override it. + +`AdwOverlaySplitView` supports an edge swipe gesture for showing the sidebar, +and a swipe from the sidebar for hiding it. Gestures are only supported on +touchscreen, but not touchpad. Gestures can be controlled with the +[property@OverlaySplitView:enable-show-gesture] and +[property@OverlaySplitView:enable-hide-gesture] properties. + +See also [class@NavigationSplitView]. + +`AdwOverlaySplitView` is typically used together with an [class@Breakpoint] +setting the `collapsed` property to `TRUE` on small widths, as follows: + +```xml +<object class="AdwWindow"> + <property name="default-width">800</property> + <property name="default-height">800</property> + <child> + <object class="AdwBreakpoint"> + <condition>max-width: 400sp</condition> + <setter object="split_view" property="collapsed">True</setter> + </object> + </child> + <property name="content"> + <object class="AdwOverlaySplitView" id="split_view"> + <property name="sidebar"> + <!-- put your sidebar here --> + </property> + <property name="content"> + <!-- put your content here --> + </property> + </object> + </property> +</object> +``` + +`AdwOverlaySplitView` is often used for implementing the +[utility pane](https://developer.gnome.org/hig/patterns/containers/utility-panes.html) +pattern. + +## Sizing + +When not collapsed, `AdwOverlaySplitView` changes the sidebar width +depending on its own width. + +If possible, it tries to allocate a fraction of the total width, controlled +with the [property@OverlaySplitView:sidebar-width-fraction] property. + +The sidebar also has minimum and maximum sizes, controlled with the +[property@OverlaySplitView:min-sidebar-width] and +[property@OverlaySplitView:max-sidebar-width] properties. + +The minimum and maximum sizes are using the length unit specified with the +[property@OverlaySplitView:sidebar-width-unit]. + +By default, sidebar is using 25% of the total width, with 180sp as the +minimum size and 280sp as the maximum size. + +When collapsed, the preferred width fraction is ignored and the sidebar uses +[property@OverlaySplitView:max-sidebar-width] when possible. + +## Header Bar Integration + +When used inside `AdwOverlaySplitView`, [class@HeaderBar] will automatically +hide the window buttons in the middle. + +## `AdwOverlaySplitView` as `GtkBuildable` + +The `AdwOverlaySplitView` implementation of the [iface@Gtk.Buildable] +interface supports setting the sidebar widget by specifying “sidebar” as the +“type” attribute of a `<child>` element, Specifying “content” child type or +omitting it results in setting the content widget. + +## CSS nodes + +`AdwOverlaySplitView` has a single CSS node with the name +`overlay-split-view`. + +It contains two nodes with the name `widget`, containing the sidebar and +content children. + +When not collapsed, they have the `.sidebar-view` and `.content-view` style +classes respectively. + +``` +overlay-split-view +├── widget.sidebar-pane +│ ╰── [sidebar child] +╰── widget.content-pane + ╰── [content child] +``` + +When collapsed, the one containing the sidebar child has the `.overlay-pane` +style class and the other one has no style classes. + +``` +overlay-split-view +├── widget.overlay-pane +│ ╰── [sidebar child] +╰── widget + ╰── [content child] +``` + +## Accessibility + +`AdwOverlaySplitView` uses the [enum@Gtk.AccessibleRole.group] role. + + + + + + + Creates a new `AdwOverlaySplitView`. + + + the newly created `AdwOverlaySplitView` + + + + + Gets whether @self is collapsed. + + + whether @self is collapsed + + + + + an overlay split view + + + + + + Gets the content widget for @self. + + + the content widget for @self + + + + + an overlay split view + + + + + + Gets whether @self can be closed with a swipe gesture. + + + `TRUE` if @self can be closed with a swipe gesture + + + + + an overlay split view + + + + + + Gets whether @self can be opened with an edge swipe gesture. + + + `TRUE` if @self can be opened with a swipe gesture + + + + + an overlay split view + + + + + + Gets the maximum sidebar width for @self. + + + the maximum width + + + + + an overlay split view + + + + + + Gets the minimum sidebar width for @self. + + + the minimum width + + + + + an overlay split view + + + + + + Gets whether the sidebar widget is pinned for @self. + + + whether if the sidebar widget is pinned + + + + + an overlay split view + + + + + + Gets whether the sidebar widget is shown for @self. + + + `TRUE` if the sidebar widget is shown + + + + + an overlay split view + + + + + + Gets the sidebar widget for @self. + + + the sidebar widget for @self + + + + + an overlay split view + + + + + + Gets the sidebar position for @self. + + + the sidebar position for @self + + + + + an overlay split view + + + + + + Gets the preferred sidebar width fraction for @self. + + + the preferred width fraction + + + + + an overlay split view + + + + + + Gets the length unit for minimum and maximum sidebar widths. + + + the length unit + + + + + an overlay split view + + + + + + Sets whether @self view is collapsed. + +When collapsed, the sidebar widget is presented as an overlay above the +content widget, otherwise they are displayed side by side. + + + + + + + an overlay split view + + + + whether @self is collapsed + + + + + + Sets the content widget for @self. + + + + + + + an overlay split view + + + + the content widget + + + + + + Sets whether @self can be closed with a swipe gesture. + +Only touchscreen swipes are supported. + + + + + + + an overlay split view + + + + whether @self can be closed with a swipe gesture + + + + + + Sets whether @self can be opened with an edge swipe gesture. + +Only touchscreen swipes are supported. + + + + + + + an overlay split view + + + + whether @self can be opened with a swipe gesture + + + + + + Sets the maximum sidebar width for @self. + +Maximum width is affected by [property@OverlaySplitView:sidebar-width-unit]. + +The sidebar widget can still be allocated with larger width if its own +minimum width exceeds it. + + + + + + + an overlay split view + + + + the maximum width + + + + + + Sets the minimum sidebar width for @self. + +Minimum width is affected by [property@OverlaySplitView:sidebar-width-unit]. + +The sidebar widget can still be allocated with larger width if its own +minimum width exceeds it. + + + + + + + an overlay split view + + + + the minimum width + + + + + + Sets whether the sidebar widget is pinned for @self. + +By default, collapsing @self automatically hides the sidebar widget, and +uncollapsing it shows the sidebar. If set to `TRUE`, sidebar visibility never +changes on its own. + + + + + + + an overlay split view + + + + whether to pin the sidebar widget + + + + + + Sets whether the sidebar widget is shown for @self. + + + + + + + an overlay split view + + + + whether to show the sidebar widget + + + + + + Sets the sidebar widget for @self. + + + + + + + an overlay split view + + + + the sidebar widget + + + + + + Sets the sidebar position for @self. + +If it's set to [enum@Gtk.PackType.start], the sidebar is displayed before the +content; if [enum@Gtk.PackType.end], it's displayed after the content. + + + + + + + an overlay split view + + + + the new position + + + + + + Sets the preferred sidebar width as a fraction of the total width of @self. + +The preferred width is additionally limited by +[property@OverlaySplitView:min-sidebar-width] and +[property@OverlaySplitView:max-sidebar-width]. + +The sidebar widget can be allocated with larger width if its own minimum +width exceeds the preferred width. + + + + + + + an overlay split view + + + + the preferred width fraction + + + + + + Sets the length unit for minimum and maximum sidebar widths. + +See [property@OverlaySplitView:min-sidebar-width] and +[property@OverlaySplitView:max-sidebar-width]. + + + + + + + an overlay split view + + + + the length unit + + + + + + Whether the split view is collapsed. + +When collapsed, the sidebar widget is presented as an overlay above the +content widget, otherwise they are displayed side by side. + + + + The content widget. + + + + Whether the sidebar can be closed with a swipe gesture. + +Only touchscreen swipes are supported. + + + + Whether the sidebar can be opened with an edge swipe gesture. + +Only touchscreen swipes are supported. + + + + The maximum sidebar width. + +Maximum width is affected by +[property@OverlaySplitView:sidebar-width-unit]. + +The sidebar widget can still be allocated with larger width if its own +minimum width exceeds it. + + + + The minimum sidebar width. + +Minimum width is affected by +[property@OverlaySplitView:sidebar-width-unit]. + +The sidebar widget can still be allocated with larger width if its own +minimum width exceeds it. + + + + Whether the sidebar widget is pinned. + +By default, collapsing @self automatically hides the sidebar widget, and +uncollapsing it shows the sidebar. If set to `TRUE`, sidebar visibility +never changes on its own. + + + + Whether the sidebar widget is shown. + + + + The sidebar widget. + + + + The sidebar position. + +If it's set to [enum@Gtk.PackType.start], the sidebar is displayed before +the content; if [enum@Gtk.PackType.end], it's displayed after the content. + + + + The preferred sidebar width as a fraction of the total width. + +The preferred width is additionally limited by +[property@OverlaySplitView:min-sidebar-width] and +[property@OverlaySplitView:max-sidebar-width]. + +The sidebar widget can be allocated with larger width if its own minimum +width exceeds the preferred width. + + + + The length unit for minimum and maximum sidebar widths. + +See [property@OverlaySplitView:min-sidebar-width] and +[property@OverlaySplitView:max-sidebar-width]. + + + + + + + + + + + Describes child packing behavior in a [class@WrapLayout] or [class@WrapBox]. + +See [property@WrapLayout:pack-direction] and +[property@WrapBox:pack-direction]. + + Pack children from left to right for LTR languages, + or top to bottom vertically. + + + Pack children from right to left for LTR languages, + or bottom to top vertically. + + + + A [class@EntryRow] tailored for entering secrets. + +<picture> + <source srcset="password-entry-row-dark.png" media="(prefers-color-scheme: dark)"> + <img src="password-entry-row.png" alt="password-entry-row"> +</picture> + +It does not show its contents in clear text, does not allow to copy it to the +clipboard, and shows a warning when Caps Lock is engaged. If the underlying +platform allows it, `AdwPasswordEntryRow` will also place the text in a +non-pageable memory area, to avoid it being written out to disk by the +operating system. + +It offer a way to reveal the contents in clear text. + +## CSS Nodes + +`AdwPasswordEntryRow` has a single CSS node with name `row` that carries +`.entry` and `.password` style classes. + + + + + + + + Creates a new `AdwPasswordEntryRow`. + + + the newly created `AdwPasswordEntryRow` + + + + + + + + + + + + A dialog showing application's preferences. + +<picture> + <source srcset="preferences-dialog-dark.png" media="(prefers-color-scheme: dark)"> + <img src="preferences-dialog.png" alt="preferences-dialog"> +</picture> + +The `AdwPreferencesDialog` widget presents an application's preferences +gathered into pages and groups. The preferences are searchable by the user. + +## Actions + +`AdwPrefencesDialog` defines the `navigation.pop` action, it doesn't take any +parameters and pops the current subpage from the navigation stack, equivalent +to calling [method@PreferencesDialog.pop_subpage]. + +## CSS nodes + +`AdwPreferencesDialog` has a main CSS node with the name `dialog` and the +style class `.preferences`. + + + + + + + Creates a new `AdwPreferencesDialog`. + + + the newly created `AdwPreferencesDialog` + + + + + Adds a preferences page to @self. + + + + + + + a preferences dialog + + + + the page to add + + + + + + Displays @toast. + +See [method@ToastOverlay.add_toast]. + + + + + + + a preferences dialog + + + + a toast + + + + + + Gets whether search is enabled for @self. + + + whether search is enabled for @self. + + + + + a preferences dialog + + + + + + Gets the currently visible page of @self. + + + the visible page + + + + + a preferences dialog + + + + + + Gets the name of currently visible page of @self. + + + the name of the visible page + + + + + a preferences dialog + + + + + + Pop the visible page from the subpage stack of @self. + + + `TRUE` if a page has been popped + + + + + a preferences dialog + + + + + + Pushes @page onto the subpage stack of @self. + +The page will be automatically removed when popped. + + + + + + + a preferences dialog + + + + the subpage + + + + + + Removes a page from @self. + + + + + + + a preferences dialog + + + + the page to remove + + + + + + Sets whether search is enabled for @self. + + + + + + + a preferences dialog + + + + whether search is enabled + + + + + + Makes @page the visible page of @self. + + + + + + + a preferences dialog + + + + a page of @self + + + + + + Makes the page with the given name visible. + +See [property@PreferencesDialog:visible-page]. + + + + + + + a preferences dialog + + + + the name of the page to make visible + + + + + + Whether search is enabled. + + + + The currently visible page. + + + + The name of the currently visible page. + +See [property@AdwPreferencesDialog:visible-page]. + + + + + + + + + + The parent class + + + + + + + + + + A group of preference rows. + +<picture> + <source srcset="preferences-group-dark.png" media="(prefers-color-scheme: dark)"> + <img src="preferences-group.png" alt="preferences-group"> +</picture> + +An `AdwPreferencesGroup` represents a group or tightly related preferences, +which in turn are represented by [class@PreferencesRow]. + +To summarize the role of the preferences it gathers, a group can have both a +title and a description. The title will be used by [class@PreferencesDialog] +to let the user look for a preference. + +The [property@PreferencesGroup:separate-rows] property can be used to +separate the rows within the group, same as when using the +[`.boxed-list-separate`](style-classes.html#boxed-lists-cards) style class +instead of `.boxed-list`. + +## AdwPreferencesGroup as GtkBuildable + +The `AdwPreferencesGroup` implementation of the [iface@Gtk.Buildable] interface +supports adding [class@PreferencesRow]s to the list by omitting "type". If "type" +is omitted and the widget isn't a [class@PreferencesRow] the child is added to +a box below the list. + +When the "type" attribute of a child is `header-suffix`, the child +is set as the suffix on the end of the title and description. + +## CSS nodes + +`AdwPreferencesGroup` has a single CSS node with name `preferencesgroup`. + +## Accessibility + +`AdwPreferencesGroup` uses the [enum@Gtk.AccessibleRole.group] role. + + + + + + Creates a new `AdwPreferencesGroup`. + + + the newly created `AdwPreferencesGroup` + + + + + Adds a child to @self. + + + + + + + a preferences group + + + + the widget to add + + + + + + Binds @model to @self. + +See [method@Gtk.ListBox.bind_model]. + + + + + + + a preferences group + + + + a list model to bind + + + + + a function creating a row for each item, or `NULL` in case @model is `NULL` + + + + user data passed to @create_row_func + + + + function for freeing @user_data + + + + + + Gets the description of @self. + + + the description of @self + + + + + a preferences group + + + + + + Gets the suffix for @self's header. + + + the suffix for @self's header. + + + + + a preferences group + + + + + + Gets the row at @index. + +Can return `NULL` if @index is larger than the number of rows in the group. + + + the row at @index + + + + + a preferences group + + + + a row index + + + + + + Gets whether @self's rows are separated. + + + whether rows are separated + + + + + a preferences group + + + + + + Gets the title of @self. + + + the title of @self + + + + + a preferences group + + + + + + Removes a child from @self. + + + + + + + a preferences group + + + + the child to remove + + + + + + Sets the description for @self. + + + + + + + a preferences group + + + + the description + + + + + + Sets the suffix for @self's header. + +Displayed above the list, next to the title and description. + +Suffixes are commonly used to show a button or a spinner for the whole group. + + + + + + + a preferences group + + + + the suffix to set + + + + + + Sets whether @self's rows are separated. + +Equivalent to using the +[`.boxed-list-separate`](style-classes.html#boxed-lists-cards) style class +on a [class@Gtk.ListBox] instead of `.boxed-list`. + + + + + + + a preferences group + + + + whether to separate rows + + + + + + Sets the title for @self. + + + + + + + a preferences group + + + + the title + + + + + + The description for this group of preferences. + + + + The header suffix widget. + +Displayed above the list, next to the title and description. + +Suffixes are commonly used to show a button or a spinner for the whole +group. + + + + Whether to separate rows. + +Equivalent to using the +[`.boxed-list-separate`](style-classes.html#boxed-lists-cards) style class +on a [class@Gtk.ListBox] instead of `.boxed-list`. + + + + The title for this group of preferences. + + + + + + + + + + The parent class + + + + + + + + + + A page from [class@PreferencesDialog]. + +<picture> + <source srcset="preferences-page-dark.png" media="(prefers-color-scheme: dark)"> + <img src="preferences-page.png" alt="preferences-page"> +</picture> + +The `AdwPreferencesPage` widget gathers preferences groups into a single page +of a preferences window. + +## CSS nodes + +`AdwPreferencesPage` has a single CSS node with name `preferencespage`. + +## Accessibility + +`AdwPreferencesPage` uses the [enum@Gtk.AccessibleRole.group] role. + + + + + + Creates a new `AdwPreferencesPage`. + + + the newly created `AdwPreferencesPage` + + + + + Adds a preferences group to @self. + + + + + + + a preferences page + + + + the group to add + + + + + + Gets the banner displayed at the top of the page. + + + the banner for @self + + + + + a preferences page + + + + + + Gets the description of @self. + + + the description of @self. + + + + + a preferences page + + + + + + Gets whether the description is centered. + + + whether the description is centered. + + + + + a preferences page + + + + + + Gets the group at @index. + +Can return `NULL` if @index is larger than the number of groups in the page. + + + the group at @index + + + + + a preferences page + + + + a group index + + + + + + Gets the icon name for @self. + + + the icon name for @self + + + + + a preferences page + + + + + + Gets the name of @self. + + + the name of @self + + + + + a preferences page + + + + + + Gets the title of @self. + + + the title of @self. + + + + + a preferences page + + + + + + Gets whether an embedded underline in the title indicates a mnemonic. + + + whether an embedded underline in the title indicates a mnemonic + + + + + a preferences page + + + + + + Inserts a preferences group to @self at @index. + +If @index is negative or larger than the number of groups, appends the group, +same as [method@PreferencesPage.add]. + + + + + + + a preferences page + + + + the group to add + + + + the index to insert @group a + + + + + + Removes a group from @self. + + + + + + + a preferences page + + + + the group to remove + + + + + + Scrolls the scrolled window of @self to the top. + + + + + + + a preferences page + + + + + + Sets the banner displayed at the top of the page. + + + + + + + a preferences page + + + + the banner to display at the top of the page + + + + + + Sets the description of @self. + +The description is displayed at the top of the page. + + + + + + + a preferences page + + + + the description + + + + + + Sets whether the description should be centered. + + + + + + + a preferences page + + + + If the description should be centered + + + + + + Sets the icon name for @self. + + + + + + + a preferences page + + + + the icon name + + + + + + Sets the name of @self. + + + + + + + a preferences page + + + + the name + + + + + + Sets the title of @self. + + + + + + + a preferences page + + + + the title + + + + + + Sets whether an embedded underline in the title indicates a mnemonic. + + + + + + + a preferences page + + + + `TRUE` if underlines in the text indicate mnemonics + + + + + + A [class@Banner] displayed at the top of the page. + + + + The description to be displayed at the top of the page. + + + + Whether the description should be centered. + + + + The icon name for this page. + + + + The name of this page. + + + + The title for this page. + + + + Whether an embedded underline in the title indicates a mnemonic. + + + + + + + + + + The parent class + + + + + + + + + + A [class@Gtk.ListBoxRow] used to present preferences. + +The `AdwPreferencesRow` widget has a title that [class@PreferencesDialog] +will use to let the user look for a preference. It doesn't present the title +in any way and lets you present the preference as you please. + +[class@ActionRow] and its derivatives are convenient to use as preference +rows as they take care of presenting the preference's title while letting you +compose the inputs of the preference around it. + + + + + + + Creates a new `AdwPreferencesRow`. + + + the newly created `AdwPreferencesRow` + + + + + Gets the title of the preference represented by @self. + + + the title + + + + + a preferences row + + + + + + Gets whether the user can copy the title from the label + + + whether the user can copy the title from the label + + + + + a preferences row + + + + + + Gets whether to use Pango markup for the title label. + + + whether to use markup + + + + + a preferences row + + + + + + Gets whether an embedded underline in the title indicates a mnemonic. + + + whether an embedded underline in the title indicates a mnemonic + + + + + a preferences row + + + + + + Sets the title of the preference represented by @self. + +The title is interpreted as Pango markup unless +[property@PreferencesRow:use-markup] is set to `FALSE`. + + + + + + + a preferences row + + + + the title + + + + + + Sets whether the user can copy the title from the label + +See also [property@Gtk.Label:selectable]. + + + + + + + a preferences row + + + + `TRUE` if the user can copy the title from the label + + + + + + Sets whether to use Pango markup for the title label. + +Subclasses may also use it for other labels, such as subtitle. + +See also [func@Pango.parse_markup]. + + + + + + + a preferences row + + + + whether to use markup + + + + + + Sets whether an embedded underline in the title indicates a mnemonic. + + + + + + + a preferences row + + + + `TRUE` if underlines in the text indicate mnemonics + + + + + + The title of the preference represented by this row. + +The title is interpreted as Pango markup unless +[property@PreferencesRow:use-markup] is set to `FALSE`. + + + + Whether the user can copy the title from the label. + +See also [property@Gtk.Label:selectable]. + + + + Whether to use Pango markup for the title label. + +Subclasses may also use it for other labels, such as subtitle. + +See also [func@Pango.parse_markup]. + + + + Whether an embedded underline in the title indicates a mnemonic. + + + + + + + + + + The parent class + + + + + + + + + + A window to present an application's preferences. + +<picture> + <source srcset="preferences-window-dark.png" media="(prefers-color-scheme: dark)"> + <img src="preferences-window.png" alt="preferences-window"> +</picture> + +The `AdwPreferencesWindow` widget presents an application's preferences +gathered into pages and groups. The preferences are searchable by the user. + +## CSS nodes + +`AdwPreferencesWindow` has a main CSS node with the name `window` and the +style class `.preferences`. + Use [class@PreferencesDialog]. + + + + + + + + + Creates a new `AdwPreferencesWindow`. + Use [class@PreferencesDialog]. + + + the newly created `AdwPreferencesWindow` + + + + + Adds a preferences page to @self. + Use [class@PreferencesDialog]. + + + + + + + a preferences window + + + + the page to add + + + + + + Displays @toast. + +See [method@ToastOverlay.add_toast]. + Use [class@PreferencesDialog]. + + + + + + + a preferences window + + + + a toast + + + + + + Closes the current subpage. + +If there is no presented subpage, this does nothing. + Use [method@PreferencesWindow.pop_subpage] instead. + + + + + + + a preferences window + + + + + + Gets whether gestures and shortcuts for closing subpages are enabled. + Use [method@NavigationPage.get_can_pop] instead. + + + whether gestures and shortcuts are enabled. + + + + + a preferences window + + + + + + Gets whether search is enabled for @self. + Use [class@PreferencesDialog]. + + + whether search is enabled for @self. + + + + + a preferences window + + + + + + Gets the currently visible page of @self. + Use [class@PreferencesDialog]. + + + the visible page + + + + + a preferences window + + + + + + Gets the name of currently visible page of @self. + Use [class@PreferencesDialog]. + + + the name of the visible page + + + + + a preferences window + + + + + + Pop the visible page from the subpage stack of @self. + Use [class@PreferencesDialog]. + + + `TRUE` if a page has been popped + + + + + a preferences window + + + + + + Sets @subpage as the window's subpage and opens it. + +The transition can be cancelled by the user, in which case visible child will +change back to the previously visible child. + Use [method@PreferencesWindow.push_subpage] instead. + + + + + + + a preferences window + + + + the subpage + + + + + + Pushes @page onto the subpage stack of @self. + +The page will be automatically removed when popped. + Use [class@PreferencesDialog]. + + + + + + + a preferences window + + + + the subpage + + + + + + Removes a page from @self. + Use [class@PreferencesDialog]. + + + + + + + a preferences window + + + + the page to remove + + + + + + Sets whether gestures and shortcuts for closing subpages are enabled. + +The supported gestures are: + +- One-finger swipe on touchscreens +- Horizontal scrolling on touchpads (usually two-finger swipe) +- Back mouse button + +The keyboard back key is also supported, as well as the +<kbd>Alt</kbd>+<kbd>←</kbd> shortcut. + +For right-to-left locales, gestures and shortcuts are reversed. + +Has no effect for subpages added with [method@PreferencesWindow.push_subpage]. + Use [method@NavigationPage.set_can_pop] instead. + + + + + + + a preferences window + + + + the new value + + + + + + Sets whether search is enabled for @self. + Use [class@PreferencesDialog]. + + + + + + + a preferences window + + + + whether search is enabled + + + + + + Makes @page the visible page of @self. + Use [class@PreferencesDialog]. + + + + + + + a preferences window + + + + a page of @self + + + + + + Makes the page with the given name visible. + +See [property@PreferencesWindow:visible-page]. + Use [class@PreferencesDialog]. + + + + + + + a preferences window + + + + the name of the page to make visible + + + + + + Whether gestures and shortcuts for closing subpages are enabled. + +The supported gestures are: + +- One-finger swipe on touchscreens +- Horizontal scrolling on touchpads (usually two-finger swipe) +- Back mouse button + +The keyboard back key is also supported, as well as the +<kbd>Alt</kbd>+<kbd>←</kbd> shortcut. + +For right-to-left locales, gestures and shortcuts are reversed. + +Has no effect for subpages added with +[method@PreferencesWindow.push_subpage]. + Use [property@NavigationPage:can-pop] instead. + + + + Whether search is enabled. + Use [class@PreferencesDialog]. + + + + The currently visible page. + Use [class@PreferencesDialog]. + + + + The name of the currently visible page. + +See [property@PreferencesWindow:visible-page]. + Use [class@PreferencesDialog]. + + + + + + + + + + The parent class + + + + + + + + + + An [class@AnimationTarget] changing the value of a property of a +[class@GObject.Object] instance. + + + Creates a new `AdwPropertyAnimationTarget` for the @property_name property on +@object. + + + the newly created `AdwPropertyAnimationTarget` + + + + + an object to be animated + + + + the name of the property on @object to animate + + + + + + Creates a new `AdwPropertyAnimationTarget` for the @pspec property on +@object. + + + new newly created `AdwPropertyAnimationTarget` + + + + + an object to be animated + + + + the param spec of the property on @object to animate + + + + + + Gets the object animated by @self. + +The `AdwPropertyAnimationTarget` instance does not hold a strong reference on +the object; make sure the object is kept alive throughout the target's +lifetime. + + + the animated object + + + + + a property animation target + + + + + + Gets the `GParamSpec` of the property animated by @self. + + + the animated property's `GParamSpec` + + + + + a property animation target + + + + + + The object whose property will be animated. + +The `AdwPropertyAnimationTarget` instance does not hold a strong reference +on the object; make sure the object is kept alive throughout the target's +lifetime. + + + + The `GParamSpec` of the property to be animated. + + + + + + + + Describes the possible styles of [class@AlertDialog] response buttons. + +See [method@AlertDialog.set_response_appearance]. + + the default appearance. + + + used to denote important responses such as the + affirmative action. + + + used to draw attention to the potentially damaging + consequences of using the response. This appearance acts as a warning to + the user. + + + + A widget that displays a keyboard shortcut. + +<picture> + <source srcset="shortcut-label-dark.png" media="(prefers-color-scheme: dark)"> + <img src="shortcut-label.png" alt="shortcut-label"> +</picture> + +The shown shortcut can be set using the [property@ShortcutLabel:accelerator] +property. + +Optionally, if no shortcut is set, `AdwShortcutLabel` will display a +placeholder set with the [property@ShortcutLabel:disabled-text] property. + +The following types of shortcuts can be displayed: + +- A single shortcut in [func@Gtk.accelerator_parse] format, e.g. `<Control>C`: + + <picture> + <source srcset="shortcut-label-single-dark.png" media="(prefers-color-scheme: dark)"> + <img src="shortcut-label-single.png" alt="shortcut-label-single"> + </picture> + +- Multiple alternative shortcuts, separated with spaces, e.g. `<Shift>A Home`: + + <picture> + <source srcset="shortcut-label-alternative-dark.png" media="(prefers-color-scheme: dark)"> + <img src="shortcut-label-alternative.png" alt="shortcut-label-alternative"> + </picture> + +- A range of shortcuts, separated with `...`, e.g. `<Alt>1...9`: + + <picture> + <source srcset="shortcut-label-range-dark.png" media="(prefers-color-scheme: dark)"> + <img src="shortcut-label-range.png" alt="shortcut-label-range"> + </picture> + +- Multiple keys pressed at once, separated with `&`, e.g. `Control_L&Control_R`: + + <picture> + <source srcset="shortcut-label-multiple-dark.png" media="(prefers-color-scheme: dark)"> + <img src="shortcut-label-multiple.png" alt="shortcut-label-multiple"> + </picture> + +- Multiple shortcuts or keys, pressed sequentially, separated with `+`, e.g. `<Control>C+<Control>X`: + + <picture> + <source srcset="shortcut-label-sequence-dark.png" media="(prefers-color-scheme: dark)"> + <img src="shortcut-label-sequence.png" alt="shortcut-label-sequence"> + </picture> + +::: note + `<`, `>` and `&` need to be escaped as `&lt;`, `&gt;` and `&amp;` when used in UI files. + +## CSS nodes + +`AdwShortcutLabel` has a single CSS node with name `shortcut-label`. The +individual keycap labels each have the `.keycap` style class, while the +labels separating them have the `.dimmed` style class. + +## Accessibility + +`AdwShortcutLabel` uses the [enum@Gtk.AccessibleRole.label] role. + +See also: [class@ShortcutsDialog]. + + + + + + Creates a new `AdwShortcutLabel` showing @accelerator. + + + the newly created `AdwShortcutLabel` + + + + + the accelerator to show + + + + + + Gets the accelerator displayed by @self. + + + the displayed accelerator + + + + + a shortcut label + + + + + + Gets the text displayed by @self when no accelerator is set. + + + the text displayed when no accelerator is set + + + + + a shortcut label + + + + + + Sets the accelerator to be displayed by @self. + + + + + + + a shortcut label + + + + the accelerator to be displayed + + + + + + Sets the text to be displayed by @self when no accelerator is set. + + + + + + + a shortcut label + + + + the text displayed when no accelerator is set + + + + + + The displayed accelerator. + + + + The text displayed when no accelerator is set. + + + + + + + + + + + A dialog that displays application's keyboard shortcuts. + +<picture> + <source srcset="shortcuts-dialog-dark.png" media="(prefers-color-scheme: dark)"> + <img src="shortcuts-dialog.png" alt="shortcuts-dialog"> +</picture> + +Shortcuts are grouped into sections, represented by [class@ShortcutsSection] +objects. Each section has one or more items, represented by +[class@ShortcutsItem] objects. + +To add a section to the dialog, use [method@ShortcutsDialog.add], or add it +as a child when using UI files. + +Sections without titles can be used to further subdivide each section into +groups. + +Example of an `AdwShortcutsDialog` UI definition: + +```xml +<object class="AdwShortcutsDialog" id="shortcuts_dialog"> + <child> + <object class="AdwShortcutsSection"> + <property name="title" translatable="yes">General</property> + <child> + <object class="AdwShortcutsItem"> + <property name="title" translatable="yes">Open Menu</property> + <property name="accelerator">F10</property> + </object> + </child> + <child> + <object class="AdwShortcutsItem"> + <property name="title" translatable="yes">Quit</property> + <property name="action-name">app.quit</property> + </object> + </child> + </object> + </child> + <child> + <object class="AdwShortcutsSection"> + <child> + <object class="AdwShortcutsItem"> + <property name="title" translatable="yes">Move Tab Left</property> + <property name="accelerator">&lt;Shift&gt;&lt;Ctrl&gt;Page_Up</property> + <property name="direction">ltr</property> + </object> + </child> + <child> + <object class="AdwShortcutsItem"> + <property name="title" translatable="yes">Move Tab Right</property> + <property name="accelerator">&lt;Shift&gt;&lt;Ctrl&gt;Page_Down</property> + <property name="direction">ltr</property> + </object> + </child> + <child> + <object class="AdwShortcutsItem"> + <property name="title" translatable="yes">Move Tab Right</property> + <property name="accelerator">&lt;Shift&gt;&lt;Ctrl&gt;Page_Up</property> + <property name="direction">rtl</property> + </object> + </child> + <child> + <object class="AdwShortcutsItem"> + <property name="title" translatable="yes">Move Tab Left</property> + <property name="accelerator">&lt;Shift&gt;&lt;Ctrl&gt;Page_Down</property> + <property name="direction">rtl</property> + </object> + </child> + </object> + </child> +</object> +``` + +If the `app.quit` action has the <kbd>Ctrl</kbd><kbd>Q</kbd> accelerator +associated with it, the result will look as follows: + +<picture> + <source srcset="shortcuts-dialog-example-dark.png" media="(prefers-color-scheme: dark)"> + <img src="shortcuts-dialog-example.png" alt="shortcuts-dialog-example"> +</picture> + +The recommended way to use `AdwShortcutsDialog` is via [class@Application]'s +automatic resource loading. + +See also: [class@ShortcutLabel]. + + + + + + + Creates a new `AdwShortcutsDialog`. + + + the newly created `AdwShortcutsDialog` + + + + + Adds @section to @self. + + + + + + + a shortcuts dialog + + + + the section to add + + + + + + + + + + + + + An object representing an individual shortcut in [class@ShortcutsSection]. + +A shortcut has a title, an optional subtitle, and an accelerator. + +Accelerator must be specified in the format [class@ShortcutLabel] accepts. + +Alternatively, the [property@ShortcutsItem:action-name] property can be used +to automatically get accelerator associated with the specified action, as set +via [method@Gtk.Application.set_accels_for_action]. + +If both are specified, the accelerator will be used if the action couldn't +be found or doesn't have an accelerator associated for it. + +If [property@ShortcutsItem:direction] is set, the shortcut will only be +displayed for the specified text direction. This allows to display different +shortcuts for different text directions. + + + Creates a new `AdwShortcutsItem` with @title and @accelerator. + + + the newly created `AdwShortcutsItem` + + + + + the shortcut title + + + + the shortcut accelerator + + + + + + Creates a new `AdwShortcutsItem` with @title and @action_name. + + + the newly created `AdwShortcutsItem` + + + + + the shortcut title + + + + the shortcut action name + + + + + + Gets the accelerator of @self. + + + the accelerator + + + + + a shortcuts item + + + + + + Gets the action name to get the accelerator from. + + + the action name + + + + + a shortcuts item + + + + + + Gets the direction of @self. + + + the shortcut direction + + + + + a shortcuts item + + + + + + Gets the subtitle of @self. + + + the subtitle + + + + + a shortcuts item + + + + + + Gets the title of @self. + + + the title + + + + + a shortcuts item + + + + + + Sets the accelerator of @self. + +@accelerator must be in the format [class@ShortcutLabel] accepts. + + + + + + + a shortcuts item + + + + the accelerator to use + + + + + + Sets the action name to get the accelerator from. + + + + + + + a shortcuts item + + + + the action name to use + + + + + + Sets the direction of @self. + +If set to [enum@Gtk.TextDirection.ltr] or [enum@Gtk.TextDirection.rtl], the +shortcut will only be displayed for this direction. + + + + + + + a shortcuts item + + + + the shortcut direction + + + + + + Sets the subtitle of @self. + + + + + + + a shortcuts item + + + + the subtitle to use + + + + + + Sets the title of @self. + + + + + + + a shortcuts item + + + + the title to use + + + + + + The shortcut accelerator. + +Accelerator must be in the format [class@ShortcutLabel] accepts. + + + + Fully qualified action name to get the accelerator from. + + + + The shortcut direction. + +If set to [enum@Gtk.TextDirection.LTR] or [enum@Gtk.TextDirection.rtl], the +shortcut will only be displayed for this direction. + + + + The subtitle of the shortcut. + + + + The title of the shortcut. + + + + + + + + + + + An object representing a section in [class@ShortcutsDialog]. + +It contains [class@ShortcutsItem] objects, use [method@ShortcutsSection.add] to +add them. + +`AdwShortcutsSection` implements the [iface@Gio.ListModel] interface and +allows to access the added shortcut items through it. + +## `AdwShortcutsSection` as `GtkBuildable` + +`AdwShortcutsSection` allows adding `AdwShortcutsItem` objects as children. + + + + + Creates a new `AdwShortcutsSection` with @title as its title if provided. + + + the newly created `AdwShortcutsSection` + + + + + the section title + + + + + + Adds @item to @self. + + + + + + + a shortcuts section + + + + the item to add + + + + + + Gets the title of @self. + + + the title + + + + + a shortcuts section + + + + + + Sets the title of @self. + + + + + + + a shortcuts section + + + + the title to use + + + + + + The type of the items. See [method@Gio.ListModel.get_item_type]. + + + + The number of items. See [method@Gio.ListModel.get_n_items]. + + + + The title of the section, can be `NULL`. + + + + + + + + + + + Adaptive sidebar widget. + +<picture> + <source srcset="sidebar-dark.png" media="(prefers-color-scheme: dark)"> + <img src="sidebar.png" alt="sidebar"> +</picture> + +`AdwSidebar` contains [class@SidebarSection] objects, which in turn contain +[class@SidebarItem] objects. + +To add sections, use [method@Sidebar.append], [method@Sidebar.prepend] or +[method@Sidebar.insert]. + +To remove sections, use [method@Sidebar.remove] or +[method@Sidebar.remove_all]. + +To inspect the items, use [method@Sidebar.get_item] or +[property@Sidebar:items]. + +To inspect sections themselves, use [method@Sidebar.get_section] or +[property@Sidebar:sections]. + +## Selection and activation + +`AdwSidebar` has zero or one selected items. The index of the item can be +accessed and changed via [property@Sidebar:selected]. Set it to +[const@Gtk.INVALID_LIST_POSITION] to remove selection. + +Selection cannot be permanently disabled. + +[property@Sidebar:selected-item] can be used to access the selected item. + +Connect to the [signal@Sidebar::activated] signal to run code when an item +has been activated. This can be used to toggle the visible pane when used in +a split view. + +See also: [class@ViewSwitcherSidebar]. + +## Modes + +<picture> + <source srcset="sidebar-modes-dark.png" media="(prefers-color-scheme: dark)"> + <img src="sidebar-modes.png" alt="sidebar-modes"> +</picture> + +`AdwSidebar` is adaptive and can act as either a regular sidebar, or a page +of boxed lists. + +Use the [property@Sidebar:mode] to determine its look and behavior. + +A typical use case involves using `AdwSidebar` inside the sidebar pane of a +[class@NavigationSplitView], and switching mode to page whenever it's +collapsed, as follows: + +```xml +<object class="AdwWindow"> + <property name="default-width">800</property> + <property name="default-height">600</property> + <child> + <object class="AdwBreakpoint"> + <condition>max-width: 400sp</condition> + <setter object="split_view" property="collapsed">True</setter> + <setter object="sidebar" property="mode">page</setter> + </object> + </child> + <property name="content"> + <object class="AdwNavigationSplitView" id="split_view"> + <property name="sidebar"> + <object class="AdwNavigationPage"> + <property name="title" translatable="yes">Items</property> + <property name="child"> + <object class="AdwToolbarView"> + <child type="top"> + <object class="AdwHeaderBar"/> + </child> + <property name="content"> + <object class="AdwSidebar" id="sidebar"> + <!-- Calls adw_navigation_split_view_set_show_content (split_view, TRUE); --> + <signal name="activated" handler="sidebar_activated_cb"/> + <!-- put your items here --> + </object> + </property> + </object> + </property> + </object> + </property> + <property name="content"> + <object class="AdwNavigationPage"> + <property name="title" translatable="yes">Details</property> + <property name="child"> + <!-- put your details view here --> + </property> + </object> + </property> + </object> + </property> +</object> +``` + +When used with [class@OverlaySplitView], the sidebar should stay in sidebar +mode, as the sidebar pane is still a sidebar when collapsed. + +## Search + +`AdwSidebar` supports filtering items via the [property@Sidebar:filter] +property. + +Use [property@Sidebar:placeholder] to provide an empty state widget. It will +be shown when all items have been filtered out, or the sidebar has no items +otherwise. + +## Context Menu + +To create a context menu for the sidebar items, use the +[property@Sidebar:menu-model] property to provide a menu model, and the +[signal@Sidebar::setup-menu] signal to set up actions for the given item. + +To set or override the menu for just one section, use +[property@SidebarSection:menu-model] instead. + +## Drag-and-Drop + +`AdwSidebar` items can have a drop target for arbitrary content. + +Use [method@Sidebar.setup_drop_target] to set it up, specifying the +supported content types and drag actions, then connect to +[signal@Sidebar::drop] to handle drops. + +In some cases, it may be necessary to determine the used action based on the +dragged content, or the hovered item. + +To determine it based on the sidebar item, connect to the +[signal@Sidebar::drop-enter] signal and return the action from its handler. + +To determine it based on the content, set [property@Sidebar:drop-preload] to +`TRUE`, then connect to [signal@Sidebar::drop-value-loaded] signal and return +the action from its handler. + +In both cases the action will be passed as a parameter to the +[signal@Sidebar::drop] signal. + +Regardless of whether a drop target was set up, dragging content over sidebar +items activates them after a timeout. To disable this behavior for specific +items, set [property@SidebarItem:drag-motion-activate] to `FALSE` on them. + +## Prefix and Suffix + +`AdwSidebar` can display additional widgets before and after the sidebar +items. Use the [property@Sidebar:prefix] and [property@Sidebar:suffix] +properties to add them. + +## `AdwSidebar` as `GtkBuildable` + +`AdwSidebar` allows adding sections as children. + +Example of an `AdwSidebar` UI definition: + +```xml +<object class="AdwSidebar"> + <child> + <object class="AdwSidebarSection"> + <child> + <object class="AdwSidebarItem"> + <property name="title" translatable="yes">Recent</property> + <property name="icon-name">document-open-recent-symbolic</property> + </object> + </child> + <child> + <object class="AdwSidebarItem"> + <property name="title" translatable="yes">Starred</property> + <property name="icon-name">starred-symbolic</property> + </object> + </child> + </object> + </child> + <child> + <object class="AdwSidebarSection"> + <property name="title" translatable="yes">Places</property> + <child> + <object class="AdwSidebarItem"> + <property name="title" translatable="yes">Music</property> + <property name="icon-name">folder-music-symbolic</property> + </object> + </child> + <child> + <object class="AdwSidebarItem"> + <property name="title" translatable="yes">Pictures</property> + <property name="icon-name">folder-pictures-symbolic</property> + </object> + </child> + <child> + <object class="AdwSidebarItem"> + <property name="title" translatable="yes">Videos</property> + <property name="icon-name">folder-videos-symbolic</property> + </object> + </child> + </object> + </child> + <child> + <object class="AdwSidebarSection"> + <child> + <object class="AdwSidebarItem"> + <property name="title" translatable="yes">Trash</property> + <property name="icon-name">user-trash-symbolic</property> + </object> + </child> + </object> + </child> +</object> +``` + +## CSS nodes + +`AdwSidebar` has a main CSS node with the name `sidebar`. + +Internally, it's using a [class@Gtk.ListBox] with the +[`.navigation-sidebar`](style-classes.html#sidebars) style class in sidebar +mode, or an [class@PreferencesPage] in page mode. + +## Accessibility + +`AdwSidebar` uses the [enum@Gtk.AccessibleRole.generic] role. + + + + + + Creates a new `AdwSidebar`. + + + the newly created `AdwSidebar` + + + + + Appends @section to @self. + + + + + + + a sidebar + + + + a section to append + + + + + + Gets whether drop data should be preloaded on hover. + + + whether drop data should be preloaded on hover + + + + + a sidebar + + + + + + Gets the item filter for @self. + + + the item filter + + + + + a sidebar + + + + + + Gets the item at @index within @self. + +The index starts from 0 at the top of the sidebar, and is same as the one +returned by [method@SidebarItem.get_index]. + +Can return `NULL` if @index is larger or equal to the number of items. + + + the item at @index + + + + + a sidebar + + + + index of the item + + + + + + Gets a list model with @self's items. + +This can be used to keep an up-to-date view. + +The model implements [iface@Gtk.SectionModel] and creates sections +corresponding to the sidebar's sections. + +The model also implements [iface@Gtk.SelectionModel] and can be used to +track and change the selection. + +To only track sections, use [property@Sidebar:sections] instead. + + + a model containing the items + + + + + a sidebar + + + + + + Gets the context menu model for @self's items. + + + the context menu model + + + + + a sidebar + + + + + + Gets @self's look and behavior. + + + the current mode + + + + + a sidebar + + + + + + Gets the placeholder widget for @self. + + + the placeholder widget + + + + + a sidebar + + + + + + Gets the widget displayed before the sidebar items. + + + the prefix widget + + + + + a sidebar + + + + + + Gets the section at @index within @self. + +Can return `NULL` if @index is larger or equal to the number of sections. + + + the section at @index + + + + + a sidebar + + + + index of the section + + + + + + Gets a list model with @self's sections. + +This can be used to keep an up-to-date view. + +To track items, use [property@Sidebar:items] instead. + + + a model containing the sections + + + + + a sidebar + + + + + + Gets the index of the currently selected item. + +See also: [method@Sidebar.get_selected_item]. + + + index of the currently selected item + + + + + a sidebar + + + + + + Gets the currently selected item. + +This is a convenience method, equivalent to calling [method@Sidebar.get_item] +with [property@Sidebar:selected] provided as the index. + +To change selection, use [method@Sidebar.set_selected]. + + + the selected item + + + + + a sidebar + + + + + + Gets the widget displayed after sidebar items. + + + the suffix widget + + + + + a sidebar + + + + + + Inserts @section at @position to @self. + +If @position is -1, or larger than the total number of sections in @self, +the section will be appended to the end. + + + + + + + a sidebar + + + + a section to insert + + + + position to insert @section at + + + + + + Prepends @section to @self. + + + + + + + a sidebar + + + + a section to prepend + + + + + + Removes @section from @self. + + + + + + + a sidebar + + + + a section to remove + + + + + + Removes all sections from @self. + + + + + + + a sidebar + + + + + + Sets whether drop data should be preloaded on hover. + +See [property@Gtk.DropTarget:preload]. + + + + + + + a sidebar + + + + whether to preload drop data + + + + + + Sets the item filter for @self. + +Can be used to implement search within the sidebar. + +Use [property@Sidebar:placeholder] to provide an empty state. + + + + + + + a sidebar + + + + the item filter + + + + + + Sets the context menu model for @self's items. + +When a context menu is shown for an item, it will be constructed from the +provided menu model. Use the [signal@Sidebar::setup-menu] signal to set up +the menu actions for the particular item. + +[property@Sidebar:menu-model] will be preferred over this model if set. + + + + + + + a sidebar + + + + a menu model + + + + + + Sets @self's look and behavior. + +<picture> + <source srcset="sidebar-modes-dark.png" media="(prefers-color-scheme: dark)"> + <img src="sidebar-modes.png" alt="sidebar-modes"> +</picture> + +If set to [enum@Adw.SidebarMode.sidebar], behaves like a sidebar: with a +sidebar style and a persistent selection. + +If set to [enum@Adw.SidebarMode.page], behaves like a page of boxed lists. +In this mode, the selection is invisible and only tracked to determine the +initially selected item once switched back to sidebar mode. + +The page mode is intended to be used with [class@NavigationSplitView] when +collapsed, as the sidebar pane becomes a page there. + +When used with [class@OverlaySplitView], the sidebar should stay in sidebar +mode, as the sidebar pane is still a sidebar when collapsed. + + + + + + + a sidebar + + + + the new mode + + + + + + Sets the placeholder widget for @self. + +This widget will be shown if @self has no items, or all of its items have +been filtered out by [property@Sidebar:filter]. + + + + + + + a sidebar + + + + the placeholder widget + + + + + + Sets the widget to be displayed before the sidebar items. + + + + + + + a sidebar + + + + the prefix widget + + + + + + Selects the item at @selected. + +If set to [const@Gtk.INVALID_LIST_POSITION], no item is selected. + +If [property@Sidebar:mode] is set to [enum@Adw.SidebarMode.page], the +selection is invisible, but still tracked, indicating which item will be +selected once the mode is changed to [enum@Adw.SidebarMode.sidebar]. + +See also: [property@Sidebar:selected-item]. + + + + + + + a sidebar + + + + index of the newly selected item + + + + + + Sets the widget to be displayed after the sidebar items. + + + + + + + a sidebar + + + + the suffix widget + + + + + + Sets up a drop target on the items. + +This allows to drag arbitrary content onto items. + +The [signal@Sidebar::drop] signal can be used to handle the drop. + + + + + + + a sidebar + + + + the supported actions + + + + + all supported `GType`s that can be dropped + + + + + + number of @types + + + + + + Whether the drop data should be preloaded on hover. + +See [property@Gtk.DropTarget:preload]. + + + + The item filter. + +Can be used to implement search within the sidebar. + +Use [property@Sidebar:placeholder] to provide an empty state. + + + + A list model with the sidebar's items. + +This can be used to keep an up-to-date view. + +The model implements [iface@Gtk.SectionModel] and creates sections +corresponding to the sidebar's sections. + +The model also implements [iface@Gtk.SelectionModel] and can be used to +track and change the selection. + +To only track sections, use [property@Sidebar:sections] instead. + + + + Context menu model for the items. + +When a context menu is shown for an item, it will be constructed from the +provided menu model. Use the [signal@Sidebar::setup-menu] signal to set up +the menu actions for the particular item. + +[property@Sidebar:menu-model] will be preferred over this model if set. + + + + Determines the sidebar's look and behavior. + +<picture> + <source srcset="sidebar-modes-dark.png" media="(prefers-color-scheme: dark)"> + <img src="sidebar-modes.png" alt="sidebar-modes"> +</picture> + +If set to [enum@Adw.SidebarMode.sidebar], behaves like a sidebar: with a +sidebar style and a persistent selection. + +If set to [enum@Adw.SidebarMode.page], behaves like a page of boxed lists. +In this mode, the selection is invisible and only tracked to determine the +initially selected item once switched back to sidebar mode. + +The page mode is intended to be used with [class@NavigationSplitView] when +collapsed, as the sidebar pane becomes a page there. + +When used with [class@OverlaySplitView], the sidebar should stay in sidebar +mode, as the sidebar pane is still a sidebar when collapsed. + + + + The placeholder widget. + +This widget will be shown if the sidebar has no items, or all of its items +have been filtered out by [property@Sidebar:filter]. + + + + A widget to be displayed before the sidebar items. + + + + A list model with the sidebar's sections. + +This can be used to keep an up-to-date view. + +To track items, use [property@Sidebar:items] instead. + + + + The index of the currently selected item. + +If set to [const@Gtk.INVALID_LIST_POSITION], no item is selected. + +If [property@Sidebar:mode] is set to [enum@Adw.SidebarMode.page], the +selection is invisible, but still tracked, indicating which item will be +selected once the mode is changed to [enum@Adw.SidebarMode.sidebar]. + +See also: [property@Sidebar:selected-item]. + + + + The currently selected item. + +This is a convenience property, equivalent to calling +[method@Sidebar.get_item] with [property@Sidebar:selected] provided as the +index. + +To change selection, use [property@Sidebar:selected]. + + + + A widget to be displayed after the sidebar items. + + + + Emitted when an item at @index has been activated. + + + + + + the item index + + + + + + Emitted when content is dropped onto the item at @index. + +The content must be of one of the types set up via +[method@Sidebar.setup_drop_target]. + +See [signal@Gtk.DropTarget::drop]. + + whether the drop was accepted + +SinceL 1.9 + + + + + index of the item the content was dropped onto + + + + the `GValue` being dropped + + + + the preferred drop action + + + + + + Emitted when the pointer enters the item at @index. + +Applications can use this to set their default drop action even when +[property@Sidebar:drop-preload] is set to `FALSE`. + +See [signal@Gtk.DropTarget::enter]. + + the preferred action for the drop + + + + + index of the hovered item + + + + + + Emitted when the dropped content is preloaded for the item at @index. + +In order for data to be preloaded, [property@Sidebar:drop-preload] +must be set to `TRUE`. + +The content must be of one of the types set up via +[method@Sidebar.setup_drop_target]. + +See [property@Gtk.DropTarget:value]. + + the preferred action for the drop + + + + + index of the hovered item + + + + the `GValue` being dropped + + + + + + Emitted when a context menu is opened or closed for @item. + +If the menu has been closed, @item will be set to `NULL`. + +It can be used to set up menu actions before showing the menu, for example +disable actions not applicable to @item. + + + + + + an item in @self + + + + + + + + + + + + + An item within [class@SidebarSection]. + +Sidebar items must have a title, set via [property@SidebarItem:title]. + +Sidebar items should, but are not required to, have an icon. Icons can be set +from an icon name, via [property@SidebarItem:icon-name], or a +[iface@Gdk.Paintable], via [property@SidebarItem:icon-paintable]. + +Items can also have subtitles, set with the [property@SidebarItem:subtitle] +property. Subtitles should be used sparingly. + +To add a tooltip, use [property@SidebarItem:tooltip]. Tooltips always use +Pango markup. + +Items can have an arbitrary prefix and suffix widgets, set with the +[property@SidebarItem:prefix] and [property@SidebarItem:suffix] properties. +They will be displayed at the start (before icon) and end of its row, and +before the arrow in the [enum@Adw.SidebarMode.page] mode. + +To hide or disable the item, use the [property@SidebarItem:visible] and +[property@SidebarItem:enabled] properties respectively. + +To access the items's section, use [property@SidebarItem:section]. + +It's also possible to access the index of the item in both the section and +the sidebar, using [method@SidebarItem.get_section_index] and +[method@SidebarItem.get_index] respectively. + +Dragging content over sidebar items activates them by default. To disable +this behavior, set [property@SidebarItem:drag-motion-activate] to `FALSE`. + +`AdwSidebarItem` is derivable, and applications that need to associate each +page with data can store it in the items themselves this way. + + + Creates a new `AdwSidebarItem` with @title as its title. + + + the newly created `AdwSidebarItem` + + + + + the item title + + + + + + Gets whether @self will be activated on pointer motion during Drag-and-Drop. + + + whether to enable the item on drag motion + + + + + a sidebar item + + + + + + Gets whether @self is enabled. + + + whether the item is enabled + + + + + a sidebar item + + + + + + Gets the icon name for @item. + + + the icon name + + + + + a sidebar item + + + + + + Gets the paintable used as the icon for @item. + + + the icon paintable + + + + + a sidebar item + + + + + + Gets index of @self within its [class@Sidebar]. + +If @self is within a section, but that section is not in a sidebar, index +will be within the section only. + +If @self is not within a section, the index will be 0. + +The item can later be retrieved by passing this index into +[method@Sidebar.get_item]. + + + the index of @self + + + + + a sidebar item + + + + + + Gets the prefix widget for @self. + + + the prefix widget + + + + + a sidebar item + + + + + + Gets the section @self is in. + + + the section of @self + + + + + a sidebar item + + + + + + Gets index of @self within its [class@SidebarSection]. + +If @self is not within a section, the index will be 0. + +The item can later be retrieved by passing this index into +[method@SidebarSection.get_item]. + + + the index of @self + + + + + a sidebar item + + + + + + Gets the subtitle of @self. + + + the subtitle + + + + + a sidebar item + + + + + + Gets the suffix widget for @self. + + + the suffix widget + + + + + a sidebar item + + + + + + Gets the title of @self. + + + the title + + + + + a sidebar item + + + + + + Gets the tooltip of @self. + + + the tooltip + + + + + a sidebar item + + + + + + Gets whether an underline in the title indicates a mnemonic. + + + whether an underline in the text indicates a mnemonic + + + + + a sidebar item + + + + + + Gets whether @self is visible. + + + whether the item is visible + + + + + a sidebar item + + + + + + Sets whether to activate @self on pointer motion during Drag-and-Drop. + +This is needed to be able to drag content into the page the item +represents, when the sidebar is used as a page switcher. However, it may be +unwanted when dropping content onto the item itself, so it can be disabled. + + + + + + + a sidebar item + + + + whether to enable the item on drag motion + + + + + + Sets whether @self is enabled. + +See [property@Gtk.Widget:sensitive]. + + + + + + + a sidebar item + + + + whether to enable the item + + + + + + Sets the icon name for @item. + +Mutually exclusive with [property@SidebarItem:icon-paintable]. + + + + + + + a sidebar item + + + + the icon name + + + + + + Sets the paintable to use as the icon for @item. + +Mutually exclusive with [property@SidebarItem:icon-name]. + + + + + + + a sidebar item + + + + the icon paintable + + + + + + Sets the prefix widget for @self. + +Prefix will be shown at the start of the item's row, before the icon. + + + + + + + a sidebar item + + + + the prefix widget + + + + + + Sets the subtitle of @self. + + + + + + + a sidebar item + + + + the subtitle + + + + + + Sets the suffix widget for @self. + +Suffix will be shown at the end of the item's row, or before the arrow in +the [enum@Adw.SidebarMode.page] mode. + + + + + + + a sidebar item + + + + the suffix widget + + + + + + Sets the title of @self. + + + + + + + a sidebar item + + + + the title + + + + + + Sets the tooltip of @self. + +The tooltip can be marked up with the Pango text markup language. + + + + + + + a sidebar item + + + + the tooltip + + + + + + Sets whether an underline in the title indicates a mnemonic. + +The mnemonic can be used to activate the item. + + + + + + + a sidebar item + + + + whether an underline in the text indicates a mnemonic + + + + + + Sets whether @self is visible. + + + + + + + a sidebar item + + + + whether the item is visible + + + + + + Whether to activate the item on pointer motion during Drag-and-Drop. + +This is needed to be able to drag content into the page the item +represents, when the sidebar is used as a page switcher. However, it may be +unwanted when dropping content onto the item itself, so it can be disabled. + + + + Whether the item is enabled. + +See [property@Gtk.Widget:sensitive]. + + + + The icon name for this item. + +Mutually exclusive with [property@SidebarItem:icon-paintable]. + + + + The paintable to use as the icon for this item. + +Mutually exclusive with [property@SidebarItem:icon-name]. + + + + The prefix widget for this item. + +Prefix will be shown at the start of the item's row, before the icon. + + + + The section the item is in. + + + + Subtitle of the item. + + + + The suffix widget for this item. + +Suffix will be shown at the end of the item's row, or before the arrow in +the [enum@Adw.SidebarMode.page] mode. + + + + Title of the item. + + + + The tooltip of the item. + +The tooltip can be marked up with the Pango text markup language. + + + + Whether an underline in the title indicates a mnemonic. + +The mnemonic can be used to activate the item. + + + + Whether the item is visible. + + + + + + + + + + The parent class + + + + + + + + + + Determines how an [class@Sidebar] should look and behave. + +See [property@Sidebar:mode] and [property@ViewSwitcherSidebar:mode]. + + The sidebar should be displayed as a sidebar + + + The sidebar should be displayed as boxed lists page + + + + A section within [class@Sidebar]. + +`AdwSidebarSection` contains [class@SidebarItem] objects. + +Section can optionally have a title, set with the +[property@SidebarSection:title] property. If a title is not set, the section +will have a separator in front of it, or just spacing in the +[enum@Adw.SidebarMode.page] mode. + +Sections can also have an arbitrary suffix widget, set with the +[property@SidebarSection:suffix] properties. It will be displayed at the end +of its header. + +To add items, use [method@SidebarSection.append], +[method@SidebarSection.prepend] or [method@SidebarSection.insert]. + +To remove items, use [method@SidebarSection.remove] or +[method@SidebarSection.remove_all]. + +To inspect the items, use [method@SidebarSection.get_item] or +[property@SidebarSection:items]. + +To get the sidebar the section is in, use[property@SidebarSection:sidebar]. + +## Binding models + +`AdwSidebarSection` can show items from a provided [iface@Gio.ListModel], +using [method@SidebarSection.bind_model]. It works the same way as +[method@Gtk.ListBox.bind_model], except the provided function creates an +[class@SidebarItem] rather than a [class@Gtk.ListBoxRow]. + +While a model is bound, adding or removing items manually is not allowed. +Inspecting them is still allowed, but discouraged. + +## `AdwSidebarSection` as `GtkBuildable` + +`AdwSidebarSection` allows adding items as children. + +Example of an `AdwSidebarSection` UI definition: + +```xml +<object class="AdwSidebarSection"> + <property name="title" translatable="yes">Places</property> + <child> + <object class="AdwSidebarItem"> + <property name="title" translatable="yes">Music</property> + <property name="icon-name">folder-music-symbolic</property> + </object> + </child> + <child> + <object class="AdwSidebarItem"> + <property name="title" translatable="yes">Pictures</property> + <property name="icon-name">folder-pictures-symbolic</property> + </object> + </child> + <child> + <object class="AdwSidebarItem"> + <property name="title" translatable="yes">Videos</property> + <property name="icon-name">folder-videos-symbolic</property> + </object> + </child> +</object> +``` + +Result: + +<picture> + <source srcset="sidebar-section-dark.png" media="(prefers-color-scheme: dark)"> + <img src="sidebar-section.png" alt="sidebar-section"> +</picture> + + + + Creates a new `AdwSidebarSection`. + + + the newly created `AdwSidebarSection` + + + + + Appends @item to @self. + +Cannot be used while a model is bound via [method@SidebarSection.bind_model]. + + + + + + + a sidebar section + + + + an item to append + + + + + + Binds @model to @self. + +If @self was already bound to a model, that previous binding is +destroyed. + +The contents of @self are cleared and then filled with items that +represent items from @model. @self is updated whenever @model changes. + +If @model is `NULL`, @self is left empty. + +Calling [method@SidebarSection.prepend], [method@SidebarSection.insert], +[method@SidebarSection.append], [method@SidebarSection.remove] or +[method@SidebarSection.remove_all] while a model is bound is not allowed. + +Accessing items and modifying them is allowed, but the changes will be erased +whenever that part of the model changes, so it's not recommended. + + + + + + + a sidebar section + + + + the model to be bound + + + + + a function that creates [class@SidebarItem] for model items, or `NULL` in + case @model is also `NULL` + + + + user data passed to @create_widget_func + + + + function for freeing @user_data + + + + + + Gets the item at @index within @self. + +The index starts from 0 at the top of the section, and is same as the one +returned by [method@SidebarItem.get_section_index]. + +Can return `NULL` if @index is larger or equal to the number of items. + + + the item at @index + + + + + a sidebar section + + + + index of the item + + + + + + Gets a list model with @self's items. + +This can be used to keep an up-to-date view. + + + a model containing the items + + + + + a sidebar section + + + + + + Gets the context menu model for @self's items. + + + the context menu model + + + + + a sidebar section + + + + + + Gets the sidebar @self is in. + + + the sidebar of @self + + + + + a sidebar section + + + + + + Gets the suffix widget for @self. + + + the suffix widget + + + + + a sidebar section + + + + + + Gets the title of @self. + + + the title + + + + + a sidebar section + + + + + + Inserts @item at @position to @self. + +If @position is -1, or larger than the total number of items in @self, +the item will be appended to the end. + +Cannot be used while a model is bound via [method@SidebarSection.bind_model]. + + + + + + + a sidebar section + + + + an item to insert + + + + position to insert @item at + + + + + + Prepends @item to @self. + +Cannot be used while a model is bound via [method@SidebarSection.bind_model]. + + + + + + + a sidebar section + + + + an item to prepend + + + + + + Removes @item from @self. + +Cannot be used while a model is bound via [method@SidebarSection.bind_model]. + + + + + + + a sidebar section + + + + an item to remove + + + + + + Removes all items from @self. + +Cannot be used while a model is bound via [method@SidebarSection.bind_model]. + + + + + + + a sidebar section + + + + + + Sets the context menu model for @self's items. + +When a context menu is shown for an item, it will be constructed from the +provided menu model. Use the [signal@Sidebar::setup-menu] signal to set up +the menu actions for the particular item. + +If not set, [property@Sidebar:menu-model] will be used instead. + + + + + + + a sidebar section + + + + a menu model + + + + + + Sets the suffix widget for @self. + +Suffix will be shown at the end of the header. + + + + + + + a sidebar section + + + + the suffix widget + + + + + + Sets the title of @self. + +If set, it will be displayed instead of the separator before the section. + + + + + + + a sidebar section + + + + the title + + + + + + A list model with the section's items. + +This can be used to keep an up-to-date view. + + + + Context menu model for the section items. + +When a context menu is shown for an item, it will be constructed from the +provided menu model. Use the [signal@Sidebar::setup-menu] signal to set up +the menu actions for the particular item. + +If not set, [property@Sidebar:menu-model] will be used instead. + + + + The sidebar the section is in. + + + + The suffix widget for this section. + +Suffix will be displayed at the end of the header. + + + + Title of the section. + +If set, it will be displayed instead of the separator before the section. + + + + + + + + + + + Called for sidebars that are bound to a [iface@Gio.ListModel] with +[method@SidebarSection.bind_model] for each +item that gets added to the model. + + + an `AdwSidebarItem` that represents @item + + + + + the item from the model for which to create an item for + + + + user data + + + + + + An [class@ActionRow] with an embedded spin button. + +<picture> + <source srcset="spin-row-dark.png" media="(prefers-color-scheme: dark)"> + <img src="spin-row.png" alt="spin-row"> +</picture> + +Example of an `AdwSpinRow` UI definition: + +```xml +<object class="AdwSpinRow"> + <property name="title" translatable="yes">Spin Row</property> + <property name="adjustment"> + <object class="GtkAdjustment"> + <property name="lower">0</property> + <property name="upper">100</property> + <property name="value">50</property> + <property name="page-increment">10</property> + <property name="step-increment">1</property> + </object> + </property> +</object> +``` + +See [class@Gtk.SpinButton] for details. + +## CSS nodes + +`AdwSpinRow` has the same structure as [class@ActionRow], as well as the +`.spin` style class on the main node. + +## Accessibility + +`AdwSpinRow` uses an internal `GtkSpinButton` with the +[enum@Gtk.AccessibleRole.spin-button] role. + + + + + + + + Creates a new `AdwSpinRow`. + + + the newly created `AdwSpinRow` + + + + + the adjustment that this spin row should use + + + + the rate the value changes when holding a button or key + + + + the number of decimal places to display + + + + + + Creates a new `AdwSpinRow` with the given properties. + +This is a convenience constructor that allows creation of a numeric +`AdwSpinRow` without manually creating an adjustment. The value is initially +set to the minimum value and a page increment of 10 * @step is the default. +The precision of the spin row is equivalent to the precisions of @step. + +::: note + The way in which the precision is derived works best if @step is a power + of ten. If the resulting precision is not suitable for your needs, use + [method@SpinRow.set_digits] to correct it. + + + the new `AdwSpinRow` + + + + + minimum allowable value + + + + maximum allowable value + + + + increment added or subtracted by spinning the widget + + + + + + Changes the properties of an existing spin row. + +The adjustment, climb rate, and number of decimal places are updated +accordingly. + + + + + + + a spin row + + + + the adjustment that this spin row should use + + + + the new climb rate + + + + the number of decimal places to display + + + + + + Gets the adjustment that holds the value for the spin row. + + + the adjustment that holds the spin row's value + + + + + a spin row + + + + + + Gets the acceleration rate when you hold down a button or key. + + + the acceleration rate when you hold down a button or key + + + + + a spin row + + + + + + Gets the number of decimal places to display. + + + the number of decimal places to display + + + + + a spin row + + + + + + Gets whether non-numeric characters should be ignored. + + + whether non-numeric characters should be ignored. + + + + + a spin row + + + + + + Gets whether invalid values are snapped to nearest step increment. + + + whether invalid values are snapped to the nearest step increment + + + + + a spin row + + + + + + Gets the policy for updating the spin row. + + + the policy for updating the spin row + + + + + a spin row + + + + + + Gets the current value. + + + the current value + + + + + a spin row + + + + + + Gets whether the spin row should wrap upon reaching its limits. + + + whether the spin row should wrap upon reaching its limits + + + + + a spin row + + + + + + Sets the adjustment that holds the value for the spin row. + + + + + + + a spin row + + + + an adjustment + + + + + + Sets the acceleration rate when you hold down a button or key. + + + + + + + a spin row + + + + the acceleration rate when you hold down a button or key + + + + + + Sets the number of decimal places to display. + + + + + + + a spin row + + + + the number of decimal places to display + + + + + + Sets whether non-numeric characters should be ignored. + + + + + + + a spin row + + + + whether non-numeric characters should be ignored + + + + + + Sets the minimum and maximum allowable values for @self. + +If the current value is outside this range, it will be adjusted +to fit within the range, otherwise it will remain unchanged. + + + + + + + a spin row + + + + minimum allowable value + + + + maximum allowable value + + + + + + Sets whether invalid values are snapped to the nearest step increment. + + + + + + + a spin row + + + + whether invalid values are snapped to the nearest step increment + + + + + + Sets the policy for updating the spin row. + +The options are always, or only when the value is invalid. + + + + + + + a spin row + + + + the policy for updating the spin row + + + + + + Sets the current value. + + + + + + + a spin row + + + + a new value + + + + + + Sets whether the spin row should wrap upon reaching its limits. + + + + + + + a spin row + + + + whether the spin row should wrap upon reaching its limits + + + + + + Manually force an update of the spin row. + + + + + + + a spin row + + + + + + The adjustment that holds the value of the spin row. + + + + The acceleration rate when you hold down a button or key. + + + + The number of decimal places to display. + + + + Whether non-numeric characters should be ignored. + + + + Whether invalid values are snapped to the nearest step increment. + + + + The policy for updating the spin row. + +The options are always, or only when the value is invalid. + + + + The current value. + + + + Whether the spin row should wrap upon reaching its limits. + + + + Emitted to convert the user's input into a double value. + +The signal handler is expected to use [method@Gtk.Editable.get_text] to +retrieve the text of the spinbutton and set new_value to the new value. + +The default conversion uses [func@GLib.strtod]. + +See [signal@Gtk.SpinButton::input]. + + `TRUE` for a successful conversion, `FALSE` if the input was not + handled, and [const@Gtk.INPUT_ERROR] if the conversion failed. + + + + + return location for the new value + + + + + + Emitted to tweak the formatting of the value for display. + +See [signal@Gtk.SpinButton::output]. + + `TRUE` if the value has been displayed + + + + + Emitted right after the spinbutton wraps. + +See [signal@Gtk.SpinButton::wrapped]. + + + + + + + + + + + + + A widget showing a loading spinner. + +<picture> + <source srcset="spinner-dark.png" media="(prefers-color-scheme: dark)"> + <img src="spinner.png" alt="spinner"> +</picture> + +The size of the spinner depends on the available size, never smaller than +16×16 pixels and never larger than 64×64 pixels. + +Use the [property@Gtk.Widget:halign] and [property@Gtk.Widget:valign] +properties in combination with [property@Gtk.Widget:width-request] and +[property@Gtk.Widget:height-request] for fine sizing control. + +For example, the following snippet shows the spinner at 48×48 pixels: + +```xml +<object class="AdwSpinner"> + <property name="halign">center</property> + <property name="valign">center</property> + <property name="width-request">48</property> + <property name="height-request">48</property> +</object> +``` + +See [class@SpinnerPaintable] for cases where using a widget is impractical or +impossible, such as [property@StatusPage:paintable]. + +## CSS nodes + +`AdwSpinner` has a single node with the name `image` and the style class +`.spinner`. + +## Accessibility + +`AdwSpinner` uses the [enum@Gtk.AccessibleRole.progress-bar] role. + + + + + + Creates a new `AdwSpinner`. + + + the newly created `AdwSpinner` + + + + + + + + + + + + A paintable showing a loading spinner. + +<picture> + <source srcset="spinner-dark.png" media="(prefers-color-scheme: dark)"> + <img src="spinner.png" alt="spinner"> +</picture> + +`AdwSpinnerPaintable` size varies depending on the available space, but is +capped at 64×64 pixels. + +To be able to animate, `AdwSpinnerPaintable` needs a widget. It will be +animated according to that widget's frame clock, and only if that widget is +mapped. Ideally it should be the same widget the paintable is displayed in, +but that's not a requirement. + +Most applications should be using [class@Spinner] instead. +`AdwSpinnerPaintable` is provided for the cases where using a widget is +impractical or impossible, such as [property@StatusPage:paintable]: + +```xml +<object class="AdwStatusPage" id="status_page"> + <property name="paintable"> + <object class="AdwSpinnerPaintable"> + <property name="widget">status_page</property> + </object> + </property> + <!-- ... --> +</object> +``` + + + + + Creates a new `AdwSpinnerPaintable` for @widget. + + + the newly created `AdwSpinnerPaintable` + + + + + the widget used for frame clock + + + + + + Gets the widget used for frame clock. + + + the widget + + + + + a spinner paintable + + + + + + Sets the widget used for frame clock. + + + + + + + a spinner paintable + + + + the widget to use for frame clock + + + + + + The widget the spinner uses for frame clock. + + + + + + + + + + + A combined button and dropdown widget. + +<picture> + <source srcset="split-button-dark.png" media="(prefers-color-scheme: dark)"> + <img src="split-button.png" alt="split-button"> +</picture> + +`AdwSplitButton` is typically used to present a set of actions in a menu, +but allow access to one of them with a single click. + +The API is very similar to [class@Gtk.Button] and [class@Gtk.MenuButton], see +their documentation for details. + +## CSS nodes + +``` +splitbutton[.image-button][.text-button] +├── button +│ ╰── <content> +├── separator +╰── menubutton + ╰── button.toggle + ╰── arrow +``` + +`AdwSplitButton`'s CSS node is called `splitbutton`. It contains the css +nodes: `button`, `separator`, `menubutton`. See [class@Gtk.MenuButton] +documentation for the `menubutton` contents. + +The main CSS node will contain the `.image-button` or `.text-button` style +classes matching the button contents. The nested button nodes will never +contain them. + +## Style classes + +`AdwSplitButton` can use some of the same style classes as [class@Gtk.Button]: + +- [`.suggested-action`](style-classes.html#suggested-action) +- [`.destructive-action`](style-classes.html#destructive-action) +- [`.flat`](style-classes.html#flat) +- [`.raised`](style-classes.html#raised) + +Other style classes, like `.pill`, cannot be used. + +## Accessibility + +`AdwSplitButton` uses the [enum@Gtk.AccessibleRole.group] role. + + + + + + + Creates a new `AdwSplitButton`. + + + the newly created `AdwSplitButton` + + + + + gets whether the button can be smaller than the natural size of its contents. + + + whether the button can shrink + + + + + a split button + + + + + + Gets the child widget. + + + the child widget + + + + + a split button + + + + + + Gets the direction in which the popup will be popped up. + + + the direction + + + + + a split button + + + + + + Gets the tooltip of the dropdown button of @self. + + + the dropdown tooltip of @self + + + + + a split button + + + + + + Gets the name of the icon used to automatically populate the button. + + + the icon name + + + + + a split button + + + + + + Gets the label for @self. + + + the label for @self + + + + + a split button + + + + + + Gets the menu model from which the popup will be created. + + + the menu model + + + + + a split button + + + + + + Gets the popover that will be popped up when the dropdown is clicked. + + + the popover + + + + + a split button + + + + + + Gets whether an underline in the text indicates a mnemonic. + + + whether an underline in the text indicates a mnemonic + + + + + a split button + + + + + + Dismisses the menu. + + + + + + + a split button + + + + + + Pops up the menu. + + + + + + + a split button + + + + + + Sets whether the button can be smaller than the natural size of its contents. + +If set to `TRUE`, the label will ellipsize. + +See [method@Gtk.Button.set_can_shrink] and +[method@Gtk.MenuButton.set_can_shrink]. + + + + + + + a split button + + + + whether the button can shrink + + + + + + Sets the child widget. + +Setting the child widget will set [property@SplitButton:label] and +[property@SplitButton:icon-name] to `NULL`. + + + + + + + a split button + + + + the new child widget + + + + + + Sets the direction in which the popup will be popped up. + +The dropdown arrow icon will point at the same direction. + +If the does not fit in the available space in the given direction, GTK will +try its best to keep it inside the screen and fully visible. + +[enum@Gtk.ArrowType.none] behaves same as [enum@Gtk.ArrowType.down]. + + + + + + + a split button + + + + the direction + + + + + + Sets the tooltip of the dropdown button of @self. + +The tooltip can be marked up with the Pango text markup language. + + + + + + + a split button + + + + the dropdown tooltip of @self + + + + + + Sets the name of the icon used to automatically populate the button. + +Setting the icon name will set [property@SplitButton:label] and +[property@SplitButton:child] to `NULL`. + + + + + + + a split button + + + + the icon name to set + + + + + + Sets the label for @self. + +Setting the label will set [property@SplitButton:icon-name] and +[property@SplitButton:child] to `NULL`. + + + + + + + a split button + + + + the label to set + + + + + + Sets the menu model from which the popup will be created. + +If the menu model is `NULL`, the dropdown is disabled. + +A [class@Gtk.Popover] will be created from the menu model with +[ctor@Gtk.PopoverMenu.new_from_model]. Actions will be connected as +documented for this function. + +If [property@SplitButton:popover] is already set, it will be dissociated from +the button, and the property is set to `NULL`. + + + + + + + a split button + + + + the menu model + + + + + + Sets the popover that will be popped up when the dropdown is clicked. + +If the popover is `NULL`, the dropdown is disabled. + +If [property@SplitButton:menu-model] is set, the menu model is dissociated +from the button, and the property is set to `NULL`. + + + + + + + a split button + + + + the popover + + + + + + Sets whether an underline in the text indicates a mnemonic. + +See [property@SplitButton:label]. + + + + + + + a split button + + + + whether an underline in the text indicates a mnemonic + + + + + + Whether the button can be smaller than the natural size of its contents. + +If set to `TRUE`, the label will ellipsize. + +See [property@Gtk.Button:can-shrink] and +[property@Gtk.MenuButton:can-shrink]. + + + + The child widget. + +Setting the child widget will set [property@SplitButton:label] and +[property@SplitButton:icon-name] to `NULL`. + + + + The direction in which the popup will be popped up. + +The dropdown arrow icon will point at the same direction. + +If the does not fit in the available space in the given direction, GTK will +try its best to keep it inside the screen and fully visible. + +[enum@Gtk.ArrowType.none] behaves same as [enum@Gtk.ArrowType.down]. + + + + The tooltip of the dropdown button. + +The tooltip can be marked up with the Pango text markup language. + + + + The name of the icon used to automatically populate the button. + +Setting the icon name will set [property@SplitButton:label] and +[property@SplitButton:child] to `NULL`. + + + + The label for the button. + +Setting the label will set [property@SplitButton:icon-name] and +[property@SplitButton:child] to `NULL`. + + + + The `GMenuModel` from which the popup will be created. + +If the menu model is `NULL`, the dropdown is disabled. + +A [class@Gtk.Popover] will be created from the menu model with +[ctor@Gtk.PopoverMenu.new_from_model]. Actions will be connected as +documented for this function. + +If [property@SplitButton:popover] is already set, it will be dissociated +from the button, and the property is set to `NULL`. + + + + The `GtkPopover` that will be popped up when the dropdown is clicked. + +If the popover is `NULL`, the dropdown is disabled. + +If [property@SplitButton:menu-model] is set, the menu model is dissociated +from the button, and the property is set to `NULL`. + + + + Whether an underline in the text indicates a mnemonic. + +See [property@SplitButton:label]. + + + + Emitted to animate press then release. + +This is an action signal. Applications should never connect to this signal, +but use the [signal@SplitButton::clicked] signal. + + + + + + Emitted when the button has been activated (pressed and released). + + + + + + + + + + + + + A spring-based [class@Animation]. + +`AdwSpringAnimation` implements an animation driven by a physical model of a +spring described by [struct@SpringParams], with a resting position in +[property@SpringAnimation:value-to], stretched to +[property@SpringAnimation:value-from]. + +Since the animation is physically simulated, spring animations don't have a +fixed duration. The animation will stop when the simulated spring comes to a +rest - when the amplitude of the oscillations becomes smaller than +[property@SpringAnimation:epsilon], or immediately when it reaches +[property@SpringAnimation:value-to] if +[property@SpringAnimation:clamp] is set to `TRUE`. The estimated duration can +be obtained with [property@SpringAnimation:estimated-duration]. + +Due to the nature of spring-driven motion the animation can overshoot +[property@SpringAnimation:value-to] before coming to a rest. Whether the +animation will overshoot or not depends on the damping ratio of the spring. +See [struct@SpringParams] for more information about specific damping ratio +values. + +If [property@SpringAnimation:clamp] is `TRUE`, the animation will abruptly +end as soon as it reaches the final value, preventing overshooting. + +Animations can have an initial velocity value, set via +[property@SpringAnimation:initial-velocity], which adjusts the curve without +changing the duration. This makes spring animations useful for deceleration +at the end of gestures. + +If the initial and final values are equal, and the initial velocity is not 0, +the animation value will bounce and return to its resting position. + + + Creates a new `AdwSpringAnimation` on @widget. + +The animation will animate @target from @from to @to with the dynamics of a +spring described by @spring_params. + + + the newly created animation + + + + + a widget to create animation on + + + + a value to animate from + + + + a value to animate to + + + + physical parameters of the spring + + + + a target value to animate + + + + + + Calculates the value @self will have at @time. + +The time starts at 0 and ends at +[property@SpringAnimation:estimated_duration]. + +See also [method@SpringAnimation.calculate_velocity]. + + + the value at @time + + + + + a spring animation + + + + elapsed time, in milliseconds + + + + + + Calculates the velocity @self will have at @time. + +The time starts at 0 and ends at +[property@SpringAnimation:estimated_duration]. + +See also [method@SpringAnimation.calculate_value]. + + + the velocity at @time + + + + + a spring animation + + + + elapsed time, in milliseconds + + + + + + Gets whether @self should be clamped. + + + whether @self is clamped + + + + + a spring animation + + + + + + Gets the precision of the spring. + + + the epsilon value + + + + + a spring animation + + + + + + Gets the estimated duration of @self, in milliseconds. + +Can be [const@DURATION_INFINITE] if the spring damping is set to 0. + + + the estimated duration + + + + + a spring animation + + + + + + Gets the initial velocity of @self. + + + the initial velocity + + + + + a spring animation + + + + + + Gets the physical parameters of the spring of @self. + + + the spring parameters + + + + + a spring animation + + + + + + Gets the value @self will animate from. + + + the value to animate from + + + + + a spring animation + + + + + + Gets the value @self will animate to. + + + the value to animate to + + + + + a spring animation + + + + + + Gets the current velocity of @self. + + + the current velocity + + + + + a spring animation + + + + + + Sets whether @self should be clamped. + +If set to `TRUE`, the animation will abruptly end as soon as it reaches the +final value, preventing overshooting. + +It won't prevent overshooting [property@SpringAnimation:value-from] if a +relative negative [property@SpringAnimation:initial-velocity] is set. + + + + + + + a spring animation + + + + the new value + + + + + + Sets the precision of the spring. + +The level of precision used to determine when the animation has come to a +rest, that is, when the amplitude of the oscillations becomes smaller than +this value. + +If the epsilon value is too small, the animation will take a long time to +stop after the animated value has stopped visibly changing. + +If the epsilon value is too large, the animation will end prematurely. + +The default value is 0.001. + + + + + + + a spring animation + + + + the new value + + + + + + Sets the initial velocity of @self. + +Initial velocity affects only the animation curve, but not its duration. + + + + + + + a spring animation + + + + the initial velocity + + + + + + Sets the physical parameters of the spring of @self. + + + + + + + a spring animation + + + + the new spring parameters + + + + + + Sets the value @self will animate from. + +The animation will start at this value and end at +[property@SpringAnimation:value-to]. + + + + + + + a spring animation + + + + the value to animate from + + + + + + Sets the value @self will animate to. + +The animation will start at [property@SpringAnimation:value-from] and end at +this value. + + + + + + + a spring animation + + + + the value to animate to + + + + + + Whether the animation should be clamped. + +If set to `TRUE`, the animation will abruptly end as soon as it reaches the +final value, preventing overshooting. + +It won't prevent overshooting [property@SpringAnimation:value-from] if a +relative negative [property@SpringAnimation:initial-velocity] is set. + + + + Precision of the spring. + +The level of precision used to determine when the animation has come to a +rest, that is, when the amplitude of the oscillations becomes smaller than +this value. + +If the epsilon value is too small, the animation will take a long time to +stop after the animated value has stopped visibly changing. + +If the epsilon value is too large, the animation will end prematurely. + +The default value is 0.001. + + + + Estimated duration of the animation, in milliseconds. + +Can be [const@DURATION_INFINITE] if the spring damping is set to 0. + + + + The initial velocity to start the animation with. + +Initial velocity affects only the animation curve, but not its duration. + + + + Physical parameters describing the spring. + + + + The value to animate from. + +The animation will start at this value and end at +[property@SpringAnimation:value-to]. + + + + The value to animate to. + +The animation will start at [property@SpringAnimation:value-from] and end +at this value. + + + + Current velocity of the animation. + + + + + + + + Physical parameters of a spring for [class@SpringAnimation]. + +Any spring can be described by three parameters: mass, stiffness and damping. + +An undamped spring will produce an oscillatory motion which will go on +forever. + +The frequency and amplitude of the oscillations will be determined by the +stiffness (how "strong" the spring is) and its mass (how much "inertia" it +has). + +If damping is larger than 0, the amplitude of that oscillating motion will +exponientally decrease over time. If that damping is strong enough that the +spring can't complete a full oscillation, it's called an overdamped spring. + +If we the spring can oscillate, it's called an underdamped spring. + +The value between these two behaviors is called critical damping; a +critically damped spring will comes to rest in the minimum possible time +without producing oscillations. + +The damping can be replaced by damping ratio, which produces the following +springs: + +* 0: an undamped spring. +* Between 0 and 1: an underdamped spring. +* 1: a critically damped spring. +* Larger than 1: an overdamped spring. + +As such + + + Creates a new `AdwSpringParams` from @mass, @stiffness and @damping_ratio. + +The damping value is calculated from @damping_ratio and the other two +parameters. + +* If @damping_ratio is 0, the spring will not be damped and will oscillate + endlessly. +* If @damping_ratio is between 0 and 1, the spring is underdamped and will + always overshoot. +* If @damping_ratio is 1, the spring is critically damped and will reach its + resting position the quickest way possible. +* If @damping_ratio is larger than 1, the spring is overdamped and will reach + its resting position faster than it can complete an oscillation. + +[ctor@SpringParams.new_full] allows to pass a raw damping value instead. + + + the newly created spring parameters + + + + + the damping ratio of the spring + + + + the mass of the spring + + + + the stiffness of the spring + + + + + + Creates a new `AdwSpringParams` from @mass, @stiffness and @damping. + +See [ctor@SpringParams.new] for a simplified constructor using damping ratio +instead of @damping. + + + the newly created spring parameters + + + + + the damping of the spring + + + + the mass of the spring + + + + the stiffness of the spring + + + + + + Gets the damping of @self. + + + the damping + + + + + spring params + + + + + + Gets the damping ratio of @self. + + + the damping ratio + + + + + spring params + + + + + + Gets the mass of @self. + + + the mass + + + + + spring params + + + + + + Gets the stiffness of @self. + + + the stiffness + + + + + spring params + + + + + + Increases the reference count of @self. + + + @self + + + + + spring params + + + + + + Decreases the reference count of @self. + +If the last reference is dropped, the structure is freed. + + + + + + + spring params + + + + + + + A best fit container. + +<picture> + <source srcset="squeezer-wide-dark.png" media="(prefers-color-scheme: dark)"> + <img src="squeezer-wide.png" alt="squeezer-wide"> +</picture> +<picture> + <source srcset="squeezer-narrow-dark.png" media="(prefers-color-scheme: dark)"> + <img src="squeezer-narrow.png" alt="squeezer-narrow"> +</picture> + +The `AdwSqueezer` widget is a container which only shows the first of its +children that fits in the available size. It is convenient to offer different +widgets to represent the same data with different levels of detail, making +the widget seem to squeeze itself to fit in the available space. + +Transitions between children can be animated as fades. This can be controlled +with [property@Squeezer:transition-type]. + +## CSS nodes + +`AdwSqueezer` has a single CSS node with name `squeezer`. + See [the migration guide](migrating-to-breakpoints.html#replace-adwsqueezer) + + + + + + + Creates a new `AdwSqueezer`. + See [the migration guide](migrating-to-breakpoints.html#replace-adwsqueezer) + + + the newly created `AdwSqueezer` + + + + + Adds a child to @self. + See [the migration guide](migrating-to-breakpoints.html#replace-adwsqueezer) + + + the [class@SqueezerPage] for @child + + + + + a squeezer + + + + the widget to add + + + + + + Gets whether to allow squeezing beyond the last child's minimum size. + See [the migration guide](migrating-to-breakpoints.html#replace-adwsqueezer) + + + whether @self allows squeezing beyond the last child + + + + + a squeezer + + + + + + Gets whether all children have the same size for the opposite orientation. + See [the migration guide](migrating-to-breakpoints.html#replace-adwsqueezer) + + + whether @self is homogeneous + + + + + a squeezer + + + + + + Gets whether @self interpolates its size when changing the visible child. + See [the migration guide](migrating-to-breakpoints.html#replace-adwsqueezer) + + + whether the size is interpolated + + + + + A squeezer + + + + + + Returns the [class@SqueezerPage] object for @child. + See [the migration guide](migrating-to-breakpoints.html#replace-adwsqueezer) + + + the page object for @child + + + + + a squeezer + + + + a child of @self + + + + + + Returns a [iface@Gio.ListModel] that contains the pages of @self. + +This can be used to keep an up-to-date view. The model also implements +[iface@Gtk.SelectionModel] and can be used to track the visible page. + See [the migration guide](migrating-to-breakpoints.html#replace-adwsqueezer) + + + a `GtkSelectionModel` for the squeezer's children + + + + + a squeezer + + + + + + Gets the switch threshold policy for @self. + See [the migration guide](migrating-to-breakpoints.html#replace-adwsqueezer) + + + the fold threshold policy + + + + + a squeezer + + + + + + Gets the transition animation duration for @self. + See [the migration guide](migrating-to-breakpoints.html#replace-adwsqueezer) + + + the transition duration, in milliseconds + + + + + a squeezer + + + + + + Gets whether a transition is currently running for @self. + +If a transition is impossible, the property value will be set to `TRUE` and +then immediately to `FALSE`, so it's possible to rely on its notifications +to know that a transition has happened. + See [the migration guide](migrating-to-breakpoints.html#replace-adwsqueezer) + + + whether a transition is currently running + + + + + a squeezer + + + + + + Gets the type of animation used for transitions between children in @self. + See [the migration guide](migrating-to-breakpoints.html#replace-adwsqueezer) + + + the current transition type of @self + + + + + a squeezer + + + + + + Gets the currently visible child of @self. + See [the migration guide](migrating-to-breakpoints.html#replace-adwsqueezer) + + + the visible child + + + + + a squeezer + + + + + + Gets the horizontal alignment, from 0 (start) to 1 (end). + See [the migration guide](migrating-to-breakpoints.html#replace-adwsqueezer) + + + the alignment value + + + + + a squeezer + + + + + + Gets the vertical alignment, from 0 (top) to 1 (bottom). + See [the migration guide](migrating-to-breakpoints.html#replace-adwsqueezer) + + + the alignment value + + + + + a squeezer + + + + + + Removes a child widget from @self. + See [the migration guide](migrating-to-breakpoints.html#replace-adwsqueezer) + + + + + + + a squeezer + + + + the child to remove + + + + + + Sets whether to allow squeezing beyond the last child's minimum size. + +If set to `TRUE`, the squeezer can shrink to the point where no child can be +shown. This is functionally equivalent to appending a widget with 0×0 minimum +size. + See [the migration guide](migrating-to-breakpoints.html#replace-adwsqueezer) + + + + + + + a squeezer + + + + whether @self allows squeezing beyond the last child + + + + + + Sets whether all children have the same size for the opposite orientation. + +For example, if a squeezer is horizontal and is homogeneous, it will request +the same height for all its children. If it isn't, the squeezer may change +size when a different child becomes visible. + See [the migration guide](migrating-to-breakpoints.html#replace-adwsqueezer) + + + + + + + a squeezer + + + + whether @self is homogeneous + + + + + + Sets whether @self interpolates its size when changing the visible child. + +If `TRUE`, the squeezer will interpolate its size between the one of the +previous visible child and the one of the new visible child, according to the +set transition duration and the orientation, e.g. if the squeezer is +horizontal, it will interpolate the its height. + See [the migration guide](migrating-to-breakpoints.html#replace-adwsqueezer) + + + + + + + A squeezer + + + + whether to interpolate the size + + + + + + Sets the switch threshold policy for @self. + +Determines when the squeezer will switch children. + +If set to [enum@Adw.FoldThresholdPolicy.minimum], it will only switch when +the visible child cannot fit anymore. With [enum@Adw.FoldThresholdPolicy.natural], +it will switch as soon as the visible child doesn't get their natural size. + +This can be useful if you have a long ellipsizing label and want to let it +ellipsize instead of immediately switching. + See [the migration guide](migrating-to-breakpoints.html#replace-adwsqueezer) + + + + + + + a squeezer + + + + the policy to use + + + + + + Sets the transition animation duration for @self. + See [the migration guide](migrating-to-breakpoints.html#replace-adwsqueezer) + + + + + + + a squeezer + + + + the new duration, in milliseconds + + + + + + Sets the type of animation used for transitions between children in @self. + See [the migration guide](migrating-to-breakpoints.html#replace-adwsqueezer) + + + + + + + a squeezer + + + + the new transition type + + + + + + Sets the horizontal alignment, from 0 (start) to 1 (end). + +This affects the children allocation during transitions, when they exceed the +size of the squeezer. + +For example, 0.5 means the child will be centered, 0 means it will keep the +start side aligned and overflow the end side, and 1 means the opposite. + See [the migration guide](migrating-to-breakpoints.html#replace-adwsqueezer) + + + + + + + a squeezer + + + + the new alignment value + + + + + + Sets the vertical alignment, from 0 (top) to 1 (bottom). + +This affects the children allocation during transitions, when they exceed the +size of the squeezer. + +For example, 0.5 means the child will be centered, 0 means it will keep the +top side aligned and overflow the bottom side, and 1 means the opposite. + See [the migration guide](migrating-to-breakpoints.html#replace-adwsqueezer) + + + + + + + a squeezer + + + + the new alignment value + + + + + + Whether to allow squeezing beyond the last child's minimum size. + +If set to `TRUE`, the squeezer can shrink to the point where no child can +be shown. This is functionally equivalent to appending a widget with 0×0 +minimum size. + See [the migration guide](migrating-to-breakpoints.html#replace-adwsqueezer) + + + + Whether all children have the same size for the opposite orientation. + +For example, if a squeezer is horizontal and is homogeneous, it will +request the same height for all its children. If it isn't, the squeezer may +change size when a different child becomes visible. + See [the migration guide](migrating-to-breakpoints.html#replace-adwsqueezer) + + + + Whether the squeezer interpolates its size when changing the visible child. + +If `TRUE`, the squeezer will interpolate its size between the one of the +previous visible child and the one of the new visible child, according to +the set transition duration and the orientation, e.g. if the squeezer is +horizontal, it will interpolate the its height. + See [the migration guide](migrating-to-breakpoints.html#replace-adwsqueezer) + + + + A selection model with the squeezer's pages. + +This can be used to keep an up-to-date view. The model also implements +[iface@Gtk.SelectionModel] and can be used to track the visible page. + See [the migration guide](migrating-to-breakpoints.html#replace-adwsqueezer) + + + + The switch threshold policy. + +Determines when the squeezer will switch children. + +If set to [enum@Adw.FoldThresholdPolicy.minimum], it will only switch when +the visible child cannot fit anymore. With [enum@Adw.FoldThresholdPolicy.natural], +it will switch as soon as the visible child doesn't get their natural size. + +This can be useful if you have a long ellipsizing label and want to let it +ellipsize instead of immediately switching. + See [the migration guide](migrating-to-breakpoints.html#replace-adwsqueezer) + + + + The transition animation duration, in milliseconds. + See [the migration guide](migrating-to-breakpoints.html#replace-adwsqueezer) + + + + Whether a transition is currently running. + +If a transition is impossible, the property value will be set to `TRUE` and +then immediately to `FALSE`, so it's possible to rely on its notifications +to know that a transition has happened. + See [the migration guide](migrating-to-breakpoints.html#replace-adwsqueezer) + + + + The type of animation used for transitions between children. + See [the migration guide](migrating-to-breakpoints.html#replace-adwsqueezer) + + + + The currently visible child. + See [the migration guide](migrating-to-breakpoints.html#replace-adwsqueezer) + + + + The horizontal alignment, from 0 (start) to 1 (end). + +This affects the children allocation during transitions, when they exceed +the size of the squeezer. + +For example, 0.5 means the child will be centered, 0 means it will keep the +start side aligned and overflow the end side, and 1 means the opposite. + See [the migration guide](migrating-to-breakpoints.html#replace-adwsqueezer) + + + + The vertical alignment, from 0 (top) to 1 (bottom). + +This affects the children allocation during transitions, when they exceed +the size of the squeezer. + +For example, 0.5 means the child will be centered, 0 means it will keep the +top side aligned and overflow the bottom side, and 1 means the opposite. + See [the migration guide](migrating-to-breakpoints.html#replace-adwsqueezer) + + + + + + + + + + + An auxiliary class used by [class@Squeezer]. + See [the migration guide](migrating-to-breakpoints.html#replace-adwsqueezer) + + + Returns the squeezer child to which @self belongs. + See [the migration guide](migrating-to-breakpoints.html#replace-adwsqueezer) + + + the child to which @self belongs + + + + + a squeezer page + + + + + + Gets whether @self is enabled. + See [the migration guide](migrating-to-breakpoints.html#replace-adwsqueezer) + + + whether @self is enabled + + + + + a squeezer page + + + + + + Sets whether @self is enabled. + +If a child is disabled, it will be ignored when looking for the child +fitting the available size best. + +This allows to programmatically and prematurely hide a child even if it fits +in the available space. + +This can be used e.g. to ensure a certain child is hidden below a certain +window width, or any other constraint you find suitable. + See [the migration guide](migrating-to-breakpoints.html#replace-adwsqueezer) + + + + + + + a squeezer page + + + + whether @self is enabled + + + + + + The the squeezer child to which the page belongs. + See [the migration guide](migrating-to-breakpoints.html#replace-adwsqueezer) + + + + Whether the child is enabled. + +If a child is disabled, it will be ignored when looking for the child +fitting the available size best. + +This allows to programmatically and prematurely hide a child even if it +fits in the available space. + +This can be used e.g. to ensure a certain child is hidden below a certain +window width, or any other constraint you find suitable. + See [the migration guide](migrating-to-breakpoints.html#replace-adwsqueezer) + + + + + + + + + + + Describes the possible transitions in a [class@Squeezer] widget. + See [the migration guide](migrating-to-breakpoints.html#replace-adwsqueezer) + + No transition + + + A cross-fade + + + + A page used for empty/error states and similar use-cases. + +<picture> + <source srcset="status-page-dark.png" media="(prefers-color-scheme: dark)"> + <img src="status-page.png" alt="status-page"> +</picture> + +The `AdwStatusPage` widget can have an icon, a title, a description and a +custom widget which is displayed below them. + +## CSS nodes + +`AdwStatusPage` has a main CSS node with name `statuspage`. + +When setting an [class@SpinnerPaintable] as [property@StatusPage:paintable], +the main nodes gains the `.spinner` style class for a more compact +appearance. + +## Style classes + +`AdwStatusPage` can use the +[`.compact`](style-classes.html#compact-status-page) style class for when it +needs to fit into a small space such a sidebar or a popover, similar to when +using a spinner as the paintable. + +<picture> + <source srcset="status-page-compact-dark.png" media="(prefers-color-scheme: dark)"> + <img src="status-page-compact.png" alt="status-page-compact"> +</picture> + + + + + + Creates a new `AdwStatusPage`. + + + the newly created `AdwStatusPage` + + + + + Gets the child widget of @self. + + + the child widget of @self + + + + + a status page + + + + + + Gets the description markup for @self. + + + the description + + + + + a status page + + + + + + Gets the icon name for @self. + + + the icon name + + + + + a status page + + + + + + Gets the paintable for @self. + + + the paintable + + + + + a status page + + + + + + Gets the title for @self. + + + the title + + + + + a status page + + + + + + Sets the child widget of @self. + + + + + + + a status page + + + + the child widget + + + + + + Sets the description markup for @self. + +The description is displayed below the title. It is parsed as Pango markup. + + + + + + + a status page + + + + the description + + + + + + Sets the icon name for @self. + +Changing this will set [property@StatusPage:paintable] to `NULL`. + + + + + + + a status page + + + + the icon name + + + + + + Sets the paintable for @self. + +Changing this will set [property@StatusPage:icon-name] to `NULL`. + + + + + + + a status page + + + + the paintable + + + + + + Sets the title for @self. + +The title is displayed below the icon. It is not parsed as Pango markup. + + + + + + + a status page + + + + the title + + + + + + The child widget. + + + + The description markup to be displayed below the title. + + + + The name of the icon to be used. + +Changing this will set [property@StatusPage:paintable] to `NULL`. + + + + The paintable to be used. + +Changing this will set [property@StatusPage:icon-name] to `NULL`. + + + + The title to be displayed below the icon. + +It is not parsed as Pango markup. + + + + + + + + + + + A class for managing application-wide styling. + +`AdwStyleManager` provides a way to query and influence the application +styles, such as whether to use dark style, the system accent color or high +contrast appearance. + +It allows to set the color scheme via the +[property@StyleManager:color-scheme] property, and to query the current +appearance, as well as whether a system-wide color scheme and accent color +preferences exists. + + + Gets the default `AdwStyleManager` instance. + +It manages all [class@Gdk.Display] instances unless the style manager for +that display has an override. + +See [func@StyleManager.get_for_display]. + + + the default style manager + + + + + Gets the `AdwStyleManager` instance managing @display. + +It can be used to override styles for that specific display instead of the +whole application. + +Most applications should use [func@StyleManager.get_default] instead. + + + the style manager for @display + + + + + a `GdkDisplay` + + + + + + Gets the current system accent color. + +See also [property@StyleManager:accent-color-rgba]. + + + the current system accent color + + + + + a style manager + + + + + + Gets the current system accent color as a `GdkRGBA`. + +Equivalent to calling [func@AccentColor.to_rgba] on the value of +[property@StyleManager:accent-color]. + +This is a background color. The matching foreground color is white. + + + the current system accent color + + + + + a style manager + + + + + + Gets the requested application color scheme. + + + the color scheme + + + + + a style manager + + + + + + Gets whether the application is using dark appearance. + +This can be used to query the current appearance, as requested via +[property@StyleManager:color-scheme]. + + + whether the application is using dark appearance + + + + + a style manager + + + + + + Gets the display the style manager is associated with. + +The display will be `NULL` for the style manager returned by +[func@StyleManager.get_default]. + + + the display + + + + + a style manager + + + + + + Gets the system document font. + +The font is in the same format as [property@Gtk.Settings:gtk-font-name], +e.g. "Adwaita Sans 12". + +Use [func@Pango.FontDescription.from_string] to parse it. + + + the system document font + + + + + a style manager + + + + + + Gets whether the application is using high contrast appearance. + +This cannot be overridden by applications. + + + whether the application is using high contrast appearance + + + + + a style manager + + + + + + Gets the system monospace font. + +The font is in the same format as [property@Gtk.Settings:gtk-font-name], +e.g. "Adwaita Mono 11". + +Use [func@Pango.FontDescription.from_string] to parse it. + + + the system monospace font + + + + + a style manager + + + + + + Gets whether the system supports accent colors. + +This can be used to check if the current environment provides an accent color +preference. For example, applications might want to show a preference for +choosing accent color if it's set to `FALSE`. + +See [property@StyleManager:accent-color]. + + + whether the system supports accent colors + + + + + a style manager + + + + + + Gets whether the system supports color schemes. + +This can be used to check if the current environment provides a color scheme +preference. For example, applications might want to show a separate +appearance switcher if it's set to `FALSE`. + + + whether the system supports color schemes + + + + + a style manager + + + + + + Sets the requested application color scheme. + +The effective appearance will be decided based on the application color +scheme and the system preferred color scheme. The +[property@StyleManager:dark] property can be used to query the current +effective appearance. + +The [enum@Adw.ColorScheme.prefer-light] color scheme results in the +application using light appearance unless the system prefers dark colors. +This is the default value. + +The [enum@Adw.ColorScheme.prefer-dark] color scheme results in the +application using dark appearance, but can still switch to the light +appearance if the system can prefers it, for example, when the high contrast +preference is enabled. + +The [enum@Adw.ColorScheme.force-light] and [enum@Adw.ColorScheme.force-dark] +values ignore the system preference entirely. They are useful if the +application wants to match its UI to its content or to provide a separate +color scheme switcher. + +If a per-[class@Gdk.Display] style manager has its color scheme set to +[enum@Adw.ColorScheme.default], it will inherit the color scheme from the +default style manager. + +For the default style manager, [enum@Adw.ColorScheme.default] is equivalent +to [enum@Adw.ColorScheme.prefer-light]. + +The [property@StyleManager:system-supports-color-schemes] property can be +used to check if the current environment provides a color scheme +preference. + + + + + + + a style manager + + + + the color scheme + + + + + + The current system accent color. + +See also [property@StyleManager:accent-color-rgba]. + + + + The current system accent color as a `GdkRGBA`. + +Equivalent to calling [func@AccentColor.to_rgba] on the value of +[property@StyleManager:accent-color]. + +This is a background color. The matching foreground color is white. + + + + The requested application color scheme. + +The effective appearance will be decided based on the application color +scheme and the system preferred color scheme. The +[property@StyleManager:dark] property can be used to query the current +effective appearance. + +The [enum@Adw.ColorScheme.prefer-light] color scheme results in the +application using light appearance unless the system prefers dark colors. +This is the default value. + +The [enum@Adw.ColorScheme.prefer-dark] color scheme results in the +application using dark appearance, but can still switch to the light +appearance if the system can prefers it, for example, when the high +contrast preference is +enabled. + +The [enum@Adw.ColorScheme.force-light] and [enum@Adw.ColorScheme.force-dark] +values ignore the system preference entirely. They are useful if the +application wants to match its UI to its content or to provide a separate +color scheme switcher. + +If a per-[class@Gdk.Display] style manager has its color scheme set to +[enum@Adw.ColorScheme.default], it will inherit the color scheme from the +default style manager. + +For the default style manager, [enum@Adw.ColorScheme.default] is equivalent +to [enum@Adw.ColorScheme.prefer-light]. + +The [property@StyleManager:system-supports-color-schemes] property can be +used to check if the current environment provides a color scheme +preference. + + + + Whether the application is using dark appearance. + +This property can be used to query the current appearance, as requested via +[property@StyleManager:color-scheme]. + + + + The display the style manager is associated with. + +The display will be `NULL` for the style manager returned by +[func@StyleManager.get_default]. + + + + The system document font. + +The font is in the same format as [property@Gtk.Settings:gtk-font-name], +e.g. "Adwaita Sans 12". + +Use [func@Pango.FontDescription.from_string] to parse it. + + + + Whether the application is using high contrast appearance. + +This cannot be overridden by applications. + + + + The system monospace font. + +The font is in the same format as [property@Gtk.Settings:gtk-font-name], +e.g. "Adwaita Mono 11". + +Use [func@Pango.FontDescription.from_string] to parse it. + + + + Whether the system supports accent colors. + +This property can be used to check if the current environment provides an +accent color preference. For example, applications might want to show a +preference for choosing accent color if it's set to `FALSE`. + +See [property@StyleManager:accent-color]. + + + + Whether the system supports color schemes. + +This property can be used to check if the current environment provides a +color scheme preference. For example, applications might want to show a +separate appearance switcher if it's set to `FALSE`. + +See [property@StyleManager:color-scheme]. + + + + + + + + + + + A swipe tracker used in [class@Carousel], [class@NavigationView] and +[class@OverlaySplitView]. + +The `AdwSwipeTracker` object can be used for implementing widgets with swipe +gestures. It supports touch-based swipes, pointer dragging, and touchpad +scrolling. + +The widgets will probably want to expose the [property@SwipeTracker:enabled] +property. If they expect to use horizontal orientation, +[property@SwipeTracker:reversed] can be used for supporting RTL text +direction. + + + + Creates a new `AdwSwipeTracker` for @widget. + + + the newly created `AdwSwipeTracker` + + + + + a widget to add the tracker on + + + + + + Gets whether to allow swiping for more than one snap point at a time. + + + whether long swipes are allowed + + + + + a swipe tracker + + + + + + Gets whether @self can be dragged with mouse pointer. + + + whether mouse dragging is allowed + + + + + a swipe tracker + + + + + + Gets whether to allow touchscreen swiping from `GtkWindowHandle`. + + + whether swiping from window handles is allowed + + + + + a swipe tracker + + + + + + Gets whether @self is enabled. + + + whether @self is enabled + + + + + a swipe tracker + + + + + + Gets whether to allow swiping past the first available snap point. + + + whether to allow swiping past the first available snap point + + + + + a swipe tracker + + + + + + Gets whether @self is reversing the swipe direction. + + + whether the direction is reversed + + + + + a swipe tracker + + + + + + Get the widget @self is attached to. + + + the swipeable widget + + + + + a swipe tracker + + + + + + Gets whether to allow swiping past the last available snap point. + + + whether to allow swiping past the last available snap point + + + + + a swipe tracker + + + + + + Sets whether to allow swiping for more than one snap point at a time. + +If the value is `FALSE`, each swipe can only move to the adjacent snap +points. + + + + + + + a swipe tracker + + + + whether to allow long swipes + + + + + + Sets whether @self can be dragged with mouse pointer. + + + + + + + a swipe tracker + + + + whether to allow mouse dragging + + + + + + Sets whether to allow touchscreen swiping from `GtkWindowHandle`. + +Setting it to `TRUE` will make dragging the window impossible. + + + + + + + a swipe tracker + + + + whether to allow swiping from window handles + + + + + + Sets whether @self is enabled. + +When it's not enabled, no events will be processed. Usually widgets will want +to expose this via a property. + + + + + + + a swipe tracker + + + + whether @self is enabled + + + + + + Sets whether to allow swiping past the first available snap point. + + + + + + + a swipe tracker + + + + whether to allow swiping past the first available snap point + + + + + + Sets whether to reverse the swipe direction. + +If the swipe tracker is horizontal, it can be used for supporting RTL text +direction. + + + + + + + a swipe tracker + + + + whether to reverse the swipe direction + + + + + + Sets whether to allow swiping past the last available snap point. + + + + + + + a swipe tracker + + + + whether to allow swiping past the last available snap point + + + + + + Moves the current progress value by @delta. + +This can be used to adjust the current position if snap points move during +the gesture. + + + + + + + a swipe tracker + + + + the position delta + + + + + + Whether to allow swiping for more than one snap point at a time. + +If the value is `FALSE`, each swipe can only move to the adjacent snap +points. + + + + Whether to allow dragging with mouse pointer. + + + + Whether to allow touchscreen swiping from `GtkWindowHandle`. + +This will make dragging the window impossible. + + + + Whether the swipe tracker is enabled. + +When it's not enabled, no events will be processed. Usually widgets will +want to expose this via a property. + + + + Whether to allow swiping past the first available snap point. + + + + Whether to reverse the swipe direction. + +If the swipe tracker is horizontal, it can be used for supporting RTL text +direction. + + + + The widget the swipe tracker is attached to. + + + + Whether to allow swiping past the last available snap point. + + + + This signal is emitted right before a swipe will be started, after the +drag threshold has been passed. + + + + + + This signal is emitted as soon as the gesture has stopped. + +The user is expected to animate the deceleration from the current progress +value to @to with an animation using @velocity as the initial velocity, +provided in pixels per second. [class@SpringAnimation] is usually a good +fit for this. + + + + + + the velocity of the swipe + + + + the progress value to animate to + + + + + + This signal is emitted when a possible swipe is detected. + +The @direction value can be used to restrict the swipe to a certain +direction. + + + + + + the direction of the swipe + + + + + + This signal is emitted every time the progress value changes. + + + + + + the current animation progress value + + + + + + + + + + + + + An interface for swipeable widgets. + +The `AdwSwipeable` interface is implemented by all swipeable widgets. + +See [class@SwipeTracker] for details about implementing it. + + + + Gets the progress @self will snap back to after the gesture is canceled. + + + the cancel progress, unitless + + + + + a swipeable + + + + + + Gets the swipe distance of @self. + +This corresponds to how many pixels 1 unit represents. + + + the swipe distance in pixels + + + + + a swipeable + + + + + + Gets the current progress of @self. + + + the current progress, unitless + + + + + a swipeable + + + + + + Gets the snap points of @self. + +Each snap point represents a progress value that is considered acceptable to +end the swipe on. + + + the snap points + + + + + + + a swipeable + + + + location to return the number of the snap points + + + + + + Gets the area @self can start a swipe from for the given direction and +gesture type. + +This can be used to restrict swipes to only be possible from a certain area, +for example, to only allow edge swipes, or to have a draggable element and +ignore swipes elsewhere. + +If not implemented, the default implementation returns the allocation of +@self, allowing swipes from anywhere. + + + + + + + a swipeable + + + + the direction of the swipe + + + + whether the swipe is caused by a dragging gesture + + + + a pointer to a rectangle to store the swipe area + + + + + + Gets the progress @self will snap back to after the gesture is canceled. + + + the cancel progress, unitless + + + + + a swipeable + + + + + + Gets the swipe distance of @self. + +This corresponds to how many pixels 1 unit represents. + + + the swipe distance in pixels + + + + + a swipeable + + + + + + Gets the current progress of @self. + + + the current progress, unitless + + + + + a swipeable + + + + + + Gets the snap points of @self. + +Each snap point represents a progress value that is considered acceptable to +end the swipe on. + + + the snap points + + + + + + + a swipeable + + + + location to return the number of the snap points + + + + + + Gets the area @self can start a swipe from for the given direction and +gesture type. + +This can be used to restrict swipes to only be possible from a certain area, +for example, to only allow edge swipes, or to have a draggable element and +ignore swipes elsewhere. + +If not implemented, the default implementation returns the allocation of +@self, allowing swipes from anywhere. + + + + + + + a swipeable + + + + the direction of the swipe + + + + whether the swipe is caused by a dragging gesture + + + + a pointer to a rectangle to store the swipe area + + + + + + + An interface for swipeable widgets. + + + The parent interface. + + + + Gets the swipe distance. + + + + the swipe distance in pixels + + + + + a swipeable + + + + + + + Gets the snap points. + + + + the snap points + + + + + + + a swipeable + + + + location to return the number of the snap points + + + + + + + Gets the current progress. + + + + the current progress, unitless + + + + + a swipeable + + + + + + + Gets the cancel progress. + + + + the cancel progress, unitless + + + + + a swipeable + + + + + + + Gets the swipeable rectangle. + + + + + + + + a swipeable + + + + the direction of the swipe + + + + whether the swipe is caused by a dragging gesture + + + + a pointer to a rectangle to store the swipe area + + + + + + + + + + + + + A [class@Gtk.ListBoxRow] used to represent two states. + +<picture> + <source srcset="switch-row-dark.png" media="(prefers-color-scheme: dark)"> + <img src="switch-row.png" alt="switch-row"> +</picture> + +The `AdwSwitchRow` widget contains a [class@Gtk.Switch] that allows the user +to select between two states: "on" or "off". When activated, the row will +invert its active state. + +The user can control the switch by activating the row or by dragging on the +switch handle. + +See [class@Gtk.Switch] for details. + +Example of an `AdwSwitchRow` UI definition: +```xml +<object class="AdwSwitchRow"> + <property name="title" translatable="yes">Switch Row</property> + <signal name="notify::active" handler="switch_row_notify_active_cb"/> +</object> +``` + +The [property@SwitchRow:active] property should be connected to in order to +monitor changes to the active state. + +## Accessibility + +`AdwSwitchRow` uses the [enum@Gtk.AccessibleRole.switch] role. + + + + + + + Creates a new `AdwSwitchRow`. + + + the newly created `AdwSwitchRow` + + + + + Gets whether @self is in its "on" or "off" position. + + + whether @self is active or not + + + + + a switch row + + + + + + Sets whether @self is in its "on" or "off" position + + + + + + + a switch row + + + + whether @self should be active + + + + + + Whether the switch row is in the "on" or "off" position. + + + + + + + + + + + A tab bar for [class@TabView]. + +<picture> + <source srcset="tab-bar-dark.png" media="(prefers-color-scheme: dark)"> + <img src="tab-bar.png" alt="tab-bar"> +</picture> + +The `AdwTabBar` widget is a tab bar that can be used with conjunction with +`AdwTabView`. It is typically used as a top bar within [class@ToolbarView]. + +`AdwTabBar` can autohide and can optionally contain action widgets on both +sides of the tabs. + +When there's not enough space to show all the tabs, `AdwTabBar` will scroll +them. Pinned tabs always stay visible and aren't a part of the scrollable +area. + +## Drag-and-Drop + +`AdwTabBar` tabs can have an additional drop target for arbitrary content. + +Use [method@TabBar.setup_extra_drop_target] to set it up, specifying the +supported content types and drag actions, then connect to +[signal@TabBar::extra-drag-drop] to handle a drop. + +In some cases, it may be necessary to determine the used action based on the +content. In that case, set [property@TabBar:extra-drag-preload] to `TRUE` +and connect to [signal@TabBar::extra-drag-value] signal, then return the +action from its handler. To access this action from the +[signal@TabBar::extra-drag-drop] handler, use the +[property@TabBar:extra-drag-preferred-action] property. + +[signal@TabBar::extra-drag-value] is also always emitted when starting to +hover an item, with a `NULL` value. This happens even when +[property@TabBar:extra-drag-preload] is `FALSE`. + +## CSS nodes + +`AdwTabBar` has a single CSS node with name `tabbar`. + +## Style classes + +By default `AdwTabBar` look like a part of an `AdwHeaderBar` and is intended +to be used directly attached to one or used as a [class@ToolbarView] toolbar. +The [`.inline`](style-classes.html#inline) style class removes its background, +so that it can be used in different contexts instead. + +<picture> + <source srcset="tab-bar-inline-dark.png" media="(prefers-color-scheme: dark)"> + <img src="tab-bar-inline.png" alt="tab-bar-inline"> +</picture> + + + + + + Creates a new `AdwTabBar`. + + + the newly created `AdwTabBar` + + + + + Gets whether the tabs automatically hide. + + + whether the tabs automatically hide + + + + + a tab bar + + + + + + Gets the widget shown after the tabs. + + + the widget shown after the tabs + + + + + a tab bar + + + + + + Gets whether tabs expand to full width. + + + whether tabs expand to full width. + + + + + a tab bar + + + + + + Gets the current drag action during a drop. + +This method should only be used from inside a +[signal@TabBar::extra-drag-drop] handler. + +The action will be a subset of what was originally passed to +[method@TabBar.setup_extra_drop_target]. + + + the drag action of the current drop + + + + + a tab bar + + + + + + Gets whether drop data should be preloaded on hover. + + + whether drop data should be preloaded on hover + + + + + a tab bar + + + + + + Gets whether tabs use inverted layout. + + + whether tabs use inverted layout + + + + + a tab bar + + + + + + Gets whether @self is overflowing. + +If `TRUE`, all tabs cannot be displayed at once and require scrolling. + + + whether @self is overflowing + + + + + a tab bar + + + + + + Gets the widget shown before the tabs. + + + the widget shown before the tabs + + + + + a tab bar + + + + + + Gets whether the tabs are currently revealed. + +See [property@TabBar:autohide]. + + + whether the tabs are currently revealed + + + + + a tab bar + + + + + + Gets the tab view @self controls. + + + the view @self controls + + + + + a tab bar + + + + + + Sets whether the tabs automatically hide. + +If set to `TRUE`, the tab bar disappears when [property@TabBar:view] has 0 +or 1 tab, no pinned tabs, and no tab is being transferred. + +See [property@TabBar:tabs-revealed]. + + + + + + + a tab bar + + + + whether the tabs automatically hide + + + + + + Sets the widget to show after the tabs. + + + + + + + a tab bar + + + + the widget to show after the tabs + + + + + + Sets whether tabs expand to full width. + +If set to `TRUE`, the tabs will always vary width filling the whole width +when possible, otherwise tabs will always have the minimum possible size. + + + + + + + a tab bar + + + + whether to expand tabs + + + + + + Sets whether drop data should be preloaded on hover. + +See [property@Gtk.DropTarget:preload]. + + + + + + + a tab bar + + + + whether to preload drop data + + + + + + Sets whether tabs tabs use inverted layout. + +If set to `TRUE`, non-pinned tabs will have the close button at the beginning +and the indicator at the end rather than the opposite. + + + + + + + a tab bar + + + + whether tabs use inverted layout + + + + + + Sets the widget to show before the tabs. + + + + + + + a tab bar + + + + the widget to show before the tabs + + + + + + Sets the tab view @self controls. + + + + + + + a tab bar + + + + a tab view + + + + + + Sets up an extra drop target on tabs. + +This allows to drag arbitrary content onto tabs, for example URLs in a web +browser. + +If a tab is hovered for a certain period of time while dragging the content, +it will be automatically selected. + +The [signal@TabBar::extra-drag-drop] signal can be used to handle the drop. + + + + + + + a tab bar + + + + the supported actions + + + + + all supported `GType`s that can be dropped + + + + + + number of @types + + + + + + Whether the tabs automatically hide. + +If set to `TRUE`, the tab bar disappears when [property@TabBar:view] has 0 +or 1 tab, no pinned tabs, and no tab is being transferred. + +See [property@TabBar:tabs-revealed]. + + + + The widget shown after the tabs. + + + + Whether tabs expand to full width. + +If set to `TRUE`, the tabs will always vary width filling the whole width +when possible, otherwise tabs will always have the minimum possible size. + + + + The current drag action during a drop. + +This property should only be used from inside a +[signal@TabBar::extra-drag-drop] handler. + +The action will be a subset of what was originally passed to +[method@TabBar.setup_extra_drop_target]. + + + + Whether the drop data should be preloaded on hover. + +See [property@Gtk.DropTarget:preload]. + + + + Whether tabs use inverted layout. + +If set to `TRUE`, non-pinned tabs will have the close button at the +beginning and the indicator at the end rather than the opposite. + + + + Whether the tab bar is overflowing. + +If `TRUE`, all tabs cannot be displayed at once and require scrolling. + + + + The widget shown before the tabs. + + + + Whether the tabs are currently revealed. + +See [property@TabBar:autohide]. + + + + The tab view the tab bar controls. + + + + Emitted when content is dropped onto a tab. + +The content must be of one of the types set up via +[method@TabBar.setup_extra_drop_target]. + +See [signal@Gtk.DropTarget::drop]. + + whether the drop was accepted + + + + + the page matching the tab the content was dropped onto + + + + the `GValue` being dropped + + + + + + Emitted when the dropped content is preloaded. + +In order for data to be preloaded, [property@TabBar:extra-drag-preload] +must be set to `TRUE`. + +The content must be of one of the types set up via +[method@TabBar.setup_extra_drop_target]. + +See [property@Gtk.DropTarget:value]. + + the preferred action for the drop + + + + + the page matching the tab the content was dropped onto + + + + the `GValue` being dropped + + + + + + + + + + + + + A button that displays the number of [class@TabView] pages. + +<picture> + <source srcset="tab-button-dark.png" media="(prefers-color-scheme: dark)"> + <img src="tab-button.png" alt="tab-button"> +</picture> + +`AdwTabButton` is a button that displays the number of pages in a given +`AdwTabView`, as well as whether one of the inactive pages needs attention. + +It's intended to be used as a visible indicator when there's no visible tab +bar, typically opening an [class@TabOverview] on click, e.g. via the +`overview.open` action name: + +```xml +<object class="AdwTabButton"> + <property name="view">view</property> + <property name="action-name">overview.open</property> +</object> +``` + +## CSS nodes + +`AdwTabButton` has a main CSS node with name `tabbutton`. + +# Accessibility + +`AdwTabButton` uses the [enum@Gtk.AccessibleRole.button] role. + + + + + + + Creates a new `AdwTabButton`. + + + the newly created `AdwTabButton` + + + + + Gets the tab view @self displays. + + + the tab view + + + + + a tab button + + + + + + Sets the tab view to display. + + + + + + + a tab button + + + + a tab view + + + + + + The view the tab button displays. + + + + Emitted to animate press then release. + +This is an action signal. Applications should never connect to this signal, +but use the [signal@TabButton::clicked] signal. + + + + + + Emitted when the button has been activated (pressed and released). + + + + + + + + + + + + + A tab overview for [class@TabView]. + +<picture> + <source srcset="tab-overview-dark.png" media="(prefers-color-scheme: dark)"> + <img src="tab-overview.png" alt="tab-overview"> +</picture> + +`AdwTabOverview` is a widget that can display tabs from an `AdwTabView` in a +grid. + +`AdwTabOverview` shows a thumbnail for each tab. By default thumbnails are +static for all pages except the selected one. They can be made always live +by setting [property@TabPage:live-thumbnail] to `TRUE`, or refreshed with +[method@TabPage.invalidate_thumbnail] or +[method@TabView.invalidate_thumbnails] otherwise. + +If the pages are too tall or too wide, the thumbnails will be cropped; use +[property@TabPage:thumbnail-xalign] and [property@TabPage:thumbnail-yalign] to +control which part of the page should be visible in this case. + +Pinned tabs are shown as smaller cards without thumbnails above the other +tabs. Unlike in [class@TabBar], they still have titles, as well as an unpin +button. + +`AdwTabOverview` provides search in open tabs. It searches in tab titles and +tooltips, as well as [property@TabPage:keyword]. + +If [property@TabOverview:enable-new-tab] is set to `TRUE`, a new tab button +will be shown. Connect to the [signal@TabOverview::create-tab] signal to use +it. + +[property@TabOverview:secondary-menu] can be used to provide a secondary menu +for the overview. Use it to add extra actions, e.g. to open a new window or +undo closed tab. + +`AdwTabOverview` is intended to be used as the direct child of the window, +with the rest of the window contents set as the [property@TabOverview:child]. +The child is expected to contain an [class@TabView]. + +`AdwTabOverview` shows window buttons by default. They can be disabled by +setting [property@TabOverview:show-start-title-buttons] and/or +[property@TabOverview:show-start-title-buttons] and/or +[property@TabOverview:show-end-title-buttons] to `FALSE`. + +If search and window buttons are disabled, and secondary menu is not set, the +header bar will be hidden. + +## Drag-and-Drop + +`AdwTabOverview` thumbnails can have an additional drop target for arbitrary +content. + +Use [method@TabOverview.setup_extra_drop_target] to set it up, specifying the +supported content types and drag actions, then connect to +[signal@TabOverview::extra-drag-drop] to handle a drop. + +In some cases, it may be necessary to determine the used action based on the +content. In that case, set [property@TabOverview:extra-drag-preload] to +`TRUE` and connect to [signal@TabOverview::extra-drag-value] signal, then +return the action from its handler. To access this action from the +[signal@TabOverview::extra-drag-drop] handler, use the +[property@TabOverview:extra-drag-preferred-action] property. + +[signal@TabOverview::extra-drag-value] is also always emitted when starting to +hover an item, with a `NULL` value. This happens even when +[property@TabOverview:extra-drag-preload] is `FALSE`. + +## Actions + +`AdwTabOverview` defines the `overview.open` and `overview.close` actions for +opening and closing itself. They can be convenient when used together with +[class@TabButton]. + +## CSS nodes + +`AdwTabOverview` has a single CSS node with name `taboverview`. + + + + + + Creates a new `AdwTabOverview`. + + + the newly created `AdwTabOverview` + + + + + Gets the child widget of @self. + + + the child widget of @self + + + + + a tab overview + + + + + + Gets whether to new tab button is enabled for @self. + + + whether new tab button is enabled + + + + + a tab overview + + + + + + Gets whether search in tabs is enabled for @self. + + + whether search is enabled + + + + + a tab overview + + + + + + Gets the current action during a drop on the extra_drop_target. + + + the drag action of the current drop. + + + + + a tab overview + + + + + + Gets the current drag action during a drop. + +This method should only be used from inside a +[signal@TabOverview::extra-drag-drop] handler. + +The action will be a subset of what was originally passed to +[method@TabOverview.setup_extra_drop_target]. + + + the drag action of the current drop + + + + + a tab overview + + + + + + Gets whether thumbnails use inverted layout. + + + whether thumbnails use inverted layout + + + + + a tab overview + + + + + + Gets whether @self is open. + + + whether the overview is open + + + + + a tab overview + + + + + + Gets whether search is currently active for @self. + +See [property@TabOverview:enable-search]. + + + whether search is active + + + + + a tab overview + + + + + + Gets the secondary menu model for @self. + + + the secondary menu model + + + + + a tab overview + + + + + + Gets whether end title buttons are shown in @self's header bar. + + + whether end title buttons are shown + + + + + a tab overview + + + + + + Gets whether start title buttons are shown in @self's header bar. + + + whether start title buttons are shown + + + + + a tab overview + + + + + + Gets the tab view @self controls. + + + the tab view + + + + + a tab overview + + + + + + Sets the child widget of @self. + + + + + + + a tab overview + + + + the child widget + + + + + + Sets whether to enable new tab button for @self. + +Connect to the [signal@TabOverview::create-tab] signal to use it. + + + + + + + a tab overview + + + + whether to enable new tab button + + + + + + Sets whether to enable search in tabs for @self. + +Search matches tab titles and tooltips, as well as keywords, set via +[property@TabPage:keyword]. Use keywords to search in e.g. page URLs in a web +browser. + +During search, tab reordering and drag-n-drop are disabled. + +Use [property@TabOverview:search-active] to check out if search is currently +active. + + + + + + + a tab overview + + + + whether to enable search + + + + + + Sets whether drop data should be preloaded on hover. + +See [property@Gtk.DropTarget:preload]. + + + + + + + a tab overview + + + + whether to preload drop data + + + + + + Sets whether thumbnails use inverted layout. + +If set to `TRUE`, thumbnails will have the close or unpin button at the +beginning and the indicator at the end rather than the other way around. + + + + + + + a tab overview + + + + whether thumbnails use inverted layout + + + + + + Sets whether the to open @self. + + + + + + + a tab overview + + + + whether the overview is open + + + + + + Sets the secondary menu model for @self. + +Use it to add extra actions, e.g. to open a new window or undo closed tab. + + + + + + + a tab overview + + + + a menu model + + + + + + Sets whether to show end title buttons in @self's header bar. + +See [property@HeaderBar:show-start-title-buttons] for the other side. + + + + + + + a tab overview + + + + whether to show end title buttons + + + + + + Sets whether to show start title buttons in @self's header bar. + +See [property@HeaderBar:show-end-title-buttons] for the other side. + + + + + + + a tab overview + + + + whether to show start title buttons + + + + + + Sets the tab view to control. + +The view must be inside @self, see [property@TabOverview:child]. + + + + + + + a tab overview + + + + a tab view + + + + + + Sets up an extra drop target on tabs. + +This allows to drag arbitrary content onto tabs, for example URLs in a web +browser. + +If a tab is hovered for a certain period of time while dragging the content, +it will be automatically selected. + +The [signal@TabOverview::extra-drag-drop] signal can be used to handle the +drop. + + + + + + + a tab overview + + + + the supported actions + + + + + all supported `GType`s that can be dropped + + + + + + number of @types + + + + + + The child widget. + + + + Whether to enable new tab button. + +Connect to the [signal@TabOverview::create-tab] signal to use it. + + + + Whether to enable search in tabs. + +Search matches tab titles and tooltips, as well as keywords, set via +[property@TabPage:keyword]. Use keywords to search in e.g. page URLs in a +web browser. + +During search, tab reordering and drag-n-drop are disabled. + +Use [property@TabOverview:search-active] to check out if search is +currently active. + + + + The current drag action during a drop. + +This property should only be used from inside a +[signal@TabOverview::extra-drag-drop] handler. + +The action will be a subset of what was originally passed to +[method@TabOverview.setup_extra_drop_target]. + + + + Whether the drop data should be preloaded on hover. + +See [property@Gtk.DropTarget:preload]. + + + + Whether thumbnails use inverted layout. + +If set to `TRUE`, thumbnails will have the close or unpin buttons at the +beginning and the indicator at the end rather than the other way around. + + + + Whether the overview is open. + + + + Whether search is currently active. + +See [property@TabOverview:enable-search]. + + + + The secondary menu model. + +Use it to add extra actions, e.g. to open a new window or undo closed tab. + + + + Whether to show end title buttons in the overview's header bar. + +See [property@HeaderBar:show-start-title-buttons] for the other side. + + + + Whether to show start title buttons in the overview's header bar. + +See [property@HeaderBar:show-end-title-buttons] for the other side. + + + + The tab view the overview controls. + +The view must be inside the tab overview, see [property@TabOverview:child]. + + + + Emitted when a tab needs to be created. + +This can happen after the new tab button has been pressed, see +[property@TabOverview:enable-new-tab]. + +The signal handler is expected to create a new page in the corresponding +[class@TabView] and return it. + + the newly created page + + + + + Emitted when content is dropped onto a tab. + +The content must be of one of the types set up via +[method@TabOverview.setup_extra_drop_target]. + +See [signal@Gtk.DropTarget::drop]. + + whether the drop was accepted + + + + + the page matching the tab the content was dropped onto + + + + the `GValue` being dropped + + + + + + Emitted when the dropped content is preloaded. + +In order for data to be preloaded, [property@TabOverview:extra-drag-preload] +must be set to `TRUE`. + +The content must be of one of the types set up via +[method@TabOverview.setup_extra_drop_target]. + +See [property@Gtk.DropTarget:value]. + + the preferred action for the drop + + + + + the page matching the tab the content was dropped onto + + + + the `GValue` being dropped + + + + + + + + + + + + + An auxiliary class used by [class@TabView]. + + + + Gets the child of @self. + + + the child of @self + + + + + a tab page + + + + + + Gets the icon of @self. + + + the icon of @self + + + + + a tab page + + + + + + Gets whether the indicator of @self is activatable. + + + whether the indicator is activatable + + + + + a tab page + + + + + + Gets the indicator icon of @self. + + + the indicator icon of @self + + + + + a tab page + + + + + + Gets the tooltip of the indicator icon of @self. + + + the indicator tooltip of @self + + + + + a tab page + + + + + + Gets the search keyword of @self. + + + the search keyword of @self + + + + + a tab page + + + + + + Gets whether to live thumbnail is enabled @self. + + + whether live thumbnail is enabled + + + + + a tab overview + + + + + + Gets whether @self is loading. + + + whether @self is loading + + + + + a tab page + + + + + + Gets whether @self needs attention. + + + whether @self needs attention + + + + + a tab page + + + + + + Gets the parent page of @self. + +See [method@TabView.add_page] and [method@TabView.close_page]. + + + the parent page + + + + + a tab page + + + + + + Gets whether @self is pinned. + +See [method@TabView.set_page_pinned]. + + + whether @self is pinned + + + + + a tab page + + + + + + Gets whether @self is selected. + + + whether @self is selected + + + + + a tab page + + + + + + Gets the horizontal alignment of the thumbnail for @self. + + + the horizontal alignment + + + + + a tab page + + + + + + Gets the vertical alignment of the thumbnail for @self. + + + the vertical alignment + + + + + a tab overview + + + + + + Gets the title of @self. + + + the title of @self + + + + + a tab page + + + + + + Gets the tooltip of @self. + + + the tooltip of @self + + + + + a tab page + + + + + + Invalidates thumbnail for @self. + +If an [class@TabOverview] is open, the thumbnail representing @self will be +immediately updated. Otherwise it will be update when opening the overview. + +Does nothing if [property@TabPage:live-thumbnail] is set to `TRUE`. + +See also [method@TabView.invalidate_thumbnails]. + + + + + + + a tab page + + + + + + Sets the icon of @self. + +[class@TabBar] and [class@TabOverview] display the icon next to the title, +unless [property@TabPage:loading] is set to `TRUE`. + +`AdwTabBar` also won't show the icon if the page is pinned and +[propertyTabPage:indicator-icon] is set. + + + + + + + a tab page + + + + the icon of @self + + + + + + Sets whether the indicator of @self is activatable. + +If set to `TRUE`, [signal@TabView::indicator-activated] will be emitted +when the indicator icon is clicked. + +If [property@TabPage:indicator-icon] is not set, does nothing. + + + + + + + a tab page + + + + whether the indicator is activatable + + + + + + Sets the indicator icon of @self. + +A common use case is an audio or camera indicator in a web browser. + +[class@TabBar] will show it at the beginning of the tab, alongside icon +representing [property@TabPage:icon] or loading spinner. + +If the page is pinned, the indicator will be shown instead of icon or +spinner. + +[class@TabOverview] will show it at the at the top part of the thumbnail. + +[property@TabPage:indicator-tooltip] can be used to set the tooltip on the +indicator icon. + +If [property@TabPage:indicator-activatable] is set to `TRUE`, the +indicator icon can act as a button. + + + + + + + a tab page + + + + the indicator icon of @self + + + + + + Sets the tooltip of the indicator icon of @self. + +The tooltip can be marked up with the Pango text markup language. + +See [property@TabPage:indicator-icon]. + + + + + + + a tab page + + + + the indicator tooltip of @self + + + + + + Sets the search keyword for @self. + +[class@TabOverview] can search pages by their keywords in addition to their +titles and tooltips. + +Keywords allow to include e.g. page URLs into tab search in a web browser. + + + + + + + a tab page + + + + the search keyword + + + + + + Sets whether to enable live thumbnail for @self. + +When set to `TRUE`, @self's thumbnail in [class@TabOverview] will update +immediately when @self is redrawn or resized. + +If it's set to `FALSE`, the thumbnail will only be live when the @self is +selected, and otherwise it will be static and will only update when +[method@TabPage.invalidate_thumbnail] or +[method@TabView.invalidate_thumbnails] is called. + + + + + + + a tab page + + + + whether to enable live thumbnail + + + + + + Sets whether @self is loading. + +If set to `TRUE`, [class@TabBar] and [class@TabOverview] will display a +spinner in place of icon. + +If the page is pinned and [property@TabPage:indicator-icon] is set, loading +status will not be visible with `AdwTabBar`. + + + + + + + a tab page + + + + whether @self is loading + + + + + + Sets whether @self needs attention. + +[class@TabBar] will display a line under the tab representing the page if +set to `TRUE`. If the tab is not visible, the corresponding edge of the tab +bar will be highlighted. + +[class@TabOverview] will display a dot in the corner of the thumbnail if set +to `TRUE`. + +[class@TabButton] will display a dot if any of the pages that aren't +selected have [property@TabPage:needs-attention] set to `TRUE`. + + + + + + + a tab page + + + + whether @self needs attention + + + + + + Sets the horizontal alignment of the thumbnail for @self. + +If the page is so wide that [class@TabOverview] can't display it completely +and has to crop it, horizontal alignment will determine which part of the +page will be visible. + +For example, 0.5 means the center of the page will be visible, 0 means the +start edge will be visible and 1 means the end edge will be visible. + +The default horizontal alignment is 0. + + + + + + + a tab page + + + + the new value + + + + + + Sets the vertical alignment of the thumbnail for @self. + +If the page is so tall that [class@TabOverview] can't display it completely +and has to crop it, vertical alignment will determine which part of the page +will be visible. + +For example, 0.5 means the center of the page will be visible, 0 means the +top edge will be visible and 1 means the bottom edge will be visible. + +The default vertical alignment is 0. + + + + + + + a tab page + + + + the new value + + + + + + [class@TabBar] will display it in the center of the tab unless it's pinned, +and will use it as a tooltip unless [property@TabPage:tooltip] is set. + +[class@TabOverview] will display it below the thumbnail unless it's pinned, +or inside the card otherwise, and will use it as a tooltip unless +[property@TabPage:tooltip] is set. + +Sets the title of @self. + + + + + + + a tab page + + + + the title of @self + + + + + + Sets the tooltip of @self. + +The tooltip can be marked up with the Pango text markup language. + +If not set, [class@TabBar] and [class@TabOverview] will use +[property@TabPage:title] as a tooltip instead. + + + + + + + a tab page + + + + the tooltip of @self + + + + + + The child of the page. + + + + The icon of the page. + +[class@TabBar] and [class@TabOverview] display the icon next to the title, +unless [property@TabPage:loading] is set to `TRUE`. + +`AdwTabBar` also won't show the icon if the page is pinned and +[propertyTabPage:indicator-icon] is set. + + + + Whether the indicator icon is activatable. + +If set to `TRUE`, [signal@TabView::indicator-activated] will be emitted +when the indicator icon is clicked. + +If [property@TabPage:indicator-icon] is not set, does nothing. + + + + An indicator icon for the page. + +A common use case is an audio or camera indicator in a web browser. + +[class@TabBar] will show it at the beginning of the tab, alongside icon +representing [property@TabPage:icon] or loading spinner. + +If the page is pinned, the indicator will be shown instead of icon or +spinner. + +[class@TabOverview] will show it at the at the top part of the thumbnail. + +[property@TabPage:indicator-tooltip] can be used to set the tooltip on the +indicator icon. + +If [property@TabPage:indicator-activatable] is set to `TRUE`, the +indicator icon can act as a button. + + + + The tooltip of the indicator icon. + +The tooltip can be marked up with the Pango text markup language. + +See [property@TabPage:indicator-icon]. + + + + The search keyboard of the page. + +[class@TabOverview] can search pages by their keywords in addition to their +titles and tooltips. + +Keywords allow to include e.g. page URLs into tab search in a web browser. + + + + Whether to enable live thumbnail for this page. + +When set to `TRUE`, the page's thumbnail in [class@TabOverview] will update +immediately when the page is redrawn or resized. + +If it's set to `FALSE`, the thumbnail will only be live when the page is +selected, and otherwise it will be static and will only update when +[method@TabPage.invalidate_thumbnail] or +[method@TabView.invalidate_thumbnails] is called. + + + + Whether the page is loading. + +If set to `TRUE`, [class@TabBar] and [class@TabOverview] will display a +spinner in place of icon. + +If the page is pinned and [property@TabPage:indicator-icon] is set, +loading status will not be visible with `AdwTabBar`. + + + + Whether the page needs attention. + +[class@TabBar] will display a line under the tab representing the page if +set to `TRUE`. If the tab is not visible, the corresponding edge of the tab +bar will be highlighted. + +[class@TabOverview] will display a dot in the corner of the thumbnail if set +to `TRUE`. + +[class@TabButton] will display a dot if any of the pages that aren't +selected have this property set to `TRUE`. + + + + The parent page of the page. + +See [method@TabView.add_page] and [method@TabView.close_page]. + + + + Whether the page is pinned. + +See [method@TabView.set_page_pinned]. + + + + Whether the page is selected. + + + + The horizontal alignment of the page thumbnail. + +If the page is so wide that [class@TabOverview] can't display it completely +and has to crop it, horizontal alignment will determine which part of the +page will be visible. + +For example, 0.5 means the center of the page will be visible, 0 means the +start edge will be visible and 1 means the end edge will be visible. + +The default horizontal alignment is 0. + + + + The vertical alignment of the page thumbnail. + +If the page is so tall that [class@TabOverview] can't display it completely +and has to crop it, vertical alignment will determine which part of the +page will be visible. + +For example, 0.5 means the center of the page will be visible, 0 means the +top edge will be visible and 1 means the bottom edge will be visible. + +The default vertical alignment is 0. + + + + The title of the page. + +[class@TabBar] will display it in the center of the tab unless it's pinned, +and will use it as a tooltip unless [property@TabPage:tooltip] is set. + +[class@TabOverview] will display it below the thumbnail unless it's pinned, +or inside the card otherwise, and will use it as a tooltip unless +[property@TabPage:tooltip] is set. + + + + The tooltip of the page. + +The tooltip can be marked up with the Pango text markup language. + +If not set, [class@TabBar] and [class@TabOverview] will use +[property@TabPage:title] as a tooltip instead. + + + + + + + + + + + A dynamic tabbed container. + +`AdwTabView` is a container which shows one child at a time. While it +provides keyboard shortcuts for switching between pages, it does not provide +a visible tab switcher and relies on external widgets for that, such as +[class@TabBar], [class@TabOverview] and [class@TabButton]. + +`AdwTabView` maintains a [class@TabPage] object for each page, which holds +additional per-page properties. You can obtain the `AdwTabPage` for a page +with [method@TabView.get_page], and as the return value for +[method@TabView.append] and other functions for adding children. + +`AdwTabView` only aims to be useful for dynamic tabs in multi-window +document-based applications, such as web browsers, file managers, text +editors or terminals. It does not aim to replace [class@Gtk.Notebook] for use +cases such as tabbed dialogs. + +As such, it does not support disabling page reordering or detaching. + +`AdwTabView` adds a number of global page switching and reordering shortcuts. +The [property@TabView:shortcuts] property can be used to manage them. + +See [flags@TabViewShortcuts] for the list of the available shortcuts. All of +the shortcuts are enabled by default. + +[method@TabView.add_shortcuts] and [method@TabView.remove_shortcuts] can be +used to manage shortcuts in a convenient way, for example: + +```c +adw_tab_view_remove_shortcuts (view, ADW_TAB_VIEW_SHORTCUT_CONTROL_HOME | + ADW_TAB_VIEW_SHORTCUT_CONTROL_END); +``` + +## CSS nodes + +`AdwTabView` has a main CSS node with the name `tabview`. + +## Accessibility + +`AdwTabView` uses the [enum@Gtk.AccessibleRole.tab-panel] role for the tab +pages which are the accessible parent objects of the child widgets. + + + + + + Creates a new `AdwTabView`. + + + the newly created `AdwTabView` + + + + + Adds @child to @self with @parent as the parent. + +This function can be used to automatically position new pages, and to select +the correct page when this page is closed while being selected (see +[method@TabView.close_page]). + +If @parent is `NULL`, this function is equivalent to [method@TabView.append]. + + + the page object representing @child + + + + + a tab view + + + + a widget to add + + + + a parent page for @child + + + + + + Adds @shortcuts for @self. + +See [property@TabView:shortcuts] for details. + + + + + + + a tab view + + + + the shortcuts to add + + + + + + Inserts @child as the last non-pinned page. + + + the page object representing @child + + + + + a tab view + + + + a widget to add + + + + + + Inserts @child as the last pinned page. + + + the page object representing @child + + + + + a tab view + + + + a widget to add + + + + + + Requests to close all pages other than @page. + + + + + + + a tab view + + + + a page of @self + + + + + + Requests to close @page. + +Calling this function will result in the [signal@TabView::close-page] signal +being emitted for @page. Closing the page can then be confirmed or +denied via [method@TabView.close_page_finish]. + +If the page is waiting for a [method@TabView.close_page_finish] call, this +function will do nothing. + +The default handler for [signal@TabView::close-page] will immediately confirm +closing the page if it's non-pinned, or reject it if it's pinned. This +behavior can be changed by registering your own handler for that signal. + +If @page was selected, another page will be selected instead: + +If the [property@TabPage:parent] value is `NULL`, the next page will be +selected when possible, or if the page was already last, the previous page +will be selected instead. + +If it's not `NULL`, the previous page will be selected if it's a descendant +(possibly indirect) of the parent. If both the previous page and the parent +are pinned, the parent will be selected instead. + + + + + + + a tab view + + + + a page of @self + + + + + + Completes a [method@TabView.close_page] call for @page. + +If @confirm is `TRUE`, @page will be closed. If it's `FALSE`, it will be +reverted to its previous state and [method@TabView.close_page] can be called +for it again. + +This function should not be called unless a custom handler for +[signal@TabView::close-page] is used. + + + + + + + a tab view + + + + a page of @self + + + + whether to confirm or deny closing @page + + + + + + Requests to close all pages after @page. + + + + + + + a tab view + + + + a page of @self + + + + + + Requests to close all pages before @page. + + + + + + + a tab view + + + + a page of @self + + + + + + Gets the default icon of @self. + + + the default icon of @self. + + + + + a tab view + + + + + + Whether a page is being transferred. + +The corresponding property will be set to `TRUE` when a drag-n-drop tab +transfer starts on any `AdwTabView`, and to `FALSE` after it ends. + +During the transfer, children cannot receive pointer input and a tab can +be safely dropped on the tab view. + + + whether a page is being transferred + + + + + a tab view + + + + + + Gets the tab context menu model for @self. + + + the tab context menu model for @self + + + + + a tab view + + + + + + Gets the number of pages in @self. + + + the number of pages in @self + + + + + a tab view + + + + + + Gets the number of pinned pages in @self. + +See [method@TabView.set_page_pinned]. + + + the number of pinned pages in @self + + + + + a tab view + + + + + + Gets the [class@TabPage] representing the child at @position. + + + the page object at @position + + + + + a tab view + + + + the index of the page in @self, starting from 0 + + + + + + Gets the [class@TabPage] object representing @child. + + + the page object for @child + + + + + a tab view + + + + a child in @self + + + + + + Finds the position of @page in @self, starting from 0. + + + the position of @page in @self + + + + + a tab view + + + + a page of @self + + + + + + Returns a [iface@Gio.ListModel] that contains the pages of @self. + +This can be used to keep an up-to-date view. + +The model implements [iface@Gtk.SectionModel], with one section for pinned +pages and one for the rest of the pages. + +It also implements [iface@Gtk.SelectionModel] and can be used to track and +change the selected page. + + + a `GtkSelectionModel` for the pages of @self + + + + + a tab view + + + + + + Gets the currently selected page in @self. + + + the selected page + + + + + a tab view + + + + + + Gets the enabled shortcuts for @self. + + + the shortcut mask + + + + + a tab view + + + + + + Inserts a non-pinned page at @position. + +It's an error to try to insert a page before a pinned page, in that case +[method@TabView.insert_pinned] should be used instead. + + + the page object representing @child + + + + + a tab view + + + + a widget to add + + + + the position to add @child at, starting from 0 + + + + + + Inserts a pinned page at @position. + +It's an error to try to insert a pinned page after a non-pinned page, in +that case [method@TabView.insert] should be used instead. + + + the page object representing @child + + + + + a tab view + + + + a widget to add + + + + the position to add @child at, starting from 0 + + + + + + Invalidates thumbnails for all pages in @self. + +This is a convenience method, equivalent to calling +[method@TabPage.invalidate_thumbnail] on each page. + + + + + + + a tab view + + + + + + Inserts @child as the first non-pinned page. + + + the page object representing @child + + + + + a tab view + + + + a widget to add + + + + + + Inserts @child as the first pinned page. + + + the page object representing @child + + + + + a tab view + + + + a widget to add + + + + + + Removes @shortcuts from @self. + +See [property@TabView:shortcuts] for details. + + + + + + + a tab view + + + + the shortcuts to remove + + + + + + Reorders @page to before its previous page if possible. + + + whether @page was moved + + + + + a tab view + + + + a page of @self + + + + + + Reorders @page to the first possible position. + + + whether @page was moved + + + + + a tab view + + + + a page of @self + + + + + + Reorders @page to after its next page if possible. + + + whether @page was moved + + + + + a tab view + + + + a page of @self + + + + + + Reorders @page to the last possible position. + + + whether @page was moved + + + + + a tab view + + + + a page of @self + + + + + + Reorders @page to @position. + +It's a programmer error to try to reorder a pinned page after a non-pinned +one, or a non-pinned page before a pinned one. + + + whether @page was moved + + + + + a tab view + + + + a page of @self + + + + the position to insert the page at, starting at 0 + + + + + + Selects the page after the currently selected page. + +If the last page was already selected, this function does nothing. + + + whether the selected page was changed + + + + + a tab view + + + + + + Selects the page before the currently selected page. + +If the first page was already selected, this function does nothing. + + + whether the selected page was changed + + + + + a tab view + + + + + + Sets the default page icon for @self. + +If a page doesn't provide its own icon via [property@TabPage:icon], a default +icon may be used instead for contexts where having an icon is necessary. + +[class@TabBar] will use default icon for pinned tabs in case the page is not +loading, doesn't have an icon and an indicator. Default icon is never used +for tabs that aren't pinned. + +[class@TabOverview] will use default icon for pages with missing thumbnails. + +By default, the `adw-tab-icon-missing-symbolic` icon is used. + + + + + + + a tab view + + + + the default icon + + + + + + Sets the tab context menu model for @self. + +When a context menu is shown for a tab, it will be constructed from the +provided menu model. Use the [signal@TabView::setup-menu] signal to set up +the menu actions for the particular tab. + + + + + + + a tab view + + + + a menu model + + + + + + Pins or unpins @page. + +Pinned pages are guaranteed to be placed before all non-pinned pages; at any +given moment the first [property@TabView:n-pinned-pages] pages in @self are +guaranteed to be pinned. + +When a page is pinned or unpinned, it's automatically reordered: pinning a +page moves it after other pinned pages; unpinning a page moves it before +other non-pinned pages. + +Pinned pages can still be reordered between each other. + +[class@TabBar] will display pinned pages in a compact form, never showing the +title or close button, and only showing a single icon, selected in the +following order: + +1. [property@TabPage:indicator-icon] +2. A spinner if [property@TabPage:loading] is `TRUE` +3. [property@TabPage:icon] +4. [property@TabView:default-icon] + +[class@TabOverview] will not show a thumbnail for pinned pages, and replace +the close button with an unpin button. Unlike `AdwTabBar`, it will still +display the page's title, icon and indicator separately. + +Pinned pages cannot be closed by default, see [signal@TabView::close-page] +for how to override that behavior. + +Changes the value of the [property@TabPage:pinned] property. + + + + + + + a tab view + + + + a page of @self + + + + whether @page should be pinned + + + + + + Sets the currently selected page in @self. + + + + + + + a tab view + + + + a page in @self + + + + + + Sets the enabled shortcuts for @self. + +See [flags@TabViewShortcuts] for the list of the available shortcuts. All of +the shortcuts are enabled by default. + +[method@TabView.add_shortcuts] and [method@TabView.remove_shortcuts] provide +a convenient way to manage individual shortcuts. + + + + + + + a tab view + + + + the new shortcuts + + + + + + Transfers @page from @self to @other_view. + +The @page object will be reused. + +It's a programmer error to try to insert a pinned page after a non-pinned +one, or a non-pinned page before a pinned one. + + + + + + + a tab view + + + + a page of @self + + + + the tab view to transfer the page to + + + + the position to insert the page at, starting at 0 + + + + + + Default page icon. + +If a page doesn't provide its own icon via [property@TabPage:icon], a +default icon may be used instead for contexts where having an icon is +necessary. + +[class@TabBar] will use default icon for pinned tabs in case the page is +not loading, doesn't have an icon and an indicator. Default icon is never +used for tabs that aren't pinned. + +[class@TabOverview] will use default icon for pages with missing +thumbnails. + +By default, the `adw-tab-icon-missing-symbolic` icon is used. + + + + Whether a page is being transferred. + +This property will be set to `TRUE` when a drag-n-drop tab transfer starts +on any `AdwTabView`, and to `FALSE` after it ends. + +During the transfer, children cannot receive pointer input and a tab can +be safely dropped on the tab view. + + + + Tab context menu model. + +When a context menu is shown for a tab, it will be constructed from the +provided menu model. Use the [signal@TabView::setup-menu] signal to set up +the menu actions for the particular tab. + + + + The number of pages in the tab view. + + + + The number of pinned pages in the tab view. + +See [method@TabView.set_page_pinned]. + + + + A list model with the tab view's pages. + +This can be used to keep an up-to-date view. + +The model implements [iface@Gtk.SectionModel], with one section for pinned +pages and one for the rest of the pages. + +It also implements [iface@Gtk.SelectionModel] and can be used to track and +change the selected page. + + + + The currently selected page. + + + + The enabled shortcuts. + +See [flags@TabViewShortcuts] for the list of the available shortcuts. All +of the shortcuts are enabled by default. + +[method@TabView.add_shortcuts] and [method@TabView.remove_shortcuts] +provide a convenient way to manage individual shortcuts. + + + + Emitted after [method@TabView.close_page] has been called for @page. + +The handler is expected to call [method@TabView.close_page_finish] to +confirm or reject the closing. + +The default handler will immediately confirm closing for non-pinned pages, +or reject it for pinned pages, equivalent to the following example: + +```c +static gboolean +close_page_cb (AdwTabView *view, + AdwTabPage *page, + gpointer user_data) +{ + adw_tab_view_close_page_finish (view, page, !adw_tab_page_get_pinned (page)); + + return GDK_EVENT_STOP; +} +``` + +The [method@TabView.close_page_finish] call doesn't have to happen inside +the handler, so can be used to do asynchronous checks before confirming the +closing. + +A typical reason to connect to this signal is to show a confirmation dialog +for closing a tab. + +The signal handler should return [const@Gdk.EVENT_STOP] to stop propagation +or [const@Gdk.EVENT_PROPAGATE] to invoke the default handler. + + whether propagation should be stopped + + + + + a page of @self + + + + + + Emitted when a tab should be transferred into a new window. + +This can happen after a tab has been dropped on desktop. + +The signal handler is expected to create a new window, position it as +needed and return its `AdwTabView` that the page will be transferred into. + + the `AdwTabView` from the new window + + + + + Emitted after the indicator icon on @page has been activated. + +See [property@TabPage:indicator-icon] and +[property@TabPage:indicator-activatable]. + + + + + + a page of @self + + + + + + Emitted when a page has been created or transferred to @self. + +A typical reason to connect to this signal would be to connect to page +signals for things such as updating window title. + + + + + + a page of @self + + + + the position of the page, starting from 0 + + + + + + Emitted when a page has been removed or transferred to another view. + +A typical reason to connect to this signal would be to disconnect signal +handlers connected in the [signal@TabView::page-attached] handler. + +It is important not to try and destroy the page child in the handler of +this function as the child might merely be moved to another window; use +child dispose handler for that or do it in sync with your +[method@TabView.close_page_finish] calls. + + + + + + a page of @self + + + + the position of the removed page, starting from 0 + + + + + + Emitted after @page has been reordered to @position. + + + + + + a page of @self + + + + the position @page was moved to, starting at 0 + + + + + + Emitted when a context menu is opened or closed for @page. + +If the menu has been closed, @page will be set to `NULL`. + +It can be used to set up menu actions before showing the menu, for example +disable actions not applicable to @page. + + + + + + a page of @self + + + + + + + + + + + + + Describes available shortcuts in an [class@TabView]. + +Shortcuts can be set with [property@TabView:shortcuts], or added/removed +individually with [method@TabView.add_shortcuts] and +[method@TabView.remove_shortcuts]. + +New values may be added to this enumeration over time. + + No shortcuts + + + <kbd>Ctrl</kbd>+<kbd>Tab</kbd> - switch to the next page + + + <kbd>Shift</kbd>+<kbd>Ctrl</kbd>+<kbd>Tab</kbd> - switch to the previous + page + + + <kbd>Ctrl</kbd>+<kbd>Page Up</kbd> - switch to the previous page + + + <kbd>Ctrl</kbd>+<kbd>Page Down</kbd> - switch to the next page + + + <kbd>Ctrl</kbd>+<kbd>Home</kbd> - switch to the first page + + + <kbd>Ctrl</kbd>+<kbd>End</kbd> - switch to the last page + + + <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>Page Up</kbd> - move the selected + page backward + + + <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>Page Down</kbd> - move the selected + page forward + + + <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>Home</kbd> - move the selected page + at the start + + + <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>End</kbd> - move the current page at + the end + + + <kbd>Alt</kbd>+<kbd>1</kbd>⋯<kbd>9</kbd> - switch to pages 1-9 + + + <kbd>Alt</kbd>+<kbd>0</kbd> - switch to page 10 + + + All of the shortcuts + + + + A time-based [class@Animation]. + +`AdwTimedAnimation` implements a simple animation interpolating the given +value from [property@TimedAnimation:value-from] to +[property@TimedAnimation:value-to] over +[property@TimedAnimation:duration] milliseconds using the curve described by +[property@TimedAnimation:easing]. + +If [property@TimedAnimation:reverse] is set to `TRUE`, `AdwTimedAnimation` +will instead animate from [property@TimedAnimation:value-to] to +[property@TimedAnimation:value-from], and the easing curve will be inverted. + +The animation can repeat a certain amount of times, or endlessly, depending +on the [property@TimedAnimation:repeat-count] value. If +[property@TimedAnimation:alternate] is set to `TRUE`, it will also change the +direction every other iteration. + + + Creates a new `AdwTimedAnimation` on @widget to animate @target from @from +to @to. + + + the newly created animation + + + + + a widget to create animation on + + + + a value to animate from + + + + a value to animate to + + + + a duration for the animation + + + + a target value to animate + + + + + + Gets whether @self changes direction on every iteration. + + + whether @self alternates + + + + + a timed animation + + + + + + Gets the duration of @self. + + + the duration of @self, in milliseconds + + + + + a timed animation + + + + + + Gets the easing function @self uses. + + + the easing function @self uses + + + + + a timed animation + + + + + + Gets the number of times @self will play. + + + the number of times @self will play + + + + + a timed animation + + + + + + Gets whether @self plays backwards. + + + whether @self plays backwards + + + + + a timed animation + + + + + + Gets the value @self will animate from. + + + the value to animate from + + + + + a timed animation + + + + + + Gets the value @self will animate to. + + + the value to animate to + + + + + a timed animation + + + + + + Sets whether @self changes direction on every iteration. + + + + + + + a timed animation + + + + whether @self alternates + + + + + + Sets the duration of @self. + +If the animation repeats more than once, sets the duration of one iteration. + + + + + + + a timed animation + + + + the duration to use, in milliseconds + + + + + + Sets the easing function @self will use. + +See [enum@Easing] for the description of specific easing functions. + + + + + + + a timed animation + + + + the easing function to use + + + + + + Sets the number of times @self will play. + +If set to 0, @self will repeat endlessly. + + + + + + + a timed animation + + + + the number of times @self will play + + + + + + Sets whether @self plays backwards. + + + + + + + a timed animation + + + + whether @self plays backwards + + + + + + Sets the value @self will animate from. + +The animation will start at this value and end at +[property@TimedAnimation:value-to]. + +If [property@TimedAnimation:reverse] is `TRUE`, the animation will end at +this value instead. + + + + + + + a timed animation + + + + the value to animate from + + + + + + Sets the value @self will animate to. + +The animation will start at [property@TimedAnimation:value-from] and end at +this value. + +If [property@TimedAnimation:reverse] is `TRUE`, the animation will start +at this value instead. + + + + + + + a timed animation + + + + the value to animate to + + + + + + Whether the animation changes direction on every iteration. + + + + Duration of the animation, in milliseconds. + +Describes how much time the animation will take. + +If the animation repeats more than once, describes the duration of one +iteration. + + + + Easing function used in the animation. + +Describes the curve the value is interpolated on. + +See [enum@Easing] for the description of specific easing functions. + + + + Number of times the animation will play. + +If set to 0, the animation will repeat endlessly. + + + + Whether the animation plays backwards. + + + + The value to animate from. + +The animation will start at this value and end at +[property@TimedAnimation:value-to]. + +If [property@TimedAnimation:reverse] is `TRUE`, the animation will end at +this value instead. + + + + The value to animate to. + +The animation will start at [property@TimedAnimation:value-from] and end at +this value. + +If [property@TimedAnimation:reverse] is `TRUE`, the animation will start +at this value instead. + + + + + + + + A helper object for [class@ToastOverlay]. + +Toasts are meant to be passed into [method@ToastOverlay.add_toast] as +follows: + +```c +adw_toast_overlay_add_toast (overlay, adw_toast_new (_("Simple Toast"))); +``` + +<picture> + <source srcset="toast-simple-dark.png" media="(prefers-color-scheme: dark)"> + <img src="toast-simple.png" alt="toast-simple"> +</picture> + +Toasts always have a close button. They emit the [signal@Toast::dismissed] +signal when disappearing. + +[property@Toast:timeout] determines how long the toast stays on screen, while +[property@Toast:priority] determines how it behaves if another toast is +already being displayed. + +Toast titles use Pango markup by default, set [property@Toast:use-markup] to +`FALSE` if this is unwanted. + +[property@Toast:custom-title] can be used to replace the title label with a +custom widget. + +## Actions + +Toasts can have one button on them, with a label and an attached +[iface@Gio.Action]. + +```c +AdwToast *toast = adw_toast_new (_("Toast with Action")); + +adw_toast_set_button_label (toast, _("_Example")); +adw_toast_set_action_name (toast, "win.example"); + +adw_toast_overlay_add_toast (overlay, toast); +``` + +<picture> + <source srcset="toast-action-dark.png" media="(prefers-color-scheme: dark)"> + <img src="toast-action.png" alt="toast-action"> +</picture> + +## Modifying toasts + +Toasts can be modified after they have been shown. For this, an `AdwToast` +reference must be kept around while the toast is visible. + +A common use case for this is using toasts as undo prompts that stack with +each other, allowing to batch undo the last deleted items: + +```c + +static void +toast_undo_cb (GtkWidget *sender, + const char *action, + GVariant *param) +{ + // Undo the deletion +} + +static void +dismissed_cb (MyWindow *self) +{ + self->undo_toast = NULL; + + // Permanently delete the items +} + +static void +delete_item (MyWindow *self, + MyItem *item) +{ + g_autofree char *title = NULL; + int n_items; + + // Mark the item as waiting for deletion + n_items = ... // The number of waiting items + + if (!self->undo_toast) { + self->undo_toast = adw_toast_new_format (_("‘%s’ deleted"), ...); + + adw_toast_set_priority (self->undo_toast, ADW_TOAST_PRIORITY_HIGH); + adw_toast_set_button_label (self->undo_toast, _("_Undo")); + adw_toast_set_action_name (self->undo_toast, "toast.undo"); + + g_signal_connect_swapped (self->undo_toast, "dismissed", + G_CALLBACK (dismissed_cb), self); + + adw_toast_overlay_add_toast (self->toast_overlay, self->undo_toast); + + return; + } + + title = + g_strdup_printf (ngettext ("<span font_features='tnum=1'>%d</span> item deleted", + "<span font_features='tnum=1'>%d</span> items deleted", + n_items), n_items); + + adw_toast_set_title (self->undo_toast, title); + + // Bump the toast timeout + adw_toast_overlay_add_toast (self->toast_overlay, g_object_ref (self->undo_toast)); +} + +static void +my_window_class_init (MyWindowClass *klass) +{ + GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); + + gtk_widget_class_install_action (widget_class, "toast.undo", NULL, toast_undo_cb); +} +``` + +<picture> + <source srcset="toast-undo-dark.png" media="(prefers-color-scheme: dark)"> + <img src="toast-undo.png" alt="toast-undo"> +</picture> + + + Creates a new `AdwToast`. + +The toast will use @title as its title. + +@title can be marked up with the Pango text markup language. + + + the new created `AdwToast` + + + + + the title to be displayed + + + + + + Creates a new `AdwToast`. + +The toast will use the format string as its title. + +See also: [ctor@Toast.new] + + + the newly created toast object + + + + + the formatted string for the toast title + + + + the parameters to insert into the format string + + + + + + Dismisses @self. + +Does nothing if @self has already been dismissed, or hasn't been added to an +[class@ToastOverlay]. + + + + + + + a toast + + + + + + Gets the name of the associated action. + + + the action name + + + + + a toast + + + + + + Gets the parameter for action invocations. + + + the action target + + + + + a toast + + + + + + Gets the label to show on the button. + + + the button label + + + + + a toast + + + + + + Gets the custom title widget of @self. + + + the custom title widget + + + + + a toast + + + + + + Gets priority for @self. + + + the priority + + + + + a toast + + + + + + Gets timeout for @self. + + + the timeout + + + + + a toast + + + + + + Gets the title that will be displayed on the toast. + +If a custom title has been set with [method@Adw.Toast.set_custom_title] +the return value will be %NULL. + + + the title + + + + + a toast + + + + + + Gets whether to use Pango markup for the toast title. + + + whether the toast uses markup + + + + + a toast + + + + + + Sets the name of the associated action. + +It will be activated when clicking the button. + +See [property@Toast:action-target]. + + + + + + + a toast + + + + the action name + + + + + + Sets the parameter for action invocations. + +This is a convenience function that calls [ctor@GLib.Variant.new] for +@format_string and uses the result to call +[method@Toast.set_action_target_value]. + +If you are setting a string-valued target and want to set +the action name at the same time, you can use +[method@Toast.set_detailed_action_name]. + + + + + + + a toast + + + + a variant format string + + + + arguments appropriate for @target_format + + + + + + Sets the parameter for action invocations. + +If the @action_target variant has a floating reference this function +will sink it. + + + + + + + a toast + + + + the action target + + + + + + Sets the label to show on the button. + +Underlines in the button text can be used to indicate a mnemonic. + +If set to `NULL`, the button won't be shown. + +See [property@Toast:action-name]. + + + + + + + a toast + + + + a button label + + + + + + Sets the custom title widget of @self. + +It will be displayed instead of the title if set. In this case, +[property@Toast:title] is ignored. + +Setting a custom title will unset [property@Toast:title]. + + + + + + + a toast + + + + the custom title widget + + + + + + Sets the action name and its parameter. + +@detailed_action_name is a string in the format accepted by +[func@Gio.Action.parse_detailed_name]. + + + + + + + a toast + + + + the detailed action name + + + + + + Sets priority for @self. + +Priority controls how the toast behaves when another toast is already +being displayed. + +If @priority is [enum@Adw.ToastPriority.normal], the toast will be queued. + +If @priority is [enum@Adw.ToastPriority.high], the toast will be displayed +immediately, pushing the previous toast into the queue instead. + + + + + + + a toast + + + + the priority + + + + + + Sets timeout for @self. + +If @timeout is 0, the toast is displayed indefinitely until manually +dismissed. + +Toasts cannot disappear while being hovered, pressed (on touchscreen), or +have keyboard focus inside them. + + + + + + + a toast + + + + the timeout + + + + + + Sets the title that will be displayed on the toast. + +The title can be marked up with the Pango text markup language. + +Setting a title will unset [property@Toast:custom-title]. + +If [property@Toast:custom-title] is set, it will be used instead. + + + + + + + a toast + + + + a title + + + + + + Whether to use Pango markup for the toast title. + +See also [func@Pango.parse_markup]. + + + + + + + a toast + + + + whether to use markup + + + + + + The name of the associated action. + +It will be activated when clicking the button. + +See [property@Toast:action-target]. + + + + The parameter for action invocations. + + + + The label to show on the button. + +Underlines in the button text can be used to indicate a mnemonic. + +If set to `NULL`, the button won't be shown. + +See [property@Toast:action-name]. + + + + The custom title widget. + +It will be displayed instead of the title if set. In this case, +[property@Toast:title] is ignored. + +Setting a custom title will unset [property@Toast:title]. + + + + The priority of the toast. + +Priority controls how the toast behaves when another toast is already +being displayed. + +If the priority is [enum@Adw.ToastPriority.normal], the toast will be +queued. + +If the priority is [enum@Adw.ToastPriority.high], the toast will be +displayed immediately, pushing the previous toast into the queue instead. + + + + The timeout of the toast, in seconds. + +If timeout is 0, the toast is displayed indefinitely until manually +dismissed. + +Toasts cannot disappear while being hovered, pressed (on touchscreen), or +have keyboard focus inside them. + + + + The title of the toast. + +The title can be marked up with the Pango text markup language. + +Setting a title will unset [property@Toast:custom-title]. + +If [property@Toast:custom-title] is set, it will be used instead. + + + + Whether to use Pango markup for the toast title. + +See also [func@Pango.parse_markup]. + + + + Emitted after the button has been clicked. + +It can be used as an alternative to setting an action. + + + + + + Emitted when the toast has been dismissed. + + + + + + + + + + + + + A widget showing toasts above its content. + +<picture> + <source srcset="toast-overlay-dark.png" media="(prefers-color-scheme: dark)"> + <img src="toast-overlay.png" alt="toast-overlay"> +</picture> + +Much like [class@Gtk.Overlay], `AdwToastOverlay` is a container with a single +main child, on top of which it can display a [class@Toast], overlaid. +Toasts can be shown with [method@ToastOverlay.add_toast]. + +Use [method@ToastOverlay.dismiss_all] to dismiss all toasts at once, or +[method@Toast.dismiss] to dismiss a single toast. + +See [class@Toast] for details. + +## CSS nodes + +``` +toastoverlay +├── [child] +├── toast +┊ ├── widget +┊ │ ├── [label.heading] + │ ╰── [custom title] + ├── [button] + ╰── button.circular.flat +``` + +`AdwToastOverlay`'s CSS node is called `toastoverlay`. It contains the child, +as well as zero or more `toast` subnodes. + +Each of the `toast` nodes contains a `widget` subnode, optionally a `button` +subnode, and another `button` subnode with `.circular` and `.flat` style +classes. + +The `widget` subnode contains a `label` subnode with the `.heading` style +class, or a custom widget provided by the application. + +## Accessibility + +`AdwToastOverlay` uses the [enum@Gtk.AccessibleRole.group] role. + + + + + + Creates a new `AdwToastOverlay`. + + + the new created `AdwToastOverlay` + + + + + Displays @toast. + +Only one toast can be shown at a time; if a toast is already being displayed, +either @toast or the original toast will be placed in a queue, depending on +the priority of @toast. See [property@Toast:priority]. + +If called on a toast that's already displayed, its timeout will be reset. + +If called on a toast currently in the queue, the toast will be bumped +forward to be shown as soon as possible. + + + + + + + a toast overlay + + + + a toast + + + + + + Dismisses all displayed toasts. + +Use [method@Toast.dismiss] to dismiss a single toast. + + + + + + + a toast overlay + + + + + + Gets the child widget of @self. + + + the child widget of @self + + + + + a toast overlay + + + + + + Sets the child widget of @self. + + + + + + + a toast overlay + + + + the child widget + + + + + + The child widget. + + + + + + + + + + + [class@Toast] behavior when another toast is already displayed. + + the toast will be queued if another toast is + already displayed. + + + the toast will be displayed immediately, pushing + the previous toast into the queue instead. + + + + A toggle within [class@ToggleGroup]. + +`AdwToggle` can optionally have a name, set with [property@Toggle:name]. +If the name is set, [property@ToggleGroup:active-name] can be used to access +toggles instead of index. + + + Creates a new `AdwToggle`. + + + the newly created `AdwToggle` + + + + + Gets the child widget of @self. + + + the toggle child + + + + + a toggle + + + + + + Gets the description of @self. + + + the toggle description + + + + + a toggle + + + + + + Gets whether @self is enabled. + + + whether the toggle is enabled + + + + + a toggle + + + + + + Gets the icon name of @self. + + + the toggle icon name + + + + + a toggle + + + + + + Gets the index of @self within its toggle group. + + + the index, or [const@Gtk.INVALID_LIST_POSITION] if it's not in a group + + + + + a toggle + + + + + + Gets the label of @self. + + + the toggle label + + + + + a toggle + + + + + + Gets the name of @self. + + + the toggle name + + + + + a toggle + + + + + + Gets the tooltip of @self. + + + the toggle tooltip + + + + + a toggle + + + + + + Gets whether @self uses underlines. + + + whether the toggle uses underlines + + + + + a toggle + + + + + + Sets the child of @self to @child. + +When the child is set, icon and label are not displayed. + +It's recommended to still set the label, as it can still be used by the +screen reader. + + + + + + + a toggle + + + + a child widget + + + + + + Sets the description of @self to @description. + +The description will be read out when using screen reader. If not set, +[property@Toggle:tooltip] will be used instead. + +See [enum@Gtk.AccessibleProperty.description]. + + + + + + + a toggle + + + + the description + + + + + + Sets whether @self is enabled. + + + + + + + a toggle + + + + whether the toggle should be enbled + + + + + + Sets the icon name of @self to @icon_name. + +The icon will be displayed alone or next to the label, unless +[property@Toggle:child] is set. + + + + + + + a toggle + + + + the icon name + + + + + + Sets the label of @self to @label. + +The label will be displayed alone or next to the icon, unless +[property@Toggle:child] is set, but will still be read out by the screen +reader. + + + + + + + a toggle + + + + a label + + + + + + Sets the name of @self to @name. + +Allows accessing @self by its name instead of index. + +See [property@ToggleGroup:active-name]. + + + + + + + a toggle + + + + a name + + + + + + Sets the tooltip of @self to @tooltip. + +@tooltip can be marked up with the Pango text markup language. + +Tooltip text will also be used as accessible description. Use +[property@Toggle:description] to set it separately. + + + + + + + a toggle + + + + the tooltip + + + + + + Sets whether an embedded underline in the label indicates a mnemonic. + +See [property@Toggle:label]. + + + + + + + a toggle + + + + whether an underline in the label indicates a mnemonic + + + + + + The toggle child. + +When the child is set, icon and label are not displayed. + +It's recommended to still set the label, as it can still be used by the +screen reader. + + + + The description of the toggle. + +The description will be read out when using screen reader. If not set, +[property@Toggle:tooltip] will be used instead. + +See [enum@Gtk.AccessibleProperty.description]. + + + + Whether this toggle is enabled. + + + + The toggle icon name. + +The icon will be displayed alone or next to the label, unless +[property@Toggle:child] is set. + + + + The toggle label. + +The label will be displayed alone or next to the icon, unless +[property@Toggle:child] is set, but will still be read out by the screen +reader. + + + + The toggle name. + +Allows accessing the toggle by its name instead of index. + +See [property@ToggleGroup:active-name]. + + + + The tooltip of the toggle. + +The tooltip can be marked up with the Pango text markup language. + +Tooltip text will also be used as accessible description. Use +[property@Toggle:description] to set it separately. + + + + Whether an embedded underline in the label indicates a mnemonic. + +See [property@Toggle:label]. + + + + + + + + + + + A group of exclusive toggles. + +<picture> + <source srcset="toggle-group-dark.png" media="(prefers-color-scheme: dark)"> + <img src="toggle-group.png" alt="toggle-group"> +</picture> + +`AdwToggleGroup` presents a set of exclusive toggles, represented as +[class@Toggle] objects. Each toggle can display an icon, a label, an icon +and a label, or a custom child. + +Toggles are indexed by their position, with the first toggle being equivalent +to 0, and so on. Use the [property@ToggleGroup:active] to get that position. + +Toggles can also have optional names, set via the [property@Toggle:name] +property. The name of the active toggle can be accessed via the +[property@ToggleGroup:active-name] property. + +`AdwToggle` objects can be retrieved via their index or name, using +[method@ToggleGroup.get_toggle] or [method@ToggleGroup.get_toggle_by_name] +respectively. `AdwToggleGroup` also provides a [iface@Gtk.SelectionModel] of +its toggles via the [property@ToggleGroup:toggles] property. + +`AdwToggleGroup` is orientable, and the toggles can be displayed horizontally +or vertically. This is mostly useful for icon-only toggles. + +Use the [property@ToggleGroup:homogeneous] property to make the toggles take +the same size, and the [property@ToggleGroup:can-shrink] to control whether +the toggles can ellipsize. + +Example of an `AdwToggleGroup` UI definition: + +```xml + <object class="AdwToggleGroup"> + <property name="active-name">picture</property> + <child> + <object class="AdwToggle"> + <property name="icon-name">camera-photo-symbolic</property> + <property name="tooltip" translatable="yes">Picture Mode</property> + <property name="name">picture</property> + </object> + </child> + <child> + <object class="AdwToggle"> + <property name="icon-name">camera-video-symbolic</property> + <property name="tooltip" translatable="yes">Recording Mode</property> + <property name="name">recording</property> + </object> + </child> + </object> +``` + +See also: [class@InlineViewSwitcher]. + +## CSS nodes + +`AdwToggleGroup` has a main CSS node with the name `toggle-group`. + +Its toggles have CSS nodes with the name `toggle`, and its separators have nodes +with the name `separator`. + +Toggle nodes will have a different style classes depending on their content: +`.text-button` for labels, `.image-button` for icons, `.image-text-button` +for both or no style class for custom children. + +The hidden separators use the `.hidden` style class. + +## Style classes + +`AdwToggleGroup` can use the [`.flat`](style-classes.html#flat_1) style class +to remove its background and make it look like a group of buttons. + +<picture> + <source srcset="toggle-group-flat-dark.png" media="(prefers-color-scheme: dark)"> + <img src="toggle-group-flat.png" alt="toggle-group-flat"> +</picture> + +It can also use the [`.round`](style-classes.html#round) style class to make +its toggles and the group itself rounded. + +<picture> + <source srcset="toggle-group-round-dark.png" media="(prefers-color-scheme: dark)"> + <img src="toggle-group-round.png" alt="toggle-group-round"> +</picture> + +They can also be combined with each other. + +<picture> + <source srcset="toggle-group-flat-round-dark.png" media="(prefers-color-scheme: dark)"> + <img src="toggle-group-flat-round.png" alt="toggle-group-flat-round"> +</picture> + +## Accessibility + +`AdwToggleGroup` uses the [enum@Gtk.AccessibleRole.radio-group] role. Its +toggles use the [enum@Gtk.AccessibleRole.radio] role. + + + + + + + Creates a new `AdwToggleGroup`. + + + the newly created `AdwToggleGroup` + + + + + Adds a toggle to @self. + + + + + + + a toggle group + + + + the toggle to add + + + + + + Gets the index of the active toggle in @self. + +Returns [const@Gtk.INVALID_LIST_POSITION] if no toggle is active. + + + the active toggle index + + + + + a toggle group + + + + + + Gets the name of the active toggle in @self. + +Can be `NULL` if the currently active toggle doesn't have a name. + +See [property@Toggle:name]. + + + the active toggle name + + + + + a toggle group + + + + + + Gets whether the toggles can be smaller than the natural size of their +contents. + + + whether the toggles can shrink + + + + + a toggle group + + + + + + Gets whether all toggles take the same size. + + + whether all toggles take the same size + + + + + a toggle group + + + + + + Gets the number of toggles within @self. + + + the number of toggles + + + + + a toggle group + + + + + + Gets the toggle with @index from @self. + + + the toggle + + + + + a toggle group + + + + toggle's index + + + + + + Gets the toggle with the name @name from @self. + + + the toggle + + + + + a toggle group + + + + toggle name + + + + + + Returns a [iface@Gio.ListModel] that contains the toggles of the group. + +This can be used to keep an up-to-date view. The model also implements +[iface@Gtk.SelectionModel] and can be used to track and change the active +toggle. + + + a `GtkSelectionModel` for the group's toggles + + + + + a toggle group + + + + + + Removes @toggle from @self. + + + + + + + a toggle group + + + + a toggle to remove + + + + + + Removes all toggles from @self. + + + + + + + a toggle group + + + + + + Sets the active toggle for @self. + +If the index is larger than the number of toggles in @self, unsets the +current active toggle. + + + + + + + a toggle group + + + + toggle index + + + + + + Sets the active toggle for @self. + +The name can be set via [property@Toggle:name]. + +If @name is `NULL`, unset the current active toggle instead. + + + + + + + a toggle group + + + + toggle name + + + + + + Sets whether the toggles can be smaller than the natural size of their +contents. + +If @can_shrink is `TRUE`, the toggle labels will ellipsize. + +See [property@Gtk.Button:can-shrink]. + + + + + + + a toggle group + + + + whether the toggles can shrink + + + + + + Sets whether all toggles take the same size. + + + + + + + a toggle group + + + + whether all toggles should take the same size + + + + + + The index of the active toggle. + +Setting the index to a larger value than the number of toggles in the group +unsets the current active toggle. + +If no toggle is active, the property will be set to +[const@Gtk.INVALID_LIST_POSITION]. + + + + The name of the active toggle. + +The name can be set via [property@Toggle:name]. If the currently active +toggle doesn't have a name, the property will be set to `NULL`. + +Set it to `NULL` to unset the current active toggle. + + + + Whether the toggles can be smaller than the natural size of their contents. + +If set to `TRUE`, the toggle labels will ellipsize. + +See [property@Gtk.Button:can-shrink]. + + + + Whether all toggles take the same size. + + + + The number of toggles within the group. + + + + A selection model with the groups's toggles. + +This can be used to keep an up-to-date view. The model also implements +[iface@Gtk.SelectionModel] and can be used to track and change the active +toggle. + + + + + + + + + + + Describes the possible top or bottom bar styles in an [class@ToolbarView] +widget. + +[enum@Adw.ToolbarStyle.flat] is suitable for simple content, such as +[class@StatusPage] or [class@PreferencesPage], where the background at the +top and bottom parts of the page is uniform. Additionally, windows with +sidebars should always use this style. + +<picture style="min-width: 33%; display: inline-block;"> + <source srcset="toolbar-view-flat-1-dark.png" media="(prefers-color-scheme: dark)"> + <img src="toolbar-view-flat-1.png" alt="toolbar-view-flat-1"> +</picture> +<picture style="min-width: 33%; display: inline-block;"> + <source srcset="toolbar-view-flat-2-dark.png" media="(prefers-color-scheme: dark)"> + <img src="toolbar-view-flat-2.png" alt="toolbar-view-flat-2"> +</picture> + +[enum@Adw.ToolbarStyle.raised] style is suitable for content such as +[utility panes](https://developer.gnome.org/hig/patterns/containers/utility-panes.html), +where some elements are directly adjacent to the top/bottom bars, or +[class@TabView], where each page can have a different background. + +[enum@Adw.ToolbarStyle.raised-border] style is similar to +[enum@Adw.ToolbarStyle.raised], but with the shadow replaced with a more +subtle border. It's intended to be used in applications like image viewers, +where a shadow over the content might be undesired. + +<picture style="min-width: 33%; display: inline-block;"> + <source srcset="toolbar-view-raised-dark.png" media="(prefers-color-scheme: dark)"> + <img src="toolbar-view-raised.png" alt="toolbar-view-raised"> +</picture> +<picture style="min-width: 33%; display: inline-block;"> + <source srcset="toolbar-view-raised-border-dark.png" media="(prefers-color-scheme: dark)"> + <img src="toolbar-view-raised-border.png" alt="toolbar-view-raised-border"> +</picture> + +See [property@ToolbarView:top-bar-style] and +[property@ToolbarView:bottom-bar-style]. + +New values may be added to this enumeration over time. + + No background, shadow only for scrolled content + + + Opaque background with a persistent shadow + + + Opaque background with a persistent border + + + + A widget containing a page, as well as top and/or bottom bars. + +<picture> + <source srcset="toolbar-view-dark.png" media="(prefers-color-scheme: dark)"> + <img src="toolbar-view.png" alt="toolbar-view"> +</picture> + +`AdwToolbarView` has a single content widget and one or multiple top and +bottom bars, shown at the top and bottom sides respectively. + +Example of an `AdwToolbarView` UI definition: +```xml +<object class="AdwToolbarView"> + <child type="top"> + <object class="AdwHeaderBar"/> + </child> + <property name="content"> + <object class="AdwPreferencesPage"> + <!-- ... --> + </object> + </property> +</object> +``` + +The following kinds of top and bottom bars are supported: + +- [class@HeaderBar] +- [class@TabBar] +- [class@ViewSwitcherBar] +- [class@Gtk.ActionBar] +- [class@Gtk.HeaderBar] +- [class@Gtk.PopoverMenuBar] +- [class@Gtk.SearchBar] +- Any [class@Gtk.Box] or a similar widget with the + [`.toolbar`](style-classes.html#toolbars) style class + +By default, top and bottom bars are flat and scrolling content has a subtle +undershoot shadow, same as when using the +[`.undershoot-top`](style-classes.html#undershoot-indicators) and +[`.undershoot-bottom`](style-classes.html#undershoot-indicators) style +classes. This works well in most cases, e.g. with [class@StatusPage] or +[class@PreferencesPage], where the background at the top and bottom parts of +the page is uniform. Additionally, windows with sidebars should always use +this style. + +[property@ToolbarView:top-bar-style] and +[property@ToolbarView:bottom-bar-style] properties can be used add an opaque +background and a persistent shadow to top and bottom bars, this can be useful +for content such as [utility panes](https://developer.gnome.org/hig/patterns/containers/utility-panes.html), +where some elements are adjacent to the top/bottom bars, or [class@TabView], +where each page can have a different background. + +<picture style="min-width: 33%; display: inline-block;"> + <source srcset="toolbar-view-flat-1-dark.png" media="(prefers-color-scheme: dark)"> + <img src="toolbar-view-flat-1.png" alt="toolbar-view-flat-1"> +</picture> +<picture style="min-width: 33%; display: inline-block;"> + <source srcset="toolbar-view-flat-2-dark.png" media="(prefers-color-scheme: dark)"> + <img src="toolbar-view-flat-2.png" alt="toolbar-view-flat-2"> +</picture> +<picture style="min-width: 33%; display: inline-block;"> + <source srcset="toolbar-view-raised-dark.png" media="(prefers-color-scheme: dark)"> + <img src="toolbar-view-raised.png" alt="toolbar-view-raised"> +</picture> + +`AdwToolbarView` ensures the top and bottom bars have consistent backdrop +styles and vertical spacing. For comparison: + +<picture style="min-width: 40%; display: inline-block;"> + <source srcset="toolbar-view-spacing-dark.png" media="(prefers-color-scheme: dark)"> + <img src="toolbar-view-spacing.png" alt="toolbar-view-spacing"> +</picture> +<picture style="min-width: 40%; display: inline-block;"> + <source srcset="toolbar-view-spacing-box-dark.png" media="(prefers-color-scheme: dark)"> + <img src="toolbar-view-spacing-box.png" alt="toolbar-view-spacing-box"> +</picture> + +Any top and bottom bars can also be dragged to move the window, equivalent +to putting them into a [class@Gtk.WindowHandle]. + +Content is typically place between top and bottom bars, but can also extend +behind them. This is controlled with the +[property@ToolbarView:extend-content-to-top-edge] and +[property@ToolbarView:extend-content-to-bottom-edge] properties. + +Top and bottom bars can be hidden and revealed with an animation using the +[property@ToolbarView:reveal-top-bars] and +[property@ToolbarView:reveal-bottom-bars] properties. + +## `AdwToolbarView` as `GtkBuildable` + +The `AdwToolbarView` implementation of the [iface@Gtk.Buildable] interface +supports adding a top bar by specifying “top” as the “type” attribute of a +`<child>` element, or adding a bottom bar by specifying “bottom”. + +## Accessibility + +`AdwToolbarView` uses the [enum@Gtk.AccessibleRole.group] role. + + + + + + Creates a new `AdwToolbarView`. + + + the newly created `AdwToolbarView` + + + + + Adds a bottom bar to @self. + + + + + + + a toolbar view + + + + a widget + + + + + + Adds a top bar to @self. + + + + + + + a toolbar view + + + + a widget + + + + + + Gets the current bottom bar height for @self. + +Bottom bar height does change depending on +[property@ToolbarView:reveal-bottom-bars], including during the transition. + +See [method@ToolbarView.get_top_bar_height]. + + + the current bottom bar height + + + + + a toolbar view + + + + + + Gets appearance of the bottom bars for @self. + + + bottom bar style + + + + + a toolbar view + + + + + + Gets the content widget for @self. + + + the content widget + + + + + a toolbar view + + + + + + Gets whether the content widget can extend behind bottom bars. + + + whether content extends behind bottom bars + + + + + a toolbar view + + + + + + Gets whether the content widget can extend behind top bars. + + + whether content extends behind top bars + + + + + a toolbar view + + + + + + Gets whether bottom bars are revealed for @self. + + + whether bottom bars are revealed + + + + + a toolbar view + + + + + + Gets whether top bars are revealed for @self. + + + whether top bars are revealed + + + + + a toolbar view + + + + + + Gets the current top bar height for @self. + +Top bar height does change depending on +[property@ToolbarView:reveal-top-bars], including during the transition. + +See [method@ToolbarView.get_bottom_bar_height]. + + + the current top bar height + + + + + a toolbar view + + + + + + Gets appearance of the top bars for @self. + + + top bar style + + + + + a toolbar view + + + + + + Removes a child from @self. + + + + + + + a toolbar view + + + + the child to be removed + + + + + + Sets appearance of the bottom bars for @self. + +If set to [enum@Adw.ToolbarStyle.flat], bottom bars are flat and scrolling +content has a subtle undershoot shadow when touching them, same as the +[`.undershoot-bottom`](style-classes.html#undershoot-indicators) +style class. This works well for simple content, e.g. [class@StatusPage] or +[class@PreferencesPage], where the background at the bottom of the page is +uniform. Additionally, windows with sidebars should always use this style. + +Undershoot shadow is only present if a bottom bar is actually present and +visible. It is also never present if +[property@ToolbarView:extend-content-to-bottom-edge] is set to `TRUE`. + +If set to [enum@Adw.ToolbarStyle.raised], bottom bars have an opaque +background and a persistent shadow, this is suitable for content such as +[utility panes](https://developer.gnome.org/hig/patterns/containers/utility-panes.html), +where some elements are directly adjacent to the bottom bars, or +[class@TabView], where each page can have a different background. + +[enum@Adw.ToolbarStyle.raised-border] is similar to +[enum@Adw.ToolbarStyle.raised], but the shadow is replaced with a more subtle +border. This can be useful for applications like image viewers. + +See also [method@ToolbarView.set_top_bar_style]. + + + + + + + a toolbar view + + + + bottom bar style + + + + + + Sets the content widget for @self. + + + + + + + a toolbar view + + + + the content widget + + + + + + Sets whether the content widget can extend behind bottom bars. + +This can be used in combination with [property@ToolbarView:reveal-bottom-bars] +to show and hide toolbars in fullscreen. + +See [method@ToolbarView.set_extend_content_to_top_edge]. + + + + + + + a toolbar view + + + + whether content extends behind bottom bars + + + + + + Sets whether the content widget can extend behind top bars. + +This can be used in combination with [property@ToolbarView:reveal-top-bars] +to show and hide toolbars in fullscreen. + +See [method@ToolbarView.set_extend_content_to_bottom_edge]. + + + + + + + a toolbar view + + + + whether content extends behind top bars + + + + + + Sets whether bottom bars are revealed for @self. + +The transition will be animated. + +This can be used in combination with +[property@ToolbarView:extend-content-to-bottom-edge] to show and hide +toolbars in fullscreen. + +See [method@ToolbarView.set_reveal_top_bars]. + + + + + + + a toolbar view + + + + whether to reveal bottom bars + + + + + + Sets whether top bars are revealed for @self. + +The transition will be animated. + +This can be used in combination with +[property@ToolbarView:extend-content-to-top-edge] to show and hide toolbars +in fullscreen. + +See [method@ToolbarView.set_reveal_bottom_bars]. + + + + + + + a toolbar view + + + + whether to reveal top bars + + + + + + Sets appearance of the top bars for @self. + +If set to [enum@Adw.ToolbarStyle.flat], top bars are flat and scrolling +content has a subtle undershoot shadow when touching them, same as the +[`.undershoot-top`](style-classes.html#undershoot-indicators) +style class. This works well for simple content, e.g. [class@StatusPage] or +[class@PreferencesPage], where the background at the top of the page is +uniform. Additionally, windows with sidebars should always use this style. + +Undershoot shadow is only present if a top bar is actually present and +visible. It is also never present if +[property@ToolbarView:extend-content-to-top-edge] is set to `TRUE`. + +If set to [enum@Adw.ToolbarStyle.raised], top bars have an opaque background +and a persistent shadow, this is suitable for content such as +[utility panes](https://developer.gnome.org/hig/patterns/containers/utility-panes.html), +where some elements are directly adjacent to the top bars, or +[class@TabView], where each page can have a different background. + +[enum@Adw.ToolbarStyle.raised-border] is similar to +[enum@Adw.ToolbarStyle.raised], but the shadow is replaced with a more subtle +border. This can be useful for applications like image viewers. + +See also [method@ToolbarView.set_bottom_bar_style]. + + + + + + + a toolbar view + + + + top bar style + + + + + + The current bottom bar height. + +Bottom bar height does change depending on +[property@ToolbarView:reveal-bottom-bars], including during the transition. + +See [property@ToolbarView:top-bar-height]. + + + + Appearance of the bottom bars. + +If set to [enum@Adw.ToolbarStyle.flat], bottom bars are flat and scrolling +content has a subtle undershoot shadow when touching them, same as the +[`.undershoot-bottom`](style-classes.html#undershoot-indicators) +style class. This works well for simple content, e.g. [class@StatusPage] or +[class@PreferencesPage], where the background at the bottom of the page is +uniform. Additionally, windows with sidebars should always use this style. + +Undershoot shadow is only present if a bottom bar is actually present and +visible. It is also never present if +[property@ToolbarView:extend-content-to-bottom-edge] is set to `TRUE`. + +If set to [enum@Adw.ToolbarStyle.raised], bottom bars have an opaque +background and a persistent shadow, this is suitable for content such as +[utility panes](https://developer.gnome.org/hig/patterns/containers/utility-panes.html), +where some elements are directly adjacent to the bottom bars, or +[class@TabView], where each page can have a different background. + +[enum@Adw.ToolbarStyle.raised-border] is similar to +[enum@Adw.ToolbarStyle.raised], but the shadow is replaced with a more +subtle border. This can be useful for applications like image viewers. + +See also [property@ToolbarView:top-bar-style]. + + + + The content widget. + + + + Whether the content widget can extend behind bottom bars. + +This can be used in combination with +[property@ToolbarView:reveal-bottom-bars] to show and hide toolbars in +fullscreen. + +See [property@ToolbarView:extend-content-to-top-edge]. + + + + Whether the content widget can extend behind top bars. + +This can be used in combination with [property@ToolbarView:reveal-top-bars] +to show and hide toolbars in fullscreen. + +See [property@ToolbarView:extend-content-to-bottom-edge]. + + + + Whether bottom bars are visible. + +The transition will be animated. + +This can be used in combination with +[property@ToolbarView:extend-content-to-bottom-edge] to show and hide +toolbars in fullscreen. + +See [property@ToolbarView:reveal-top-bars]. + + + + Whether top bars are revealed. + +The transition will be animated. + +This can be used in combination with +[property@ToolbarView:extend-content-to-top-edge] to show and hide toolbars +in fullscreen. + +See [property@ToolbarView:reveal-bottom-bars]. + + + + The current top bar height. + +Top bar height does change depending [property@ToolbarView:reveal-top-bars], +including during the transition. + +See [property@ToolbarView:bottom-bar-height]. + + + + Appearance of the top bars. + +If set to [enum@Adw.ToolbarStyle.flat], top bars are flat and scrolling +content has a subtle undershoot shadow when touching them, same as the +[`.undershoot-top`](style-classes.html#undershoot-indicators) +style class. This works well for simple content, e.g. [class@StatusPage] or +[class@PreferencesPage], where the background at the top of the page is +uniform. Additionally, windows with sidebars should always use this style. + +Undershoot shadow is only present if a top bar is actually present and +visible. It is also never present if +[property@ToolbarView:extend-content-to-top-edge] is set to `TRUE`. + +If set to [enum@Adw.ToolbarStyle.raised], top bars have an opaque +background and a persistent shadow, this is suitable for content such as +[utility panes](https://developer.gnome.org/hig/patterns/containers/utility-panes.html), +where some elements are directly adjacent to the top bars, or +[class@TabView], where each page can have a different background. + +[enum@Adw.ToolbarStyle.raised-border] is similar to +[enum@Adw.ToolbarStyle.raised], but the shadow is replaced with a more +subtle border. This can be useful for applications like image viewers. + +See also [property@ToolbarView:bottom-bar-style]. + + + + + + + + + + + + + + + + + + + + Adwaita version, encoded as a string, useful for printing and +concatenation. + + + + + A view container for [class@ViewSwitcher]. + +`AdwViewStack` is a container which only shows one page at a time. +It is typically used to hold an application's main views. + +It doesn't provide a way to transition between pages. +Instead, a separate widget such as [class@ViewSwitcher], +[class@InlineViewSwitcher] or [class@ViewSwitcherSidebar] can be used with +`AdwViewStack` to provide this functionality. + +`AdwViewStack` pages can have a title, an icon, an attention request, and a +numbered badge that [class@ViewSwitcher] will use to let users identify which +page is which. Set them using the [property@ViewStackPage:title], +[property@ViewStackPage:icon-name], +[property@ViewStackPage:needs-attention], and +[property@ViewStackPage:badge-number] properties. + +`AdwViewStack` pages can also be grouped into sections, using the +[property@ViewStackPage:starts-section] and +[property@ViewStackPage:section-title] properties. Currently, only +[class@ViewSwitcherSidebar] displays groups. + +Unlike [class@Gtk.Stack], transitions between views can only be animated via +a crossfade and size changes are always interpolated. Animations are disabled +by default. Use [property@ViewStack:enable-transitions] to enable them. + +`AdwViewStack` maintains a [class@ViewStackPage] object for each added child, +which holds additional per-child properties. You obtain the +[class@ViewStackPage] for a child with [method@ViewStack.get_page] and you +can obtain a [iface@Gtk.SelectionModel] containing all the pages with +[method@ViewStack.get_pages]. + +## AdwViewStack as GtkBuildable + +To set child-specific properties in a .ui file, create +[class@ViewStackPage] objects explicitly, and set the child widget as a +property on it: + +```xml + <object class="AdwViewStack" id="stack"> + <child> + <object class="AdwViewStackPage"> + <property name="name">overview</property> + <property name="title">Overview</property> + <property name="child"> + <object class="AdwStatusPage"> + <property name="title">Welcome!</property> + </object> + </property> + </object> + </child> + </object> +``` + +## CSS nodes + +`AdwViewStack` has a single CSS node named `stack`. + +## Accessibility + +`AdwViewStack` uses the [enum@Gtk.AccessibleRole.tab-panel] for the stack +pages which are the accessible parent objects of the child widgets. + + + + + + Creates a new `AdwViewStack`. + + + the newly created `AdwViewStack` + + + + + Adds a child to @self. + + + the [class@ViewStackPage] for @child + + + + + a view stack + + + + the widget to add + + + + + + Adds a child to @self. + +The child is identified by the @name. + + + the `AdwViewStackPage` for @child + + + + + a view stack + + + + the widget to add + + + + the name for @child + + + + + + Adds a child to @self. + +The child is identified by the @name. The @title will be used by +[class@ViewSwitcher] to represent @child, so it should be short. + + + the `AdwViewStackPage` for @child + + + + + a view stack + + + + the widget to add + + + + the name for @child + + + + a human-readable title for @child + + + + + + Adds a child to @self. + +The child is identified by the @name. The @title and @icon_name will be used +by [class@ViewSwitcher] to represent @child. + + + the `AdwViewStackPage` for @child + + + + + a view stack + + + + the widget to add + + + + the name for @child + + + + a human-readable title for @child + + + + an icon name for @child + + + + + + Finds the child with @name in @self. + + + the requested child + + + + + a view stack + + + + the name of the child to find + + + + + + Gets whether @self uses a crossfade transition between pages. + +Use [property@ViewStack:transition-duration] to control the duration, and +[property@ViewStack:transition-running] to know when the transition is +running. + + + whether to enable page transitions + + + + + a view stack + + + + + + Gets whether @self is horizontally homogeneous. + + + whether @self is horizontally homogeneous + + + + + a view stack + + + + + + Gets the [class@ViewStackPage] object for @child. + + + the page object for @child + + + + + a view stack + + + + a child of @self + + + + + + Returns a [iface@Gio.ListModel] that contains the pages of the stack. + +This can be used to keep an up-to-date view. + +The model implements [iface@Gtk.SectionModel] and creates sections based on +[property@ViewStackPage:starts-section] values. + +The model also implements [iface@Gtk.SelectionModel] and can be used to track +and change the visible page. + + + a `GtkSelectionModel` for the stack's children + + + + + a view stack + + + + + + Gets the transition animation duration for @self. + + + the transition duration, in milliseconds + + + + + a view stack + + + + + + Gets whether a transition is currently running for @self. + +If a transition is impossible, the property value will be set to `TRUE` and +then immediately to `FALSE`, so it's possible to rely on its notifications +to know that a transition has happened. + + + whether a transition is currently running + + + + + a view stack + + + + + + Gets whether @self is vertically homogeneous. + + + whether @self is vertically homogeneous + + + + + a view stack + + + + + + Gets the currently visible child of @self. + + + the visible child + + + + + a view stack + + + + + + Returns the name of the currently visible child of @self. + + + the name of the visible child + + + + + a view stack + + + + + + Removes a child widget from @self. + + + + + + + a view stack + + + + the child to remove + + + + + + Sets whether @self uses a crossfade transition between pages. + + + + + + + a view stack + + + + whether to enable page transitions + + + + + + Sets @self to be horizontally homogeneous or not. + +If the stack is horizontally homogeneous, it allocates the same width for +all children. + +If it's `FALSE`, the stack may change width when a different child becomes +visible. + + + + + + + a view stack + + + + whether to make @self horizontally homogeneous + + + + + + Sets the transition animation duration for @self. + +Only used when [property@ViewStack:enable-transitions] is set to `TRUE`. + + + + + + + a view stack + + + + the new duration, in milliseconds + + + + + + Sets @self to be vertically homogeneous or not. + +If the stack is vertically homogeneous, it allocates the same height for +all children. + +If it's `FALSE`, the stack may change height when a different child becomes +visible. + + + + + + + a view stack + + + + whether to make @self vertically homogeneous + + + + + + Makes @child the visible child of @self. + + + + + + + a view stack + + + + a child of @self + + + + + + Makes the child with @name visible. + +See [property@ViewStack:visible-child]. + + + + + + + a view stack + + + + the name of the child + + + + + + Whether the stack uses a crossfade transition between pages. + +Use [property@ViewStack:transition-duration] to control the duration, and +[property@ViewStack:transition-running] to know when the transition is +running. + + + + Whether the stack is horizontally homogeneous. + +If the stack is horizontally homogeneous, it allocates the same width for +all children. + +If it's `FALSE`, the stack may change width when a different child becomes +visible. + + + + A selection model with the stack's pages. + +This can be used to keep an up-to-date view. + +The model implements [iface@Gtk.SectionModel] and creates sections based on +[property@ViewStackPage:starts-section] values. + +The model also implements [iface@Gtk.SelectionModel] and can be used to +track and change the visible page. + + + + The transition animation duration, in milliseconds. + +Only used when [property@ViewStack:enable-transitions] is set to `TRUE`. + + + + Whether a transition is currently running. + +If a transition is impossible, the property value will be set to `TRUE` and +then immediately to `FALSE`, so it's possible to rely on its notifications +to know that a transition has happened. + + + + Whether the stack is vertically homogeneous. + +If the stack is vertically homogeneous, it allocates the same height for +all children. + +If it's `FALSE`, the stack may change height when a different child becomes +visible. + + + + The widget currently visible in the stack. + + + + The name of the widget currently visible in the stack. + +See [property@ViewStack:visible-child]. + + + + + + + + + + + An auxiliary class used by [class@ViewStack]. + + + + Gets the badge number for this page. + + + the badge number for this page + + + + + a view stack page + + + + + + Gets the stack child to which @self belongs. + + + the child to which @self belongs + + + + + a view stack page + + + + + + Gets the icon name of the page. + + + the icon name of the page + + + + + a view stack page + + + + + + Gets the name of the page. + + + the name of the page + + + + + a view stack page + + + + + + Gets whether the page requires the user attention. + + + whether the page needs attention + + + + + a view stack page + + + + + + Gets the section title for @self. + + + the section title + + + + + a view stack page + + + + + + Gets whether @self starts a section. + + + whether @self starts a section + + + + + a view stack page + + + + + + Gets the page title. + + + the page title + + + + + a view stack page + + + + + + Gets whether underlines in the page title indicate mnemonics. + + + whether underlines in the page title indicate mnemonics + + + + + a view stack page + + + + + + Gets whether @self is visible in its `AdwViewStack`. + +This is independent from the [property@Gtk.Widget:visible] +property of its widget. + + + whether @self is visible + + + + + a view stack page + + + + + + Sets the badge number for this page. + +[class@ViewSwitcher] can display it as a badge next to the page icon. It is +commonly used to display a number of unread items within the page. + +It can be used together with [property@ViewStack{age}:needs-attention]. + + + + + + + a view stack page + + + + the new value to set + + + + + + Sets the icon name of the page. + + + + + + + a view stack page + + + + the icon name + + + + + + Sets the name of the page. + + + + + + + a view stack page + + + + the page name + + + + + + Sets whether the page requires the user attention. + +[class@ViewSwitcher] will display it as a dot next to the page icon. + + + + + + + a view stack page + + + + the new value to set + + + + + + Sets the section title for @self. + +Does nothing unless [property@ViewStackPage:starts-section] is set. + + + + + + + a view stack page + + + + the section title + + + + + + Sets whether @self starts a section. + +If set to `TRUE`, [property@ViewStack:pages] will have a section starting +from this page. + +If [property@ViewStackPage:section-title] is set, it should be used as a +title for the section. + + + + + + + a view stack page + + + + whether @self starts a section + + + + + + Sets the page title. + + + + + + + a view stack page + + + + the page title + + + + + + Sets whether underlines in the page title indicate mnemonics. + + + + + + + a view stack page + + + + the new value to set + + + + + + Sets whether @self is visible in its `AdwViewStack`. + +This is independent from the [property@Gtk.Widget:visible] property of +[property@ViewStackPage:child]. + + + + + + + a view stack page + + + + whether @self is visible + + + + + + The badge number for this page. + +[class@ViewSwitcher] can display it as a badge next to the page icon. It is +commonly used to display a number of unread items within the page. + +It can be used together with [property@ViewStack{age}:needs-attention]. + + + + The stack child to which the page belongs. + + + + The icon name of the child page. + + + + The name of the child page. + + + + Whether the page requires the user attention. + +[class@ViewSwitcher] will display it as a dot next to the page icon. + + + + Section title for this page. + +Does nothing unless [property@ViewStackPage:starts-section] is set. + + + + Whether this page starts a section. + +If set to `TRUE`, [property@ViewStack:pages] will have a section starting +from this page. + +If [property@ViewStackPage:section-title] is set, it should be used as a +title for the section. + + + + The title of the child page. + + + + Whether an embedded underline in the title indicates a mnemonic. + + + + Whether this page is visible. + +This is independent from the [property@Gtk.Widget:visible] property of +[property@ViewStackPage:child]. + + + + + + + + + + + An auxiliary class used by [class@ViewStack]. + +See [property@ViewStack:pages]. + + + + + + Gets the [class@ViewStackPage] for the visible child of a view stack + +Gets the [class@ViewStackPage] for the visible child of the associated stack. + +Returns `NULL` if there's no selected page. + + + the stack page + + + + + a [class@ViewStackPages] + + + + + + Sets the visible child in the associated [class@ViewStack]. + +See [property@ViewStack:visible-child]. + + + + + + + a [class@ViewStackPages] + + + + a stack page within the associated stack + + + + + + The type of the items. See [method@Gio.ListModel.get_item_type]. + + + + The number of items. See [method@Gio.ListModel.get_n_items]. + + + + The selected [class@ViewStackPage] within the [class@ViewStackPages]. + +This can be used to keep an up-to-date view of the [class@ViewStackPage] for +The visible [class@ViewStackPage] within the associated [class@ViewStackPages]. + +This can be used to keep an up-to-date view of the visible child. + + + + + + + + + + + An adaptive view switcher. + +<picture> + <source srcset="view-switcher-dark.png" media="(prefers-color-scheme: dark)"> + <img src="view-switcher.png" alt="view-switcher"> +</picture> + +An adaptive view switcher designed to switch between multiple views +contained in a [class@ViewStack] in a similar fashion to +[class@Gtk.StackSwitcher]. + +`AdwViewSwitcher` buttons always have an icon and a label. They can be +displayed side by side, or icon on top of the label. This can be controlled +via the [property@ViewSwitcher:policy] property. + +`AdwViewSwitcher` is intended to be used in a header bar together with +[class@ViewSwitcherBar] at the bottom of the window, and a [class@Breakpoint] +showing the view switcher bar on narrow sizes, while removing the view +switcher from the header bar, as follows: + +```xml +<object class="AdwWindow"> + <child> + <object class="AdwBreakpoint"> + <condition>max-width: 550sp</condition> + <setter object="switcher_bar" property="reveal">True</setter> + <setter object="header_bar" property="title-widget"/> + </object> + </child> + <property name="content"> + <object class="AdwToolbarView"> + <child type="top"> + <object class="AdwHeaderBar" id="header_bar"> + <property name="title-widget"> + <object class="AdwViewSwitcher"> + <property name="stack">stack</property> + <property name="policy">wide</property> + </object> + </property> + </object> + </child> + <property name="content"> + <object class="AdwViewStack" id="stack"/> + </property> + <child type="bottom"> + <object class="AdwViewSwitcherBar" id="switcher_bar"> + <property name="stack">stack</property> + </object> + </child> + </object> + </property> +</object> +``` + +It's recommended to set [property@ViewSwitcher:policy] to +[enum@Adw.ViewSwitcherPolicy.wide] in this case. + +You may have to adjust the breakpoint condition for your specific pages. + +## CSS nodes + +`AdwViewSwitcher` has a single CSS node with name `viewswitcher`. It can have +the style classes `.wide` and `.narrow`, matching its policy. + +## Accessibility + +`AdwViewSwitcher` uses the [enum@Gtk.AccessibleRole.tab-list] role and the +[enum@Gtk.AccessibleRole.tab] role for its buttons. + +See also: [class@ViewSwitcherBar], [class@InlineViewSwitcher], +[class@ViewSwitcherSidebar]. + + + + + + Creates a new `AdwViewSwitcher`. + + + the newly created `AdwViewSwitcher` + + + + + Gets the policy of @self. + + + the policy of @self + + + + + a view switcher + + + + + + Gets the stack controlled by @self. + + + the stack + + + + + a view switcher + + + + + + Sets the policy of @self. + + + + + + + a view switcher + + + + the new policy + + + + + + Sets the stack controlled by @self. + + + + + + + a view switcher + + + + a stack + + + + + + The policy to determine which mode to use. + + + + The stack the view switcher controls. + + + + + A view switcher action bar. + +<picture> + <source srcset="view-switcher-bar-dark.png" media="(prefers-color-scheme: dark)"> + <img src="view-switcher-bar.png" alt="view-switcher-bar"> +</picture> + +An action bar letting you switch between multiple views contained in a +[class@ViewStack], via an [class@ViewSwitcher]. It is designed to be put at +the bottom of a window and to be revealed only on really narrow windows, e.g. +on mobile phones. It can't be revealed if there are less than two pages. + +`AdwViewSwitcherBar` is intended to be used together with +`AdwViewSwitcher` in a header bar, and a [class@Breakpoint] showing the view +switcher bar on narrow sizes, while removing the view switcher from the +header bar, as follows: + +```xml +<object class="AdwWindow"> + <child> + <object class="AdwBreakpoint"> + <condition>max-width: 550sp</condition> + <setter object="switcher_bar" property="reveal">True</setter> + <setter object="header_bar" property="title-widget"/> + </object> + </child> + <property name="content"> + <object class="AdwToolbarView"> + <child type="top"> + <object class="AdwHeaderBar" id="header_bar"> + <property name="title-widget"> + <object class="AdwViewSwitcher"> + <property name="stack">stack</property> + <property name="policy">wide</property> + </object> + </property> + </object> + </child> + <property name="content"> + <object class="AdwViewStack" id="stack"/> + </property> + <child type="bottom"> + <object class="AdwViewSwitcherBar" id="switcher_bar"> + <property name="stack">stack</property> + </object> + </child> + </object> + </property> +</object> +``` + +It's recommended to set [property@ViewSwitcher:policy] to +[enum@Adw.ViewSwitcherPolicy.wide] in this case. + +You may have to adjust the breakpoint condition for your specific pages. + +## CSS nodes + +`AdwViewSwitcherBar` has a single CSS node with name` viewswitcherbar`. + +See also: [class@ViewSwitcher], [class@InlineViewSwitcher], +[class@ViewSwitcherSidebar]. + + + + + + Creates a new `AdwViewSwitcherBar`. + + + the newly created `AdwViewSwitcherBar` + + + + + Gets whether @self should be revealed or hidden. + + + whether @self is revealed + + + + + a view switcher bar + + + + + + Gets the stack controlled by @self. + + + the stack + + + + + a view switcher bar + + + + + + Sets whether @self should be revealed or hidden. + + + + + + + a view switcher bar + + + + whether to reveal @self + + + + + + Sets the stack controlled by @self. + + + + + + + a view switcher bar + + + + a stack + + + + + + Whether the bar should be revealed or hidden. + + + + The stack the view switcher controls. + + + + + + + + + + + + + + + + + Describes the adaptive modes of [class@ViewSwitcher]. + + Force the narrow mode + + + Force the wide mode + + + + An adaptive sidebar that controls an [class@ViewStack]. + +<picture> + <source srcset="view-switcher-sidebar-dark.png" media="(prefers-color-scheme: dark)"> + <img src="view-switcher-sidebar.png" alt="view-switcher-sidebar"> +</picture> + +`AdwViewSwitcherSidebar` is a view switcher implemented using a +[class@Sidebar], in a similar fashion to [class@Gtk.StackSidebar]. + +`AdwViewSwitcherSidebar` items have an icon, a label, as well as an unread +dot or a badge. + +Unlike other switchers, `AdwViewSwitcherSidebar` supports grouping pages into +sections, using the [property@ViewStackPage:starts-section] and +[property@ViewStackPage:section-title] properties. + +Like [class@Sidebar], `AdwViewSwitcherSidebar` is adaptive and can behave as +a sidebar or a page, via the [property@ViewSwitcherSidebar:mode] property. + +<picture> + <source srcset="view-switcher-sidebar-modes-dark.png" media="(prefers-color-scheme: dark)"> + <img src="view-switcher-sidebar-modes.png" alt="view-switcher-sidebar-modes"> +</picture> + +Connect to the [signal@ViewSwitcherSidebar::activated] signal to run code when +an item has been activated. This can be used to toggle the visible pane when +used in a split view. + +Like `AdwSidebar`, `AdwViewSwitcherSidebar` supports filtering items via the +[property@ViewSwitcherSidebar:filter] property. + +Use [property@ViewSwitcherSidebar:placeholder] to provide an empty state +widget. It will be shown when all items have been filtered out, or the +sidebar has no items otherwise. + +Like `AdwSidebar`, `AdwViewSwitcherSidebar` supports prefix and suffix +widgets via the [property@Sidebar:prefix] and [property@Sidebar:suffix] +properties. + +## CSS nodes + +`AdwViewSwitcherSidebar` has a single CSS node with name +`view-switcher-sidebar`. + +See also: [class@ViewSwitcher], [class@ViewSwitcherBar], +[class@InlineViewSwitcher]. + + + + + + Creates a new `AdwViewSwitcherSidebar`. + + + the newly created `AdwViewSwitcherSidebar` + + + + + Gets the item filter for @self. + + + the item filter + + + + + a view switcher sidebar + + + + + + Gets @self's look and behavior. + +See [method@Sidebar.get_mode]. + + + the current mode + + + + + a view switcher sidebar + + + + + + Gets the placeholder widget for @self. + + + the placeholder widget + + + + + a view switcher sidebar + + + + + + Gets the widget displayed before the sidebar items. + + + the prefix widget + + + + + a view switcher sidebar + + + + + + Gets the stack @self controls. + + + The stack of @self + + + + + a view switcher sidebar + + + + + + Gets the widget displayed after sidebar items. + + + the suffix widget + + + + + a view switcher sidebar + + + + + + Sets the item filter for @self. + +Can be used to implement search within the sidebar. + +Use [property@ViewSwitcherSidebar:placeholder] to provide an empty state. + +See [method@Sidebar.set_filter]. + + + + + + + a view switcher sidebar + + + + the item filter + + + + + + Sets @self's look and behavior. + +<picture> + <source srcset="view-switcher-sidebar-modes-dark.png" media="(prefers-color-scheme: dark)"> + <img src="view-switcher-sidebar-modes.png" alt="view-switcher-sidebar-modes"> +</picture> + +If set to [enum@Adw.SidebarMode.sidebar], behaves like a sidebar: with a +sidebar style and a persistent selection. + +If set to [enum@Adw.SidebarMode.page], behaves like a page of boxed lists. +In this mode, the selection is invisible and only tracked to determine the +initially selected item once switched back to sidebar mode. + +The page mode is intended to be used with [class@NavigationSplitView] when +collapsed, as the sidebar pane becomes a page there. + +When used with [class@OverlaySplitView], the sidebar should stay in sidebar +mode, as the sidebar pane is still a sidebar when collapsed. + +See [method@Sidebar.set_mode]. + + + + + + + a view switcher sidebar + + + + the new mode + + + + + + Sets the placeholder widget for @self. + +This widget will be shown if @self has no items, or all of its items have +been filtered out by [property@ViewSwitcherSidebar:filter]. + +See [method@Sidebar.set_placeholder]. + + + + + + + a view switcher sidebar + + + + the placeholder widget + + + + + + Sets the widget to be displayed before the sidebar items. + +See [method@Sidebar.set_prefix]. + + + + + + + a view switcher sidebar + + + + the prefix widget + + + + + + Sets the stack to control. + + + + + + + a view switcher sidebar + + + + a stack + + + + + + Sets the widget to be displayed after the sidebar items. + +See [method@Sidebar.set_suffix]. + + + + + + + a view switcher sidebar + + + + the suffix widget + + + + + + The item filter. + +Can be used to implement search within the sidebar. + +Use [property@ViewSwitcherSidebar:placeholder] to provide an empty state. + +See [property@Sidebar:filter]. + + + + Determines the sidebar's look and behavior. + +<picture> + <source srcset="view-switcher-sidebar-modes-dark.png" media="(prefers-color-scheme: dark)"> + <img src="view-switcher-sidebar-modes.png" alt="view-switcher-sidebar-modes"> +</picture> + +If set to [enum@Adw.SidebarMode.sidebar], behaves like a sidebar: with a +sidebar style and a persistent selection. + +If set to [enum@Adw.SidebarMode.page], behaves like a page of boxed lists. + +The page mode is intended to be used with [class@NavigationSplitView] when +collapsed, as the sidebar pane becomes a page there. + +When used with [class@OverlaySplitView], the sidebar should stay in sidebar +mode, as the sidebar pane is still a sidebar when collapsed. + +See [property@Sidebar:mode]. + + + + The placeholder widget. + +This widget will be shown if the sidebar has no items, or all of its items +have been filtered out by [property@ViewSwitcherSidebar:filter]. + +See [property@Sidebar:placeholder]. + + + + A widget to be displayed before the sidebar items. + +See [property@Sidebar:prefix]. + + + + The stack the sidebar controls. + + + + A widget to be displayed after the sidebar items. + +See [property@Sidebar:suffix]. + + + + Emitted when an item has been activated. + + + + + + + + + + + + + A view switcher title. + +<picture> + <source srcset="view-switcher-title-dark.png" media="(prefers-color-scheme: dark)"> + <img src="view-switcher-title.png" alt="view-switcher-title"> +</picture> + +A widget letting you switch between multiple views contained by a +[class@ViewStack] via an [class@ViewSwitcher]. + +It is designed to be used as the title widget of a [class@HeaderBar], and +will display the window's title when the window is too narrow to fit the view +switcher e.g. on mobile phones, or if there are less than two views. + +In order to center the title in narrow windows, the header bar should have +[property@HeaderBar:centering-policy] set to +[enum@Adw.CenteringPolicy.strict]. + +`AdwViewSwitcherTitle` is intended to be used together with +[class@ViewSwitcherBar]. + +A common use case is to bind the [property@ViewSwitcherBar:reveal] property +to [property@ViewSwitcherTitle:title-visible] to automatically reveal the +view switcher bar when the title label is displayed in place of the view +switcher, as follows: + +```xml +<object class="AdwWindow"> + <property name="content"> + <object class="AdwToolbarView"> + <child type="top"> + <object class="AdwHeaderBar"> + <property name="centering-policy">strict</property> + <property name="title-widget"> + <object class="AdwViewSwitcherTitle" id="title"> + <property name="stack">stack</property> + </object> + </property> + </object> + </child> + <property name="content"> + <object class="AdwViewStack" id="stack"/> + </property> + <child type="bottom"> + <object class="AdwViewSwitcherBar"> + <property name="stack">stack</property> + <binding name="reveal"> + <lookup name="title-visible">title</lookup> + </binding> + </object> + </child> + </object> + </property> +</object> +``` + +## CSS nodes + +`AdwViewSwitcherTitle` has a single CSS node with name `viewswitchertitle`. + See [the migration guide](migrating-to-breakpoints.html#replace-adwviewswitchertitle) + + + + + + Creates a new `AdwViewSwitcherTitle`. + See [the migration guide](migrating-to-breakpoints.html#replace-adwviewswitchertitle) + + + the newly created `AdwViewSwitcherTitle` + + + + + Gets the stack controlled by @self. + See [the migration guide](migrating-to-breakpoints.html#replace-adwviewswitchertitle) + + + the stack + + + + + a view switcher title + + + + + + Gets the subtitle of @self. + See [the migration guide](migrating-to-breakpoints.html#replace-adwviewswitchertitle) + + + the subtitle + + + + + a view switcher title + + + + + + Gets the title of @self. + See [the migration guide](migrating-to-breakpoints.html#replace-adwviewswitchertitle) + + + the title + + + + + a view switcher title + + + + + + Gets whether the title of @self is currently visible. + +If the title is visible, it means the view switcher is hidden an it may be +wanted to show an alternative switcher, e.g. a [class@ViewSwitcherBar]. + See [the migration guide](migrating-to-breakpoints.html#replace-adwviewswitchertitle) + + + whether the title of @self is currently visible + + + + + a view switcher title + + + + + + Gets whether @self's view switcher is enabled. + See [the migration guide](migrating-to-breakpoints.html#replace-adwviewswitchertitle) + + + whether the view switcher is enabled + + + + + a view switcher title + + + + + + Sets the stack controlled by @self. + See [the migration guide](migrating-to-breakpoints.html#replace-adwviewswitchertitle) + + + + + + + a view switcher title + + + + a stack + + + + + + Sets the subtitle of @self. + +The subtitle should give the user additional details. + See [the migration guide](migrating-to-breakpoints.html#replace-adwviewswitchertitle) + + + + + + + a view switcher title + + + + a subtitle + + + + + + Sets the title of @self. + +The title typically identifies the current view or content item, and +generally does not use the application name. + See [the migration guide](migrating-to-breakpoints.html#replace-adwviewswitchertitle) + + + + + + + a view switcher title + + + + a title + + + + + + Sets whether @self's view switcher is enabled. + +If it is disabled, the title will be displayed instead. This allows to +programmatically hide the view switcher even if it fits in the available +space. + +This can be used e.g. to ensure the view switcher is hidden below a certain +window width, or any other constraint you find suitable. + See [the migration guide](migrating-to-breakpoints.html#replace-adwviewswitchertitle) + + + + + + + a view switcher title + + + + whether the view switcher is enabled + + + + + + The stack the view switcher controls. + See [the migration guide](migrating-to-breakpoints.html#replace-adwviewswitchertitle) + + + + The subtitle to display. + +The subtitle should give the user additional details. + See [the migration guide](migrating-to-breakpoints.html#replace-adwviewswitchertitle) + + + + The title to display. + +The title typically identifies the current view or content item, and +generally does not use the application name. + See [the migration guide](migrating-to-breakpoints.html#replace-adwviewswitchertitle) + + + + Whether the title is currently visible. + +If the title is visible, it means the view switcher is hidden an it may be +wanted to show an alternative switcher, e.g. a [class@ViewSwitcherBar]. + See [the migration guide](migrating-to-breakpoints.html#replace-adwviewswitchertitle) + + + + Whether the view switcher is enabled. + +If it is disabled, the title will be displayed instead. This allows to +programmatically hide the view switcher even if it fits in the available +space. + +This can be used e.g. to ensure the view switcher is hidden below a certain +window width, or any other constraint you find suitable. + See [the migration guide](migrating-to-breakpoints.html#replace-adwviewswitchertitle) + + + + + + + + + + + A freeform window. + +<picture> + <source srcset="window-dark.png" media="(prefers-color-scheme: dark)"> + <img src="window.png" alt="window"> +</picture> + +The `AdwWindow` widget is a subclass of [class@Gtk.Window] which has no +titlebar area. Instead, [class@ToolbarView] can be used together with +[class@HeaderBar] or [class@Gtk.HeaderBar] as follows: + +```xml +<object class="AdwWindow"> + <property name="content"> + <object class="AdwToolbarView"> + <child type="top"> + <object class="AdwHeaderBar"/> + </child> + <property name="content"> + <!-- put your content here --> + </property> + </object> + </property> +</object> +``` + +Using [property@Gtk.Window:titlebar] or [property@Gtk.Window:child] +is not supported and will result in a crash. Use [property@Window:content] +instead. + +## Dialogs + +`AdwWindow` can contain [class@Dialog]. Use [method@Dialog.present] with the +window or a widget within a window to show a dialog. + +## Breakpoints + +`AdwWindow` can be used with [class@Breakpoint] the same way as +[class@BreakpointBin]. Refer to that widget's documentation for details. + +Example: + +```xml +<object class="AdwWindow"> + <property name="content"> + <object class="AdwToolbarView"> + <child type="top"> + <object class="AdwHeaderBar"/> + </child> + <property name="content"> + <!-- put your content here --> + </property> + <child type="bottom"> + <object class="GtkActionBar" id="bottom_bar"> + <property name="revealed">True</property> + <property name="visible">False</property> + </object> + </child> + </object> + </property> + <child> + <object class="AdwBreakpoint"> + <condition>max-width: 500px</condition> + <setter object="bottom_bar" property="visible">True</setter> + </object> + </child> +</object> +``` + +When breakpoints are used, the minimum size must be larger than the smallest +UI state. `AdwWindow` defaults to the minimum size of 360×200 px. If that's +too small, set the [property@Gtk.Widget:width-request] and +[property@Gtk.Widget:height-request] properties manually. + +## Adaptive Preview + +`AdwWindow` has a debug tool called adaptive preview. It can be opened from +GTK Inspector or by pressing <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>M</kbd>, +and controlled via the [property@Window:adaptive-preview] property. + + + + + + + + + Creates a new `AdwWindow`. + + + the newly created `AdwWindow` + + + + + Adds @breakpoint to @self. + + + + + + + a window + + + + the breakpoint to add + + + + + + Gets whether adaptive preview for @self is currently open. + + + whether adaptive preview is open. + + + + + a window + + + + + + Gets the content widget of @self. + +This method should always be used instead of [method@Gtk.Window.get_child]. + + + the content widget of @self + + + + + a window + + + + + + Gets the current breakpoint. + + + the current breakpoint + + + + + a window + + + + + + Returns a [iface@Gio.ListModel] that contains the open dialogs of @self. + +This can be used to keep an up-to-date view. + + + a list model for the dialogs of @self + + + + + a window + + + + + + Returns the currently visible dialog in @self, if there's one. + + + the visible dialog + + + + + a window + + + + + + Sets whether adaptive preview for @self is currently open. + +Adaptive preview is a debugging tool used for testing the window +contents at specific screen sizes, simulating mobile environment. + +Adaptive preview can always be accessed from inspector. This function +allows applications to open it manually. + +Most applications should not use this function. + + + + + + + a window + + + + whether to open adaptive preview + + + + + + Sets the content widget of @self. + +This method should always be used instead of [method@Gtk.Window.set_child]. + + + + + + + a window + + + + the content widget + + + + + + Whether adaptive preview is currently open. + +Adaptive preview is a debugging tool used for testing the window +contents at specific screen sizes, simulating mobile environment. + +Adaptive preview can always be accessed from inspector. This function +allows applications to open it manually. + +Most applications should not use this property. + + + + The content widget. + +This property should always be used instead of [property@Gtk.Window:child]. + + + + The current breakpoint. + + + + The open dialogs. + + + + The currently visible dialog + + + + + + + + + + + + + + + + + + + A helper widget for setting a window's title and subtitle. + +<picture> + <source srcset="window-title-dark.png" media="(prefers-color-scheme: dark)"> + <img src="window-title.png" alt="window-title"> +</picture> + +`AdwWindowTitle` shows a title and subtitle. It's intended to be used as the +title child of [class@Gtk.HeaderBar] or [class@HeaderBar]. + +## CSS nodes + +`AdwWindowTitle` has a single CSS node with name `windowtitle`. + + + + + + Creates a new `AdwWindowTitle`. + + + the newly created `AdwWindowTitle` + + + + + a title + + + + a subtitle + + + + + + Gets the subtitle of @self. + + + the subtitle + + + + + a window title + + + + + + Gets the title of @self. + + + the title + + + + + a window title + + + + + + Sets the subtitle of @self. + +The subtitle should give the user additional details. + + + + + + + a window title + + + + a subtitle + + + + + + Sets the title of @self. + +The title typically identifies the current view or content item, and +generally does not use the application name. + + + + + + + a window title + + + + a title + + + + + + The subtitle to display. + +The subtitle should give the user additional details. + + + + The title to display. + +The title typically identifies the current view or content item, and +generally does not use the application name. + + + + + + + + + + + A box-like widget that can wrap into multiple lines. + +<picture> + <source srcset="wrap-box-dark.png" media="(prefers-color-scheme: dark)"> + <img src="wrap-box.png" alt="wrap-box"> +</picture> + +`AdwWrapBox` is similar to [class@Gtk.Box], but can wrap lines when the +widgets cannot fit otherwise. Unlike [class@Gtk.FlowBox], the children aren't +arranged into a grid and behave more like words in a wrapping label. + +Like `GtkBox`, `AdwWrapBox` is orientable and has spacing: + +- [property@WrapBox:child-spacing] between children in the same line; +- [property@WrapBox:line-spacing] between lines. + +::: note + Unlike `GtkBox`, `AdwWrapBox` cannot follow the CSS `border-spacing` + property. + +Use the [property@WrapBox:natural-line-length] property to determine the +layout's natural size, e.g. when using it in a [class@Gtk.Popover]. + +Normally, a horizontal `AdwWrapBox` wraps left to right and top to bottom +for left-to-right languages. Both of these directions can be reversed, using +the [property@WrapBox:pack-direction] and [property@WrapBox:wrap-reverse] +properties. Additionally, the alignment of each line can be controlled with +the [property@WrapBox:align] property. + +Lines can be justified using the [property@WrapBox:justify] property, filling +the entire line by either increasing child size or spacing depending on the +value. Set [property@WrapBox:justify-last-line] to justify the last line as +well. + +By default, `AdwWrapBox` wraps as soon as the previous line cannot fit any +more children without shrinking them past their natural size. Set +[property@WrapBox:wrap-policy] to [enum@Adw.WrapPolicy.minimum] to only wrap +once all the children in the previous line have been shrunk to their minimum +size. + +To make each line take the same amount of space, set +[property@WrapBox:line-homogeneous] to `TRUE`. + +Spacing and natural line length can scale with the text scale factor, use the +[property@WrapBox:child-spacing-unit], [property@WrapBox:line-spacing-unit] +and/or [property@WrapBox:natural-line-length-unit] properties to enable that +behavior. + +See [class@WrapLayout]. + +## CSS nodes + +`AdwWrapBox` uses a single CSS node with name `wrap-box`. + +## Accessibility + +`AdwWrapBox` uses the [enum@Gtk.AccessibleRole.group] role. + + + + + + + Creates a new `AdwWrapBox`. + + + the newly created `AdwWrapBox` + + + + + Adds @child as the last child to @self. + + + + + + + a wrap box + + + + the widget to append + + + + + + Gets the alignment of the children within each line. + + + the child alignment + + + + + a wrap box + + + + + + Gets spacing between widgets on the same line. + + + spacing between widgets on the same line + + + + + a wrap box + + + + + + Gets the length unit for child spacing. + + + the length unit + + + + + a wrap box + + + + + + Gets whether and how each complete line is stretched to fill the entire widget. + + + the justify mode + + + + + a wrap box + + + + + + Gets whether the last line should be stretched to fill the entire widget. + + + whether the last line is justified + + + + + a wrap box + + + + + + Gets whether all lines should take the same amount of space. + + + whether lines should be homogeneous + + + + + a wrap box + + + + + + Gets the spacing between lines. + +See [property@WrapBox:line-spacing-unit]. + + + the line spacing + + + + + a wrap box + + + + + + Gets the length unit for line spacing. + + + the length unit + + + + + a wrap box + + + + + + Gets the natural size for each line. + + + the natural length + + + + + a wrap box + + + + + + Gets the length unit for line spacing. + + + the length unit + + + + + a wrap box + + + + + + Gets the direction children are packed in each line. + + + the line direction + + + + + a wrap box + + + + + + Gets the policy for line wrapping. + + + the wrap policy + + + + + a wrap box + + + + + + Gets whether wrap direction is reversed. + + + whether wrap direction is reversed + + + + + a wrap box + + + + + + Inserts @child in the position after @sibling in the list of @self children. + +If @sibling is `NULL`, inserts @child at the first position. + + + + + + + a wrap box + + + + the widget to insert + + + + the sibling after which to insert @child + + + + + + Adds @child as the first child to @self. + + + + + + + a wrap box + + + + the widget to prepend + + + + + + Removes a child widget from @self. + +The child must have been added before with [method@Adw.WrapBox.append], +[method@Adw.WrapBox.prepend], or [method@Adw.WrapBox.insert_child_after]. + + + + + + + a wrap box + + + + the child to remove + + + + + + Removes all children from @self. + + + + + + + a wrap box + + + + + + Moves @child to the position after @sibling in the list of @self children. + +If @sibling is `NULL`, moves @child to the first position. + + + + + + + a wrap box + + + + the widget to move, must be a child of @self + + + + the sibling to move @child after + + + + + + Sets the alignment of the children within each line. + +0 means the children are placed at the start of the line, 1 means they are +placed at the end of the line. 0.5 means they are placed in the middle of the +line. + +Alignment is only used when [property@WrapBox:justify] is set to +[enum@Adw.JustifyMode.none], or on the last line when the +[property@WrapBox:justify-last-line] is `FALSE`. + + + + + + + a wrap box + + + + the child alignment + + + + + + Sets the spacing between widgets on the same line. + +See [property@WrapBox:child-spacing-unit]. + + + + + + + a wrap box + + + + the child spacing + + + + + + Sets the length unit for child spacing. + +Allows the spacing to vary depending on the text scale factor. + +See [property@WrapBox:child-spacing]. + + + + + + + a wrap box + + + + the length unit + + + + + + Determines whether and how each complete line should be stretched to fill +the entire widget. + +If set to [enum@Adw.JustifyMode.fill], each widget in the line will be +stretched, keeping consistent spacing, so that the line fills the entire +widget. + +If set to [enum@Adw.JustifyMode.spread], the spacing between widgets will be +increased, keeping widget sizes intact. The first and last widget will be +aligned with the beginning and end of the line. If the line only contains a +single widget, it will be stretched regardless. + +If set to [enum@Adw.JustifyMode.none], the line will not be stretched and the +children will be placed together within the line, according to +[property@WrapBox:align]. + +By default this doesn't affect the last line, as it will be incomplete. Use +[property@WrapBox:justify-last-line] to justify it as well. + + + + + + + a wrap box + + + + the justify mode + + + + + + Sets whether the last line should be stretched to fill the entire widget. + +See [property@WrapBox:justify]. + + + + + + + a wrap box + + + + whether to justify the last line + + + + + + Sets whether all lines should take the same amount of space. + + + + + + + a wrap box + + + + whether lines should be homogeneous + + + + + + Sets the spacing between lines. + + + + + + + a wrap box + + + + the line spacing + + + + + + Sets the length unit for line spacing. + +Allows the spacing to vary depending on the text scale factor. + +See [property@WrapBox:line-spacing]. + + + + + + + a wrap box + + + + the length unit + + + + + + Sets the natural size for each line. + +It should be used to limit the line lengths, for example when used in +popovers. + +See [property@WrapBox:natural-line-length-unit]. + + + + + + + a wrap box + + + + the natural length + + + + + + Sets the length unit for natural line length. + +Allows the length to vary depending on the text scale factor. + +See [property@WrapBox:natural-line-length]. + + + + + + + a wrap box + + + + the length unit + + + + + + Sets the direction children are packed in each line. + + + + + + + a wrap box + + + + the new line direction + + + + + + Sets the policy for line wrapping. + +If set to [enum@Adw.WrapPolicy.natural], the box will wrap to the next line +as soon as the previous line cannot fit any more children without shrinking +them past their natural size. + +If set to [enum@Adw.WrapPolicy.minimum], the box will try to fit as many +children into each line as possible, shrinking them down to their minimum\ +size before wrapping to the next line. + + + + + + + a wrap box + + + + the new wrap policy + + + + + + Sets whether wrap direction should be reversed. + +By default, lines wrap downwards in a horizontal box, and towards the end +in a vertical box. If set to `TRUE`, they wrap upwards or towards the start +respectively. + + + + + + + a wrap box + + + + whether to reverse wrap direction + + + + + + The alignment of the children within each line. + +0 means the children are placed at the start of the line, 1 means they are +placed at the end of the line. 0.5 means they are placed in the middle of +the line. + +Alignment is only used when [property@WrapBox:justify] is set to +[enum@Adw.JustifyMode.none], or on the last line when the +[property@WrapBox:justify-last-line] is `FALSE`. + + + + The spacing between widgets on the same line. + +See [property@WrapBox:child-spacing-unit]. + + + + The length unit for child spacing. + +Allows the spacing to vary depending on the text scale factor. + +See [property@WrapBox:child-spacing]. + + + + Determines whether and how each complete line should be stretched to fill +the entire widget. + +If set to [enum@Adw.JustifyMode.fill], each widget in the line will be +stretched, keeping consistent spacing, so that the line fills the entire +widget. + +If set to [enum@Adw.JustifyMode.spread], the spacing between widgets will +be increased, keeping widget sizes intact. The first and last widget will +be aligned with the beginning and end of the line. If the line only +contains a single widget, it will be stretched regardless. + +If set to [enum@Adw.JustifyMode.none], the line will not be stretched and +the children will be placed together within the line, according to +[property@WrapBox:align]. + +By default this doesn't affect the last line, as it will be incomplete. Use +[property@WrapBox:justify-last-line] to justify it as well. + + + + Whether the last line should be stretched to fill the entire widget. + +See [property@WrapBox:justify]. + + + + Whether all lines should take the same amount of space. + + + + The spacing between lines. + +See [property@WrapBox:line-spacing-unit]. + + + + The length unit for line spacing. + +Allows the spacing to vary depending on the text scale factor. + +See [property@WrapBox:line-spacing]. + + + + Determines the natural size for each line. + +It should be used to limit the line lengths, for example when used in +popovers. + +See [property@WrapBox:natural-line-length-unit]. + + + + The length unit for natural line length. + +Allows the length to vary depending on the text scale factor. + +See [property@WrapBox:natural-line-length]. + + + + The direction children are packed in each line. + + + + The policy for line wrapping. + + + If set to [enum@Adw.WrapPolicy.natural], the box will wrap to the next line +as soon as the previous line cannot fit any more children without shrinking +them past their natural size. + +If set to [enum@Adw.WrapPolicy.minimum], the box will try to fit as many +children into each line as possible, shrinking them down to their minimum +size before wrapping to the next line. + + + + Whether wrap direction should be reversed. + +By default, lines wrap downwards in a horizontal box, and towards the end +in a vertical box. If set to `TRUE`, they wrap upwards or towards the start +respectively. + + + + + + + + + + + A box-like layout that can wrap into multiple lines. + +<picture> + <source srcset="wrap-box-dark.png" media="(prefers-color-scheme: dark)"> + <img src="wrap-box.png" alt="wrap-box"> +</picture> + +`AdwWrapLayout` is similar to [class@Gtk.BoxLayout], but can wrap lines when +the widgets cannot fit otherwise. Unlike [class@Gtk.FlowBox], the children +aren't arranged into a grid and behave more like words in a wrapping label. + +Like `GtkBoxLayout`, `AdwWrapLayout` is orientable and has spacing: + +- [property@WrapLayout:child-spacing] between children in the same line; +- [property@WrapLayout:line-spacing] between lines. + +::: note + Unlike `GtkBoxLayout`, `AdwWrapLayout` cannot follow the CSS + `border-spacing` property. + +Use the [property@WrapLayout:natural-line-length] property to determine the +layout's natural size, e.g. when using it in a [class@Gtk.Popover]. + +Normally, a horizontal `AdwWrapLayout` wraps left to right and top to bottom +for left-to-right languages. Both of these directions can be reversed, using +the [property@WrapLayout:pack-direction] and +[property@WrapLayout:wrap-reverse] properties. Additionally, the alignment +of each line can be controlled with the [property@WrapLayout:align] property. + +Lines can be justified using the [property@WrapLayout:justify] property, +filling the entire line by either increasing child size or spacing depending +on the value. Set [property@WrapLayout:justify-last-line] to justify the last +line as well. + +By default, `AdwWrapLayout` wraps as soon as the previous line cannot fit +any more children without shrinking them past their natural size. Set +[property@WrapLayout:wrap-policy] to [enum@Adw.WrapPolicy.minimum] to only +wrap once all the children in the previous line have been shrunk to their +minimum size. + +To make each line take the same amount of space, set +[property@WrapLayout:line-homogeneous] to `TRUE`. + +Spacing and natural line length can scale with the text scale factor, use the +[property@WrapLayout:child-spacing-unit], +[property@WrapLayout:line-spacing-unit] and/or +[property@WrapLayout:natural-line-length-unit] properties to enable that +behavior. + +See [class@WrapBox]. + + + + Creates a new `AdwWrapLayout`. + + + the newly created `AdwWrapLayout` + + + + + Gets the alignment of the children within each line. + + + the child alignment + + + + + a wrap layout + + + + + + Gets spacing between widgets on the same line. + + + spacing between widgets on the same line + + + + + a wrap layout + + + + + + Gets the length unit for child spacing. + + + the length unit + + + + + a wrap layout + + + + + + Gets whether and how each complete line is stretched to fill the entire widget. + + + the justify mode + + + + + a wrap layout + + + + + + Gets whether the last line should be stretched to fill the entire widget. + + + whether the last line is justified + + + + + a wrap layout + + + + + + Gets whether all lines should take the same amount of space. + + + whether lines should be homogeneous + + + + + a wrap layout + + + + + + Gets the spacing between lines. + + + the line spacing + + + + + a wrap layout + + + + + + Gets the length unit for line spacing. + + + the length unit + + + + + a wrap layout + + + + + + Gets the natural size for each line. + + + the natural length + + + + + a wrap layout + + + + + + Gets the length unit for line spacing. + + + the length unit + + + + + a wrap layout + + + + + + Gets the direction children are packed in each line. + + + the line direction + + + + + a wrap layout + + + + + + Gets the policy for line wrapping. + + + the wrap policy + + + + + a wrap layout + + + + + + Gets whether wrap direction is reversed. + + + whether wrap direction is reversed + + + + + a wrap layout + + + + + + Sets the alignment of the children within each line. + +0 means the children are placed at the start of the line, 1 means they are +placed at the end of the line. 0.5 means they are placed in the middle of the +line. + +Alignment is only used when [property@WrapLayout:justify] is set to +[enum@Adw.JustifyMode.none], or on the last line when the +[property@WrapLayout:justify-last-line] is `FALSE`. + + + + + + + a wrap layout + + + + the child alignment + + + + + + Sets the spacing between widgets on the same line. + +See [property@WrapLayout:child-spacing-unit]. + + + + + + + a wrap layout + + + + the child spacing + + + + + + Sets the length unit for child spacing. + +Allows the spacing to vary depending on the text scale factor. + +See [property@WrapLayout:child-spacing]. + + + + + + + a wrap layout + + + + the length unit + + + + + + Sets whether and how each complete line should be stretched to fill the +entire widget. + +If set to [enum@Adw.JustifyMode.fill], each widget in the line will be +stretched, keeping consistent spacing, so that the line fills the entire +widget. + +If set to [enum@Adw.JustifyMode.spread], the spacing between widgets will be +increased, keeping widget sizes intact. The first and last widget will be +aligned with the beginning and end of the line. If the line only contains a +single widget, it will be stretched regardless. + +If set to [enum@Adw.JustifyMode.none], the line will not be stretched and the +children will be placed together within the line, according to +[property@WrapLayout:align]. + +By default this doesn't affect the last line, as it will be incomplete. Use +[property@WrapLayout:justify-last-line] to justify it as well. + + + + + + + a wrap layout + + + + the justify mode + + + + + + Sets whether the last line should be stretched to fill the entire widget. + +See [property@WrapLayout:justify]. + + + + + + + a wrap layout + + + + whether to justify the last line + + + + + + Sets whether all lines should take the same amount of space. + + + + + + + a wrap layout + + + + whether lines should be homogeneous + + + + + + Sets the spacing between lines. + +See [property@WrapLayout:line-spacing-unit]. + + + + + + + a wrap layout + + + + the line spacing + + + + + + Sets the length unit for line spacing. + +Allows the spacing to vary depending on the text scale factor. + +See [property@WrapLayout:line-spacing]. + + + + + + + a wrap layout + + + + the length unit + + + + + + Sets the natural size for each line. + +It should be used to limit the line lengths, for example when used in +popovers. + +See [property@WrapLayout:natural-line-length-unit]. + + + + + + + a wrap layout + + + + the natural length + + + + + + Sets the length unit for natural line length. + +Allows the length to vary depending on the text scale factor. + +See [property@WrapLayout:natural-line-length]. + + + + + + + a wrap layout + + + + the length unit + + + + + + Sets the direction children are packed in each line. + + + + + + + a wrap layout + + + + the new line direction + + + + + + Sets the policy for line wrapping. + +If set to [enum@Adw.WrapPolicy.natural], the box will wrap to the next line +as soon as the previous line cannot fit any more children without shrinking +them past their natural size. + +If set to [enum@Adw.WrapPolicy.minimum], the box will try to fit as many +children into each line as possible, shrinking them down to their minimum +size before wrapping to the next line. + + + + + + + a wrap layout + + + + the new wrap policy + + + + + + Sets whether wrap direction should be reversed. + +By default, lines wrap downwards in a horizontal box, and towards the end +in a vertical box. If set to `TRUE`, they wrap upwards or towards the start +respectively. + + + + + + + a wrap layout + + + + whether to reverse wrap direction + + + + + + The alignment of the children within each line. + +0 means the children are placed at the start of the line, 1 means they are +placed at the end of the line. 0.5 means they are placed in the middle of +the line. + +Alignment is only used when [property@WrapLayout:justify] is set to +[enum@Adw.JustifyMode.none], or on the last line when the +[property@WrapLayout:justify-last-line] is `FALSE`. + + + + The spacing between widgets on the same line. + +See [property@WrapLayout:child-spacing-unit]. + + + + The length unit for child spacing. + +Allows the spacing to vary depending on the text scale factor. + +See [property@WrapLayout:child-spacing]. + + + + Determines whether and how each complete line should be stretched to fill +the entire widget. + +If set to [enum@Adw.JustifyMode.fill], each widget in the line will be +stretched, keeping consistent spacing, so that the line fills the entire +widget. + +If set to [enum@Adw.JustifyMode.spread], the spacing between widgets will +be increased, keeping widget sizes intact. The first and last widget will +be aligned with the beginning and end of the line. If the line only +contains a single widget, it will be stretched regardless. + +If set to [enum@Adw.JustifyMode.none], the line will not be stretched and +the children will be placed together within the line, according to +[property@WrapLayout:align]. + +By default this doesn't affect the last line, as it will be incomplete. Use +[property@WrapLayout:justify-last-line] to justify it as well. + + + + Whether the last line should be stretched to fill the entire widget. + +See [property@WrapLayout:justify]. + + + + Whether all lines should take the same amount of space. + + + + The spacing between lines. + +See [property@WrapLayout:line-spacing-unit]. + + + + The length unit for line spacing. + +Allows the spacing to vary depending on the text scale factor. + +See [property@WrapLayout:line-spacing]. + + + + Determines the natural size for each line. + +It should be used to limit the line lengths, for example when used in +popovers. + +See [property@WrapLayout:natural-line-length-unit]. + + + + The length unit for natural line length. + +Allows the length to vary depending on the text scale factor. + +See [property@WrapLayout:natural-line-length]. + + + + The direction children are packed in each line. + + + + The policy for line wrapping. + +If set to [enum@Adw.WrapPolicy.natural], the box will wrap to the next line +as soon as the previous line cannot fit any more children without shrinking +them past their natural size. + +If set to [enum@Adw.WrapPolicy.minimum], the box will try to fit as many +children into each line as possible, shrinking them down to their minimum +size before wrapping to the next line. + + + + Whether wrap direction should be reversed. + +By default, lines wrap downwards in a horizontal box, and towards the end +in a vertical box. If set to `TRUE`, they wrap upwards or towards the start +respectively. + + + + + + + + + + + Describes line wrapping behavior in a [class@WrapLayout] or [class@WrapBox]. + +See [property@WrapLayout:wrap-policy] and [property@WrapBox:wrap-policy]. + + Fit as many children into each line as possible, shrinking + them down to their minimum size before wrapping to the next line. + + + Wrap to the next line as soon as the previous line cannot + fit any more children without shrinking them past their natural size. + + + + Converts @self to a `GdkRGBA` representing its background color. + +The matching foreground color is white. + + + + + + + an accent color + + + + return location for the color + + + + + + Converts @self to a `GdkRGBA` representing its standalone color. + +It will typically be darker for light background, and lighter for dark +background, ensuring contrast. + + + + + + + an accent color + + + + Whether to calculate standalone color for light or dark background + + + + return location for the color + + + + + + Creates a binding between a property on @source and a CSS class on @target. + +Whenever @source_property is changed the @target_css_class is toggled either +on or off on @target using the boolean value of @source_property. + +For instance: + +```c +adw_bind_property_to_css_class (action, "active", widget, "active-widget", 0); +``` + +will result in the `active-widget` CSS class on the widget instance being +applied when `active` is `TRUE`, and `active-widget` being removed when +`active` is `FALSE`. + +The binding will automatically be removed when either the @source or @target +instances are finalized. To remove the binding without affecting the @source +or @target, call [method@GObject.Object.unref] on the returned binding. It is +recommended to only call [method@GObject.Object.unref] when it is clear that +both @source and @target will outlive the binding. + +This function is not thread safe. A source can have multiple bindings. + +See also: [func@Adw.bind_property_to_css_class_full]. + + + the new binding + + + + + the source object + + + + the property on @source to bind + + + + the target widget + + + + the CSS class on @target to bind + + + + flags to pass to @self + + + + + + Creates a binding between a property on @source and a CSS class on @target +with a custom mapping. + +Complete version of [func@Adw.bind_property_to_css_class]. + +Whenever @source_property is changed the @target_css_class is toggled either +on or off on @target using the boolean value of @source_property. + +For instance: + +```c +adw_bind_property_to_css_class (action, "active", widget, "active-widget", 0); +``` + +will result in the `active-widget` CSS class on the widget instance being +applied when `active` is `TRUE`, and `active-widget` being removed when +`active` is `FALSE`. + +The binding will automatically be removed when either the @source or @target +instances are finalized. To remove the binding without affecting the @source +or @target, call [method@GObject.Object.unref] on the returned binding. It is +recommended to only call [method@GObject.Object.unref] when it is clear that +both @source and @target will outlive the binding. + +This function is not thread safe. A source can have multiple bindings. + + + the new binding + + + + + the source object + + + + the property on @source to bind + + + + the target widget + + + + the CSS class on @target to bind + + + + flags to pass to @self + + + + + the mapping function from the @source_property to a boolean value, or + `NULL` to use the default + + + + + the mapping function from the @target_css_class to a value, or `NULL` to + use the default + + + + custom data to be passed to @map_to_class and + @map_to_property + + + + a function to call when disposing the binding, to free + resources used by @map_to_class and @map_to_property + + + + + + Creates a binding between a property on @source and a CSS class on @target +with a custom mapping using closures. + +This function is the language bindings friendly version of +[func@Adw.bind_property_to_css_class_full]. + +The binding will automatically be removed when either the @source or @target +instances are finalized. To remove the binding without affecting the @source +or @target, call [method@GObject.Object.unref] on the returned binding. It is +recommended to only call [method@GObject.Object.unref] when it is clear that +both @source and @target will outlive the binding. + +This function is not thread safe. A source can have multiple bindings. + +See also: [func@Adw.bind_property_to_css_class]. + + + the new binding + + + + + the source object + + + + the property on @source to bind + + + + the target widget + + + + the CSS class on @target to bind + + + + flags to pass to @self + + + + a closure wrapping the @source_property to + boolean value map, or `NULL` to use the default + + + + a closure wrapping the @target_css_class to + [struct@GObject.Value] map, or `NULL` to use the default + + + + + + Parses a condition from a string. + +Length conditions are specified as `<type>: <value>[<unit>]`, where: + +- `<type>` can be `min-width`, `max-width`, `min-height` or `max-height` +- `<value>` is a fractional number +- `<unit>` can be `px`, `pt` or `sp` + +If the unit is omitted, `px` is assumed. + +See [ctor@BreakpointCondition.new_length]. + +Examples: + +- `min-width: 500px` +- `min-height: 400pt` +- `max-width: 100sp` +- `max-height: 500` + +Ratio conditions are specified as `<type>: <width>[/<height>]`, where: + +- `<type>` can be `min-aspect-ratio` or `max-aspect-ratio` +- `<width>` and `<height>` are integer numbers + +See [ctor@BreakpointCondition.new_ratio]. + +The ratio is represented as `<width>` divided by `<height>`. + +If `<height>` is omitted, it's assumed to be 1. + +Examples: + +- `min-aspect-ratio: 4/3` +- `max-aspect-ratio: 1` + +The logical operators `and`, `or` can be used to compose a complex condition +as follows: + +- `<condition> and <condition>`: the condition is true when both + `<condition>`s are true, same as when using + [ctor@BreakpointCondition.new_and] +- `<condition> or <condition>`: the condition is true when either of the + `<condition>`s is true, same as when using + [ctor@BreakpointCondition.new_or] + +Examples: + +- `min-width: 400px and max-aspect-ratio: 4/3` +- `max-width: 360sp or max-width: 360px` + +Conditions can be further nested using parentheses, for example: + +- `min-width: 400px and (max-aspect-ratio: 4/3 or max-height: 400px)` + +If parentheses are omitted, the first operator takes priority. + + + the parsed condition + + + + + the string specifying the condition + + + + + + Computes easing with @easing for @value. + +@value should generally be in the [0, 1] range. + + + the easing for @value + + + + + an easing value + + + + a value to ease + + + + + + Checks whether animations are enabled for @widget. + +This should be used when implementing an animated widget to know whether to +animate it or not. + + + whether animations are enabled for @widget + + + + + a `GtkWidget` + + + + + + Returns the major version number of the Adwaita library. + +For example, in libadwaita version 1.2.3 this is 1. + +This function is in the library, so it represents the libadwaita library your +code is running against. Contrast with the [const@MAJOR_VERSION] constant, +which represents the major version of the libadwaita headers you have +included when compiling your code. + + + the major version number of the Adwaita library + + + + + Returns the micro version number of the Adwaita library. + +For example, in libadwaita version 1.2.3 this is 3. + +This function is in the library, so it represents the libadwaita library your +code is running against. Contrast with the [const@MAJOR_VERSION] constant, +which represents the micro version of the libadwaita headers you have +included when compiling your code. + + + the micro version number of the Adwaita library + + + + + Returns the minor version number of the Adwaita library. + +For example, in libadwaita version 1.2.3 this is 2. + +This function is in the library, so it represents the libadwaita library your +code is running against. Contrast with the [const@MAJOR_VERSION] constant, +which represents the minor version of the libadwaita headers you have +included when compiling your code. + + + the minor version number of the Adwaita library + + + + + Initializes Libadwaita. + +This function can be used instead of [func@Gtk.init] as it initializes GTK +implicitly. + +There's no need to call this function if you're using [class@Application]. + +If Libadwaita has already been initialized, the function will simply return. + +This makes sure translations, types, themes, and icons for the Adwaita +library are set up properly. + + + + + + + Use this function to check if libadwaita has been initialized with +[func@init]. + + + the initialization status + + + + + Converts @value from pixels to @unit. + + + the length in @unit + + + + + a length unit + + + + a value in pixels + + + + settings to use, or `NULL` for default settings + + + + + + Converts @value from @unit to pixels. + + + the length in pixels + + + + + a length unit + + + + a value in @unit + + + + settings to use, or `NULL` for default settings + + + + + + Computes the linear interpolation between @a and @b for @t. + + + the computed value + + + + + the start + + + + the end + + + + the interpolation rate + + + + + + Adjusts @rgba to be suitable as a standalone color. + +It will typically be darker for light background, and lighter for dark +background, ensuring contrast. + + + + + + + a background color + + + + Whether to calculate standalone color for light or dark background + + + + return location for the standalone color + + + + + + A convenience function for showing an application’s about dialog. + + + + + + + the parent widget + + + + the name of the first property + + + + value of first property, followed by more pairs of property name and + value, `NULL`-terminated + + + + + + A convenience function for showing an application’s about dialog from +AppStream metadata. + +See [ctor@AboutDialog.new_from_appdata] for details. + + + + + + + the parent widget + + + + The resource to use + + + + The version to retrieve release notes for + + + + the name of the first property + + + + value of first property, followed by more pairs of property name and + value, `NULL`-terminated + + + + + + A convenience function for showing an application’s about window. + Use [func@show_about_dialog]. + + + + + + + the parent top-level window + + + + the name of the first property + + + + value of first property, followed by more pairs of property name and + value, `NULL`-terminated + + + + + + A convenience function for showing an application’s about window from +AppStream metadata. + +See [ctor@AboutWindow.new_from_appdata] for details. + Use [func@show_about_dialog_from_appdata]. + + + + + + + the parent top-level window + + + + The resource to use + + + + The version to retrieve release notes for + + + + the name of the first property + + + + value of first property, followed by more pairs of property name and + value, `NULL`-terminated + + + + + + diff --git a/libphosh-rs/Cargo.lock b/libphosh-rs/Cargo.lock index da4df8cdd..cd37b116b 100644 --- a/libphosh-rs/Cargo.lock +++ b/libphosh-rs/Cargo.lock @@ -2,29 +2,6 @@ # It is not intended for manual editing. version = 4 -[[package]] -name = "atk" -version = "0.18.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "241b621213072e993be4f6f3a9e4b45f65b7e6faad43001be957184b7bb1824b" -dependencies = [ - "atk-sys", - "glib", - "libc", -] - -[[package]] -name = "atk-sys" -version = "0.18.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5e48b684b0ca77d2bbadeef17424c2ea3c897d44d566a1617e7e8f30614d086" -dependencies = [ - "glib-sys", - "gobject-sys", - "libc", - "system-deps 6.2.2", -] - [[package]] name = "autocfg" version = "1.3.0" @@ -33,43 +10,31 @@ checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "bitflags" -version = "2.5.0" +version = "2.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" +checksum = "3ded4057c258ba199e2d26386d3af3780957ecaee6c4ef4041c6b4b8b97c0b06" [[package]] name = "cairo-rs" -version = "0.18.5" +version = "0.22.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ca26ef0159422fb77631dc9d17b102f253b876fe1586b03b803e63a309b4ee2" +checksum = "df683f1d30b457964673a5541a4603208ef95ab6873d2a55871895cf310f3b56" dependencies = [ "bitflags", "cairo-sys-rs", "glib", "libc", - "once_cell", - "thiserror", ] [[package]] name = "cairo-sys-rs" -version = "0.18.2" +version = "0.22.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "685c9fa8e590b8b3d678873528d83411db17242a73fccaed827770ea0fedda51" +checksum = "ee548131103ad8f698c6725669647b9c757b3b66992dd6a026037596417bee21" dependencies = [ "glib-sys", "libc", - "system-deps 6.2.2", -] - -[[package]] -name = "cfg-expr" -version = "0.15.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d067ad48b8650848b989a59a86c6c36a995d02d2bf778d45c3c5d57bc2718f02" -dependencies = [ - "smallvec", - "target-lexicon 0.12.14", + "system-deps 9.0.0", ] [[package]] @@ -79,7 +44,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1a2c5f3bf25ec225351aa1c8e230d04d880d3bd89dea133537dafad4ae291e5c" dependencies = [ "smallvec", - "target-lexicon 0.13.2", + "target-lexicon", ] [[package]] @@ -183,52 +148,51 @@ dependencies = [ "slab", ] -[[package]] -name = "gdk" -version = "0.18.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9f245958c627ac99d8e529166f9823fb3b838d1d41fd2b297af3075093c2691" -dependencies = [ - "cairo-rs", - "gdk-pixbuf", - "gdk-sys", - "gio", - "glib", - "libc", - "pango", -] - [[package]] name = "gdk-pixbuf" -version = "0.18.5" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50e1f5f1b0bfb830d6ccc8066d18db35c487b1b2b1e8589b5dfe9f07e8defaec" +checksum = "25f420376dbee041b2db374ce4573892a36222bb3f6c0c43e24f0d67eae9b646" dependencies = [ "gdk-pixbuf-sys", "gio", "glib", "libc", - "once_cell", ] [[package]] name = "gdk-pixbuf-sys" -version = "0.18.0" +version = "0.22.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9839ea644ed9c97a34d129ad56d38a25e6756f99f3a88e15cd39c20629caf7" +checksum = "9d5209294ba3775f9b650bf78bfadeba4332089f2329b3e2f6ce0a4957a45bff" dependencies = [ "gio-sys", "glib-sys", "gobject-sys", "libc", - "system-deps 6.2.2", + "system-deps 9.0.0", ] [[package]] -name = "gdk-sys" -version = "0.18.2" +name = "gdk4" +version = "0.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c2d13f38594ac1e66619e188c6d5a1adb98d11b2fcf7894fc416ad76aa2f3f7" +checksum = "d81e2a6c6ecba2aab60633a98df1868b03fa0bfdce8105edc27c1bccf71f0e39" +dependencies = [ + "cairo-rs", + "gdk-pixbuf", + "gdk4-sys", + "gio", + "glib", + "libc", + "pango", +] + +[[package]] +name = "gdk4-sys" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d8f608d8d7d229975c4d0d026f5d3071598c4ddab3c5262b0a31840fec78d13" dependencies = [ "cairo-sys-rs", "gdk-pixbuf-sys", @@ -238,14 +202,14 @@ dependencies = [ "libc", "pango-sys", "pkg-config", - "system-deps 6.2.2", + "system-deps 7.0.5", ] [[package]] name = "gio" -version = "0.18.4" +version = "0.22.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4fc8f532f87b79cbc51a79748f16a6828fb784be93145a322fa14d06d354c73" +checksum = "b399f4650bb52c051f3fdf49a234e8a27ab5725c8cd774556c55eee64b2c0350" dependencies = [ "futures-channel", "futures-core", @@ -254,30 +218,28 @@ dependencies = [ "gio-sys", "glib", "libc", - "once_cell", "pin-project-lite", "smallvec", - "thiserror", ] [[package]] name = "gio-sys" -version = "0.18.1" +version = "0.22.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37566df850baf5e4cb0dfb78af2e4b9898d817ed9263d1090a2df958c64737d2" +checksum = "6c28739f914c15b87a9856000bed9cbd5b3a8afbca5e982d9a299e1601422cb5" dependencies = [ "glib-sys", "gobject-sys", "libc", - "system-deps 6.2.2", - "winapi", + "system-deps 9.0.0", + "windows-sys", ] [[package]] name = "glib" -version = "0.18.5" +version = "0.22.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "233daaf6e83ae6a12a52055f568f9d7cf4671dabb78ff9560ab6da230ce00ee5" +checksum = "18b9b8d350db41f690ec1b87109f202782748bbd8ab2f2ede17cb40d29e2838c" dependencies = [ "bitflags", "futures-channel", @@ -291,109 +253,151 @@ dependencies = [ "gobject-sys", "libc", "memchr", - "once_cell", "smallvec", - "thiserror", ] [[package]] name = "glib-macros" -version = "0.18.5" +version = "0.22.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bb0228f477c0900c880fd78c8759b95c7636dbd7842707f49e132378aa2acdc" +checksum = "c9597c68fa7bdf4154a3079642cd21c4dccac0b0bdd2897d82861523bf91e7b9" dependencies = [ - "heck 0.4.1", - "proc-macro-crate 2.0.2", - "proc-macro-error", + "heck", "proc-macro2", "quote", - "syn 2.0.61", + "syn 3.0.6", ] [[package]] name = "glib-sys" -version = "0.18.1" +version = "0.22.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "063ce2eb6a8d0ea93d2bf8ba1957e78dbab6be1c2220dd3daca57d5a9d869898" +checksum = "99b38907e67e40dec9b60f858bcada952598719cb512a13eb13d6cdcd16f8295" dependencies = [ "libc", - "system-deps 6.2.2", + "system-deps 9.0.0", ] [[package]] name = "gobject-sys" -version = "0.18.0" +version = "0.22.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07595c9ba696bd9819cb6a8df39f08078f3dd679508fe052dd558492c2053834" +dependencies = [ + "glib-sys", + "libc", + "system-deps 9.0.0", +] + +[[package]] +name = "graphene-rs" +version = "0.22.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0850127b514d1c4a4654ead6dedadb18198999985908e6ffe4436f53c785ce44" +checksum = "eb856b9c558971c3f13ab692358926da710b046932a4e087aedcc35b040d7dff" +dependencies = [ + "glib", + "graphene-sys", +] + +[[package]] +name = "graphene-sys" +version = "0.22.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97842c7543828f98aa5583aa54fcda28aa84fa2b0f8c556142177f7bbb638057" dependencies = [ "glib-sys", "libc", - "system-deps 6.2.2", + "system-deps 9.0.0", ] [[package]] -name = "gtk" -version = "0.18.2" +name = "gsk4" +version = "0.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd56fb197bfc42bd5d2751f4f017d44ff59fbb58140c6b49f9b3b2bdab08506a" +checksum = "b867be1c5f14dcb8f552c0eff6e9a9b1da5f8b43943e8efc3a63c889d84952ff" dependencies = [ - "atk", "cairo-rs", - "field-offset", - "futures-channel", - "gdk", - "gdk-pixbuf", - "gio", + "gdk4", "glib", - "gtk-sys", - "gtk3-macros", + "graphene-rs", + "gsk4-sys", "libc", "pango", - "pkg-config", ] [[package]] -name = "gtk-sys" -version = "0.18.2" +name = "gsk4-sys" +version = "0.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f29a1c21c59553eb7dd40e918be54dccd60c52b049b75119d5d96ce6b624414" +checksum = "5b7c7eb2e681ee896646cfb8872b431f24d09f53ba9283289d9b10caa6707088" dependencies = [ - "atk-sys", "cairo-sys-rs", - "gdk-pixbuf-sys", - "gdk-sys", - "gio-sys", + "gdk4-sys", "glib-sys", "gobject-sys", + "graphene-sys", "libc", "pango-sys", - "system-deps 6.2.2", + "system-deps 7.0.5", +] + +[[package]] +name = "gtk4" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98a0a0466484f64b07b5b8184d43fa46be78eb0b8e04ae4e179af31d770b76d9" +dependencies = [ + "cairo-rs", + "field-offset", + "futures-channel", + "gdk-pixbuf", + "gdk4", + "gio", + "glib", + "graphene-rs", + "gsk4", + "gtk4-macros", + "gtk4-sys", + "libc", + "pango", ] [[package]] -name = "gtk3-macros" -version = "0.18.2" +name = "gtk4-macros" +version = "0.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52ff3c5b21f14f0736fed6dcfc0bfb4225ebf5725f3c0209edeec181e4d73e9d" +checksum = "5ac7179400a36a04de039c24206bb841c5596992b907b43b23ee8d5bdc40d00e" dependencies = [ - "proc-macro-crate 1.3.1", - "proc-macro-error", + "proc-macro-crate", "proc-macro2", "quote", "syn 2.0.61", ] [[package]] -name = "hashbrown" -version = "0.14.5" +name = "gtk4-sys" +version = "0.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" +checksum = "82b8f954786af0b1984425c4446b77f5ff6594346181316be3f850caab1c6f01" +dependencies = [ + "cairo-sys-rs", + "gdk-pixbuf-sys", + "gdk4-sys", + "gio-sys", + "glib-sys", + "gobject-sys", + "graphene-sys", + "gsk4-sys", + "libc", + "pango-sys", + "system-deps 7.0.5", +] [[package]] -name = "heck" -version = "0.4.1" +name = "hashbrown" +version = "0.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" +checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a" [[package]] name = "heck" @@ -403,9 +407,9 @@ checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" [[package]] name = "indexmap" -version = "2.2.6" +version = "2.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" +checksum = "cc4e190f5d26ca7051642629da2c52fc03bde85a03197c99408dcd291734c855" dependencies = [ "equivalent", "hashbrown", @@ -417,32 +421,14 @@ version = "0.2.154" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ae743338b92ff9146ce83992f766a31066a91a8c84a45e0e9f21e7cf6de6d346" -[[package]] -name = "libhandy-sys" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d814ea1e409715aef1dd9885994cb6801f52129ba2898bfe74591b9547b998ad" -dependencies = [ - "gdk-pixbuf-sys", - "gdk-sys", - "gio-sys", - "glib-sys", - "gobject-sys", - "gtk-sys", - "libc", - "pango-sys", - "pkg-config", - "system-deps 6.2.2", -] - [[package]] name = "libphosh" version = "0.0.7" dependencies = [ - "gdk", + "gdk4", "gio", "glib", - "gtk", + "gtk4", "libc", "libphosh-sys", ] @@ -451,15 +437,12 @@ dependencies = [ name = "libphosh-sys" version = "0.0.7" dependencies = [ - "gdk-pixbuf-sys", - "gdk-sys", + "gdk4-sys", "gio-sys", "glib-sys", "gobject-sys", - "gtk-sys", + "gtk4-sys", "libc", - "libhandy-sys", - "pango-sys", "pkg-config", "shell-words", "system-deps 7.0.5", @@ -474,9 +457,9 @@ checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c" [[package]] name = "memchr" -version = "2.7.2" +version = "2.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d" +checksum = "cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98" [[package]] name = "memoffset" @@ -487,35 +470,27 @@ dependencies = [ "autocfg", ] -[[package]] -name = "once_cell" -version = "1.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" - [[package]] name = "pango" -version = "0.18.3" +version = "0.22.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ca27ec1eb0457ab26f3036ea52229edbdb74dee1edd29063f5b9b010e7ebee4" +checksum = "0b2022dbbd82e1c42bd950a6f1df9b98c796e725dce5ec275e03cbf9772e4efa" dependencies = [ "gio", "glib", - "libc", - "once_cell", "pango-sys", ] [[package]] name = "pango-sys" -version = "0.18.0" +version = "0.22.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "436737e391a843e5933d6d9aa102cb126d501e815b83601365a948a518555dc5" +checksum = "ca02d64761b74d56cdd4b437db6d73dc95e6c0d40f27e1c707952c0f09052948" dependencies = [ "glib-sys", "gobject-sys", "libc", - "system-deps 6.2.2", + "system-deps 9.0.0", ] [[package]] @@ -532,59 +507,24 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "pkg-config" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" - -[[package]] -name = "proc-macro-crate" -version = "1.3.1" +version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" -dependencies = [ - "once_cell", - "toml_edit 0.19.15", -] +checksum = "f6b464fbc74e149a392436b17d523f769e057cb6877f6a5c4618bc6f11800548" [[package]] name = "proc-macro-crate" -version = "2.0.2" +version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b00f26d3400549137f92511a46ac1cd8ce37cb5598a96d382381458b992a5d24" +checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f" dependencies = [ - "toml_datetime", - "toml_edit 0.20.2", -] - -[[package]] -name = "proc-macro-error" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" -dependencies = [ - "proc-macro-error-attr", - "proc-macro2", - "quote", - "syn 1.0.109", - "version_check", -] - -[[package]] -name = "proc-macro-error-attr" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" -dependencies = [ - "proc-macro2", - "quote", - "version_check", + "toml_edit 0.25.15+spec-1.1.0", ] [[package]] name = "proc-macro2" -version = "1.0.82" +version = "1.0.107" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" +checksum = "985e7ec9bb745e6ce6535b544d84d6cd6f7ad8bd711c398938ae983b91a766d9" dependencies = [ "unicode-ident", ] @@ -628,22 +568,31 @@ checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" [[package]] name = "serde" -version = "1.0.201" +version = "1.0.229" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "780f1cebed1629e4753a1a38a3c72d30b97ec044f0aef68cb26650a3c5cf363c" +checksum = "4148590afebada386688f18773da617792bf2ef03ffc1e4cbd2b1d45b023e0ba" +dependencies = [ + "serde_core", +] + +[[package]] +name = "serde_core" +version = "1.0.229" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67dca2c9c51e58a4791a4b1ed58308b39c64224d349a935ab5039aa360942a48" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.201" +version = "1.0.229" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5e405930b9796f1c00bee880d03fc7e0bb4b9a11afc776885ffe84320da2865" +checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348" dependencies = [ "proc-macro2", "quote", - "syn 2.0.61", + "syn 3.0.6", ] [[package]] @@ -655,6 +604,15 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_spanned" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6662b5879511e06e8999a8a235d848113e942c9124f211511b16466ee2995f26" +dependencies = [ + "serde_core", +] + [[package]] name = "shell-words" version = "1.1.0" @@ -678,19 +636,20 @@ checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" [[package]] name = "syn" -version = "1.0.109" +version = "2.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" dependencies = [ "proc-macro2", + "quote", "unicode-ident", ] [[package]] name = "syn" -version = "2.0.61" +version = "3.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9" +checksum = "8593e8e72159ed2257d083c7a454a85cbf854f37a0966d8d483aff8c8a3ebcee" dependencies = [ "proc-macro2", "quote", @@ -699,36 +658,30 @@ dependencies = [ [[package]] name = "system-deps" -version = "6.2.2" +version = "7.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3e535eb8dded36d55ec13eddacd30dec501792ff23a0b1682c38601b8cf2349" +checksum = "e4be53aa0cba896d2dc615bd42bbc130acdcffa239e0a2d965ea5b3b2a86ffdb" dependencies = [ - "cfg-expr 0.15.8", - "heck 0.5.0", + "cfg-expr", + "heck", "pkg-config", - "toml", + "toml 0.8.2", "version-compare", ] [[package]] name = "system-deps" -version = "7.0.5" +version = "9.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4be53aa0cba896d2dc615bd42bbc130acdcffa239e0a2d965ea5b3b2a86ffdb" +checksum = "8a0dae2cbca1f0ff93795713cfe0a4c02f760e3c0b8ae2ab4ec4045808ff429f" dependencies = [ - "cfg-expr 0.20.3", - "heck 0.5.0", + "cfg-expr", + "heck", "pkg-config", - "toml", + "toml 1.1.6+spec-1.1.0", "version-compare", ] -[[package]] -name = "target-lexicon" -version = "0.12.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f" - [[package]] name = "target-lexicon" version = "0.13.2" @@ -748,35 +701,30 @@ dependencies = [ ] [[package]] -name = "thiserror" -version = "1.0.60" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "579e9083ca58dd9dcf91a9923bb9054071b9ebbd800b342194c9feb0ee89fc18" -dependencies = [ - "thiserror-impl", -] - -[[package]] -name = "thiserror-impl" -version = "1.0.60" +name = "toml" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2470041c06ec3ac1ab38d0356a6119054dedaea53e12fbefc0de730a1c08524" +checksum = "185d8ab0dfbb35cf1399a6344d8484209c088f75f8f68230da55d48d95d43e3d" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.61", + "serde", + "serde_spanned 0.6.5", + "toml_datetime 0.6.3", + "toml_edit 0.20.2", ] [[package]] name = "toml" -version = "0.8.2" +version = "1.1.6+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "185d8ab0dfbb35cf1399a6344d8484209c088f75f8f68230da55d48d95d43e3d" +checksum = "920602543f0911ab71da12c50d59701da54c196d1a2bf5cb4b75667f137a406a" dependencies = [ - "serde", - "serde_spanned", - "toml_datetime", - "toml_edit 0.20.2", + "indexmap", + "serde_core", + "serde_spanned 1.1.1", + "toml_datetime 1.1.1+spec-1.1.0", + "toml_parser", + "toml_writer", + "winnow 1.0.4", ] [[package]] @@ -789,14 +737,12 @@ dependencies = [ ] [[package]] -name = "toml_edit" -version = "0.19.15" +name = "toml_datetime" +version = "1.1.1+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" +checksum = "3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7" dependencies = [ - "indexmap", - "toml_datetime", - "winnow", + "serde_core", ] [[package]] @@ -807,50 +753,49 @@ checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338" dependencies = [ "indexmap", "serde", - "serde_spanned", - "toml_datetime", - "winnow", + "serde_spanned 0.6.5", + "toml_datetime 0.6.3", + "winnow 0.5.40", ] [[package]] -name = "unicode-ident" -version = "1.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" - -[[package]] -name = "version-compare" -version = "0.2.0" +name = "toml_edit" +version = "0.25.15+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "852e951cb7832cb45cb1169900d19760cfa39b82bc0ea9c0e5a14ae88411c98b" +checksum = "1340ea94a5856333492c9064b02c778b191dd2c853778d9609debdcdfea3a614" +dependencies = [ + "indexmap", + "toml_datetime 1.1.1+spec-1.1.0", + "toml_parser", + "winnow 1.0.4", +] [[package]] -name = "version_check" -version = "0.9.4" +name = "toml_parser" +version = "1.1.3+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" +checksum = "1d38ac1cf9b95face32296c0a3ede1fdc270627c9d9c02a7274dd6d960dc4d56" +dependencies = [ + "winnow 1.0.4", +] [[package]] -name = "winapi" -version = "0.3.9" +name = "toml_writer" +version = "1.1.2+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" -dependencies = [ - "winapi-i686-pc-windows-gnu", - "winapi-x86_64-pc-windows-gnu", -] +checksum = "7d56353a2a665ad0f41a421187180aab746c8c325620617ad883a99a1cbe66d2" [[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" +name = "unicode-ident" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" [[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" +name = "version-compare" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" +checksum = "852e951cb7832cb45cb1169900d19760cfa39b82bc0ea9c0e5a14ae88411c98b" [[package]] name = "windows-sys" @@ -933,3 +878,12 @@ checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" dependencies = [ "memchr", ] + +[[package]] +name = "winnow" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23b97319f7b8343df12cc98938e5c3eb436064524c8d2b4e30a1d3a36eecdf81" +dependencies = [ + "memchr", +] diff --git a/libphosh-rs/Gcr-3.gir b/libphosh-rs/Gcr-3.gir index acdbf0077..b7ded266c 100644 --- a/libphosh-rs/Gcr-3.gir +++ b/libphosh-rs/Gcr-3.gir @@ -5,12 +5,14 @@ and/or use gtk-doc annotations. --> + + throws="1" + glib:async-func="build_async"> Complete a certificate chain. Once a certificate chain has been built @@ -1231,7 +1234,9 @@ asynchronous version. + c:identifier="gcr_certificate_chain_build_async" + glib:finish-func="build_finish" + glib:sync-func="build"> Complete a certificate chain. Once a certificate chain has been built @@ -1626,6 +1631,9 @@ certificate. The anchored certificate is not necessarily self-signed. + a method which returns the RAW der data of the certificate @@ -1696,7 +1704,8 @@ with [method@CertificateRequest.complete_async]. + throws="1" + glib:async-func="capable_async"> Check whether [class@CertificateRequest] is capable of creating a request @@ -1727,7 +1736,9 @@ for the given @private_key. + c:identifier="gcr_certificate_request_capable_async" + glib:finish-func="capable_finish" + glib:sync-func="capable"> Asynchronously check whether [class@CertificateRequest] is capable of @@ -1826,7 +1837,8 @@ capable of creating a request for the given @private_key. + throws="1" + glib:async-func="complete_async"> Complete and sign a certificate request, so that it can be encoded @@ -1859,7 +1871,9 @@ This call may block as it signs the request using the private key. + c:identifier="gcr_certificate_request_complete_async" + glib:finish-func="complete_finish" + glib:sync-func="complete"> Asynchronously complete and sign a certificate request, so that it can @@ -2649,6 +2663,9 @@ also be used to sort the objects. + Compare whether tow objects represent the same thing. @@ -3503,7 +3520,10 @@ the importer to ask the caller for further information about the import. It must be implemented on a derived class of [class@Gio.TlsInteraction] - + Supplement attributes before import. This means prompting the user for @@ -3544,7 +3564,10 @@ cancellable cancels the operation the error should be set with %G_IO_ERROR_CANCE - + Asynchronously supplement attributes before import. This means prompting the @@ -3664,7 +3687,8 @@ interaction that these are the attributes that are needed. + throws="1" + glib:async-func="supplement_async"> Supplement attributes before import. This means prompting the user for @@ -3706,7 +3730,9 @@ cancellable cancels the operation the error should be set with %G_IO_ERROR_CANCE + c:identifier="gcr_import_interaction_supplement_async" + glib:finish-func="supplement_finish" + glib:sync-func="supplement"> Asynchronously supplement attributes before import. This means prompting the @@ -3839,6 +3865,9 @@ interaction that these are the attributes that are needed. + method which prepares for supplementing the given attributes before import @@ -3861,6 +3890,9 @@ interaction that these are the attributes that are needed. + method which synchronously supplements attributes before import @@ -3896,6 +3928,9 @@ interaction that these are the attributes that are needed. + method which asynchronously supplements attributes before import @@ -3949,6 +3984,9 @@ interaction that these are the attributes that are needed. + method which completes @supplement_async @@ -4103,7 +4141,9 @@ If @attrs are a floating reference, then it is consumed. - + Import the queued items in the importer. This function returns immediately @@ -4178,6 +4218,9 @@ and completes asynchronously. + optional implementation of [method@Importer.import] @@ -4247,7 +4290,10 @@ importer. - + Import the queued items in the importer. This call will block @@ -4277,7 +4323,10 @@ until the operation completes. - + Import the queued items in the importer. This function returns immediately @@ -4452,6 +4501,9 @@ importer. + implementation of gcr_importer_create_for_parsed(), required @@ -4467,6 +4519,9 @@ importer. + implementation of gcr_importer_queue_for_parsed(), required @@ -4492,6 +4547,9 @@ importer. + optional implementation of [method@Importer.import] @@ -4511,6 +4569,9 @@ importer. + implementation of [method@Importer.import_async], required @@ -4558,6 +4619,9 @@ importer. + implementation of [method@Importer.import_finish] @@ -4595,7 +4659,7 @@ importer. - + The micro version number of the Gcr library. @@ -4958,6 +5022,9 @@ currently parsed item can be retrieved using the + The default handler for the authenticate signal. @@ -4972,6 +5039,9 @@ currently parsed item can be retrieved using the + The default handler for the parsed signal. @@ -5345,7 +5415,8 @@ A copy of the data will be made. Use gcr_parser_parse_bytes() to avoid this. + throws="1" + glib:async-func="parse_stream_async"> Parse items from the data in a #GInputStream. This function may block while @@ -5386,7 +5457,9 @@ may fire during the parsing. + c:identifier="gcr_parser_parse_stream_async" + glib:finish-func="parse_stream_finish" + glib:sync-func="parse_stream"> Parse items from the data in a #GInputStream. This function completes @@ -5584,6 +5657,9 @@ functions. + The default handler for the authenticate signal. @@ -5600,6 +5676,9 @@ functions. + The default handler for the parsed signal. @@ -5641,7 +5720,8 @@ are available via gcr_pkcs11_certificate_get_attributes(). + throws="1" + glib:async-func="lookup_issuer_async"> Lookup a the issuer of a @certificate in the PKCS#11 storage. The @@ -5679,7 +5759,9 @@ if an error occurred. + c:identifier="gcr_pkcs11_certificate_lookup_issuer_async" + glib:finish-func="lookup_issuer_finish" + glib:sync-func="lookup_issuer"> Lookup a the issuer of a @certificate in the PKCS#11 storage. The @@ -5839,6 +5921,9 @@ property, but may choose not to display the [property@Prompt:description] or [property@Prompt:title] properties. + close a prompt @@ -5849,7 +5934,9 @@ property, but may choose not to display the [property@Prompt:description] or - + Prompts for confirmation asking a cancel/continue style question. @@ -5932,7 +6019,9 @@ an error occurs. Check the @error argument to tell the difference. - + Prompts for password. Set the various properties on the prompt before calling @@ -6039,7 +6128,10 @@ This emits the [signal@Prompt::prompt-close] signal on the prompt object. - + Prompts for confirmation asking a cancel/continue style question. @@ -6076,7 +6168,10 @@ an error occurs. Check the @error argument to tell the difference. - + Prompts for confirmation asking a cancel/continue style question. @@ -6484,7 +6579,10 @@ If this string is %NULL then no warning is displayed. - + Prompts for password. Set the various properties on the prompt before calling @@ -6523,7 +6621,10 @@ to display another prompt. - + Prompts for password. Set the various properties on the prompt before calling @@ -7152,6 +7253,9 @@ You can use the [method@Prompt.close] method to emit this signal. + begin a password prompt @@ -7199,6 +7303,9 @@ You can use the [method@Prompt.close] method to emit this signal. + complete a password prompt @@ -7224,6 +7331,9 @@ You can use the [method@Prompt.close] method to emit this signal. + begin a confirm prompt @@ -7271,6 +7381,9 @@ You can use the [method@Prompt.close] method to emit this signal. + complete a confirm prompt @@ -7296,6 +7409,9 @@ You can use the [method@Prompt.close] method to emit this signal. + close a prompt @@ -8271,7 +8387,10 @@ Use [method@SystemPrompt.close] to close the prompt when you're done with it. - + Opens a system prompt with the default prompter. @@ -8308,7 +8427,10 @@ error. - + Asynchronously open a system prompt with the default system prompter. @@ -8497,7 +8619,10 @@ error. - + Close this prompt. After calling this function, no further prompts will @@ -8534,7 +8659,10 @@ still closed and may not be further used. - + Close this prompt asynchronously. After calling this function, no further @@ -8762,6 +8890,9 @@ interface. + default handler for the #GcrSystemPrompter::new-prompt signal @@ -8965,6 +9096,9 @@ gcr_system_prompter_get_prompt_type(). + default handler for the #GcrSystemPrompter::new-prompt signal diff --git a/libphosh-rs/GnomeBluetooth-3.0.gir b/libphosh-rs/GnomeBluetooth-3.0.gir new file mode 100644 index 000000000..4268b69c7 --- /dev/null +++ b/libphosh-rs/GnomeBluetooth-3.0.gir @@ -0,0 +1,893 @@ + + + + + + + + + A more precise power state for a Bluetooth adapter. + + Bluetooth adapter is missing. + + + Bluetooth adapter is on. + + + Bluetooth adapter is being turned on. + + + Bluetooth adapter is being turned off. + + + Bluetooth adapter is off. + + + + The type of battery reporting supported by the device. + + no battery reporting + + + battery reported in percentage + + + battery reported coarsely + + + + + + Returns a reference to the #BluetoothClient singleton. Use g_object_unref() when done with the object. + + + a #BluetoothClient object. + + + + + This will start the process of connecting to one of the known-connectable +services on the device. This means that it could connect to all the audio +services on a headset, but just to the input service on a keyboard. + +Broadly speaking, this will only have an effect on devices with audio and HID +services, and do nothing if the device doesn't have the "connectable" +property set. + +When the connection operation is finished, @callback will be called. You can +then call bluetooth_client_connect_service_finish() to get the result of the +operation. + + + + + + + a #BluetoothClient + + + + the object path on which to operate + + + + Whether try to connect or disconnect from services on a device + + + + optional #GCancellable object, %NULL to ignore + + + + a #GAsyncReadyCallback to call when the connection is complete + + + + the data to pass to callback function + + + + + + Finishes the connection operation. See bluetooth_client_connect_service(). + + + %TRUE if the connection operation succeeded, %FALSE otherwise. + + + + + a #BluetoothClient + + + + a #GAsyncResult + + + + + + Returns an unfiltered #GListStore representing the devices attached to the default +Bluetooth adapter. + + + a #GListStore + + + + + a #BluetoothClient object + + + + + + Returns whether there are connected devices with the input capability. +This can be used by an OS user interface to warn the user before disabling +Bluetooth so that the user isn't stranded without any input devices. + + + %TRUE if there are connected input devices. + + + + + a #BluetoothClient + + + + + + The D-Bus path of the default Bluetooth adapter or %NULL. + + + + The address of the default Bluetooth adapter or %NULL. + + + + The name of the default Bluetooth adapter or %NULL. + + + + %TRUE if the default Bluetooth adapter is powered. + + + + %TRUE if the default Bluetooth adapter is in setup mode (discoverable, and discovering). + + + + The #BluetoothAdapterState of the default Bluetooth adapter. More precise than +#BluetoothClient:default-adapter-powered. + + + + The number of detected Bluetooth adapters. + + + + The #BluetoothClient::device-added signal is launched when a +device gets added to the model. + + + + + + a #BluetoothDevice object + + + + + + The #BluetoothClient::device-removed signal is launched when a +device gets removed from the model. + +Note that #BluetoothClient::device-removed will not be called +for each individual device as the model is cleared when the +#BluetoothClient:default-adapter property changes. + + + + + + the D-Bus object path for the now-removed device + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Use this value to select any Bluetooth audio device where a #BluetoothType enum is required. + + + + + Use this value to select any Bluetooth input device where a #BluetoothType enum is required. + + + + + The type of a Bluetooth device. See also %BLUETOOTH_TYPE_INPUT and %BLUETOOTH_TYPE_AUDIO + + any device, or a device of an unknown type + + + a telephone (usually a cell/mobile phone) + + + a modem + + + a computer, can be a laptop, a wearable computer, etc. + + + a network device, such as a router + + + a headset (usually a hands-free device) + + + headphones (covers two ears) + + + another type of audio device + + + a keyboard + + + a mouse + + + a camera (still or moving) + + + a printer + + + a joypad, joystick, or other game controller + + + a drawing tablet + + + a video device, such as a webcam + + + a remote control + + + a scanner + + + a display + + + a wearable computer + + + a toy or game + + + audio speaker or speakers + + + Returns a human-readable string representation of @type usable for display to users. Do not free the return value. +The returned string is already translated with gettext(). + + + a string. + + + + + a #BluetoothType + + + + + + + Returns the type of device corresponding to the given @appearance value, +as usually found in the GAP service. + + + a #BluetoothType. + + + + + a Bluetooth device appearance + + + + + + The #BluetoothClient object is used to query the state of Bluetooth +devices and adapters. + + + Enumerations related to Bluetooth. + + + Those helper functions are used throughout the Bluetooth +management utilities. + + + Returns the type of device corresponding to the given @class value. + + + a #BluetoothType. + + + + + a Bluetooth device class + + + + + + Start a GUI application for transferring files over Bluetooth. + + + %TRUE on success, %FALSE on error. + + + + + Remote device to use + + + + Remote device's name + + + + + + Returns a human-readable string representation of @type usable for display to users. Do not free the return value. +The returned string is already translated with gettext(). + + + a string. + + + + + a #BluetoothType + + + + + + Returns a string representing a human-readable (but not usable for display to users) version of the @uuid. Do not free the return value. + + + a string. + + + + + a string representing a Bluetooth UUID + + + + + + Returns whether the string is a valid Bluetooth address. This does not contact the device in any way. + + + %TRUE if the address is valid, %FALSE if not. + + + + + a string representing a Bluetooth address + + + + + + diff --git a/libphosh-rs/GnomeDesktop-3.0.gir b/libphosh-rs/GnomeDesktop-3.0.gir deleted file mode 100644 index b3ad76fdd..000000000 --- a/libphosh-rs/GnomeDesktop-3.0.gir +++ /dev/null @@ -1,5650 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Creates a thumbnail for a certain frame, where 'frame' is somewhat -vaguely defined as 'suitable point to show while single-stepping -through the slideshow'. - - - the newly created thumbnail or -or NULL if frame_num is out of bounds. - - - - - - - - - - - - - - - - - - - - - - - - - Create a surface that can be set as background for @window. - - - %NULL on error (e.g. out of X connections) - - - - - GnomeBG - - - - - - - - - - - - - - - - - a #GdkPixbuf showing the background as a thumbnail - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Creates a new object to manage crossfading a -window background between two #cairo_surface_ts. - - - the new #GnomeBGCrossfade - - - - - The width of the crossfading window - - - - The height of the crossfading window - - - - - - - - - - - - - - - - - - - - This function reveals whether or not @fade is currently -running on a window. See gnome_bg_crossfade_start() for -information on how to initiate a crossfade. - - - %TRUE if fading, or %FALSE if not fading - - - - - a #GnomeBGCrossfade - - - - - - Before initiating a crossfade with gnome_bg_crossfade_start() -a start and end surface have to be set. This function sets -the surface shown at the end of the crossfade effect. - - - %TRUE if successful, or %FALSE if the surface -could not be copied. - - - - - a #GnomeBGCrossfade - - - - The cairo surface to fade to - - - - - - Before initiating a crossfade with gnome_bg_crossfade_start() -a start and end surface have to be set. This function sets -the surface shown at the beginning of the crossfade effect. - - - %TRUE if successful, or %FALSE if the surface -could not be copied. - - - - - a #GnomeBGCrossfade - - - - The cairo surface to fade from - - - - - - This function initiates a quick crossfade between two surfaces on -the background of @window. Before initiating the crossfade both -gnome_bg_crossfade_start() and gnome_bg_crossfade_end() need to -be called. If animations are disabled, the crossfade is skipped, -and the window background is set immediately to the end surface. - - - - - - - a #GnomeBGCrossfade - - - - The #GdkWindow to draw crossfade on - - - - - - This function stops any in progress crossfades that may be -happening. It's harmless to call this function if @fade is -already stopped. - - - - - - - a #GnomeBGCrossfade - - - - - - When a crossfade is running, this is height of the fading -surface. - - - - When a crossfade is running, this is width of the fading -surface. - - - - - - - - - - When a crossfade finishes, @window will have a copy -of the end surface as its background, and this signal will -get emitted. - - - - - - the #GdkWindow the crossfade happend on. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Creates a new object to manage a slide show. -window background between two #cairo_surface_ts. - - - the new #GnomeBGSlideShow - - - - - The filename of the slide show - - - - - - Returns the current slides progress. - - - - - - - a #GnomeBGSlideShow - - - - monitor width - - - - monitor height - - - - slide progress - - - - slide duration - - - - if slide is fixed - - - - first file in slide - - - - second file in slide - - - - - - gets whether or not the slide show has multiple sizes for different monitors - - - %TRUE if multiple sizes - - - - - a #GnomeBGSlideShow - - - - - - Returns number of slides in slide show - - - - - - - a #GnomeBGSlideShow - - - - - - Retrieves slide by frame number - - - %TRUE if successful - - - - - a #GnomeBGSlideShow - - - - frame number - - - - monitor width - - - - monitor height - - - - slide progress - - - - slide duration - - - - if slide is fixed - - - - first file in slide - - - - second file in slide - - - - - - gets the start time of the slide show - - - a timestamp - - - - - a #GnomeBGSlideShow - - - - - - gets the total duration of the slide show - - - a timestamp - - - - - a #GnomeBGSlideShow - - - - - - Tries to load the slide show. - - - %TRUE if successful - - - - - a #GnomeBGSlideShow - - - - - - Tries to load the slide show asynchronously. - - - - - - - a #GnomeBGSlideShow - - - - a #GCancellable - - - - the callback - - - - user data - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Creates a new #GnomeDesktopThumbnailFactory. - -This function must be called on the main thread and is non-blocking. - - - a new #GnomeDesktopThumbnailFactory - - - - - The thumbnail size to use - - - - - - Returns TRUE if this GnomeDesktopThumbnailFactory can (at least try) to thumbnail -this file. Thumbnails or files with failed thumbnails won't be thumbnailed. - -Usage of this function is threadsafe and does blocking I/O. - - - TRUE if the file can be thumbnailed. - - - - - a #GnomeDesktopThumbnailFactory - - - - the uri of a file - - - - the mime type of the file - - - - the mtime of the file - - - - - - Creates a failed thumbnail for the file so that we don't try -to re-thumbnail the file later. - -Usage of this function is threadsafe and does blocking I/O. - - - TRUE if everything went fine; FALSE if there was an error. - - - - - a #GnomeDesktopThumbnailFactory - - - - the uri of a file - - - - the modification time of the file - - - - a GCancellable object, or NULL - - - - - - Asynchronous version of gnome_desktop_thumbnail_factory_create_failed_thumbnail() - -Since 43.0 - - - - - - - a #GnomeDesktopThumbnailFactory - - - - the uri of a file - - - - the modification time of the original file - - - - a Cancellable object - - - - a function that will be called when the task has ended - - - - user data - - - - - - - - TRUE if the operation was correct; FALSE if there was an error - -Since 43.0 - - - - - a #GnomeDesktopThumbnailFactory - - - - the result of the operation - - - - - - Tries to generate a thumbnail for the specified file. If it succeeds -it returns a pixbuf that can be used as a thumbnail. - -Usage of this function is threadsafe and does blocking I/O. - - - thumbnail pixbuf if thumbnailing succeeded, %NULL otherwise and error will be set - - - - - a #GnomeDesktopThumbnailFactory - - - - the uri of a file - - - - the mime type of the file - - - - a #GCancellable object or NULL - - - - - - Asynchronous version of gnome_desktop_thumbnail_factory_generate_thumbnail() - -Since 43.0 - - - - - - - a #GnomeDesktopThumbnailFactory - - - - the URI of a file - - - - the MIME type of the file - - - - a Cancellable object - - - - a function that will be called when the task has ended - - - - user data - - - - - - - - thumbnail pixbuf if thumbnailing succeeded, %NULL otherwise. - -Since 43.0 - - - - - a #GnomeDesktopThumbnailFactory - - - - the result of the operation - - - - - - Tries to locate an failed thumbnail for the file specified. Writing -and looking for failed thumbnails is important to avoid to try to -thumbnail e.g. broken images several times. - -Usage of this function is threadsafe and does blocking I/O. - - - TRUE if there is a failed thumbnail for the file. - - - - - a #GnomeDesktopThumbnailFactory - - - - the uri of a file - - - - the mtime of the file - - - - - - Tries to locate an existing thumbnail for the file specified. - -Usage of this function is threadsafe and does blocking I/O. - - - The absolute path of the thumbnail, or %NULL if none exist. - - - - - a #GnomeDesktopThumbnailFactory - - - - the uri of a file - - - - the mtime of the file - - - - - - Saves @thumbnail at the right place. If the save fails a -failed thumbnail is written. - -Usage of this function is threadsafe and does blocking I/O. - - - TRUE if everything went fine; FALSE if there was an error. - - - - - a #GnomeDesktopThumbnailFactory - - - - the thumbnail as a pixbuf - - - - the uri of a file - - - - the modification time of the original file - - - - a GCancellable object, or NULL - - - - - - Asynchronous version of gnome_desktop_thumbnail_factory_save_thumbnail() - -Since 43.0 - - - - - - - a #GnomeDesktopThumbnailFactory - - - - the thumbnail as a pixbuf - - - - the uri of a file - - - - the modification time of the original file - - - - a Cancellable object - - - - a function that will be called when the task has ended - - - - user data - - - - - - - - TRUE if the operation was correct; FALSE if there was an error - -Since 43.0 - - - - - a #GnomeDesktopThumbnailFactory - - - - the result of the operation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - a new #GnomeIdleMonitor that tracks the server-global -idletime for all devices. - - - - - - - a watch id - -Adds a watch for a specific idle time. The callback will be called -when the user has accumulated @interval_msec milliseconds of idle time. -This function will return an ID that can either be passed to -gnome_idle_monitor_remove_watch(), or can be used to tell idle time -watches apart if you have more than one. - -Also note that this function will only care about positive transitions -(user's idle time exceeding a certain time). If you want to know about -when the user has become active, use -gnome_idle_monitor_add_user_active_watch(). - - - - - A #GnomeIdleMonitor - - - - The idletime interval, in milliseconds. It must be - a strictly positive value (> 0). - - - - The callback to call when the user has - accumulated @interval_msec milliseconds of idle time. - - - - The user data to pass to the callback - - - - A #GDestroyNotify - - - - - - - - a watch id - -Add a one-time watch to know when the user is active again. -Note that this watch is one-time and will de-activate after the -function is called, for efficiency purposes. It's most convenient -to call this when an idle watch, as added by -gnome_idle_monitor_add_idle_watch(), has triggered. - - - - - A #GnomeIdleMonitor - - - - The callback to call when the user is - active again. - - - - The user data to pass to the callback - - - - A #GDestroyNotify - - - - - - - - The current idle time, in milliseconds - - - - - A #GnomeIdleMonitor - - - - - - Removes an idle time watcher, previously added by -gnome_idle_monitor_add_idle_watch() or -gnome_idle_monitor_add_user_active_watch(). - - - - - - - A #GnomeIdleMonitor - - - - A watch ID - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Returns a reference to a #GnomePnpIds object, or creates -a new one if none have been created. - - - a #GnomePnpIds object. - - - - - Find the full manufacturer name for the given PNP ID. - - - a new string representing the manufacturer name, -or %NULL when not found. - - - - - a #GnomePnpIds object - - - - the PNP ID to look for - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - whether at least two outputs are at (0, 0) offset and they -have the same width/height. Those outputs are of course connected and on -(i.e. they have a CRTC assigned). - - - - - - - - - - - - the output configuration for this #GnomeRRConfig - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - the current mode of this crtc - - - - - a #GnomeRRCrtc - - - - - - - - - - - - - - - - - - - %TRUE for success - - - - - a #GnomeRRCrtc - - - - - - - the minimum width - - - - the maximum width - - - - the minimum height - - - - - - - - - - - - - - - - - - - - - - - a #GnomeRRCrtc - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Returns TRUE if this mode is a tiled -mode created for span a tiled monitor. - - - - - - - a #GnomeRRMode - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - The currently set backlight brightness - - - - - - - - - - - - - - - - a #GnomeRROutput - - - - - - - - the current mode of this output - - - - - a #GnomeRROutput - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - a #GnomeRROutput - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - The minimum backlight step available in percent - - - - - - - - - - - - - - - - - - - - - - - - - - - a #GnomeRROutput - - - - - - - - - - - - - - - - - - a #GnomeRROutput - - - - - - - - - - - - - - - - - - - - a #GnomeRROutput - - - - - - - - - - - - a #GnomeRROutput - - - - - - - - - - - - - - - - - - - - - - - - - a #GnomeRROutput - - - - - - - - %TRUE for success - - - - - - - - the absolute value which is 0 >= this <= 100 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - the display name of this output - - - - - - - - - - Get the geometry for the monitor connected to the specified output. -If the monitor is a tiled monitor, it returns the geometry for the complete monitor. - - - - - - - a #GnomeRROutputInfo - - - - - - - - - - - - - - - - - - - - the output name - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - a #GnomeRROutputInfo - - - - - - - - whether there is a CRTC assigned to this output (i.e. a signal is being sent to it) - - - - - - - - - - - - whether the output is physically connected to a monitor - - - - - - - - - - - - %TRUE if the specified output is connected to -the primary tile of a monitor or to an untiled monitor, -%FALSE if the output is connected to a secondary tile. - - - - - a #GnomeRROutputInfo - - - - - - - - - - - - - - - - - - - - Set the geometry for the monitor connected to the specified output. -If the monitor is a tiled monitor, it sets the geometry for the complete monitor. - - - - - - - a #GnomeRROutputInfo - - - - x offset for monitor - - - - y offset for monitor - - - - monitor width - - - - monitor height - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Creates a unique #GnomeRRScreen instance for the specified @screen. - - - a unique #GnomeRRScreen instance, specific to the @screen, or NULL -if this could not be created, for instance if the driver does not support -Xrandr 1.2. Each #GdkScreen thus has a single instance of #GnomeRRScreen. - - - - - the #GdkScreen on which to operate - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - the CRTC identified by @id - - - - - - - - - - - - - - - - - - - - - - The current #GnomeRRDpmsMode of this screen - - - - - - - - the output identified by @id - - - - - - - - - - - - - - - the output identified by @name - - - - - - - - - - - - - Get the ranges of the screen - - - - - - - a #GnomeRRScreen - - - - the minimum width - - - - the maximum width - - - - the minimum height - - - - the maximum height - - - - - - List available XRandR clone modes - - - - - - - - - - - - - - List all CRTCs - - - - - - - - - - - - - - List available XRandR modes - - - - - - - - - - - - - - List all outputs - - - - - - - - - - - - - - Refreshes the screen configuration, and calls the screen's callback if it -exists and if the screen's configuration changed. - - - TRUE if the screen's configuration changed; otherwise, the -function returns FALSE and a NULL error if the configuration didn't change, -or FALSE and a non-NULL error if there was an error while refreshing the -configuration. - - - - - a #GnomeRRScreen - - - - - - This method also disables the DPMS timeouts. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - This signal is emitted when a display device is connected to a -port, or a port is hotplugged with an active output. The latter -can happen if a laptop is docked, and the dock provides a new -active output. - -The @output value is not a #GObject. The returned @output value can -only assume to be valid during the emission of the signal (i.e. within -your signal handler only), as it may change later when the @screen -is modified due to an event from the X server, or due to another -place in the application modifying the @screen and the @output. -Therefore, deal with changes to the @output right in your signal -handler, instead of keeping the @output reference for an async or -idle function. - - - - - - the #GnomeRROutput that was connected - - - - - - This signal is emitted when a display device is disconnected from -a port, or a port output is hot-unplugged. The latter can happen -if a laptop is undocked, and the dock provided the output. - -The @output value is not a #GObject. The returned @output value can -only assume to be valid during the emission of the signal (i.e. within -your signal handler only), as it may change later when the @screen -is modified due to an event from the X server, or due to another -place in the application modifying the @screen and the @output. -Therefore, deal with changes to the @output right in your signal -handler, instead of keeping the @output reference for an async or -idle function. - - - - - - the #GnomeRROutput that was disconnected - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Creates a new #GnomeWallClock - - - the new clock - - - - - Returns the string representing the current time of this clock -according to the user settings. - - - the time of the clock as a string. - This string points to internally allocated storage and - must not be freed, modified or stored. - - - - - a #GnomeWallClock - - - - - - Returns the current local time zone used by this clock. - - - the #GTimeZone of the clock. - - - - - a #GnomeWallClock - - - - - - - - a newly allocated string representing the date & time -passed, with the options applied. - - - - - - - - - - - - - - - - - - - - - - - - - A formatted string representing the current clock display. - - - - If %TRUE, the formatted clock will always have seconds precision and the -'clock' property will always be updated every second, irrespective of -system configuration. - - - - If %TRUE, the formatted clock will never include a date or the -day of the week, irrespective of configuration. - - - - The timezone used for this clock - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - a new #GnomeXkbInfo instance. - - - - - - - the translated description for the group @group_id. - - - - - a #GnomeXkbInfo - - - - identifier for group - - - - - - - - the translated description for the option @id. - - - - - a #GnomeXkbInfo - - - - identifier for group containing the option - - - - option identifier - - - - - - Returns a list of all layout identifiers we know about. - - - the list -of layout names. The caller takes ownership of the #GList but not -of the strings themselves, those are internally allocated and must -not be modified. - - - - - - - a #GnomeXkbInfo - - - - - - Returns a list of all option group identifiers we know about. - - - the list -of option group ids. The caller takes ownership of the #GList but -not of the strings themselves, those are internally allocated and -must not be modified. - - - - - - - a #GnomeXkbInfo - - - - - - Returns a list of all languages supported by a layout, given by -@layout_id. - - - the list of -ISO 639 code strings. The caller takes ownership of the #GList but -not of the strings themselves, those are internally allocated and -must not be modified. - - - - - - - a #GnomeXkbInfo - - - - a layout identifier - - - - - - Retrieves information about a layout. Both @display_name and -@short_name are suitable to show in UIs and might be localized if -translations are available. - -Some layouts don't provide a short name (2 or 3 letters) or don't -specify a XKB variant, in those cases @short_name or @xkb_variant -are empty strings, i.e. "". - -If the given layout doesn't exist the return value is %FALSE and -all the (out) parameters are set to %NULL. - - - %TRUE if the layout exists or %FALSE otherwise. - - - - - a #GnomeXkbInfo - - - - layout's identifier about which to retrieve the info - - - - location to store -the layout's display name, or %NULL - - - - location to store -the layout's short name, or %NULL - - - - location to store -the layout's XKB name, or %NULL - - - - location to store -the layout's XKB variant, or %NULL - - - - - - Returns a list of all layout identifiers we know about for -@country_code. - - - the list -of layout ids. The caller takes ownership of the #GList but not of -the strings themselves, those are internally allocated and must not -be modified. - - - - - - - a #GnomeXkbInfo - - - - an ISO 3166 code string - - - - - - Returns a list of all layout identifiers we know about for -@language_code. - - - the list -of layout ids. The caller takes ownership of the #GList but not of -the strings themselves, those are internally allocated and must not -be modified. - - - - - - - a #GnomeXkbInfo - - - - an ISO 639 code string - - - - - - Returns a list of all option identifiers we know about for group -@group_id. - - - the list -of option ids. The caller takes ownership of the #GList but not of -the strings themselves, those are internally allocated and must not -be modified. - - - - - - - a #GnomeXkbInfo - - - - group's identifier about which to retrieve the options - - - - - - - - - - - - - - - - - - - - - - - - - - - Returns whether the thumbnail has the correct uri and mtime embedded in the -png options. This function is threadsafe and does no blocking I/O. - - - TRUE if the thumbnail has the right @uri and @mtime - - - - - an loaded thumbnail #GdkPixbuf - - - - a uri - - - - the mtime - - - - - - Returns the filename that a thumbnail of size @size for @uri would have. -This function is threadsafe and does no blocking I/O. - - - an absolute filename - - - - - an uri - - - - a thumbnail size - - - - - - Gets all locales. - - - - a newly allocated %NULL-terminated string array containing the - all locales. Free with g_strfreev(). - - - - - - - Gets the country name for @code. If @translation is provided the -returned string is translated accordingly. - - - the country name. Caller takes -ownership. - - - - - an ISO 3166 code string - - - - a locale string - - - - - - Gets the country description for @locale. If @translation is -provided the returned string is translated accordingly. - - - the country description. Caller -takes ownership. - - - - - a locale string - - - - a locale string - - - - - - Gets the default input source's type and identifier for a given -locale. - - - %TRUE if a input source exists or %FALSE otherwise. - - - - - a locale string - - - - location to store the input source -type - - - - location to store the input source -identifier - - - - - - Gets the language name for @code. If @translation is provided the -returned string is translated accordingly. - - - the language name. Caller takes -ownership. - - - - - an ISO 639 code string - - - - a locale string - - - - - - Gets the language description for @locale. If @translation is -provided the returned string is translated accordingly. - - - the language description. Caller -takes ownership. - - - - - a locale string - - - - a locale string - - - - - - Returns an integer with the major version of GNOME. Useful for -dynamic languages like Javascript or Python (static languages like -C should use %GNOME_DESKTOP_PLATFORM_VERSION). If this -function doesn't exist, it can be presumed that the GNOME platform -version is 42 or previous. - - - an integer with the major version of GNOME. - - - - - Gets a translation of the raw @modifier string. If @translation -is provided the returned string is translated accordingly. - - - the translated modifier string. -Caller takes ownership. - - - - - the modifier part of a locale name - - - - a locale string - - - - - - #GnomeDesktopThumbnailFactory allows generation and loading of thumbnails for -local and remote files and directories. It uses a collection of programs -called <firstterm>thumbnailers</firstterm>, each one generating thumbnails -for a specific set of content-types of files. For example, -<application>totem-video-thumbnailer</application> generates thumbnails for -video files using GStreamer; <application>evince-thumbnailer</application> -generates thumbnails for PDFs and other document files. If no specific -thumbnailer exists for a file, or if the thumbnailer fails, gdk-pixbuf is -used as a fallback. - -To generate a thumbnail, an appropriate thumbnailer program is selected then -executed, passing it the URI of the file to thumbnail, plus a path to write -the thumbnail image to. If thumbnailing succeeds, the thumbnailer should have -written the image to disk before terminating; but if thumbnailing fails, no -image should be written, and the thumbnailer should return a non-zero exit -status. #GnomeDesktopThumbnailFactory will then fall back to using gdk-pixbuf -to generate a thumbnail, if possible. - -Thumbnailers are chosen by examining a series of -<filename>.thumbnailer</filename> files in -<filename><replaceable>$PREFIX</replaceable>/share/thumbnailers</filename>. -Each is in a simple key-file format: -<informalexample><programlisting> -[Thumbnailer Entry] -Exec=evince-thumbnailer -s %s %u %o -MimeType=application/pdf;application/x-bzpdf;application/x-gzpdf; -</programlisting></informalexample> - -The <filename>.thumbnailer</filename> format supports three keys: -<variablelist> -<varlistentry><term><code>Exec</code></term><listitem><para> -Required. The command to execute the thumbnailer. It supports a few different -parameters which are replaced before calling the thumbnailer: -<replaceable>%u</replaceable> is the URI of the file being thumbnailed; -<replaceable>%i</replaceable> is its path; <replaceable>%o</replaceable> -is the path of the image file to be written to; -<replaceable>%s</replaceable> is the maximum desired size of the thumbnail -image (the maximum width or height, in pixels); and -<replaceable>%%</replaceable> is a literal percent character. -</para></listitem></varlistentry> -<varlistentry><term><code>MimeType</code></term><listitem><para> -Required. A semicolon-separated list of MIME types which the thumbnailer -supports generating thumbnails for. -</para></listitem></varlistentry> -</variablelist> - -So in the example <filename>.thumbnailer</filename> file above, the command -passes the requested thumbnail size, then the input file’s URI, then the -path for the output image file to -<application>evince-thumbnailer</application>. - -The code to examine and call a thumbnailer is contained in -#GnomeDesktopThumbnailFactory, which handles looking up the right thumbnailer -script, building and executing the command for it, and loading the resulting -thumbnail image into a #GdkPixbuf. - -Thumbnail caching is also supported by #GnomeDesktopThumbnailFactory. When -calling a thumbnailer, the path passed for the output image file is in -<filename><envar>$XDG_CACHE_HOME</envar>/thumbnails/ -<replaceable>$SIZE</replaceable>/</filename>. The cached image file is given -a (probably) unique filename, generated by hashing the original file’s URI, -so the thumbnail can be looked up in future. #GnomeDesktopThumbnailFactory -supports two sizes of thumbnails: %GNOME_DESKTOP_THUMBNAIL_SIZE_NORMAL and -%GNOME_DESKTOP_THUMBNAIL_SIZE_LARGE. Normal thumbnails are up to 128×128 -pixels, whereas large thumbnails are up to 256×256 pixels. Thumbnails which -are larger than this are scaled down before being cached, and non-square -thumbnails are scaled so their largest dimension is at most 128 or 256 -pixels. - -#GnomeDesktopThumbnailFactory also handles failed thumbnails. If a -thumbnailer can’t generate a thumbnail for a file (e.g. because the file is -corrupt or because the right video codecs aren’t available), it returns a -non-zero exit status. The thumbnail factory then writes an entry to -<filename><envar>$XDG_CACHE_HOME</envar>/thumbnails/fail/ -gnome-thumbnail-factory/</filename> which is named after the hash of the -input file URI (just like a successful cached thumbnail). For future queries -for thumbnails for that file, #GnomeDesktopThumbnailFactory can immediately -return an error after looking up the fail entry. - -If a file changes content, #GnomeDesktopThumbnailFactory will generate a new -thumbnail because each cached image has associated metadata (stored as PNG -tEXt keys) storing the full URI of the thumbnailed file (to check for hash -collisions) and its last modification time at the point of thumbnailing. If -the stored modification time doesn’t match the file’s current one, a new -thumbnail is generated. - - - Returns %TRUE if there are translations for language @code. - - - %TRUE if there are translations for language @code. - - - - - an ISO 639 code string - - - - - - Gets the normalized locale string in the form -[language[_country][.codeset][@modifier]] for @name. - - - normalized locale string. Caller -takes ownership. - - - - - a locale string - - - - - - Extracts the various components of a locale string in XPG format. -([language[_country][.codeset][@modifier]]). See -http://en.wikipedia.org/wiki/Locale. - - - %TRUE if parsing was successful. - - - - - a locale string - - - - location to -store the language code, or %NULL - - - - location to -store the country code, or %NULL - - - - location to -store the codeset, or %NULL - - - - location to -store the modifier, or %NULL - - - - - - Returns the #GQuark that will be used for #GError values returned by the -GnomeRR API. - - a #GQuark used to identify errors coming from the GnomeRR API. - - - - - If the current process is running inside a user systemd instance, then move -the launched PID into a transient scope. The given @name will be used to -create a unit name. It should be the application ID or the executable in all -other cases. If a desktop-id is passed then the .desktop suffix will be -stripped. - -It is advisable to use this function every time where the started application -can be considered reasonably independent of the launching application. Placing -it in a scope creates proper separation between the programs rather than being -considered a single entity by systemd. - -It is always safe to call this function. Note that a successful return code -does not imply that a unit has been created. It solely means that no error -condition was hit sending the request. - -If @connection is %NULL then g_dbus_get() will be called internally. - -Note that most callers will not need to handle errors. As such, it is normal -to pass a %NULL @callback. - - - - - - - Name for the application - - - - The PID of the application - - - - A description to use for the unit, or %NULL - - - - An #GDBusConnection to the session bus, or %NULL - - - - #GCancellable to use - - - - Callback to call when the operation is done - - - - Data to be passed to @callback - - - - - - Finish an asynchronous operation to create a transient scope that was -started with gnome_start_systemd_scope(). - -Note that a successful return code does not imply that a unit has been -created. It solely means that no error condition was hit sending the request. - - - %FALSE on error, %TRUE otherwise - - - - - A #GAsyncResult - - - - - - diff --git a/libphosh-rs/GnomeDesktop-4.0.gir b/libphosh-rs/GnomeDesktop-4.0.gir new file mode 100644 index 000000000..9947d226c --- /dev/null +++ b/libphosh-rs/GnomeDesktop-4.0.gir @@ -0,0 +1,2411 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Creates a new #GnomeDesktopThumbnailFactory. + +This function must be called on the main thread and is non-blocking. + + + a new #GnomeDesktopThumbnailFactory + + + + + The thumbnail size to use + + + + + + Returns TRUE if this GnomeDesktopThumbnailFactory can (at least try) to thumbnail +this file. Thumbnails or files with failed thumbnails won't be thumbnailed. + +Usage of this function is threadsafe and does blocking I/O. + + + TRUE if the file can be thumbnailed. + + + + + a #GnomeDesktopThumbnailFactory + + + + the uri of a file + + + + the mime type of the file + + + + the mtime of the file + + + + + + Creates a failed thumbnail for the file so that we don't try +to re-thumbnail the file later. + +Usage of this function is threadsafe and does blocking I/O. + + + TRUE if everything went fine; FALSE if there was an error. + + + + + a #GnomeDesktopThumbnailFactory + + + + the uri of a file + + + + the modification time of the file + + + + a GCancellable object, or NULL + + + + + + Asynchronous version of gnome_desktop_thumbnail_factory_create_failed_thumbnail() + +Since 43.0 + + + + + + + a #GnomeDesktopThumbnailFactory + + + + the uri of a file + + + + the modification time of the original file + + + + a Cancellable object + + + + a function that will be called when the task has ended + + + + user data + + + + + + + + TRUE if the operation was correct; FALSE if there was an error + +Since 43.0 + + + + + a #GnomeDesktopThumbnailFactory + + + + the result of the operation + + + + + + Tries to generate a thumbnail for the specified file. If it succeeds +it returns a pixbuf that can be used as a thumbnail. + +Usage of this function is threadsafe and does blocking I/O. + + + thumbnail pixbuf if thumbnailing succeeded, %NULL otherwise and error will be set + + + + + a #GnomeDesktopThumbnailFactory + + + + the uri of a file + + + + the mime type of the file + + + + a #GCancellable object or NULL + + + + + + Asynchronous version of gnome_desktop_thumbnail_factory_generate_thumbnail() + +Since 43.0 + + + + + + + a #GnomeDesktopThumbnailFactory + + + + the URI of a file + + + + the MIME type of the file + + + + a Cancellable object + + + + a function that will be called when the task has ended + + + + user data + + + + + + + + thumbnail pixbuf if thumbnailing succeeded, %NULL otherwise. + +Since 43.0 + + + + + a #GnomeDesktopThumbnailFactory + + + + the result of the operation + + + + + + Tries to locate an failed thumbnail for the file specified. Writing +and looking for failed thumbnails is important to avoid to try to +thumbnail e.g. broken images several times. + +Usage of this function is threadsafe and does blocking I/O. + + + TRUE if there is a failed thumbnail for the file. + + + + + a #GnomeDesktopThumbnailFactory + + + + the uri of a file + + + + the mtime of the file + + + + + + Tries to locate an existing thumbnail for the file specified. + +Usage of this function is threadsafe and does blocking I/O. + + + The absolute path of the thumbnail, or %NULL if none exist. + + + + + a #GnomeDesktopThumbnailFactory + + + + the uri of a file + + + + the mtime of the file + + + + + + Saves @thumbnail at the right place. If the save fails a +failed thumbnail is written. + +Usage of this function is threadsafe and does blocking I/O. + + + TRUE if everything went fine; FALSE if there was an error. + + + + + a #GnomeDesktopThumbnailFactory + + + + the thumbnail as a pixbuf + + + + the uri of a file + + + + the modification time of the original file + + + + a GCancellable object, or NULL + + + + + + Asynchronous version of gnome_desktop_thumbnail_factory_save_thumbnail() + +Since 43.0 + + + + + + + a #GnomeDesktopThumbnailFactory + + + + the thumbnail as a pixbuf + + + + the uri of a file + + + + the modification time of the original file + + + + a Cancellable object + + + + a function that will be called when the task has ended + + + + user data + + + + + + + + TRUE if the operation was correct; FALSE if there was an error + +Since 43.0 + + + + + a #GnomeDesktopThumbnailFactory + + + + the result of the operation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + a new #GnomeIdleMonitor that tracks the server-global +idletime for all devices. + + + + + + + a watch id + +Adds a watch for a specific idle time. The callback will be called +when the user has accumulated @interval_msec milliseconds of idle time. +This function will return an ID that can either be passed to +gnome_idle_monitor_remove_watch(), or can be used to tell idle time +watches apart if you have more than one. + +Also note that this function will only care about positive transitions +(user's idle time exceeding a certain time). If you want to know about +when the user has become active, use +gnome_idle_monitor_add_user_active_watch(). + + + + + A #GnomeIdleMonitor + + + + The idletime interval, in milliseconds. It must be + a strictly positive value (> 0). + + + + The callback to call when the user has + accumulated @interval_msec milliseconds of idle time. + + + + The user data to pass to the callback + + + + A #GDestroyNotify + + + + + + + + a watch id + +Add a one-time watch to know when the user is active again. +Note that this watch is one-time and will de-activate after the +function is called, for efficiency purposes. It's most convenient +to call this when an idle watch, as added by +gnome_idle_monitor_add_idle_watch(), has triggered. + + + + + A #GnomeIdleMonitor + + + + The callback to call when the user is + active again. + + + + The user data to pass to the callback + + + + A #GDestroyNotify + + + + + + + + The current idle time, in milliseconds + + + + + A #GnomeIdleMonitor + + + + + + Removes an idle time watcher, previously added by +gnome_idle_monitor_add_idle_watch() or +gnome_idle_monitor_add_user_active_watch(). + + + + + + + A #GnomeIdleMonitor + + + + A watch ID + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Returns a reference to a #GnomePnpIds object, or creates +a new one if none have been created. + + + a #GnomePnpIds object. + + + + + Find the full manufacturer name for the given PNP ID. + + + a new string representing the manufacturer name, +or %NULL when not found. + + + + + a #GnomePnpIds object + + + + the PNP ID to look for + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Creates a new #GnomeWallClock + + + the new clock + + + + + Returns the string representing the current time of this clock +according to the user settings. + + + the time of the clock as a string. + This string points to internally allocated storage and + must not be freed, modified or stored. + + + + + a #GnomeWallClock + + + + + + Returns the current local time zone used by this clock. + + + the #GTimeZone of the clock. + + + + + a #GnomeWallClock + + + + + + + + a newly allocated string representing the date & time +passed, with the options applied. + + + + + + + + + + + + + + + + + + + + + + + + + A formatted string representing the current clock display. + + + + If %TRUE, the formatted clock will always have seconds precision and the +'clock' property will always be updated every second, irrespective of +system configuration. + + + + If %TRUE, the formatted clock will never include a date or the +day of the week, irrespective of configuration. + + + + The timezone used for this clock + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + a new #GnomeXkbInfo instance. + + + + + + + the translated description for the group @group_id. + + + + + a #GnomeXkbInfo + + + + identifier for group + + + + + + + + the translated description for the option @id. + + + + + a #GnomeXkbInfo + + + + identifier for group containing the option + + + + option identifier + + + + + + Returns a list of all layout identifiers we know about. + + + the list +of layout names. The caller takes ownership of the #GList but not +of the strings themselves, those are internally allocated and must +not be modified. + + + + + + + a #GnomeXkbInfo + + + + + + Returns a list of all option group identifiers we know about. + + + the list +of option group ids. The caller takes ownership of the #GList but +not of the strings themselves, those are internally allocated and +must not be modified. + + + + + + + a #GnomeXkbInfo + + + + + + Returns a list of all languages supported by a layout, given by +@layout_id. + + + the list of +ISO 639 code strings. The caller takes ownership of the #GList but +not of the strings themselves, those are internally allocated and +must not be modified. + + + + + + + a #GnomeXkbInfo + + + + a layout identifier + + + + + + Retrieves information about a layout. Both @display_name and +@short_name are suitable to show in UIs and might be localized if +translations are available. + +Some layouts don't provide a short name (2 or 3 letters) or don't +specify a XKB variant, in those cases @short_name or @xkb_variant +are empty strings, i.e. "". + +If the given layout doesn't exist the return value is %FALSE and +all the (out) parameters are set to %NULL. + + + %TRUE if the layout exists or %FALSE otherwise. + + + + + a #GnomeXkbInfo + + + + layout's identifier about which to retrieve the info + + + + location to store +the layout's display name, or %NULL + + + + location to store +the layout's short name, or %NULL + + + + location to store +the layout's XKB name, or %NULL + + + + location to store +the layout's XKB variant, or %NULL + + + + + + Returns a list of all layout identifiers we know about for +@country_code. + + + the list +of layout ids. The caller takes ownership of the #GList but not of +the strings themselves, those are internally allocated and must not +be modified. + + + + + + + a #GnomeXkbInfo + + + + an ISO 3166 code string + + + + + + Returns a list of all layout identifiers we know about for +@language_code. + + + the list +of layout ids. The caller takes ownership of the #GList but not of +the strings themselves, those are internally allocated and must not +be modified. + + + + + + + a #GnomeXkbInfo + + + + an ISO 639 code string + + + + + + Returns a list of all option identifiers we know about for group +@group_id. + + + the list +of option ids. The caller takes ownership of the #GList but not of +the strings themselves, those are internally allocated and must not +be modified. + + + + + + + a #GnomeXkbInfo + + + + group's identifier about which to retrieve the options + + + + + + + + + + + + + + + + + + + + + + + + + + + Returns whether the thumbnail has the correct uri and mtime embedded in the +png options. This function is threadsafe and does no blocking I/O. + + + TRUE if the thumbnail has the right @uri and @mtime + + + + + an loaded thumbnail #GdkPixbuf + + + + a uri + + + + the mtime + + + + + + Returns the filename that a thumbnail of size @size for @uri would have. +This function is threadsafe and does no blocking I/O. + + + an absolute filename + + + + + an uri + + + + a thumbnail size + + + + + + Gets all locales. + + + + a newly allocated %NULL-terminated string array containing the + all locales. Free with g_strfreev(). + + + + + + + Gets the country name for @code. If @translation is provided the +returned string is translated accordingly. + + + the country name. Caller takes +ownership. + + + + + an ISO 3166 code string + + + + a locale string + + + + + + Gets the country description for @locale. If @translation is +provided the returned string is translated accordingly. + + + the country description. Caller +takes ownership. + + + + + a locale string + + + + a locale string + + + + + + Gets the default input source's type and identifier for a given +locale. + + + %TRUE if a input source exists or %FALSE otherwise. + + + + + a locale string + + + + location to store the input source +type + + + + location to store the input source +identifier + + + + + + Gets the language name for @code. If @translation is provided the +returned string is translated accordingly. + + + the language name. Caller takes +ownership. + + + + + an ISO 639 code string + + + + a locale string + + + + + + Gets the language description for @locale. If @translation is +provided the returned string is translated accordingly. + + + the language description. Caller +takes ownership. + + + + + a locale string + + + + a locale string + + + + + + Returns an integer with the major version of GNOME. Useful for +dynamic languages like Javascript or Python (static languages like +C should use %GNOME_DESKTOP_PLATFORM_VERSION). If this +function doesn't exist, it can be presumed that the GNOME platform +version is 42 or previous. + + + an integer with the major version of GNOME. + + + + + Gets a translation of the raw @modifier string. If @translation +is provided the returned string is translated accordingly. + + + the translated modifier string. +Caller takes ownership. + + + + + the modifier part of a locale name + + + + a locale string + + + + + + #GnomeDesktopThumbnailFactory allows generation and loading of thumbnails for +local and remote files and directories. It uses a collection of programs +called <firstterm>thumbnailers</firstterm>, each one generating thumbnails +for a specific set of content-types of files. For example, +<application>totem-video-thumbnailer</application> generates thumbnails for +video files using GStreamer; <application>evince-thumbnailer</application> +generates thumbnails for PDFs and other document files. If no specific +thumbnailer exists for a file, or if the thumbnailer fails, gdk-pixbuf is +used as a fallback. + +To generate a thumbnail, an appropriate thumbnailer program is selected then +executed, passing it the URI of the file to thumbnail, plus a path to write +the thumbnail image to. If thumbnailing succeeds, the thumbnailer should have +written the image to disk before terminating; but if thumbnailing fails, no +image should be written, and the thumbnailer should return a non-zero exit +status. #GnomeDesktopThumbnailFactory will then fall back to using gdk-pixbuf +to generate a thumbnail, if possible. + +Thumbnailers are chosen by examining a series of +<filename>.thumbnailer</filename> files in +<filename><replaceable>$PREFIX</replaceable>/share/thumbnailers</filename>. +Each is in a simple key-file format: +<informalexample><programlisting> +[Thumbnailer Entry] +Exec=evince-thumbnailer -s %s %u %o +MimeType=application/pdf;application/x-bzpdf;application/x-gzpdf; +</programlisting></informalexample> + +The <filename>.thumbnailer</filename> format supports three keys: +<variablelist> +<varlistentry><term><code>Exec</code></term><listitem><para> +Required. The command to execute the thumbnailer. It supports a few different +parameters which are replaced before calling the thumbnailer: +<replaceable>%u</replaceable> is the URI of the file being thumbnailed; +<replaceable>%i</replaceable> is its path; <replaceable>%o</replaceable> +is the path of the image file to be written to; +<replaceable>%s</replaceable> is the maximum desired size of the thumbnail +image (the maximum width or height, in pixels); and +<replaceable>%%</replaceable> is a literal percent character. +</para></listitem></varlistentry> +<varlistentry><term><code>MimeType</code></term><listitem><para> +Required. A semicolon-separated list of MIME types which the thumbnailer +supports generating thumbnails for. +</para></listitem></varlistentry> +</variablelist> + +So in the example <filename>.thumbnailer</filename> file above, the command +passes the requested thumbnail size, then the input file’s URI, then the +path for the output image file to +<application>evince-thumbnailer</application>. + +The code to examine and call a thumbnailer is contained in +#GnomeDesktopThumbnailFactory, which handles looking up the right thumbnailer +script, building and executing the command for it, and loading the resulting +thumbnail image into a #GdkPixbuf. + +Thumbnail caching is also supported by #GnomeDesktopThumbnailFactory. When +calling a thumbnailer, the path passed for the output image file is in +<filename><envar>$XDG_CACHE_HOME</envar>/thumbnails/ +<replaceable>$SIZE</replaceable>/</filename>. The cached image file is given +a (probably) unique filename, generated by hashing the original file’s URI, +so the thumbnail can be looked up in future. #GnomeDesktopThumbnailFactory +supports two sizes of thumbnails: %GNOME_DESKTOP_THUMBNAIL_SIZE_NORMAL and +%GNOME_DESKTOP_THUMBNAIL_SIZE_LARGE. Normal thumbnails are up to 128×128 +pixels, whereas large thumbnails are up to 256×256 pixels. Thumbnails which +are larger than this are scaled down before being cached, and non-square +thumbnails are scaled so their largest dimension is at most 128 or 256 +pixels. + +#GnomeDesktopThumbnailFactory also handles failed thumbnails. If a +thumbnailer can’t generate a thumbnail for a file (e.g. because the file is +corrupt or because the right video codecs aren’t available), it returns a +non-zero exit status. The thumbnail factory then writes an entry to +<filename><envar>$XDG_CACHE_HOME</envar>/thumbnails/fail/ +gnome-thumbnail-factory/</filename> which is named after the hash of the +input file URI (just like a successful cached thumbnail). For future queries +for thumbnails for that file, #GnomeDesktopThumbnailFactory can immediately +return an error after looking up the fail entry. + +If a file changes content, #GnomeDesktopThumbnailFactory will generate a new +thumbnail because each cached image has associated metadata (stored as PNG +tEXt keys) storing the full URI of the thumbnailed file (to check for hash +collisions) and its last modification time at the point of thumbnailing. If +the stored modification time doesn’t match the file’s current one, a new +thumbnail is generated. + + + Returns %TRUE if there are translations for language @code. + + + %TRUE if there are translations for language @code. + + + + + an ISO 639 code string + + + + + + Gets the normalized locale string in the form +[language[_country][.codeset][@modifier]] for @name. + + + normalized locale string. Caller +takes ownership. + + + + + a locale string + + + + + + Extracts the various components of a locale string in XPG format. +([language[_country][.codeset][@modifier]]). See +http://en.wikipedia.org/wiki/Locale. + + + %TRUE if parsing was successful. + + + + + a locale string + + + + location to +store the language code, or %NULL + + + + location to +store the country code, or %NULL + + + + location to +store the codeset, or %NULL + + + + location to +store the modifier, or %NULL + + + + + + If the current process is running inside a user systemd instance, then move +the launched PID into a transient scope. The given @name will be used to +create a unit name. It should be the application ID or the executable in all +other cases. If a desktop-id is passed then the .desktop suffix will be +stripped. + +It is advisable to use this function every time where the started application +can be considered reasonably independent of the launching application. Placing +it in a scope creates proper separation between the programs rather than being +considered a single entity by systemd. + +It is always safe to call this function. Note that a successful return code +does not imply that a unit has been created. It solely means that no error +condition was hit sending the request. + +If @connection is %NULL then g_dbus_get() will be called internally. + +Note that most callers will not need to handle errors. As such, it is normal +to pass a %NULL @callback. + + + + + + + Name for the application + + + + The PID of the application + + + + A description to use for the unit, or %NULL + + + + An #GDBusConnection to the session bus, or %NULL + + + + #GCancellable to use + + + + Callback to call when the operation is done + + + + Data to be passed to @callback + + + + + + Finish an asynchronous operation to create a transient scope that was +started with gnome_start_systemd_scope(). + +Note that a successful return code does not imply that a unit has been +created. It solely means that no error condition was hit sending the request. + + + %FALSE on error, %TRUE otherwise + + + + + A #GAsyncResult + + + + + + diff --git a/libphosh-rs/Handy-1.gir b/libphosh-rs/Handy-1.gir deleted file mode 100644 index dacab264b..000000000 --- a/libphosh-rs/Handy-1.gir +++ /dev/null @@ -1,17212 +0,0 @@ - - - - - - - - - - A [class@Gtk.ListBoxRow] used to present actions. - -The `HdyActionRow` widget can have a title, a subtitle and an icon. The row -can receive additional widgets at its end, or prefix widgets at its start. - -It is convenient to present a preference and its related actions. - -`HdyActionRow` is unactivatable by default, giving it an activatable widget -will automatically make it activatable, but unsetting it won't change the -row's activatability. - -## HdyActionRow as GtkBuildable - -The `HdyActionRow` implementation of the [iface@Gtk.Buildable] interface -supports adding a child at its end by specifying “suffix” or omitting the -“type” attribute of a <child> element. - -It also supports adding a child as a prefix widget by specifying “prefix” as -the “type” attribute of a <child> element. - -## CSS nodes - -`HdyActionRow` has a main CSS node with name `row`. - -It contains the subnode `box.header` for its main horizontal box, and -`box.title` for the vertical box containing the title and subtitle labels. - -It contains subnodes `label.title` and `label.subtitle` representing -respectively the title label and subtitle label. - - - - - - Creates a new `HdyActionRow`. - - - the newly created `HdyActionRow` - - - - - Activates @self. - - - - - - - an action row - - - - - - Activates @self. - - - - - - - an action row - - - - - - Adds a prefix widget to @self. - - - - - - - an action row - - - - the prefix widget - - - - - - - Gets the widget activated when @self is activated. - - - the activatable widget for @self - - - - - an action row - - - - - - - Gets the icon name for @self. - - - the icon name for @self - - - - - an action row - - - - - - - Gets the subtitle for @self. - - - the subtitle for @self - - - - - an action row - - - - - - - Gets the number of lines at the end of which the subtitle label will be -ellipsized. - -If the value is 0, the number of lines won't be limited. - - - the number of lines at the end of which the subtitle label will be - ellipsized - - - - - an action row - - - - - - - Gets the number of lines at the end of which the title label will be -ellipsized. - -If the value is 0, the number of lines won't be limited. - - - the number of lines at the end of which the title label will be - ellipsized - - - - - an action row - - - - - - - Gets whether an embedded underline in the title or subtitle indicates a -mnemonic. - - - whether an embedded underline in the title or subtitle indicates a - mnemonic - - - - - an action row - - - - - - - Sets the widget to activate when @self is activated. - - - - - - - an action row - - - - the target widget - - - - - - - Sets the icon name for @self. - - - - - - - an action row - - - - the icon name - - - - - - - Sets the subtitle for @self. - - - - - - - an action row - - - - the subtitle - - - - - - - Sets the number of lines at the end of which the subtitle label will be -ellipsized. - -If the value is 0, the number of lines won't be limited. - - - - - - - an action row - - - - the number of lines at the end of which the subtitle label will be ellipsized - - - - - - - Sets the number of lines at the end of which the title label will be -ellipsized. - -If the value is 0, the number of lines won't be limited. - - - - - - - an action row - - - - the number of lines at the end of which the title label will be ellipsized - - - - - - - Sets whether an embedded underline in the title or subtitle indicates a -mnemonic. - - - - - - - an action row - - - - `TRUE` if underlines in the text indicate mnemonics - - - - - - - - The activatable widget for this row. - -The widget is activated, either by clicking on it, by calling -[method@ActionRow.activate], or via mnemonics in the title or the subtitle. -See the [property@ActionRow:use-underline] property to enable mnemonics. - -The target widget will be activated by emitting the -[signal@Gtk.Widget::mnemonic-activate] signal on it. - - - - - - The icon name for this row. - - - - - - The subtitle for this row. - - - - - - The number of lines at the end of which the subtitle label will be -ellipsized. - -If the value is 0, the number of lines won't be limited. - - - - - - The number of lines at the end of which the title label will be ellipsized. - -If the value is 0, the number of lines won't be limited. - - - - - - Whether embedded underlines in the title or subtitle indicates a mnemonic. - -If true, an underline in the text of the title or subtitle labels indicates -the next character should be used for the mnemonic accelerator key. - - - - - - - This signal is emitted after the row has been activated. - - - - - - - - - the parent class - - - - - - - - - - - an action row - - - - - - - - - - - - - A freeform application window. - -`HdyApplicationWindow` is a [class@Gtk.ApplicationWindow] subclass providing -the same features as [class@Window]. - -See [class@Window] for details. - -Using [method@Gtk.Application.set_app_menu] and -[method@Gtk.Application.set_menubar] is not supported and may result in -visual glitches. - - - - - - - Creates a new `HdyApplicationWindow`. - - - the newly created `HdyApplicationWindow` - - - - - - - - - - - - - - - - - - - - A widget displaying an image, with a generated fallback. - -`HdyAvatar` is a widget to display a round avatar. - -A provided image is made round before displaying, if no image is given this -widget generates a round fallback with the initials of the -[property@Avatar:text] on top of a colored background. - -The color is picked based on the hash of the [property@Avatar:text]. - -If [property@Avatar:show-initials] is set to `FALSE`, -`avatar-default-symbolic` is shown instead of the initials. - -Use [method@Avatar.set_loadable_icon] or [property@Avatar:loadable-icon] to -set a custom image. - -## CSS nodes - -`HdyAvatar` has a single CSS node with name `avatar`. - - - - - Creates a new `HdyAvatar`. - - - the newly created `HdyAvatar` - - - - - the size of the avatar - - - - the text used to get the initials and color - - - - whether to use initials instead of an icon as fallback - - - - - - Renders @self into a [class@GdkPixbuf.Pixbuf] at @size and @scale_factor. - -This can be used to export the fallback avatar. - - - the pixbuf - - - - - an avatar - - - - the size of the pixbuf - - - - the scale factor - - - - - - Renders asynchronously @self into a pixbuf at @size and @scale_factor. - -This can be used to export the fallback avatar. - - - - - - - an avatar - - - - the size of the pixbuf - - - - the scale factor - - - - a cancellable - - - - a [callback@Gio.AsyncReadyCallback] to call when - the avatar is generated - - - - the data to pass to callback function - - - - - - Finishes an asynchronous draw of an avatar to a pixbuf. - - - the resulting pixbuf - - - - - an avatar - - - - a [iface@Gio.AsyncResult] - - - - - - - Gets the name of an icon to use as a fallback. - - - the icon name - - - - - an avatar - - - - - - - Gets the [iface@Gio.LoadableIcon] set via [method@Avatar.set_loadable_icon]. - - - the [iface@Gio.LoadableIcon] - - - - - an avatar - - - - - - - Gets whether initials are used instead of an icon on the fallback avatar. - - - whether initials are used instead of an icon as fallback - - - - - an avatar - - - - - - - Gets the size of the avatar. - - - the size of the avatar - - - - - an avatar - - - - - - - Gets the text used to generate the fallback initials and color. - - - the text used to generate the fallback initials and - color - - - - - an avatar - - - - - - - Sets the name of an icon to use as a fallback. - -If no name is set, `avatar-default-symbolic` will be used. - - - - - - - an avatar - - - - the name of the icon from the icon theme - - - - - - A callback which is called when the custom image needs to be reloaded. - -It will be called on [property@Avatar:size] or -[property@Gtk.Widget:scale-factor] changes. - use [method@Avatar.set_loadable_icon] instead. - - - - - - - an avatar - - - - callback to set a custom image - - - - user data passed to @load_image - - - - destroy notifier for @user_data - - - - - - - Sets the [iface@Gio.LoadableIcon] to use as an avatar. - -The previous avatar is displayed till the new avatar is loaded, to -immediately remove the custom avatar set the loadable-icon to `NULL`. - -The [iface@Gio.LoadableIcon] set via this function is preferred over a set -[callback@AvatarImageLoadFunc]. - - - - - - - an avatar - - - - a [iface@Gio.LoadableIcon] - - - - - - - Sets whether to use initials instead of an icon on the fallback avatar. - - - - - - - an avatar - - - - whether to use initials instead of an icon as fallback - - - - - - - Sets the size of the avatar. - - - - - - - an avatar - - - - the size to be used for the avatar - - - - - - - Set the text used to generate the fallback initials color. - - - - - - - an avatar - - - - the text used to get the initials and color - - - - - - - - The name of an icon to use as a fallback. - -If no name is set, the avatar-default-symbolic icon will be used. If the -name doesn't match a valid icon, it is an error and no icon will be -displayed. If the icon theme is changed, the image will be updated -automatically. - - - - - - A [iface@Gio.LoadableIcon] used to load the avatar. - - - - - - Whether to show the initials or the fallback icon on the generated avatar. - - - - - - The avatar size of the avatar. - - - - - - Sets the text used to generate the fallback initials and color. - -It's only used to generate the color if [property@Avatar:show-initials] is -`FALSE`. - - - - - - - - - - - Callback for loading an [class@Avatar]'s image. - -The returned [class@GdkPixbuf.Pixbuf] is expected to be square with width and -height set to @size. The image is cropped to a circle without any scaling or -transformation. - use [method@Avatar.set_loadable_icon] instead. - - - the pixbuf to use as a custom avatar or - `NULL` to fallback to the generated avatar - - - - - the required size of the avatar - - - - user data - - - - - - A paginated scrolling widget. - -The `HdyCarousel` widget can be used to display a set of pages with -swipe-based navigation between them. - -[class@CarouselIndicatorDots] and [class@CarouselIndicatorLines] can be used -to provide page indicators for `HdyCarousel`. - -## CSS nodes - -`HdyCarousel` has a single CSS node with name `carousel`. - - - - - - - Creates a new `HdyCarousel`. - - - the newly created `HdyCarousel` - - - - - - Gets whether to allow swiping for more than one page at a time. - - - `TRUE` if long swipes are allowed - - - - - a carousel - - - - - - - Sets whether @self can be dragged with mouse pointer. - - - `TRUE` if @self can be dragged with mouse - - - - - a carousel - - - - - - - Gets whether @self will respond to scroll wheel events. - - - `TRUE` if @self will respond to scroll wheel events - - - - - a carousel - - - - - - - Gets animation duration used by [method@Carousel.scroll_to]. - - - animation duration, in milliseconds - - - - - a carousel - - - - - - - Gets whether @self can be navigated. - - - `TRUE` if @self can be swiped - - - - - a carousel - - - - - - - Gets the number of pages in @self. - - - the number of pages in @self - - - - - a carousel - - - - - - - Gets current scroll position in @self. It's unitless, 1 matches 1 page. - - - the scroll position - - - - - a carousel - - - - - - - Gets duration of the animation used when adding or removing pages, in -milliseconds. - - - the duration - - - - - a carousel - - - - - - - Gets spacing between pages in pixels. - - - spacing between pages - - - - - a carousel - - - - - - Inserts @child into @self at position @position. - -If position is -1, or larger than the number of pages, @child will be -appended to the end. - - - - - - - a carousel - - - - a widget to add - - - - the position to insert @child in - - - - - - Prepends @child to @self. - - - - - - - a carousel - - - - a widget to add - - - - - - Moves @child into position @position. - -If position is -1, or larger than the number of pages, @child will be moved -to the end. - - - - - - - a carousel - - - - a widget to add - - - - the position to move @child to - - - - - - Scrolls to @widget position with an animation. - -[property@Carousel:animation-duration] property can be used for controlling -the duration. - - - - - - - a carousel - - - - a child of @self - - - - - - Scrolls to @widget position with an animation. - - - - - - - a carousel - - - - a child of @self - - - - animation duration, in milliseconds - - - - - - - Sets whether to allow swiping for more than one page at a time. - - - - - - - a carousel - - - - whether to allow long swipes - - - - - - - Sets whether @self can be dragged with mouse pointer. - -If @allow_mouse_drag is `FALSE`, dragging is only available on touch. - - - - - - - a carousel - - - - whether @self can be dragged with mouse pointer - - - - - - - Sets whether @self will respond to scroll wheel events. - - - - - - - a carousel - - - - whether @self will respond to scroll wheel events - - - - - - - Sets animation duration used by [method@Carousel.scroll_to]. - - - - - - - a carousel - - - - animation duration, in milliseconds - - - - - - - Sets whether @self can be navigated. - -This can be used to temporarily disable a [class@Carousel] to only allow -swiping in a certain state. - - - - - - - a carousel - - - - whether @self can be swiped - - - - - - - Sets duration of the animation used when adding or removing pages, in -milliseconds. - - - - - - - a carousel - - - - the new reveal duration value - - - - - - - Sets spacing between pages in pixels. - - - - - - - a carousel - - - - the new spacing value - - - - - - - - Whether to allow swiping for more than one page at a time. - -If the value is `FALSE`, each swipe can only move to the adjacent pages. - - - - - - Sets whether the [class@Carousel] can be dragged with mouse pointer. - -If the value is `FALSE`, dragging is only available on touch. - - - - - - Whether the widget will respond to scroll wheel events. - -If the value is `FALSE`, wheel events will be ignored. - - - - - - Animation duration used by [method@Carousel.scroll_to], in milliseconds. - - - - - - Whether the carousel can be navigated. - -This can be used to temporarily disable a `HdyCarousel` to only allow -navigating it in a certain state. - - - - - The number of pages in a [class@Carousel]. - - - - - Current scrolling position, unitless. - -1 matches 1 page. Use [method@Carousel.scroll_to] for changing it. - - - - - - Page reveal duration, in milliseconds. - - - - - - Spacing between pages in pixels. - - - - This signal is emitted after a page has been changed. - -It can be used to implement "infinite scrolling" by amending the pages -after every scroll. - - - - - - the current page - - - - - - - - - - - - - A dots indicator for [class@Carousel]. - -The `HdyCarouselIndicatorDots` widget shows a set of dots for each page of a -given [class@Carousel]. The dot representing the carousel's active page is -larger and more opaque than the others, the transition to the active and -inactive state is gradual to match the carousel's position. - -See also [class@CarouselIndicatorLines]. - -## CSS nodes - -`HdyCarouselIndicatorDots` has a single CSS node with name -`carouselindicatordots`. - - - - - - Creates a new `HdyCarouselIndicatorDots`. - - - The newly created `HdyCarouselIndicatorDots` - - - - - - Get the [class@Carousel] the indicator uses. - - - the [class@Carousel] - - - - - an indicator - - - - - - - Sets the [class@Carousel] to use. - - - - - - - an indicator - - - - a carousel - - - - - - - - The [class@Carousel] the indicator uses. - - - - - - - - - - - A lines indicator for [class@Carousel]. - -The `HdyCarouselIndicatorLines` widget shows a set of lines for each page of -a given [class@Carousel]. The carousel's active page is shown as another line -that moves between them to match the carousel's position. - -See also [class@CarouselIndicatorDots]. - -## CSS nodes - -`HdyCarouselIndicatorLines` has a single CSS node with name -`carouselindicatorlines`. - - - - - - Creates a new `HdyCarouselIndicatorLines`. - - - the newly created `HdyCarouselIndicatorLines` - - - - - - Gets the displayed carousel. - - - the displayed carousel - - - - - an indicator - - - - - - - Sets the [class@Carousel] to use. - - - - - - - an indicator - - - - a carousel - - - - - - - - The displayed carousel. - - - - - - - - - - - Describes title centering behavior of a [class@HeaderBar] widget. - - Keep the title centered when possible - - - Keep the title centered at all cost - - - - A widget constraining its child to a given size. - -The `HdyClamp` widget constrains the size of the widget it contains to a -given maximum size. It will constrain the width if it is horizontal, or the -height if it is vertical. The expansion of the child from its minimum to its -maximum size is eased out for a smooth transition. - -If the child requires more than the requested maximum size, it will be -allocated the minimum size it can fit in instead. - -## CSS nodes - -`HdyClamp` has a single CSS node with name `clamp`. - -The node will get the style classes `.large` when its child reached its -maximum size, `.small` when the clamp allocates its full size to its child, -`.medium` in-between, or none if it didn't compute its size yet. - - - - - - Creates a new `HdyClamp`. - - - the newly created `HdyClamp` - - - - - - Gets the maximum size allocated to the children. - - - the maximum size to allocate to the children - - - - - a clamp - - - - - - - Gets the size above which the children are clamped. - - - the size above which the children are clamped - - - - - a clamp - - - - - - - Sets the maximum size allocated to the children. - - - - - - - a clamp - - - - the maximum size - - - - - - - Sets the size above which the children are clamped. - - - - - - - a clamp - - - - the tightening threshold - - - - - - - - The maximum size to allocate the children. - -It is the width if the clamp is horizontal, or the height if it is -vertical. - - - - - - The size above which the child is clamped. - -Starting from this size, the layout will tighten its grip on the children, -slowly allocating less and less of the available size up to the maximum -allocated size. Below that threshold and below the maximum size, the -children will be allocated all the available size. - -If the threshold is greater than the maximum size to allocate to the -children, they will be allocated the whole size up to the maximum. If the -threshold is lower than the minimum size to allocate to the children, that -size will be used as the tightening threshold. - -Effectively, tightening the grip on a child before it reaches its maximum -size makes transitions to and from the maximum size smoother when resizing. - - - - - - - - - - - Application color schemes for [property@StyleManager:color-scheme]. - - Inherit the parent color-scheme. When set on the - [class@StyleManager] returned by [func@StyleManager.get_default], it's - equivalent to `HDY_COLOR_SCHEME_FORCE_LIGHT`. - - - Always use light appearance. - - - Use light appearance unless the system - prefers dark colors. - - - Use dark appearance unless the system prefers - light colors. - - - Always use dark appearance. - - - - A [class@Gtk.ListBoxRow] used to choose from a list of items. - -The `HdyComboRow` widget allows the user to choose from a list of valid -choices. The row displays the selected choice. When activated, the row -displays a popover which allows the user to make a new choice. - -The [class@ComboRow] uses the model-view pattern; the list of valid choices -is specified in the form of a [iface@Gio.ListModel], and the display of the -choices can be adapted to the data in the model via widget creation -functions. - -`HdyComboRow` is [property@Gtk.ListBoxRow:activatable] if a model is set. - -## CSS nodes - -`HdyComboRow` has a main CSS node with name `row`. - -Its popover has the node name popover with the `.combo` style class, it -contains a [class@Gtk.ScrolledWindow], which in turn contains a -[class@Gtk.ListBox], both are accessible via their regular nodes. - -A checkmark of node and style class `image.checkmark` in the popover denotes -the current item. - - - - - - Creates a new `HdyComboRow`. - - - the newly created `HdyComboRow` - - - - - Binds @model to @self. - -If @self was already bound to a model, that previous binding is destroyed. - -The contents of @self are cleared and then filled with widgets that represent -items from @model. @self is updated whenever @model changes. If @model is -`NULL`, @self is left empty. - - - - - - - a combo row - - - - the [iface@Gio.ListModel] to be bound to @self - - - - a function that creates - widgets for items to display in the list, or `NULL` in case you also passed - `NULL` as @model - - - - a function that creates - widgets for items to display as the selected item, or `NULL` in case you - also passed `NULL` as @model - - - - user data passed to @create_list_widget_func and - @create_current_widget_func - - - - function for freeing @user_data - - - - - - Binds @model to @self. - -If @self was already bound to a model, that previous binding is destroyed. - -The contents of @self are cleared and then filled with widgets that represent -items from @model. @self is updated whenever @model changes. If @model is -`NULL`, @self is left empty. - -This is more convenient to use than [method@ComboRow.bind_model] if you want -to represent items of the model with names. - - - - - - - a combo row - - - - the [iface@Gio.ListModel] to be bound to @self - - - - a function that creates names for items, or - `NULL` in case you also passed `NULL` as @model - - - - user data passed to @get_name_func - - - - function for freeing @user_data - - - - - - Gets the model bound to @self. - - - the [iface@Gio.ListModel] bound to @self - - - - - a combo row - - - - - - - Gets the index of the selected item in its [iface@Gio.ListModel]. - - - the index of the selected item, or -1 if no item is selected - - - - - a combo row - - - - - - - Gets whether the current value of @self should be displayed as its subtitle. - - - whether the current value of @self should be displayed as its - subtitle - - - - - a combo row - - - - - - Creates a model for @enum_type and binds it to @self. - -The items of the model will be [class@EnumValueObject] objects. - -If @self was already bound to a model, that previous binding is destroyed. - -The contents of @self are cleared and then filled with widgets that represent -items from @model. @self is updated whenever @model changes. If @model is -`NULL`, @self is left empty. - -This is more convenient to use than [method@ComboRow.bind_name_model] if you -want to represent values of an enumeration with names. - -See [func@enum_value_row_name]. - - - - - - - a combo row - - - - the enumeration [alias@GLib.Type] to be bound to @self - - - - a function that creates names for items, or - `NULL` in case you also passed `NULL` as @model - - - - user data passed to @get_name_func - - - - function for freeing @user_data - - - - - - Sets a closure to convert items into names. - -See [property@ComboRow:use-subtitle]. - - - - - - - a combo row - - - - a function that creates names for items, or - `NULL` in case you also passed `NULL` as @model - - - - user data passed to @get_name_func - - - - function for freeing @user_data - - - - - - - Sets the index of the selected item in its [iface@Gio.ListModel]. - - - - - - - a combo row - - - - the index of the selected item - - - - - - - Sets whether the current value of @self should be displayed as its subtitle. - -If `TRUE`, you should not access [property@ActionRow:subtitle]. - - - - - - - a combo row - - - - `TRUE` to set the current value as the subtitle - - - - - - - - The index of the selected item in its [iface@Gio.ListModel]. - - - - - - Whether to use the current value as the subtitle. - -If you use a custom widget creation function, you will need to give the row -a name conversion closure with [method@ComboRow.set_get_name_func]. - -If `TRUE`, you should not access [property@ActionRow:subtitle]. - - - - - - - - - - the parent class - - - - - - - - - - Callback for getting the name of a row from an enum. - -Called for combo rows that are bound to an enumeration with -[method@ComboRow.set_for_enum] for each value from that enumeration. - -See also: [func@enum_value_row_name]. - - - a displayable name that represents @value - - - - - the value from the enum from which to get a name - - - - user data - - - - - - Callback for getting the name of a row. - -Called for combo rows that are bound to a [iface@Gio.ListModel] with -[method@ComboRow.bind_name_model] for each item that gets added to the model. - - - a displayable name that represents @item - - - - - the item from the model from which to get a name - - - - user data - - - - - - A swipeable widget showing one of the visible children at a time. - -The `HdyDeck` widget displays one of the visible children, similar to a -[class@Gtk.Stack]. The children are strictly ordered and can be navigated -using swipe gestures. - -The “over” and “under” stack the children one on top of the other, while the -“slide” transition puts the children side by side. While navigating to a -child on the side or below can be performed by swiping the current child -away, navigating to an upper child requires dragging it from the edge where -it resides. This doesn't affect non-dragging swipes. - -The “over” and “under” transitions can draw their shadow on top of the -window's transparent areas, like the rounded corners. This is a side-effect -of allowing shadows to be drawn on top of OpenGL areas. It can be mitigated -by using [class@Window] or [class@ApplicationWindow] as they will crop -anything drawn beyond the rounded corners. - -## CSS nodes - -`HdyDeck` has a single CSS node with name `deck`. - - - - - - - Creates a new `HdyDeck`. - - - the newly created `HdyDeck` - - - - - Finds the previous or next navigatable child. - -Gets the previous or next child. This will be the same widget -[method@Deck.navigate] will navigate to. - -If there's no child to navigate to, `NULL` will be returned instead. - - - the previous or next child - - - - - a deck - - - - the direction - - - - - - - Gets whether swipe gestures for navigating backward are enabled. - - - Whether swipe gestures are enabled. - - - - - a deck - - - - - - - Gets whether swipe gestures for navigating forward enabled. - - - Whether swipe gestures are enabled. - - - - - a deck - - - - - - Finds the child of @self with @name. - -Returns `NULL` if there is no child with this name. - - - the requested child of @self - - - - - a deck - - - - the name of the child to find - - - - - - Gets whether @self is homogeneous for the given orientation. - - - whether @self is homogeneous for the given orientation - - - - - a deck - - - - the orientation - - - - - - - Gets whether @self will interpolate its size when changing the visible child. - - - whether child sizes are interpolated - - - - - a deck - - - - - - - Gets the mode transition animation duration for @self. - - - the mode transition duration, in milliseconds. - - - - - a deck - - - - - - - Gets whether a transition is currently running for @self. - - - whether a transition is currently running - - - - - a deck - - - - - - - Gets the type of animation used for transitions between children. - - - the current transition type of @self - - - - - a deck - - - - - - - Gets the visible child widget. - - - the visible child widget - - - - - a deck - - - - - - - Gets the name of the currently visible child widget. - - - the name of the visible child - - - - - a deck - - - - - - Inserts @child in the position after @sibling in the list of children. - -If @sibling is `NULL`, inserts @child at the first position. - - - - - - - a deck - - - - the widget to insert - - - - the sibling after which to insert @child - - - - - - Navigates to the previous or next child. - -The switch is similar to performing a swipe gesture to go in @direction. - - - whether the visible child was changed - - - - - a deck - - - - the direction - - - - - - Inserts @child at the first position in @self. - - - - - - - a deck - - - - the widget to prepend - - - - - - Moves @child to the position after @sibling in the list of children. - -If @sibling is `NULL`, move @child to the first position. - - - - - - - a deck - - - - the widget to move, must be a child of @self - - - - the sibling to move @child after - - - - - - - Sets whether swipe gestures for navigating backward are enabled. - - - - - - - a deck - - - - the new value - - - - - - - Sets whether swipe gestures for navigating forward are enabled. - - - - - - - a deck - - - - the new value - - - - - - Sets whether @self is homogeneous for a given orientation. - -If set to `FALSE`, different children can have different size along the -opposite orientation. - - - - - - - a deck - - - - the orientation - - - - `TRUE` to make @self homogeneous - - - - - - - Sets whether @self will interpolate its size when changing the visible child. - -@self will interpolate its size between the current one and the one it'll -take after changing the visible child, according to the set transition -duration. - - - - - - - a deck - - - - the new value - - - - - - - Sets the mode transition animation duration for @self. - - - - - - - a deck - - - - the new duration, in milliseconds - - - - - - - Sets the type of animation used for transitions between children. - -The transition type can be changed without problems at runtime, so it is -possible to change the animation based on the child that is about to become -current. - - - - - - - a deck - - - - the new transition type - - - - - - - Sets the currently visible widget. - - - - - - - a deck - - - - the new child - - - - - - - Makes the child with the name @name visible. - -See [method@Deck.set_visible_child] for more details. - - - - - - - a deck - - - - the name of a child - - - - - - - - Whether swipe gestures allow switching to the previous child. - - - - - - Whether swipe gestures allow switching to the next child. - - - - - - Horizontally homogeneous sizing. - - - - - - Whether or not the size should smoothly change when changing between -differently sized children. - - - - - - The transition animation duration, in milliseconds. - - - - - Whether or not the transition is currently running. - - - - - - The type of animation that will be used for transitions between children. - -The transition type can be changed without problems at runtime, so it is -possible to change the animation based on the child that is about to become -current. - - - - - - Vertically homogeneous sizing. - - - - - - The widget currently visible. - -The transition is determined by [property@Deck:transition-type] and -[property@Deck:transition-duration]. The transition can be cancelled by the -user, in which case visible child will change back to the previously -visible child. - - - - - - The name of the widget currently visible. - - - - - - - - - - the parent class - - - - - - - - - - Describes the possible transitions in a [class@Deck] widget. - -New values may be added to this enumeration over time. - - Cover the old page or uncover the new page, - sliding from or towards the end according to orientation, text direction - and children order - - - Uncover the new page or cover the old page, - sliding from or towards the start according to orientation, text direction - and children order - - - Slide from left, right, up or down according - to the orientation, text direction and the children order - - - - An object representing an [struct@GObject.EnumValue]. - -The `HdyEnumValueObject` object represents a [struct@GObject.EnumValue], -allowing it to be used with [iface@Gio.ListModel]. - - - Creates a new `HdyEnumValueObject`. - - - the newly created `HdyEnumValueObject` - - - - - - - - - - Gets the name of @self. - - - the name of @self - - - - - an enum value object - - - - - - Gets the nick of @self. - - - the nick of @self - - - - - an enum value object - - - - - - Gets the value of @self. - - - the value of @self - - - - - an enum value object - - - - - - - - - - - - - A [class@Gtk.ListBoxRow] used to reveal widgets. - -The `HdyExpanderRow` widget allows the user to reveal or hide widgets below -it. It also allows the user to enable the expansion of the row, allowing to -disable all that the row contains. - -## HdyExpanderRow as GtkBuildable - -The `HdyExpanderRow` implementation of the [iface@Gtk.Buildable] interface -supports adding a child as an action widget by specifying “action” as the -“type” attribute of a <child> element. - -It also supports adding it as a prefix widget by specifying “prefix” as the -“type” attribute of a <child> element. - -## CSS nodes - -`HdyExpanderRow` has a main CSS node with name `row`, and the `.expander` -style class. It has the `.empty` style class when it contains no children. - -It contains the subnodes `row.header` for its main embedded row, -`list.nested` for the list it can expand, and `image.expander-row-arrow` for -its arrow. - -When expanded, `HdyExpanderRow` will add the -`.checked-expander-row-previous-sibling` style class to its previous sibling, -and remove it when retracted. - - - - - - Creates a new `HdyExpanderRow`. - - - the newly created `HdyExpanderRow` - - - - - Adds an action widget to @self. - - - - - - - a expander row - - - - the action widget - - - - - - Adds a prefix widget to @self. - - - - - - - a expander row - - - - the prefix widget - - - - - - - Gets whether the expansion of @self is enabled. - - - whether the expansion of @self is enabled - - - - - a expander row - - - - - - - - - - - - - - - - - - Gets the icon name for @self. - - - the icon name for @self - - - - - a expander row - - - - - - - Gets whether the switch enabling the expansion of @self is visible. - - - whether the switch enabling the expansion of @self is visible - - - - - a expander row - - - - - - - Gets the subtitle for @self. - - - the subtitle for @self - - - - - a expander row - - - - - - - Gets whether an embedded underline in the title or subtitle labels indicates -a mnemonic. - - - whether an embedded underlines indicates a mnemonic - - - - - a expander row - - - - - - - Sets whether the expansion of @self is enabled. - - - - - - - a expander row - - - - `TRUE` to enable the expansion - - - - - - - - - - - - - - - - - - - - - Sets the icon name for @self. - - - - - - - a expander row - - - - the icon name - - - - - - - Sets whether the switch enabling the expansion of @self is visible. - - - - - - - a expander row - - - - `TRUE` to show the switch enabling the expansion - - - - - - - Sets the subtitle for @self. - - - - - - - a expander row - - - - the subtitle - - - - - - - Sets whether an embedded underline in the title or subtitle labels indicates -a mnemonic. - - - - - - - a expander row - - - - `TRUE` if underlines in the text indicate mnemonics - - - - - - - - Whether expansion is enabled. - - - - - - Whether the row is expanded. - - - - - - The icon name for this row. - - - - - - Whether the switch enabling the expansion is visible. - - - - - - The subtitle for this row. - - - - - - Whether an embedded underline in the title or subtitle labels indicates a -mnemonic. - - - - - - - - - - the parent class - - - - - - - - - - An adaptive container acting like a box or an overlay. - -The `HdyFlap` widget can display its children like a [class@Gtk.Box] does or -like a [class@Gtk.Overlay] does, according to the -[property@Flap:fold-policy] value. - -`HdyFlap` has at most three children: [property@Flap:content], -[property@Flap:flap] and [property@Flap:separator]. Content is the primary -child, flap is displayed next to it when unfolded, or overlays it when -folded. Flap can be shown or hidden by changing the -[property@Flap:reveal-flap] value, as well as via swipe gestures if -[property@Flap:swipe-to-open] and/or [property@Flap:swipe-to-close] are set -to `TRUE`. - -Optionally, a separator can be provided, which would be displayed between the -content and the flap when there's no shadow to separate them, depending on -the transition type. - -[property@Flap:flap] is transparent by default; add the `.background` style -class to it if this is unwanted. - -If [property@Flap:modal] is set to `TRUE`, content becomes completely -inaccessible when the flap is revealed while folded. - -The position of the flap and separator children relative to the content is -determined by orientation, as well as the [property@Flap:flap-position] -value. - -Folding the flap will automatically hide the flap widget, and unfolding it -will automatically reveal it. If this behavior is not desired, the -[property@Flap:locked] property can be used to override it. - -Common use cases include sidebars, header bars that need to be able to -overlap the window content (for example, in fullscreen mode) and bottom -sheets. - -## HdyFlap as GtkBuildable - -The `HdyFlap` implementation of the [iface@Gtk.Buildable] interface supports -setting the flap child by specifying “flap” as the “type” attribute of a -<child> element, and separator by specifying “separator”. Specifying -“content” child type or omitting it results in setting the content child. - -## CSS nodes - -`HdyFlap` has a single CSS node with name `flap`. The node will get the style -classes `.folded` when it is folded, and `.unfolded` when it's not. - - - - - - - Creates a new `HdyFlap`. - - - the newly created `HdyFlap` - - - - - - Gets the content widget for @self - - - the content widget for @self - - - - - a flap - - - - - - - Gets the flap widget for @self - - - the flap widget for @self - - - - - a flap - - - - - - - Gets the flap position for @self. - - - the flap position for @self - - - - - a flap - - - - - - - Gets the amount of time that fold transitions will take. - - - the fold transition duration, in milliseconds - - - - - a flap - - - - - - - Gets the current fold policy of @self. - - - the current fold policy of @self - - - - - a flap - - - - - - - Gets whether @self is currently folded. - - - `TRUE` if @self is currently folded - - - - - a flap - - - - - - - Gets whether @self is locked. - - - whether @self is locked - - - - - a flap - - - - - - - Gets whether the @self is modal. - - - whether @self is modal - - - - - a flap - - - - - - - Gets the amount of time that reveal transitions will take. - - - the reveal transition duration, in milliseconds - - - - - a flap - - - - - - - Gets whether the flap widget is revealed for @self. - - - whether flap widget is revealed - - - - - a flap - - - - - - - Gets the current reveal transition progress for @self. - - - the current reveal progress for @self - - - - - a flap - - - - - - - Gets the separator widget for @self. - - - the separator widget for @self - - - - - a flap - - - - - - - Gets whether @self can be closed with a swipe gesture. - - - `TRUE` if @self can be closed with a swipe gesture - - - - - a flap - - - - - - - Gets whether @self can be opened with a swipe gesture. - - - `TRUE` if @self can be opened with a swipe gesture - - - - - a flap - - - - - - - Gets the type of animation used for reveal and fold transitions in @self. - - - the current transition type of @self - - - - - a flap - - - - - - - Sets the content widget for @self. - -It is always displayed when unfolded, and partially visible when folded. - - - - - - - a flap - - - - the content widget - - - - - - - Sets the flap widget for @self. - - - - - - - a flap - - - - the flap widget - - - - - - - Sets the flap position for @self. - - - - - - - a flap - - - - the new value - - - - - - - Sets the duration that fold transitions will take. - - - - - - - a flap - - - - the new duration, in milliseconds - - - - - - - Sets the current fold policy for @self. - - - - - - - a flap - - - - a fold policy - - - - - - - Sets whether @self is locked. - -If `FALSE`, folding @self when the flap is revealed automatically closes it, -and unfolding it when the flap is not revealed opens it. If `TRUE`, -[property@Flap:reveal-flap] value never changes on its own. - - - - - - - a flap - - - - the new value - - - - - - - Sets whether the @self can be closed with a click. - -If @modal is `TRUE`, clicking the content widget while flap is revealed, or -pressing the <kbd>Esc</kbd> key, will close the flap. If `FALSE`, clicks are -passed through to the content widget. - - - - - - - a flap - - - - whether @self can be closed with a click - - - - - - - Sets the duration that reveal transitions in @self will take. - - - - - - - a flap - - - - the new duration, in milliseconds - - - - - - - Sets whether the flap widget is revealed for @self. - - - - - - - a flap - - - - `TRUE` to reveal the flap widget, `FALSE` otherwise - - - - - - - Sets the separator widget for @self. - - - - - - - a flap - - - - the separator widget - - - - - - - Sets whether @self can be closed with a swipe gesture. - -The area that can be swiped depends on the [property@Flap:transition-type] value. - - - - - - - a flap - - - - whether @self can be closed with a swipe gesture - - - - - - - Sets whether @self can be opened with a swipe gesture. - -The area that can be swiped depends on the [property@Flap:transition-type] -value. - - - - - - - a flap - - - - whether @self can be opened with a swipe gesture - - - - - - - Sets the type of animation used for reveal and fold transitions in @self. - - - - - - - a flap - - - - the new transition type - - - - - - - - The content widget. - -It's always displayed when unfolded, and partially visible -when folded. - - - - - - The flap widget. - -It's only visible when [property@Flap:reveal-progress] is greater than 0. - - - - - - The flap position. - -If `GTK_PACK_START`, the flap is displayed before the content, if -`GTK_PACK_END`, it's displayed after the content. - - - - - - The fold transition animation duration, in milliseconds. - - - - - - The current fold policy. - -See [enum@FlapFoldPolicy] for available policies. - - - - - Whether the flap is currently folded. - -See [property@Flap:fold-policy]. - - - - - - Whether the flap is locked. - -If `FALSE`, folding when the flap is revealed automatically closes it, and -unfolding it when the flap is not revealed opens it. If `TRUE`, -[property@Flap:reveal-flap] value never changes on its own. - - - - - - Whether the flap is modal. - -If `TRUE`, clicking the content widget while flap is revealed, as well as -pressing the <kbd>Esc</kbd> key, will close the flap. If `FALSE`, clicks -are passed through to the content widget. - - - - - - The reveal transition animation duration, in milliseconds. - - - - - - Whether the flap widget is revealed. - - - - - The current reveal transition progress. - -0 means fully hidden, 1 means fully revealed. See -[property@Flap:reveal-flap]. - - - - - - The separator widget. - -It's displayed between content and flap when there's no shadow to display. -When exactly it's visible depends on the [property@Flap:transition-type] -value. If `NULL`, no separator will be used. - - - - - - Whether the flap can be closed with a swipe gesture. - -The area that can be swiped depends on the [property@Flap:transition-type] -value. - - - - - - Whether the flap can be opened with a swipe gesture. - -The area that can be swiped depends on the [property@Flap:transition-type] -value. - - - - - - the type of animation used for reveal and fold transitions. - -[property@Flap:flap] is transparent by default, which means the content -will be seen through it with `HDY_FLAP_TRANSITION_TYPE_OVER` transitions; -add the `.background` style class to it if this is unwanted. - - - - - - - - - - - Describes the possible folding behavior of a [class@Flap] widget. - - Disable folding, the flap cannot reach narrow - sizes. - - - Keep the flap always folded. - - - Fold and unfold the flap based on available - space. - - - - Describes transitions types of a [class@Flap] widget. - -These enumeration values describe the possible transitions between children -in a [class@Flap] widget, as well as which areas can be swiped via -[property@Flap:swipe-to-open] and [property@Flap:swipe-to-close]. - -New values may be added to this enum over time. - - The flap slides over the content, which is - dimmed. When folded, only the flap can be swiped. - - - The content slides over the flap. Only the - content can be swiped. - - - The flap slides offscreen when hidden, - neither the flap nor content overlap each other. Both widgets can be - swiped. - - - - A title bar widget. - -`HdyHeaderBar` is similar to [class@Gtk.HeaderBar] but is designed to fix -some of its shortcomings for adaptive applications. - -`HdyHeaderBar` doesn't force the custom title widget to be vertically -centered, hence allowing it to fill up the whole height, which is e.g. needed -for [class@ViewSwitcher]. - -When used in a mobile dialog, `HdyHeaderBar` will replace its window -decorations by a back button allowing to close it. It doesn't have to be its -direct child and you can use any complex contraption you like as the dialog's -titlebar. - -`HdyHeaderBar` can be used in window's content area rather than titlebar, and -will still be draggable and will handle right click, middle click and double -click as expected from a titlebar. This is particularly useful with -[class@Window] or [class@ApplicationWindow]. - -## CSS nodes - -`HdyHeaderBar` has a single CSS node with name `headerbar`. - - - - - Creates a new `HdyHeaderBar`. - - - the newly created `HdyHeaderBar`. - - - - - - Gets the policy @self follows to horizontally align its center widget. - - - the centering policy - - - - - a header bar - - - - - - - Retrieves the custom title widget of the header. - - - the custom title widget of the header - - - - - a header bar - - - - - - - Gets the decoration layout. - - - the decoration layout - - - - - a header bar - - - - - - - Gets whether space is reserved for a subtitle, regardless if one is currently -set or not. - - - `TRUE` if the header bar reserves space for a subtitle - - - - - a header bar - - - - - - - Gets whether @self should interpolate its size on visible child change. - - - whether @self interpolates its size on visible child change - - - - - a header bar - - - - - - - Gets whether this header bar shows the standard window decorations. - - - whether decorations are shown - - - - - a header bar - - - - - - - Gets the subtitle of the header. - - - the subtitle of the header - - - - - a header bar - - - - - - - Retrieves the title of the header. - - - the title of the header. - - - - - a header bar - - - - - - - Gets the amount of time that transitions between pages will take. - - - the transition duration, in milliseconds - - - - - a header bar - - - - - - - Gets whether the @self is currently in a transition from one page to another. - - - whether the transition is currently running - - - - - a header bar - - - - - - Adds @child to @self, packed with reference to the end of the @self. - - - - - - - a header bar - - - - the widget to be added to @self - - - - - - Adds @child to @self, packed with reference to the start of the @self. - - - - - - - a header bar - - - - the widget to be added to @self - - - - - - - Sets the policy @self must follow to horizontally align its center widget. - - - - - - - a header bar - - - - the centering policy - - - - - - - Sets a custom title for the header bar. - -The title should help a user identify the current view. This supersedes any -title set by [method@HeaderBar.set_title] or [method@HeaderBar.set_subtitle]. -To achieve the same style as the builtin title and subtitle, use the `.title` -and `.subtitle` style classes. - -You should set the custom title to `NULL`, for the header title label to be -visible again. - - - - - - - a header bar - - - - a custom widget to use for a title - - - - - - - Sets the decoration layout for this header bar. - - - - - - - a header bar - - - - a decoration layout - - - - - - - Sets whether space is reserved for a subtitle, even if none is currently set. - - - - - - - a header bar - - - - `TRUE` to reserve space for a subtitle - - - - - - - Sets whether @self should interpolate its size on visible child change. - - - - - - - a header bar - - - - `TRUE` to interpolate the size - - - - - - - Sets whether this header bar shows the standard window decorations. - - - - - - - a header bar - - - - `TRUE` to show standard window decorations - - - - - - - Sets the subtitle of the header bar. - -The title should give a user an additional detail to help them identify the -current view. - -Note that [class@HeaderBar] by default reserves room for the subtitle, even -if none is currently set. If this is not desired, set the -[property@HeaderBar:has-subtitle] property to `FALSE`. - - - - - - - a header bar - - - - a subtitle - - - - - - - Sets the title of the [class@HeaderBar]. - -The title should help a user identify the current view. A good title should -not include the application name. - - - - - - - a header bar - - - - a title - - - - - - - Sets the duration that transitions between pages will take. - - - - - - - a header bar - - - - the new duration, in milliseconds - - - - - - - - The policy for aligning the center widget. - - - - - - Custom title widget to display. - - - - - - The decoration layout for buttons. - -If this property is not set, the -[property@Gtk.Settings:gtk-decoration-layout] setting is used. - -There can be valid reasons for overriding the setting, such as a header bar -design that does not allow for buttons to take room on the right, or only -offers room for a single close button. Split header bars are another example -for overriding the setting. - -The format of the string is button names, separated by commas. A colon -separates the buttons that should appear on the start from those on the -end. Recognized button names are minimize, maximize, close, icon (the -window icon) and menu (a menu button for the fallback app menu). - -For example, “menu:minimize,maximize,close” specifies a menu on the left, and -minimize, maximize and close buttons on the right. - - - - Whether [property@HeaderBar:decoration-layout] is set. - - - - - - Whether to reserve space for a subtitle, even if none is currently set. - - - - - - Whether the size should smoothly change when changing between children. - -If `TRUE`, the header bar will interpolate its size between the one of the -previous visible child and the one of the new visible child, according to -the set transition duration and the orientation, e.g. if the orientation is -horizontal, it will interpolate the its height. - - - - - - Whether to show window decorations. - -Which buttons are actually shown and where is determined by the -[property@HeaderBar:decoration-layout] property, and by the state of the -window (e.g. a close button will not be shown if the window can't be -closed). - - - - The amount of space between children. - - - - - - The subtitle to display. - - - - - - The title to display. - - - - - - The transition duration, in milliseconds. - - - - - Whether or not the transition is currently running. - - - - - - - - - - the parent class - - - - - - - - - - An object handling composite title bars. - -The `HdyHeaderGroup` object handles the header bars of a composite title bar. -It splits the window decoration across the header bars, giving the left side -of the decorations to the leftmost header bar, and the right side of the -decorations to the rightmost header bar. See -[method@HeaderBar.set_decoration_layout]. - -The [property@HeaderGroup:decorate-all] property can be used in conjunction -with [property@Leaflet:folded] when the title bar is split across the pages -of a [class@Leaflet] to automatically display the decorations on all the -pages when the leaflet is folded. - -You can nest header groups, which is convenient when you nest leaflets too: - -```xml -<object class="HdyHeaderGroup" id="inner_header_group"> - <property name="decorate-all" bind-source="inner_leaflet" bind-property="folded" bind-flags="sync-create"/> - <headerbars> - <headerbar name="inner_header_bar_1"/> - <headerbar name="inner_header_bar_2"/> - </headerbars> -</object> -<object class="HdyHeaderGroup" id="outer_header_group"> - <property name="decorate-all" bind-source="outer_leaflet" bind-property="folded" bind-flags="sync-create"/> - <headerbars> - <headerbar name="inner_header_group"/> - <headerbar name="outer_header_bar"/> - </headerbars> -</object> -``` - - - - Creates a new `HdyHeaderGroup`. - - - the newly created `HdyHeaderGroup` - - - - - Adds @header_bar to @self. - -When the widget is destroyed or no longer referenced elsewhere, it will be -removed from the header group. - - - - - - - a header group - - - - the header bar to add - - - - - - Adds @header_bar to @self. - -When the widget is destroyed or no longer referenced elsewhere, it will be -removed from the header group. - - - - - - - a header group - - - - the header bar to add - - - - - - Adds @header_group to @self. - -When the nested group is no longer referenced elsewhere, it will be removed -from the header group. - - - - - - - a header group - - - - the header group to add - - - - - - Returns the list of children associated with @self. - - - the list of - children - - - - - - - a header group - - - - - - - Gets whether the elements of the group should all receive the full -decoration. - - - whether the elements of the group should all receive the full - decoration - - - - - a header group - - - - - - Removes @child from @self. - - - - - - - a header group - - - - the header group child to remove - - - - - - Removes @header_bar from @self. - - - - - - - a header group - - - - the header bar to remove - - - - - - Removes @header_bar from @self. - - - - - - - a header group - - - - the header bar to remove - - - - - - Removes a nested `HdyHeaderGroup` from @self. - - - - - - - a header group - - - - the header group to remove - - - - - - - Sets whether the elements of the group should all receive the full -decoration. - - - - - - - a header group - - - - whether the elements of the group should all receive the full - decoration - - - - - - - - Whether the elements of the group should all receive the full decoration. - -This is useful in conjunction with [property@Leaflet:folded] when the -leaflet contains the header bars of the group, as you want them all to -display the complete decoration when the leaflet is folded. - - - - This signal is emitted before updating the decoration layouts. - - - - - - - A child object for [class@HeaderGroup]. - - - Gets the child type. - - - the child type - - - - - a header group child - - - - - - Gets the child [class@Gtk.HeaderBar]. - -Use [method@HeaderGroupChild.get_child_type] to check the child type. - - - the child header bar - - - - - a header group child - - - - - - Gets the child [class@HeaderBar]. - -Use [method@HeaderGroupChild.get_child_type] to check the child type. - - - the child headerbar - - - - - a header group child - - - - - - Gets the child [class@HeaderGroup]. - -Use [method@HeaderGroupChild.get_child_type] to check the child type. - - - the child header bar - - - - - a header group child - - - - - - - - - - - - - Describes the child types handled by [class@HeaderGroup]. - -New values may be added to this enumeration over time. - - The child is a [class@HeaderBar] - - - The child is a - [class@Gtk.HeaderBar] - - - The child is a - [class@HeaderGroup] - - - - - - - - - - A keypad for dialing numbers - -The `HdyKeypad` widget is a keypad for entering numbers such as phone numbers -or PIN codes. - -## CSS nodes - -`HdyKeypad` has a single CSS node with name `keypad`. - - - - - Creates a new `HdyKeypad`. - - - the newly created `HdyKeypad` - - - - - whether the hash, plus, and asterisk symbols should be visible - - - - whether the letters below the digits should be visible - - - - - - - Returns the amount of space between the columns of @self. - - - the column spacing of @self - - - - - a keypad - - - - - - - Gets the widget for the lower right corner (or left, in RTL locales). - - - the end action widget - - - - - a keypad - - - - - - - Gets the connected entry. - - - the entry set - - - - - a keypad - - - - - - - Gets whether standard letters are displayed below the digits on the buttons. - - - whether the letters below the digits should be visible - - - - - a keypad - - - - - - - Returns the amount of space between the rows of @self. - - - the row spacing of @self - - - - - a keypad - - - - - - - Gets the widget for the lower left corner (or right, in RTL locales). - - - the start action widget - - - - - a keypad - - - - - - - Gets whether symbols are displayed. - - - whether symboles are visible - - - - - a keypad - - - - - - - Sets the amount of space between columns of @self. - - - - - - - a keypad - - - - the amount of space to insert between columns - - - - - - - Sets the widget for the lower right corner (or left, in RTL locales). - - - - - - - a keypad - - - - the end action widget - - - - - - - Binds @entry to @self. - - - - - - - a keypad - - - - an entry - - - - - - - Sets whether standard letters are displayed below the digits on the buttons. - - - - - - - a keypad - - - - whether the letters below the digits should be visible - - - - - - Sets the amount of space between rows of @self. - - - - - - - a keypad - - - - the amount of space to insert between rows - - - - - - - Sets the widget for the lower left corner (or right, in RTL locales). - - - - - - - a keypad - - - - the start action widget - - - - - - - Sets whether standard letters are displayed below the digits on the buttons. - - - - - - - a keypad - - - - whether the hash, plus, and asterisk symbols should be visible - - - - - - - - The amount of space between two consecutive columns. - - - - - - The widget for the lower end corner of @self. - - - - - - The entry widget connected to the keypad. - -The entry will block any input not possible to type with the keypad. - - - - - - Whether standard letters should be displayed below the digits on the -buttons. - - - - - - The amount of space between two consecutive rows. - - - - - - The widget for the lower start corner of @self. - - - - - - Whether to display symbols. - -This includes hash and asterisk buttons, and the plus symbol at the bottom -of its 0 button. - - - - - - - - - - the parent class - - - - - - - - - - An adaptive container acting like a box or a stack. - -The `HdyLeaflet` widget can display its children like a [class@Gtk.Box] does -or like a [class@Gtk.Stack] does, adapting to size changes by switching -between the two modes. - -When there is enough space the children are displayed side by side, otherwise -only one is displayed and the leaflet is said to be “folded”. The threshold -is dictated by the preferred minimum sizes of the children. When a leaflet is -folded, the children can be navigated using swipe gestures. - -The “over” and “under” transition types stack the children one on top of the -other, while the “slide” transition puts the children side by side. While -navigating to a child on the side or below can be performed by swiping the -current child away, navigating to an upper child requires dragging it from -the edge where it resides. This doesn't affect non-dragging swipes. - -The “over” and “under” transitions can draw their shadow on top of the -window's transparent areas, like the rounded corners. This is a side-effect -of allowing shadows to be drawn on top of OpenGL areas. It can be mitigated -by using [class@Window] or [class@ApplicationWindow] as they will crop -anything drawn beyond the rounded corners. - -The child property `navigatable` can be set on `HdyLeaflet` children to -determine whether they can be navigated to when folded. If `FALSE`, the child -will be ignored by [method@Leaflet.get_adjacent_child], -[method@Leaflet.navigate], and swipe gestures. This can be used used to -prevent switching to widgets like separators. - -## CSS nodes - -`HdyLeaflet` has a single CSS node with name `leaflet`. The node will get the -style classes `.folded` when it is folded, `.unfolded` when it's not, or none -if it didn't compute its fold yet. - - - - - - - Creates a new `HdyLeaflet`. - - - the newly created `HdyLeaflet` - - - - - Finds the previous or next navigatable child. - -This will be the same widget [method@Leaflet.navigate] will navigate to. - -If there's no child to navigate to, `NULL` will be returned instead. - - - the previous or next child - - - - - a leaflet - - - - the direction - - - - - - - Gets whether swipe gestures switch to the previous navigatable child. - - - `TRUE` if back swipe is enabled - - - - - a leaflet - - - - - - - Gets whether swipe gestures switch to the next navigatable child. - - - `TRUE` if forward swipe is enabled - - - - - a leaflet - - - - - - Finds the child of @self with the name given as the argument. - -Returns `NULL` if there is no child with this name. - - - the requested child of @self - - - - - a leaflet - - - - the name of the child to find - - - - - - - Gets the amount of time that transitions between children will take. - - - the child transition duration, in milliseconds - - - - - a leaflet - - - - - - - Returns whether @self is currently in a transition from one page to another. - - - whether a transition is currently running - - - - - a leaflet - - - - - - - Gets whether @self is folded. - - - whether @self is folded - - - - - a leaflet - - - - - - Gets whether @self is homogeneous for the given fold and orientation. - - - whether @self is homogeneous for the given fold and orientation - - - - - a leaflet - - - - the fold - - - - the orientation - - - - - - - Gets whether to interpolate between the sizes of children on page switches. - - - `TRUE` if child sizes are interpolated - - - - - a leaflet - - - - - - - Gets the amount of time that transitions between modes in @self will take. - - - the mode transition duration, in milliseconds - - - - - a leaflet - - - - - - - Gets the animation type that will be used for transitions between modes and -children. - - - the current transition type of @self - - - - - a leaflet - - - - - - - Gets the visible child widget. - - - the visible child widget - - - - - a leaflet - - - - - - - Gets the name of the currently visible child widget. - - - the name of the visible child - - - - - a leaflet - - - - - - Inserts @child in the position after @sibling in the list of children. - -If @sibling is `NULL`, inserts @child at the first position. - - - - - - - a leaflet - - - - the widget to insert - - - - the sibling after which to insert @child - - - - - - Navigates to the previous or next navigatable child. - -The switch is similar to performing a swipe gesture to go in @direction. - - - whether the visible child was changed - - - - - a leaflet - - - - the direction - - - - - - Inserts @child at the first position in @self. - - - - - - - a leaflet - - - - the widget to prepend - - - - - - Moves @child to the position after @sibling in the list of children. - -If @sibling is `NULL`, move @child to the first position. - - - - - - - a leaflet - - - - the widget to move, must be a child of @self - - - - the sibling to move @child after - - - - - - - Sets whether swipe gestures switch to the previous navigatable child. - - - - - - - a leaflet - - - - the new value - - - - - - - Sets whether swipe gestures switch to the next navigatable child. - - - - - - - a leaflet - - - - the new value - - - - - - - Sets the duration that transitions between children in @self will take. - - - - - - - a leaflet - - - - the new duration, in milliseconds - - - - - - Sets whether to be homogeneous for the given fold and orientation. - -If it is homogeneous, the [class@Leaflet] will request the same -width or height for all its children depending on the orientation. If it -isn't and it is folded, the leaflet may change width or height when a -different child becomes visible. - - - - - - - a leaflet - - - - the fold - - - - the orientation - - - - `TRUE` to make @self homogeneous - - - - - - - Sets whether @self will interpolate its size when changing the visible child. - -If the [property@Leaflet:interpolate-size] property is set to `TRUE`, @self -will interpolate its size between the current one and the one it'll take -after changing the visible child, according to the set transition duration. - - - - - - - a leaflet - - - - the new value - - - - - - - Sets the duration that transitions between modes in @self will take. - - - - - - - a leaflet - - - - the new duration, in milliseconds - - - - - - - Sets the animation type that will be used for transitions between modes and -children. - -The transition type can be changed without problems at runtime, so it is -possible to change the animation based on the mode or child that is about to -become current. - - - - - - - a leaflet - - - - the new transition type - - - - - - - Sets the currently visible widget when the leaflet is folded. - - - - - - - a leaflet - - - - the new child - - - - - - - Makes the child with the name @name visible. - -See [method@Leaflet.set_visible_child] for more details. - - - - - - - a leaflet - - - - the name of a child - - - - - - - - Whether swipe gestures allow switching to the previous navigatable child. - - - - - - Whether swipe gestures allow switching to the next navigatable child. - - - - - - The child transition animation duration, in milliseconds. - - - - - Whether a child transition is currently running. - - - - - Whether the leaflet is folded. - -The leaflet will be folded if the size allocated to it is smaller than the -sum of the natural size of its children, it will be unfolded otherwise. - - - - - - Whether to allocate the same width for all children when folded. - - - - - - Whether to allocate the same width for all children when unfolded. - - - - - - Whether the size should smoothly change when changing between children. - - - - - - The mode transition animation duration, in milliseconds. - - - - - - The animation type used for transitions between modes and children. - -The transition type can be changed without problems at runtime, so it is -possible to change the animation based on the mode or child that is about -to become current. - - - - - - Whether to allocates the same height for all children when folded. - - - - - - Whether to allocate the same height for all children when unfolded. - - - - - - The widget currently visible when the leaflet is folded. - -The transition is determined by [property@Leaflet:transition-type] and -[property@Leaflet:child-transition-duration]. The transition can be -cancelled by the user, in which case visible child will change back to the -previously visible child. - - - - - - The name of the widget currently visible when the leaflet is folded. - -See [property@Leaflet:visible-child]. - - - - - - - - - - the parent class - - - - - - - - - - Describes the possible transitions in a [class@Leaflet] widget. - -New values may be added to this enumeration over time. - - Cover the old page or uncover the new - page, sliding from or towards the end according to orientation, text - direction and children order - - - Uncover the new page or cover the old - page, sliding from or towards the start according to orientation, text - direction and children order - - - Slide from left, right, up or down - according to the orientation, text direction and the children order - - - - Describes the direction of a swipe navigation gesture. - - Corresponds to start or top, depending on - orientation and text direction - - - Corresponds to end or bottom, depending on - orientation and text direction - - - - A group of preference rows. - -A `HdyPreferencesGroup` represents a group or tightly related preferences, -which in turn are represented by [class@PreferencesRow]. - -To summarize the role of the preferences it gathers, a group can have both a -title and a description. The title will be used by [class@PreferencesWindow] -to let the user look for a preference. - -## CSS nodes - -`HdyPreferencesGroup` has a single CSS node with name `preferencesgroup`. - - - - - Creates a new `HdyPreferencesGroup`. - - - the newly created `HdyPreferencesGroup` - - - - - - - - the description of @self - - - - - a preferences group - - - - - - - Gets the title of @self. - - - the title of @self - - - - - a preferences group - - - - - - - Gets whether @self uses markup for the title and description. - - - whether @self uses markup for its labels - - - - - a preferences group - - - - - - - Sets the description for @self. - - - - - - - a preferences group - - - - the description - - - - - - - Sets the title for @self. - - - - - - - a preferences group - - - - the title - - - - - - - Sets whether @self uses markup for the title and description. - - - - - - - a preferences group - - - - whether to use markup - - - - - - - - The description for this group of preferences. - - - - - - The title for this group of preferences. - - - - - - Whether to use markup for the title and description. - - - - - - - - - - the parent class - - - - - - - - - - A page from [class@PreferencesWindow]. - -The `HdyPreferencesPage` widget gathers preferences groups into a single page -of a preferences window. - -## CSS nodes - -`HdyPreferencesPage` has a single CSS node with name `preferencespage`. - - - - - Creates a new `HdyPreferencesPage`. - - - the newly created `HdyPreferencesPage` - - - - - - Gets the icon name for @self. - - - the icon name for @self - - - - - a preferences page - - - - - - - Gets the title of @self. - - - the title of the @self - - - - - a preferences page - - - - - - - Sets the icon name for @self. - - - - - - - a preferences page - - - - the icon name - - - - - - - Sets the title of @self. - - - - - - - a preferences page - - - - the title of the page - - - - - - - - The icon name for this page of preferences. - - - - - - The title for this page of preferences. - - - - - - - - - - the parent class - - - - - - - - - - A [class@Gtk.ListBoxRow] used to present preferences. - -The `HdyPreferencesRow` widget has a title that [class@PreferencesWindow] -will use to let the user look for a preference. It doesn't present the title -in any way and lets you present the preference as you please. - -[class@ActionRow] and its derivatives are convenient to use as preference -rows as they take care of presenting the preference's title while letting you -compose the inputs of the preference around it. - - - - - - Creates a new `HdyPreferencesRow`. - - - the newly created `HdyPreferencesRow` - - - - - - Gets the title of the preference represented by @self. - - - the title of the preference represented - by @self - - - - - a preferences row - - - - - - - Gets whether an embedded underline in the title indicates a mnemonic. - - - whether an embedded underline in the title indicates a mnemonic - - - - - a preferences row - - - - - - - Sets the title of the preference represented by @self. - - - - - - - a preferences row - - - - the title - - - - - - - Sets whether an embedded underline in the title indicates a mnemonic. - - - - - - - a preferences row - - - - `TRUE` if underlines in the text indicate mnemonics - - - - - - - - The title of the preference represented by this row. - - - - - - Whether an embedded underline in the title indicates a mnemonic. - - - - - - - - - - the parent class - - - - - - - - - - A window to present an application's preferences. - -The `HdyPreferencesWindow` widget presents an application's preferences -gathered into pages and groups. The preferences are searchable by the user. - -## CSS nodes - -`HdyPreferencesWindow` has a main CSS node with the name `window` and the -style class `.preferences`. - - - - - Creates a new `HdyPreferencesWindow`. - - - the newly created `HdyPreferencesWindow` - - - - - Closes the current subpage. - -If there is no presented subpage, this does nothing. - - - - - - - a preferences window - - - - - - - Gets whether swipe gestures allow switching from a subpage to the -preferences. - - - `TRUE` if back swipe is enabled - - - - - a preferences window - - - - - - - Gets whether search is enabled for @self. - - - whether search is enabled for @self - - - - - a preferences window - - - - - - Sets @subpage as the window's subpage and opens it. - -The transition can be cancelled by the user, in which case visible child will -change back to the previously visible child. - - - - - - - a preferences window - - - - the subpage - - - - - - - Sets whether swipe gestures allow switching from a subpage to the -preferences. - - - - - - - a preferences window - - - - the new value - - - - - - - Sets whether search is enabled for @self. - - - - - - - a preferences window - - - - `TRUE` to enable search, `FALSE` to disable it - - - - - - - - Whether the window allows closing the subpage via a swipe gesture. - - - - - - Whether search is enabled. - - - - - - - - - - the parent class - - - - - - - - - - A toolbar to integrate a search entry with. - -`HdySearchBar` is a container made to have a search entry (possibly with -additional connex widgets, such as drop-down menus, or buttons) built-in. The -search bar would appear when a search is started through typing on the -keyboard, or the application’s search mode is toggled on. - -For keyboard presses to start a search, events will need to be forwarded from -the top-level window that contains the search bar. See -[method@SearchBar.handle_event] for example code. Common shortcuts such as -<kbd>Ctrl</kbd>+<kbd>F</kbd> should be handled as an application action, or -through the menu items. - -You will also need to tell the search bar about which entry you are using as -your search entry using [method@SearchBar.connect_entry]. The following -example shows you how to create a more complex search entry. - -`HdySearchBar` is very similar to [class@Gtk.SearchBar], the main difference -being that it allows the search entry to fill all the available space. This -allows you to control your search entry's width with a [class@Clamp]. - -## CSS nodes - -`HdySearchBar` has a single CSS node with name `searchbar`. - - - - - Creates a new `HdySearchBar. - -You will need to tell it about which widget is going to be your text entry -using [method@SearchBar.connect_entry]. - - - the newly created `HdySearchBar` - - - - - Sets the entry widget passed as the one to be used in this search bar. - -The entry should be a descendant of the search bar. This is only required if -the entry isn’t the direct child of the search bar (as in our main example). - - - - - - - a search bar - - - - an entry - - - - - - - Gets whether the search mode is on. - - - whether search mode is toggled on - - - - - a search bar - - - - - - - Gets whether the close button is shown. - - - whether the close button is shown - - - - - a search bar - - - - - - Handles key press events. - -This function should be called when the top-level window which contains the -search bar received a key event. - -If the key event is handled by the search bar, the bar will be shown, the -entry populated with the entered text and `GDK_EVENT_STOP` will be returned. -The caller should ensure that events are not propagated further. - -If no entry has been connected to the search bar, using -[method@SearchBar.connect_entry], this function will return immediately with -a warning. - -## Showing the search bar on key presses - -```c -static gboolean -on_key_press_event (GtkWidget *widget, - GdkEvent *event, - gpointer user_data) -{ - HdySearchBar *bar = HDY_SEARCH_BAR (user_data); - return hdy_search_bar_handle_event (self, event); -} - -static void -create_toplevel (void) -{ - GtkWidget *window = gtk_window_new (GTK_WINDOW_TOPLEVEL); - GtkWindow *search_bar = hdy_search_bar_new (); - - // Add more widgets to the window... - - g_signal_connect (window, - "key-press-event", - G_CALLBACK (on_key_press_event), - search_bar); -} -``` - - - `GDK_EVENT_STOP` if the key press event resulted in text being - entered in the search entry (and revealing the search bar if necessary), - `GDK_EVENT_PROPAGATE` otherwise. - - - - - a search bar - - - - a [struct@Gdk.Event] containing key press events - - - - - - - Switches the search mode on or off. - - - - - - - a search bar - - - - the new state of the search mode - - - - - - - Shows or hides the close button. - -Applications that already have a “search” toggle button should not show a -close button in their search bar, as it duplicates the role of the toggle -button. - - - - - - - a search bar - - - - whether the close button will be shown or not - - - - - - - - Whether the search mode is on and the search bar shown. - - - - - - Whether to show the close button in the toolbar. - - - - - - - - - - - - - - - - - - - A best fit container. - -The `HdySqueezer` widget is a container which only shows the first of its -children that fits in the available size. It is convenient to offer different -widgets to represent the same data with different levels of detail, making -the widget seem to squeeze itself to fit in the available space. - -Transitions between children can be animated as fades. This can be controlled -with [method@Squeezer.set_transition_type]. - -## CSS nodes - -`HdySqueezer` has a single CSS node with name `squeezer`. - - - - - - Creates a new `HdySqueezer`. - - - the newly created `HdySqueezer` - - - - - Gets whether @child is enabled. - -See [method@Squeezer.set_child_enabled]. - - - whether @child is enabled - - - - - a squeezer - - - - a child of @self - - - - - - - Gets whether @self is homogeneous. - - - whether @self is homogeneous - - - - - a squeezer - - - - - - - Gets whether @self should interpolate its size on visible child change. - - - whether @self interpolates its size on visible child change - - - - - a squeezer - - - - - - - Gets the amount of time that transitions between children will take. - - - the transition duration, in milliseconds - - - - - a squeezer - - - - - - - Gets whether a transition is currently running for @self. - - - whether a transition is currently running - - - - - a squeezer - - - - - - - Gets the animation type that will be used for transitions between children. - - - the current transition type of @self - - - - - a squeezer - - - - - - - Gets the currently visible child of @self. - - - the visible child - - - - - a squeezer - - - - - - - Gets the horizontal alignment. - - - the xalign property - - - - - a squeezer - - - - - - - Gets the vertical alignment. - - - the yalign property - - - - - a squeezer - - - - - - Sets whether @child is enabled. - -If a child is disabled, it will be ignored when looking for the child fitting -the available size best. This allows to programmatically and prematurely hide -a child of @self even if it fits in the available space. - -This can be used e.g. to ensure a certain child is hidden below a certain -window width, or any other constraint you find suitable. - - - - - - - a squeezer - - - - a child of @self - - - - whether to enable the child - - - - - - - Sets whether all children have the same size for the opposite orientation. - - - - - - - a squeezer - - - - `TRUE` to make @self homogeneous - - - - - - - Sets whether @self should interpolate its size on visible child change. - - - - - - - a squeezer - - - - `TRUE` to interpolate the size - - - - - - - Sets the duration that transitions between children in @self will take. - - - - - - - a squeezer - - - - the new duration, in milliseconds - - - - - - - Sets the animation type that will be used for transitions between children. - - - - - - - a squeezer - - - - the new transition type - - - - - - - Sets the horizontal alignment. - - - - - - - a squeezer - - - - the new xalign value, between 0 and 1 - - - - - - - Sets the vertical alignment. - - - - - - - a squeezer - - - - the new yalign value, between 0 and 1 - - - - - - - - Whether all children have the same size for the opposite orientation. - -For example, if a squeezer is horizontal and is homogeneous, it will request -the same height for all its children. If it isn't, the squeezer may change -size when a different child becomes visible. - - - - - - Whether the squeezer interpolates its size when changing the visible child. - -If `TRUE`, the squeezer will interpolate its size between the one of the -previous visible child and the one of the new visible child, according to -the set transition duration and the orientation, e.g. if the squeezer is -horizontal, it will interpolate the its height. - - - - - - The animation duration, in milliseconds. - - - - - Whether a transition is currently running. - - - - - - The type of animation used for transitions between children. - -Available types include various kinds of fades and slides. - -The transition type can be changed without problems at runtime, so it is -possible to change the animation based on the child that is about to become -current. - - - - - The currently visible child. - - - - - - The horizontal alignment, from 0 (start) to 1 (end). - -The xalign property determines the horizontal alignment of the children -inside the squeezer's size allocation. Compare this to -[property@Gtk.Widget:halign], which determines how the squeezer's size -allocation is positioned in the space available for the squeezer. - -This will affect the position of children too wide to fit in the squeezer -as they are fading out. - - - - - - The vertical alignment, from 0 (start) to 1 (end). - -The yalign property determines the vertical alignment of the children -inside the squeezer's size allocation. Compare this to -[property@Gtk.Widget:valign], which determines how the squeezer's size -allocation is positioned in the space available for the squeezer. - -This will affect the position of children too tall to fit in the squeezer -as they are fading out. - - - - - - - - - - - Describes the possible transitions in a [class@Squeezer] widget. - - No transition - - - A cross-fade - - - - A page used for empty/error states and similar use-cases. - -The `HdyStatusPage` widget can have an icon, a title, a description and a -custom widget which is displayed below them. - -## CSS nodes - -`HdyStatusPage` has a main CSS node with name `statuspage`. - - - - - Creates a new `HdyStatusPage`. - - - the newly created `HdyStatusPage` - - - - - - Gets the description for @self. - - - the description for @self - - - - - a status page - - - - - - - Gets the icon name for @self. - - - the icon name for @self - - - - - a status page - - - - - - - Gets the title for @self. - - - the title for @self - - - - - a status page - - - - - - - Sets the description for @self. - - - - - - - a status page - - - - the description - - - - - - - Sets the icon name for @self. - - - - - - - a status page - - - - the icon name - - - - - - - Sets the title for @self. - - - - - - - a status page - - - - the title - - - - - - - - The description to be displayed below the title. - - - - - - The name of the icon to be used. - - - - - - The title to be displayed below the icon. - - - - - - - - - - - A class for managing application-wide styling. - -`HdyStyleManager` provides a way to query and influence the application -styles, such as whether to use dark or high contrast appearance. - -It allows to set the color scheme via the -[property@StyleManager:color-scheme] property, and to query the current -appearance, as well as whether a system-wide color scheme preference exists. - -Important: [property@Gtk.Settings:gtk-application-prefer-dark-theme] should -not be used together with `HdyStyleManager` and will result in a warning. -Color schemes should be used instead. - - - Gets the default [class@StyleManager] instance. - -It manages all [class@Gdk.Display] instances unless the style manager for -that display has an override. - -See [func@StyleManager.get_for_display]. - - - the default style manager - - - - - Gets the [class@StyleManager] instance managing @display. - -It can be used to override styles for that specific display instead of the -whole application. - -Most applications should use [func@StyleManager.get_default] instead. - - - the style manager for @display - - - - - a display - - - - - - - Gets the requested application color scheme. - - - the color scheme - - - - - a style manager - - - - - - - Gets whether the application is using dark appearance. - - - whether the application is using dark appearance - - - - - a style manager - - - - - - - Gets the display the style manager is associated with. - -The display will be `NULL` for the style manager returned by -[func@StyleManager.get_default]. - - - (nullable): the display - - - - - a style manager - - - - - - - Gets whether the application is using high contrast appearance. - - - whether the application is using high contrast appearance - - - - - a style manager - - - - - - - Gets whether the system supports color schemes. - - - whether the system supports color schemes - - - - - a style manager - - - - - - - Sets the requested application color scheme. - -The effective appearance will be decided based on the application color -scheme and the system preferred color scheme. The -[property@StyleManager:dark] property can be used to query the current -effective appearance. - - - - - - - a style manager - - - - the color scheme - - - - - - - - The requested application color scheme. - -The effective appearance will be decided based on the application color -scheme and the system preferred color scheme. The -[property@StyleManager:dark] property can be used to query the current -effective appearance. - -The `HDY_COLOR_SCHEME_PREFER_LIGHT` color scheme results in the application -using light appearance unless the system prefers dark colors. This is the -default value. - -The `HDY_COLOR_SCHEME_PREFER_DARK` color scheme results in the application -using dark appearance, but can still switch to the light appearance if the -system can prefers it, for example, when the high contrast preference is -enabled. - -The `HDY_COLOR_SCHEME_FORCE_LIGHT` and `HDY_COLOR_SCHEME_FORCE_DARK` values -ignore the system preference entirely, they are useful if the application -wants to match its UI to its content or to provide a separate color scheme -switcher. - -If a per-[class@Gdk.Display] style manager has its color scheme set to -`HDY_COLOR_SCHEME_DEFAULT`, it will inherit the color scheme from the -default style manager. - -For the default style manager, `HDY_COLOR_SCHEME_DEFAULT` is equivalent to -`HDY_COLOR_SCHEME_FORCE_LIGHT`. - -The [property@StyleManager:system-supports-color-schemes] property can be -used to check if the current environment provides a color scheme -preference. - - - - - Whether the application is using dark appearance. - -This property can be used to query the current appearance, as requested via -[property@StyleManager:color-scheme]. - - - - - The display the style manager is associated with. - -The display will be `NULL` for the style manager returned by -[func@StyleManager.get_default]. - - - - - Whether the application is using high contrast appearance. - -This cannot be overridden by applications. - - - - - Whether the system supports color schemes. - -This property can be used to check if the current environment provides a -color scheme preference. For example, applications might want to show a -separate appearance switcher if it's set to `FALSE`. - -It's only set at startup and cannot change its value later. - -See [property@StyleManager:color-scheme]. - - - - - - - - - - - An object for syncing swipeable widgets. - -The `HdySwipeGroup` object can be used to sync multiple swipeable widgets -that implement the [iface@Swipeable] interface, such as [class@Carousel], so -that animating one of them also animates all the other widgets in the group. - -This can be useful for syncing widgets between a window's titlebar and -content area. - -## HdySwipeGroup as GtkBuildable - -`HdySwipeGroup` can be created in an UI definition. The list of swipeable -widgets is specified with a &lt;swipeables&gt; element containing multiple -&lt;swipeable&gt; elements with their ”name” attribute specifying the id of -the widgets. - -```xml -<object class="HdySwipeGroup"> - <swipeables> - <swipeable name="carousel1"/> - <swipeable name="carousel2"/> - </swipeables> -</object> -``` - -`HdySwipeGroup` has been deprecated, [class@Window] and -[class@ApplicationWindow] allow using a single leaflet for both content and -header bar, without the need to sync them. - - - - Creates a new `HdySwipeGroup`. - - - the newly created `HdySwipeGroup` - - - - - Adds a swipeable to @self. - -When the widget is destroyed or no longer referenced elsewhere, it will be -removed from the swipe group. - - - - - - - a swipe group - - - - the [iface@Swipeable] to add - - - - - - Gets the list of swipeables associated with @self. - - - a list of swipeables - - - - - - - a swipe group - - - - - - Removes a widget from a [class@SwipeGroup]. - - - - - - - a swipe group - - - - the [iface@Swipeable] to remove - - - - - - - - - - - - - Swipe tracker used in [class@Carousel] and [class@Leaflet]. - -The `HdySwipeTracker` object can be used for implementing widgets with swipe -gestures. It supports touch-based swipes, pointer dragging, and touchpad -scrolling. - -The widgets will probably want to expose [property@SwipeTracker:enabled] -property. If they expect to use horizontal orientation, -[property@SwipeTracker:reversed] property can be used for supporting RTL text -direction. - - - - Creates a new `HdySwipeTracker` object on @widget. - - - the newly created `HdySwipeTracker` - - - - - a swipeable to add the tracker on - - - - - - - Whether to allow swiping for more than one snap point at a time. - -If the value is `FALSE`, each swipe can only move to the adjacent snap -points. - - - whether long swipes are allowed - - - - - a swipe tracker - - - - - - - Get whether @self can be dragged with mouse pointer. - - - `TRUE` is mouse dragging is allowed - - - - - a swipe tracker - - - - - - - Get whether @self is enabled. - - - `TRUE` if @self is enabled - - - - - a swipe tracker - - - - - - - Get whether @self is reversing the swipe direction. - - - `TRUE` is the direction is reversed - - - - - a swipe tracker - - - - - - - Get @self's swipeable widget. - - - the swipeable widget - - - - - a swipe tracker - - - - - - - Sets whether to allow swiping for more than one snap point at a time. - -If the value is `FALSE`, each swipe can only move to the adjacent snap -points. - - - - - - - a swipe tracker - - - - whether to allow long swipes - - - - - - - Set whether @self can be dragged with mouse pointer. - -This should usually be `FALSE`. - - - - - - - a swipe tracker - - - - whether to allow mouse dragging - - - - - - - Set whether @self is enabled. - - - - - - - a swipe tracker - - - - whether to enable to swipe tracker - - - - - - - Set whether to reverse the swipe direction. - -If @self is horizontal, can be used for supporting RTL text direction. - - - - - - - a swipe tracker - - - - whether to reverse the swipe direction - - - - - - Move the current progress value by @delta. - -This can be used to adjust the current position if snap points move during -the gesture. - - - - - - - a swipe tracker - - - - the position delta - - - - - - - - Whether to allow swiping for more than one snap point at a time. - -If the value is `FALSE`, each swipe can only move to the adjacent snap -points. - - - - - - Whether to allow dragging with mouse pointer. - -This should usually be `FALSE`. - - - - - - Whether the swipe tracker is enabled. - -When it's not enabled, no events will be processed. Usually widgets will -want to expose this via a property. - - - - - - Whether to reverse the swipe direction. - -If the swipe tracker is horizontal, it can be used for supporting RTL text -direction. - - - - - The widget the swipe tracker is attached to. Must not be `NULL`. - - - - This signal is emitted when a possible swipe is detected. - -The @direction value can be used to restrict the swipe to a certain -direction. - - - - - - the direction of the swipe - - - - `TRUE` if the swipe is directly triggered by a gesture, - `FALSE` if it's triggered via a [class@SwipeGroup] - - - - - - This signal is emitted as soon as the gesture has stopped. - - - - - - snap-back animation duration, in milliseconds - - - - the progress value to animate to - - - - - - This signal is emitted every time the progress value changes. - - - - - - the current animation progress value - - - - - - - - - - - - - An interface for swipeable widgets. - -The `HdySwipeable` interface is implemented by all swipeable widgets. They -can be synced using [class@SwipeGroup]. - -See [class@SwipeTracker] for details about implementing it. - - - - Gets the progress @self will snap back to after the gesture is canceled. - - - the cancel progress, unitless - - - - - a swipeable - - - - - - Gets the swipe distance of @self. - -This corresponds to how many pixels 1 unit represents. - - - the swipe distance in pixels - - - - - a swipeable - - - - - - Gets the current progress of @self. - - - the current progress, unitless - - - - - a swipeable - - - - - - Gets the snap points of @self. - -Each snap point represents a progress value that is considered acceptable to -end the swipe on. - - - the snap points - - - - - - - a swipeable - - - - location to return the number of the snap points - - - - - - Gets the area @self can start a swipe from for the given direction and -gesture type. - -This can be used to restrict swipes to only be possible from a certain area, -for example, to only allow edge swipes, or to have a draggable element and -ignore swipes elsewhere. - -Swipe area is only considered for direct swipes (as in, not initiated by -[class@SwipeGroup]). - -If not implemented, the default implementation returns the allocation of -@self, allowing swipes from anywhere. - - - - - - - a swipeable - - - - the direction of the swipe - - - - whether the swipe is caused by a dragging gesture - - - - a pointer to a rectangle to store the swipe area - - - - - - Gets the [class@SwipeTracker] used by this swipeable widget. - - - the swipe tracker - - - - - a swipeable - - - - - - Switches to child with index @index. - -See [signal@Swipeable::child-switched]. - - - - - - - a swipeable - - - - the index of the child to switch to - - - - animation duration, in milliseconds - - - - - - Emits [signal@Swipeable::child-switched] signal. - -This should be called when the widget switches visible child widget. - -@duration can be 0 if the child is switched without animation. - - - - - - - a swipeable - - - - the index of the child to switch to - - - - animation duration, in milliseconds - - - - - - Gets the progress @self will snap back to after the gesture is canceled. - - - the cancel progress, unitless - - - - - a swipeable - - - - - - Gets the swipe distance of @self. - -This corresponds to how many pixels 1 unit represents. - - - the swipe distance in pixels - - - - - a swipeable - - - - - - Gets the current progress of @self. - - - the current progress, unitless - - - - - a swipeable - - - - - - Gets the snap points of @self. - -Each snap point represents a progress value that is considered acceptable to -end the swipe on. - - - the snap points - - - - - - - a swipeable - - - - location to return the number of the snap points - - - - - - Gets the area @self can start a swipe from for the given direction and -gesture type. - -This can be used to restrict swipes to only be possible from a certain area, -for example, to only allow edge swipes, or to have a draggable element and -ignore swipes elsewhere. - -Swipe area is only considered for direct swipes (as in, not initiated by -[class@SwipeGroup]). - -If not implemented, the default implementation returns the allocation of -@self, allowing swipes from anywhere. - - - - - - - a swipeable - - - - the direction of the swipe - - - - whether the swipe is caused by a dragging gesture - - - - a pointer to a rectangle to store the swipe area - - - - - - Gets the [class@SwipeTracker] used by this swipeable widget. - - - the swipe tracker - - - - - a swipeable - - - - - - Switches to child with index @index. - -See [signal@Swipeable::child-switched]. - - - - - - - a swipeable - - - - the index of the child to switch to - - - - animation duration, in milliseconds - - - - - - Emitted when the widget's visible child is changed. - -@duration can be 0 if the child is switched without animation. - -This is used by [class@SwipeGroup], applications should not connect to it. - - - - - - the index of the child to switch to - - - - animation duration, in milliseconds - - - - - - - An interface for swipeable widgets. - - - the parent interface - - - - - - - - - - - a swipeable - - - - the index of the child to switch to - - - - animation duration, in milliseconds - - - - - - - - - - the swipe tracker - - - - - a swipeable - - - - - - - - - - the swipe distance in pixels - - - - - a swipeable - - - - - - - - - - the snap points - - - - - - - a swipeable - - - - location to return the number of the snap points - - - - - - - - - - the current progress, unitless - - - - - a swipeable - - - - - - - - - - the cancel progress, unitless - - - - - a swipeable - - - - - - - - - - - - - - a swipeable - - - - the direction of the swipe - - - - whether the swipe is caused by a dragging gesture - - - - a pointer to a rectangle to store the swipe area - - - - - - - - - - - - - A tab bar for [class@TabView]. - -The `HdyTabBar` widget is a tab bar that can be used with conjunction with -[class@TabView]. - -`HdyTabBar` can autohide and can optionally contain action widgets on both -sides of the tabs. - -When there's not enough space to show all the tabs, `HdyTabBar` will scroll -them. Pinned tabs always stay visible and aren't a part of the scrollable -area. - -## CSS nodes - -`HdyTabBar` has a single CSS node with name `tabbar`. - - - - - Creates a new `HdyTabBar` widget. - - - a new `HdyTabBar` - - - - - - Gets whether the tabs automatically hide. - - - whether the tabs automatically hide - - - - - a tab bar - - - - - - - Gets the widget shown after the tabs. - - - the widget shown after the tabs - - - - - a tab bar - - - - - - - Gets whether tabs should expand. - - - whether tabs should expand - - - - - a tab bar - - - - - - - Gets extra drag destination targets. - - - extra drag targets - - - - - a tab bar - - - - - - - Gets whether tabs use inverted layout. - - - whether tabs use inverted layout - - - - - a tab bar - - - - - - - Gets whether @self is overflowing. - - - whether @self is overflowing - - - - - a tab bar - - - - - - - Gets the widget shown before the tabs. - - - the widget shown before the tabs - - - - - a tab bar - - - - - - - Gets the value of the [property@TabBar:tabs-revealed] property. - - - whether the tabs are current revealed - - - - - a tab bar - - - - - - - Gets the [class@TabView] @self controls. - - - the [class@TabView] @self controls - - - - - a tab bar - - - - - - - Sets whether the tabs automatically hide. - -If @autohide is `TRUE`, the tab bar disappears when the associated -[class@TabView] has 0 or 1 tab, no pinned tabs, and no tab is being -transferred. - -Autohide is enabled by default. - -See [property@TabBar:tabs-revealed]. - - - - - - - a tab bar - - - - whether the tabs automatically hide - - - - - - - Sets the widget to show after the tabs. - - - - - - - a tab bar - - - - the widget to show after the tabs - - - - - - - Sets whether tabs should expand. - -If @expand_tabs is `TRUE`, the tabs will always vary width filling the whole -width when possible, otherwise tabs will always have the minimum possible -size. - -Expand is enabled by default. - - - - - - - a tab bar - - - - whether to expand tabs - - - - - - - Sets extra drag destination targets. - -This allows to drag arbitrary content onto tabs, for example URLs in a web -browser. - -If a tab is hovered for a certain period of time while dragging the content, -it will be automatically selected. - -After content is dropped, the [signal@TabBar::extra-drag-data-received] -signal can be used to retrieve and process the drag data. - - - - - - - a tab bar - - - - extra drag targets - - - - - - - Sets whether tabs tabs use inverted layout. - -If @inverted is `TRUE`, non-pinned tabs will have the close button at the -beginning and the indicator at the end rather than the opposite. - - - - - - - a tab bar - - - - whether tabs use inverted layout - - - - - - - Sets the widget to show before the tabs. - - - - - - - a tab bar - - - - the widget to show before the tabs - - - - - - - Sets the [class@TabView] @self controls. - - - - - - - a tab bar - - - - a tab view - - - - - - - - Whether tabs automatically hide. - -If set to `TRUE`, the tab bar disappears when the associated -[class@TabView] has 0 or 1 tab, no pinned tabs, and no tab is being -transferred. - -See [property@TabBar:tabs-revealed]. - - - - - - The widget shown after the tabs. - - - - - - Whether tabs should expand. - -If set to `TRUE`, the tabs will always vary width filling the whole width -when possible, otherwise tabs will always have the minimum possible size. - - - - - - Extra drag destination targets. - -Allows to drag arbitrary content onto tabs, for example URLs in a web -browser. - -If a tab is hovered for a certain period of time while dragging the -content, it will be automatically selected. - -After content is dropped, the [signal@TabBar::extra-drag-data-received] -signal can be used to retrieve and process the drag data. - - - - - - Whether tabs use inverted layout. - -If set to `TRUE`, non-pinned tabs will have the close button at the -beginning and the indicator at the end rather than the opposite. - - - - - Whether the tab bar is overflowing. - -If set to `TRUE`, all tabs cannot be displayed at once and require -scrolling. - - - - - - The widget shown before the tabs. - - - - - Whether tabs are currently revealed. - -See [property@TabBar:autohide]. - - - - - - The [class@TabView] the tab bar controls. - - - - Emitted when content allowed via [property@TabBar:extra-drag-dest-targets] -is dropped onto a tab. - -See [signal@Gtk.Widget::drag-data-received]. - - - - - - the tab page matching the tab the content was dropped onto - - - - the drag context - - - - the received data - - - - the info that has been registered with the target in the - [struct@Gtk.TargetList] - - - - the timestamp at which the data was received - - - - - - - - - - - - - An auxiliary class used by [class@TabView]. - - - - Gets the child of @self. - - - the child of @self - - - - - a tab page - - - - - - - Gets the icon of @self. - - - the icon of @self - - - - - a tab page - - - - - - - Gets whether the indicator of @self is activatable. - - - whether the indicator is activatable - - - - - a tab page - - - - - - - Gets the indicator icon of @self. - - - the indicator icon of @self - - - - - a tab page - - - - - - - Gets whether @self is loading. - - - whether @self is loading - - - - - a tab page - - - - - - - Gets whether @self needs attention. - - - whether @self needs attention - - - - - a tab page - - - - - - - Gets the parent page of @self. - - - the parent page of @self - - - - - a tab page - - - - - - - Gets whether @self is pinned. - - - whether @self is pinned - - - - - a tab page - - - - - - - Gets whether @self is selected. - - - whether @self is selected - - - - - a tab page - - - - - - - Gets the title of @self. - - - the title of @self - - - - - a tab page - - - - - - - Gets the tooltip of @self. - - - the tooltip of @self - - - - - a tab page - - - - - - - Sets the icon of @self. - - - - - - - a tab page - - - - the icon of @self - - - - - - - Sets whether the indicator of @self is activatable. - - - - - - - a tab page - - - - whether the indicator is activatable - - - - - - - Sets the indicator icon of @self. - - - - - - - a tab page - - - - the indicator icon of @self - - - - - - - Sets whether @self is loading. - - - - - - - a tab page - - - - whether @self is loading - - - - - - - Sets whether @self needs attention. - - - - - - - a tab page - - - - whether @self needs attention - - - - - - - Sets the title of @self. - - - - - - - a tab page - - - - the title of @self - - - - - - - Sets the tooltip of @self. - - - - - - - a tab page - - - - the tooltip of @self - - - - - - - The child of the page. - - - - - - The icon of the page. - -[class@TabBar] displays the icon next to the title. - -It will not show the icon if [property@TabPage:loading] is set to `TRUE`, -or if the page is pinned and [propertyTabPage:indicator-icon] is set. - - - - - - Whether the indicator icon is activatable. - -If set to `TRUE`, [signal@TabView::indicator-activated] will be emitted -when the indicator icon is clicked. - -If [property@TabPage:indicator-icon] is not set, does nothing. - - - - - - An indicator icon for the page. - -A common use case is an audio or camera indicator in a web browser. - -[class@TabPage] will show it at the beginning of the tab, alongside icon -representing [property@TabPage:icon] or loading spinner. - -If the page is pinned, the indicator will be shown instead of icon or -spinner. - -If [property@TabPage:indicator-activatable] is set to `TRUE`, the indicator -icon can act as a button. - - - - - - Whether the page is loading. - -If set to `TRUE`, [class@TabBar] will display a spinner in place of icon. - -If the page is pinned and [property@TabPage:indicator-icon] is set, the -loading status will not be visible. - - - - - - Whether the page needs attention. - -[class@TabBar] will display a glow under the tab representing the page if -set to `TRUE`. If the tab is not visible, the corresponding edge of the tab -bar will be highlighted. - - - - - The parent page of the page. - -See [method@TabView.add_page] and [method@TabView.close_page]. - - - - - Whether the page is pinned. - -See [method@TabView.set_page_pinned]. - - - - - Whether the page is selected. - - - - - - The title of the page. - -[class@TabBar] will display it in the center of the tab unless it's pinned, -and will use it as a tooltip unless [property@TabPage:tooltip] is set. - - - - - - The tooltip of the page. - -The tooltip can be marked up with the Pango text markup language. - -If not set, [class@TabBar] will use [property@TabPage:title] as a tooltip -instead. - - - - - - - - - - - A dynamic tabbed container. - -`HdyTabView` is a container which shows one child at a time. While it -provides keyboard shortcuts for switching between pages, it does not provide -a visible tab bar and relies on external widgets for that, such as -[class@TabBar]. - -`HdyTabView` maintains a [class@TabPage] object for each page,which holds -additional per-page properties. You can obtain the [class@TabPage] for a page -with [method@TabView.get_page], and as return value for -[method@TabView.append] and other functions for adding children. - -`HdyTabView` only aims to be useful for dynamic tabs in multi-window -document-based applications, such as web browsers, file managers, text -editors or terminals. It does not aim to replace [class@Gtk.Notebook] for use -cases such as tabbed dialogs. - -As such, it does not support disabling page reordering or detaching, or -adding children via [iface@Gtk.Buildable]. - -## CSS nodes - -`HdyTabView` has a main CSS node with the name `tabview`. - -It contains the subnode overlay, which contains subnodes stack and widget. -The stack subnode contains the added pages. - -``` -tabview -╰── overlay - ├── stack - │ ╰── [ Children ] - ╰── widget -``` - - - - - Creates a new `HdyTabView`. - - - the newly created `HdyTabView` - - - - - Adds @child to @self with @parent as the parent. - -This function can be used to automatically position new pages, and to select -the correct page when this page is closed while being selected (see -[method@TabView.close_page]. - -If @parent is `NULL`, this function is equivalent to [method@TabView.append]. - - - the page object representing @child - - - - - a tab view - - - - a widget to add - - - - a parent page for @child - - - - - - Inserts @child as the last non-pinned page. - - - the page object representing @child - - - - - a tab view - - - - a widget to add - - - - - - Inserts @child as the last pinned page. - - - the page object representing @child - - - - - a tab view - - - - a widget to add - - - - - - Requests to close all pages other than @page. - - - - - - - a tab view - - - - a page of @self - - - - - - Requests to close @page. - -Calling this function will result in [signal@TabView::close-page] signal -being emitted for @page. Closing the page can then be confirmed or denied via -[method@TabView.close_page_finish]. - -If the page is waiting for a [method@TabView.close_page_finish] call, this -function will do nothing. - -The default handler for [signal@TabView::close-page] will immediately confirm -closing the page if it's non-pinned, or reject it if it's pinned. This -behavior can be changed by registering your own handler for that signal. - -If @page was selected, another page will be selected instead: - -If the [property@TabPage:parent] value is `NULL`, the next page will be -selected when possible, or if the page was already last, the previous page -will be selected instead. - -If it's not `NULL`, the previous page will be selected if it's a descendant -(possibly indirect) of the parent. If both the previous page and the parent -are pinned, the parent will be selected instead. - - - - - - - a tab view - - - - a page of @self - - - - - - Completes a [method@TabView.close_page] call for @page. - -If @confirm is `TRUE`, @page will be closed. If it's `FALSE`, ite will be -reverted to its previous state and [method@TabView.close_page] can be called -for it again. - -This function should not be called unless a custom handler for -[signal@TabView::close-page] is used. - - - - - - - a tab view - - - - a page of @self - - - - whether to confirm or deny closing @page - - - - - - Requests to close all pages after @page. - - - - - - - a tab view - - - - a page of @self - - - - - - Requests to close all pages before @page. - - - - - - - a tab view - - - - a page of @self - - - - - - - Gets default icon of @self. - - - the default icon of @self - - - - - a tab view - - - - - - - Whether a page is being transferred. - -Gets the value of [property@TabView:is-transferring-page] property. - - - whether a page is being transferred - - - - - a tab view - - - - - - - Gets the tab context menu model for @self. - - - the tab context menu model for @self - - - - - a tab view - - - - - - - Gets the number of pages in @self. - - - the number of pages in @self - - - - - a tab view - - - - - - - Gets the number of pinned pages in @self. - -See [method@TabView.set_page_pinned]. - - - the number of pinned pages in @self - - - - - a tab view - - - - - - Gets the [class@TabPage] representing the child at @position. - - - the page object at @position - - - - - a tab view - - - - the index of the page in @self, starting from 0 - - - - - - Gets the [class@TabPage] object representing @child. - - - the [class@TabPage] representing @child - - - - - a tab view - - - - a child in @self - - - - - - Finds the position of @page in @self, starting from 0. - - - the position of @page in @self - - - - - a tab view - - - - a page of @self - - - - - - Returns a [iface@Gio.ListModel] containing the pages of @self. - -This model can be used to keep an up to date view of the pages. - - - the model containing pages of @self - - - - - a tab view - - - - - - - Gets the currently selected page in @self. - - - the selected page in @self - - - - - a tab view - - - - - - - Gets the shortcut widget for @self. - - - the shortcut widget for @self - - - - - a tab view - - - - - - Inserts a non-pinned page at @position. - -It's an error to try to insert a page before a pinned page, in that case -[method@TabView.insert_pinned] should be used instead. - - - the page object representing @child - - - - - a tab view - - - - a widget to add - - - - the position to add @child at, starting from 0 - - - - - - Inserts a pinned page at @position. - -It's an error to try to insert a pinned page after a non-pinned page, in that -case [method@TabView.insert] should be used instead. - - - the page object representing @child - - - - - a tab view - - - - a widget to add - - - - the position to add @child at, starting from 0 - - - - - - Inserts @child as the first non-pinned page. - - - the page object representing @child - - - - - a tab view - - - - a widget to add - - - - - - Inserts @child as the first pinned page. - - - the page object representing @child - - - - - a tab view - - - - a widget to add - - - - - - Reorders @page to before its previous page if possible. - - - whether @page was moved - - - - - a tab view - - - - a page of @self - - - - - - Reorders @page to the first possible position. - - - whether @page was moved - - - - - a tab view - - - - a page of @self - - - - - - Reorders @page to after its next page if possible. - - - whether @page was moved - - - - - a tab view - - - - a page of @self - - - - - - Reorders @page to the last possible position. - - - whether @page was moved - - - - - a tab view - - - - a page of @self - - - - - - Reorders @page to @position. - -It's a programmer error to try to reorder a pinned page after a non-pinned -one, or a non-pinned page before a pinned one. - - - whether @page was moved - - - - - a tab view - - - - a page of @self - - - - the position to insert the page at, starting at 0 - - - - - - Selects the page after the currently selected page. - -If the last page was already selected, this function does nothing. - - - whether the selected page was changed - - - - - a tab view - - - - - - Selects the page before the currently selected page. - -If the first page was already selected, this function does nothing. - - - whether the selected page was changed - - - - - a tab view - - - - - - - Sets default page icon for @self. - -If a page doesn't provide its own icon via [property@TabPage:icon], default -icon may be used instead for contexts where having an icon is necessary. - -[class@TabBar] will use default icon for pinned tabs in case the page is not -loading, doesn't have an icon and an indicator. Default icon is never used -for tabs that aren't pinned. - -By default, `hdy-tab-icon-missing-symbolic` icon is used. - - - - - - - a tab view - - - - the default icon - - - - - - - Sets the tab context menu model for @self. - -When a context menu is shown for a tab, it will be constructed from the -provided menu model. Use [signal@TabView::setup-menu] signal to set up the -menu actions for the particular tab. - - - - - - - a tab view - - - - a menu model - - - - - - Pins or unpins @page. - -Pinned pages are guaranteed to be placed before all non-pinned pages; at any -given moment the first [property@TabView:n-pinned-pages] pages in @self are -guaranteed to be pinned. - -When a page is pinned or unpinned, it's automatically reordered: pinning a -page moves it after other pinned pages; unpinning a page moves it before -other non-pinned pages. - -Pinned pages can still be reordered between each other. - -[class@TabBar] will display pinned pages in a compact form, never showing the -title or close button, and only showing a single icon, selected in the -following order: - -1. [property@TabPage:indicator-icon] -2. A spinner if [property@TabPage:loading] is `TRUE` -3. [property@TabPage:icon] -4. [property@TabView:default-icon] - -Pinned pages cannot be closed by default, see [signal@TabView::close-page] -for how to override that behavior. - - - - - - - a tab view - - - - a page of @self - - - - whether @page should be pinned - - - - - - - Sets the currently selected page in @self. - - - - - - - a tab view - - - - a page in @self - - - - - - - Sets the shortcut widget for @self. - - - - - - - a tab view - - - - a shortcut widget - - - - - - Transfers @page from @self to @other_view. - -The @page object will be reused. - -It's a programmer error to try to insert a pinned page after a non-pinned -one, or a non-pinned page before a pinned one. - - - - - - - a tab view - - - - a page of @self - - - - the tab view to transfer the page to - - - - the position to insert the page at, starting at 0 - - - - - - - - Default page icon. - -If a page doesn't provide its own icon via [property@TabPage:icon], default -icon may be used instead for contexts where having an icon is necessary. - -[class@TabBar] will use default icon for pinned tabs in case the page is -not loading, doesn't have an icon and an indicator. Default icon is never -used for tabs that aren't pinned. - - - - - Whether a page is being transferred. - -This property will be set to `TRUE` when a drag-n-drop tab transfer starts -on any [class@TabView], and to `FALSE` after it ends. - -During the transfer, children cannot receive pointer input and a tab can be -safely dropped on the tab view. - - - - - - Tab context menu model. - -When a context menu is shown for a tab, it will be constructed from the -provided menu model. Use [signal@TabView::setup-menu] signal to set up the -menu actions for the particular tab. - - - - - The number of pages in the tab view. - - - - - The number of pinned pages in the tab view. - -See [method@TabView.set_page_pinned]. - - - - - - The currently selected page. - - - - - - Tab shortcut widget. - -Has the following shortcuts: - -* <kbd>Ctrl</kbd>+<kbd>Page Up</kbd> - switch to the previous page -* <kbd>Ctrl</kbd>+<kbd>Page Down</kbd> - switch to the next page -* <kbd>Ctrl</kbd>+<kbd>Home</kbd> - switch to the first page -* <kbd>Ctrl</kbd>+<kbd>End</kbd> - switch to the last page -* <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>Page Up</kbd> - move the current page - backward -* <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>Page Down</kbd> - move the current - page forward -* <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>Home</kbd> - move the current page at - the start -* <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>End</kbd> - move the current page at - the end -* <kbd>Ctrl</kbd>+<kbd>Tab</kbd> - switch to the next page, with looping -* <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>Tab</kbd> - switch to the previous - page, with looping -* <kbd>Alt</kbd>+<kbd>1</kbd>⋯<kbd>9</kbd> - switch to pages 1-9 -* <kbd>Alt</kbd>+<kbd>0</kbd> - switch to page 10 - -These shortcuts are always available on @self, this property is useful if -they should be available globally. - - - - Emitted after [method@TabView.close_page] has been called for @page. - -The handler is expected to call [method@TabView.close_page_finish] to -confirm or reject the closing. - -The default handler will immediately confirm closing for non-pinned pages, -or reject it for pinned pages, equivalent to the following example: - -```c -static gboolean -close_page_cb (HdyTabView *view, - HdyTabPage *page, - gpointer user_data) -{ - hdy_tab_view_close_page_finish (view, page, !hdy_tab_page_get_pinned (page)); - - return GDK_EVENT_STOP; -} -``` - -The [method@TabView.close_page_finish] doesn't have to happen during the -handler, so can be used to do asynchronous checks before confirming the -closing. - -A typical reason to connect to this signal is to show a confirmation dialog -for closing a tab. - - - - - - a page of the view - - - - - - Emitted when a tab should be transferred into a new window. - -This can happen after a tab has been dropped on desktop. - -The signal handler is expected to create a new window, position it as -needed and return its `HdyTabView`that the page will be transferred into. - - the [class@TabView] from the new - window - - - - - Emitted after the indicator icon on @page has been activated. - -See [property@TabPage:indicator-icon] and -[property@TabPage:indicator-activatable]. - - - - - - a page of the view - - - - - - Emitted when a page has been created or transferred to the view. - -A typical reason to connect to this signal would be to connect to page -signals for things such as updating window title. - - - - - - a page of the view - - - - the position of the page, starting from 0 - - - - - - Emitted when a page has been removed or transferred to another view. - -A typical reason to connect to this signal would be to disconnect signal -handlers connected in the [signal@TabView::page-attached] handler. - -It is important not to try and destroy the page child in the handler of -this function as the child might merely be moved to another window; use -child dispose handler for that or do it in sync with your -[method@TabView.close_page_finish] calls. - - - - - - a page of the view - - - - the position of the removed page, starting from 0 - - - - - - This signal is emitted after @page has been reordered to @position. - - - - - - a page of the view - - - - the position @page was moved to, starting at 0 - - - - - - Emitted when a context menu is opened or closed for @page. - -If the menu has been closed, @page will be set to `NULL`. - -It can be used to set up menu actions before showing the menu, for example -disable actions not applicable to @page. - - - - - - a page of @self - - - - - - - - - - - - - A simple title bar container. - -`HdyTitleBar` is meant to be used as the top-level widget of your window's -title bar. It will be drawn with the same style as a [class@Gtk.HeaderBar] -but it won't force a widget layout on you: you can put whatever widget you -want in it, including a [class@Gtk.HeaderBar]. - -`HdyTitleBar` becomes really useful when you want to animate header bars, -like an adaptive application using [class@Leaflet] would do. - -`HdyTitleBar` has been deprecated, header bars can be animated without it -when placed inside [class@Window] or [class@ApplicationWindow]. - -## CSS nodes - -`HdyTitleBar` has a single CSS node with name `headerbar`. - - - - - Creates a new `HdyTitleBar`. - - - a new `HdyTitleBar` - - - - - - Returns whether whether @self is in selection mode. - - - `TRUE` if the title bar is in selection mode - - - - - a title bar - - - - - - - Sets whether @self is in selection mode. - - - - - - - a title bar - - - - `TRUE` to enable the selection mode - - - - - - - - Whether or not the title bar is in selection mode. - - - - - - - - - - - An object representing a [struct@GObject.Value]. - -The `HdyValueObject` object represents a [struct@GObject.Value], allowing it -to be used with [iface@Gio.ListModel]. - - - Creates a new `HdyValueObject`. - - - a new `HdyValueObject` - - - - - the value to store - - - - - - Creates a new `HdyValueObject`. - -This is a convenience method which uses the `G_VALUE_COLLECT` macro -internally. - - - a new `HdyValueObject` - - - - - the type of the value - - - - the value to store - - - - - - Creates a new `HdyValueObject`. - -This is a convenience method to create a [class@ValueObject] that stores a -string. - - - a new `HdyValueObject` - - - - - the string to store - - - - - - Creates a new `HdyValueObject`. - -This is a convenience method to create a [class@ValueObject] that stores a -string taking ownership of it. - - - a new `HdyValueObject` - - - - - the string to store - - - - - - Copy data from the contained [struct@GObject.Value] into @dest. - - - - - - - the value - - - - value with correct type to copy into - - - - - - Gets a copy of the contained string if the value is of type `G_TYPE_STRING`. - - - a copy of the contained string - - - - - the value - - - - - - Returns the contained string if the value is of type `G_TYPE_STRING`. - - - the contained string - - - - - the value - - - - - - - Return the contained value. - - - the contained [struct@GObject.Value] - - - - - the value - - - - - - - The contained value. - - - - - - - - - - - An adaptive view switcher. - -An adaptive view switcher, designed to switch between multiple views in a -similar fashion than a [class@Gtk.StackSwitcher]. - -Depending on the available width, the view switcher can adapt from a wide -mode showing the view's icon and title side by side, to a narrow mode showing -the view's icon and title one on top of the other, in a more compact way. -This can be controlled via the policy property. - -To look good in a header bar, an `HdyViewSwitcher` requires to fill its full -height. Contrary to [class@Gtk.HeaderBar], [class@HeaderBar] doesn't force a -vertical alignment on its title widget, so we recommend it over -[class@Gtk.HeaderBar]. - -## CSS nodes - -`HdyViewSwitcher` has a single CSS node with name `viewswitcher`. - - - - - Creates a new `HdyViewSwitcher`. - - - the newly created `HdyViewSwitcher` - - - - - - Get the ellipsizing position of the narrow mode label. - - - a [enum@Pango.EllipsizeMode] - - - - - a view switcher - - - - - - - Gets the policy of @self. - - - the policy of @self - - - - - a view switcher - - - - - - - Gets the stack controlled by @self. - - - the stack - - - - - a view switcher - - - - - - - Sets the mode used to ellipsize the text in narrow mode. - - - - - - - a view switcher - - - - a [enum@Pango.EllipsizeMode] - - - - - - - Sets the policy of @self. - - - - - - - a view switcher - - - - the new policy - - - - - - - Sets the [class@Gtk.Stack] to control. - - - - - - - a view switcher - - - - a stack - - - - - - - - The preferred place to ellipsize the string. - -If the narrow mode label does not have enough room to display the entire -string, specified as a [enum@Pango.EllipsizeMode]. - -Note that setting this property to a value other than -`PANGO_ELLIPSIZE_NONE` has the side-effect that the label requests only -enough space to display the ellipsis. - - - - - - The policy to determine which mode to use. - - - - - - The [class@Gtk.Stack] the view switcher controls. - - - - - A view switcher action bar. - -An action bar letting you switch between multiple views offered by a -[class@Gtk.Stack], via an [class@ViewSwitcher]. It is designed to be put at -the bottom of a window and to be revealed only on really narrow windows e.g. -on mobile phones. It can't be revealed if there are less than two pages. - -`HdyViewSwitcherBar` is intended to be used together with -[class@ViewSwitcherTitle]. - -A common use case is to bind the [property@ViewSwitcherBar:reveal] property -to [property@ViewSwitcherTitle:title-visible] to automatically reveal the -view switcher bar when the title label is displayed in place of the view -switcher, as follows: - -```xml -<object class="GtkWindow"/> - <child type="titlebar"> - <object class="HdyHeaderBar"> - <property name="centering-policy">strict</property> - <child type="title"> - <object class="HdyViewSwitcherTitle" - id="view_switcher_title"> - <property name="stack">stack</property> - </object> - </child> - </object> - </child> - <child> - <object class="GtkBox"> - <child> - <object class="GtkStack" id="stack"/> - </child> - <child> - <object class="HdyViewSwitcherBar"> - <property name="stack">stack</property> - <property name="reveal" - bind-source="view_switcher_title" - bind-property="title-visible" - bind-flags="sync-create"/> - </object> - </child> - </object> - </child> -</object> -``` - -## CSS nodes - -`HdyViewSwitcherBar` has a single CSS node with name `viewswitcherbar`. - - - - - Creates a new `HdyViewSwitcherBar`. - - - the newly created `HdyViewSwitcherBar` - - - - - - Gets the policy of @self. - - - the policy of @self - - - - - a view switcher bar - - - - - - - Gets whether @self should be revealed or hidden. - - - whether @self is revealed - - - - - a view switcher bar - - - - - - - Get the [class@Gtk.Stack] being controlled by the [class@ViewSwitcher]. - - - the stack - - - - - a view switcher bar - - - - - - - Sets the policy of @self. - - - - - - - a view switcher bar - - - - the new policy - - - - - - - Sets whether @self should be revealed or not. - - - - - - - a view switcher bar - - - - `TRUE` to reveal @self - - - - - - - Sets the [class@Gtk.Stack] to control. - - - - - - - a view switcher bar - - - - a stack - - - - - - - - The policy used to determine which mode to use. - - - - - - Whether the bar should be revealed or hidden. - - - - - - The [class@Gtk.Stack] the [class@ViewSwitcher] controls. - - - - - - - - - - - - - - - - - Describes the adaptive modes of [class@ViewSwitcher]. - - Automatically adapt to the best fitting mode - - - Force the narrow mode - - - Force the wide mode - - - - A view switcher title. - -A widget letting you switch between multiple views contained by a -[class@Gtk.Stack], via an [class@ViewSwitcher]. - -It is designed to be used as the title widget of a [class@HeaderBar], and -will display the window's title when the window is too narrow to fit the view -switcher e.g. on mobile phones, or if there are less than two views. - -`HdyViewSwitcherTitle` is intended to be used together with -[class@ViewSwitcherBar]. - -A common use case is to bind the [property@ViewSwitcherBar:reveal] property -to [property@ViewSwitcherTitle:title-visible] to automatically reveal the -view switcher bar when the title label is displayed in place of the view -switcher, as follows: - -```xml -<object class="GtkWindow"/> - <child type="titlebar"> - <object class="HdyHeaderBar"> - <property name="centering-policy">strict</property> - <child type="title"> - <object class="HdyViewSwitcherTitle" - id="view_switcher_title"> - <property name="stack">stack</property> - </object> - </child> - </object> - </child> - <child> - <object class="GtkBox"> - <child> - <object class="GtkStack" id="stack"/> - </child> - <child> - <object class="HdyViewSwitcherBar"> - <property name="stack">stack</property> - <property name="reveal" - bind-source="view_switcher_title" - bind-property="title-visible" - bind-flags="sync-create"/> - </object> - </child> - </object> - </child> -</object> -``` - -## CSS nodes - -`HdyViewSwitcherTitle` has a single CSS node with name `viewswitchertitle`. - - - - - Creates a new `HdyViewSwitcherTitle`. - - - the newly created `HdyViewSwitcherTitle` - - - - - - Gets the policy of @self. - - - the policy of @self - - - - - a view switcher title - - - - - - - Gets the stack controlled by @self. - - - the stack - - - - - a view switcher title - - - - - - - Gets the subtitle of @self. - - - the subtitle of @self - - - - - a view switcher title - - - - - - - Gets the title of @self. - - - the title of @self - - - - - a view switcher title - - - - - - - Gets whether the title of @self is currently visible. - - - whether the title of @self is currently visible - - - - - a view switcher title - - - - - - - Gets whether @self's view switcher is enabled. - - - whether the view switcher is enabled - - - - - a view switcher title - - - - - - - Sets the policy of @self. - - - - - - - a view switcher title - - - - the new policy - - - - - - - Sets the [class@Gtk.Stack] to control. - - - - - - - a view switcher title - - - - a stack - - - - - - - Sets the subtitle of @self. - - - - - - - a view switcher title - - - - a subtitle - - - - - - - Sets the title of @self. - - - - - - - a view switcher title - - - - a title - - - - - - - Sets whether @self's view switcher is enabled. - - - - - - - a view switcher title - - - - `TRUE` to enable the view switcher, `FALSE` to disable it - - - - - - - - The policy used to determine which mode to use. - - - - - - The [class@Gtk.Stack] the [class@ViewSwitcher] controls. - - - - - - The subtitle of the [class@ViewSwitcher]. - -The subtitle should give a user additional details. - - - - - - The title of the [class@ViewSwitcher]. - -The title should give a user additional details. A good title should not -include the application name. - - - - - Whether the bar should be revealed or hidden. - - - - - - Whether the bar should be revealed or hidden. - -If it is disabled, the title will be displayed instead. This allows to -programmatically hide the view switcher even if it fits in the available -space. - -This can be used e.g. to ensure the view switcher is hidden below a certain -window width, or any other constraint you find suitable. - - - - - - - - - - - A freeform window. - -The `HdyWindow` widget is a subclass of [class@Gtk.Window] which has no -titlebar area and provides rounded corners on all sides, ensuring they can -never be overlapped by the content. This makes it safe to use headerbars in -the content area as follows: - -```xml -<object class="HdyWindow"/> - <child> - <object class="GtkBox"> - <property name="visible">True</property> - <property name="orientation">vertical</property> - <child> - <object class="HdyHeaderBar"> - <property name="visible">True</property> - <property name="show-close-button">True</property> - </object> - </child> - <child> - <!-- ... --> - </child> - </object> - </child> -</object> -``` - -It's recommended to use [class@HeaderBar] with `HdyWindow`, as unlike -[class@Gtk.HeaderBar] it remains draggable inside the window. Otherwise, -[class@WindowHandle] can be used. - -`HdyWindow` allows to easily implement titlebar autohiding by putting the -headerbar inside a [class@Gtk.Revealer], and to show titlebar above content -by putting it into a [class@Gtk.Overlay] instead of [class@Gtk.Box]. - -If the window has a [class@Gtk.GLArea], it may bring a slight performance -regression when the window is not fullscreen, tiled or maximized. - -Using [method@Gtk.Window.get_titlebar] and [method@Gtk.Window.set_titlebar] -is not supported and will result in a crash. - -## CSS nodes - -`HdyWindow` has a main CSS node with the name `window` and style classes -`.background`, `.csd` and `.unified`. - -The `.solid-csd` style class on the main node is used for client-side -decorations without invisible borders. - -`HdyWindow` also represents window states with the following style classes on -the main node: `.tiled`, `.maximized`, `.fullscreen`. - -It contains the subnodes decoration for window shadow and/or border, -decoration-overlay for the sheen on top of the window, `widget.titlebar`, and -deck, which contains the child inside the window. - - - - - Creates a new `HdyWindow`. - - - the newly created `HdyWindow` - - - - - - - - - - - - - - - - - - - - A bin that acts like a titlebar. - -`HdyWindowHandle` is a [class@Gtk.Bin] subclass that can be dragged to move -its [class@Gtk.Window], and handles right click, middle click and double -click as expected from a titlebar. This is particularly useful with -[class@Window] or [class@ApplicationWindow]. - -It isn't necessary to use `HdyWindowHandle` if you use [class@HeaderBar]. - -It can be safely nested or used in the actual window titlebar. - -## CSS nodes - -`HdyWindowHandle` has a single CSS node with name `windowhandle`. - - - - - Creates a new `HdyWindowHandle`. - - - the newly created `HdyWindowHandle` - - - - - - - - - - - - Computes the ease out for a value. - - - the ease out for @t - - - - - the term - - - - - - Returns the name of a [class@EnumValueObject]. - -This is a default implementation of [callback@ComboRowGetEnumValueNameFunc] -to be used with [method@ComboRow.set_for_enum]. If the enumeration has a -nickname, it will return it, otherwise it will return its name. - - - a displayable name that represents @value - - - - - the value from the enum from which to get a name - - - - unused user data - - - - - - Checks whether animations are enabled for @widget. - -This should be used when implementing an animated widget to know whether to -animate it or not. - - - whether animations are enabled for @widget - - - - - a widget - - - - - - Initializes Libhandy. - -Call this function just after initializing GTK, if you are using -[class@Gtk.Application] it means it must be called when the -[signal@Gio.Application::startup] signal is emitted. - -If Libhandy has already been initialized, the function will simply return. - -This makes sure translations, types, themes, and icons for the Handy library -are set up properly. - - - - - - - diff --git a/libphosh-rs/NM-1.0.gir b/libphosh-rs/NM-1.0.gir index 1b45719b3..38966a3c1 100644 --- a/libphosh-rs/NM-1.0.gir +++ b/libphosh-rs/NM-1.0.gir @@ -2,596 +2,299 @@ - + - - - 802.11 access point flags. - - access point has no special capabilities - - - access point requires authentication and + + + 802.11 access point flags. + + access point has no special capabilities + + + access point requires authentication and encryption (usually means WEP) - - access point supports some WPS method - - - access point supports push-button WPS - - - access point supports PIN-based WPS + + access point supports some WPS method + + + access point supports push-button WPS + + + access point supports PIN-based WPS - - 802.11 access point security and authentication flags. These flags describe + + 802.11 access point security and authentication flags. These flags describe the current security requirements of an access point as determined from the access point's beacon. - - the access point has no special security requirements - - - 40/64-bit WEP is supported for + + the access point has no special security requirements + + + 40/64-bit WEP is supported for pairwise/unicast encryption - - 104/128-bit WEP is supported for + + 104/128-bit WEP is supported for pairwise/unicast encryption - - TKIP is supported for pairwise/unicast encryption - - - AES/CCMP is supported for pairwise/unicast encryption - - - 40/64-bit WEP is supported for group/broadcast + + TKIP is supported for pairwise/unicast encryption + + + AES/CCMP is supported for pairwise/unicast encryption + + + 40/64-bit WEP is supported for group/broadcast encryption - - 104/128-bit WEP is supported for + + 104/128-bit WEP is supported for group/broadcast encryption - - TKIP is supported for group/broadcast encryption - - - AES/CCMP is supported for group/broadcast + + TKIP is supported for group/broadcast encryption + + + AES/CCMP is supported for group/broadcast encryption - - WPA/RSN Pre-Shared Key encryption is + + WPA/RSN Pre-Shared Key encryption is supported - - 802.1x authentication and key management + + 802.1x authentication and key management is supported - - WPA/RSN Simultaneous Authentication of Equals is + + WPA/RSN Simultaneous Authentication of Equals is supported - - WPA/RSN Opportunistic Wireless Encryption is + + WPA/RSN Opportunistic Wireless Encryption is supported - - WPA/RSN Opportunistic Wireless Encryption + + WPA/RSN Opportunistic Wireless Encryption transition mode is supported. Since: 1.26. - - WPA3 Enterprise Suite-B 192 bit mode + + WPA3 Enterprise Suite-B 192 bit mode is supported. Since: 1.30. - - Indicates the 802.11 mode an access point or device is currently in. - - the device or access point mode is unknown - - - for both devices and access point objects, indicates + + Indicates the 802.11 mode an access point or device is currently in. + + the device or access point mode is unknown + + + for both devices and access point objects, indicates the object is part of an Ad-Hoc 802.11 network without a central coordinating access point. - - the device or access point is in infrastructure mode. + + the device or access point is in infrastructure mode. For devices, this indicates the device is an 802.11 client/station. For access point objects, this indicates the object is an access point that provides connectivity to clients. - - the device is an access point/hotspot. Not valid for + + the device is an access point/hotspot. Not valid for access point objects; used only for hotspot mode on the local machine. - - the device is a 802.11s mesh point. Since: 1.20. + + the device is a 802.11s mesh point. Since: 1.20. - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - Validates a given connection against a given Wi-Fi access point to ensure that + + + + Validates a given connection against a given Wi-Fi access point to ensure that the connection may be activated with that AP. The connection must match the @ap's SSID, (if given) BSSID, and other attributes like security settings, channel, band, etc. - + - %TRUE if the connection may be activated with this Wi-Fi AP, + %TRUE if the connection may be activated with this Wi-Fi AP, %FALSE if it cannot be. - an #NMAccessPoint to validate @connection against + an #NMAccessPoint to validate @connection against - an #NMConnection to validate against @ap + an #NMConnection to validate against @ap - - Filters a given array of connections for a given #NMAccessPoint object and + + Filters a given array of connections for a given #NMAccessPoint object and returns connections which may be activated with the access point. Any returned connections will match the @ap's SSID and (if given) BSSID and other attributes like security settings, channel, etc. @@ -600,12 +303,9 @@ To obtain the list of connections that are compatible with this access point, use nm_client_get_connections() and then filter the returned list for a given #NMDevice using nm_device_filter_connections() and finally filter that list with this function. - + - an array of + an array of #NMConnections that could be activated with the given @ap. The array should be freed with g_ptr_array_unref() when it is no longer required. @@ -618,15 +318,11 @@ WARNING: the transfer annotation for this function may not work correctly - an #NMAccessPoint to filter connections for + an #NMAccessPoint to filter connections for - an array of #NMConnections to + an array of #NMConnections to filter @@ -634,624 +330,339 @@ filter - - Gets the bandwidth advertised by the access point in MHz. - + + Gets the bandwidth advertised by the access point in MHz. + - the advertised bandwidth (MHz) + the advertised bandwidth (MHz) - a #NMAccessPoint + a #NMAccessPoint - - Gets the Basic Service Set ID (BSSID) of the Wi-Fi access point. - + + Gets the Basic Service Set ID (BSSID) of the Wi-Fi access point. + - the BSSID of the access point. This is an internal string and must + the BSSID of the access point. This is an internal string and must not be modified or freed. - a #NMAccessPoint + a #NMAccessPoint - - Gets the flags of the access point. - + + Gets the flags of the access point. + - the flags + the flags - a #NMAccessPoint + a #NMAccessPoint - - Gets the frequency of the access point in MHz. - + + Gets the frequency of the access point in MHz. + - the frequency in MHz + the frequency in MHz - a #NMAccessPoint + a #NMAccessPoint - - Returns the timestamp (in CLOCK_BOOTTIME seconds) for the last time the + + Returns the timestamp (in CLOCK_BOOTTIME seconds) for the last time the access point was found in scan results. A value of -1 means the access point has not been found in a scan. - + - the last seen time in seconds + the last seen time in seconds - a #NMAccessPoint + a #NMAccessPoint - - Gets the maximum bit rate of the access point in kbit/s. - + + Gets the maximum bit rate of the access point in kbit/s. + - the maximum bit rate (kbit/s) + the maximum bit rate (kbit/s) - a #NMAccessPoint + a #NMAccessPoint - - Gets the mode of the access point. - + + Gets the mode of the access point. + - the mode + the mode - a #NMAccessPoint + a #NMAccessPoint - - Gets the RSN (Robust Secure Network, ie WPA version 2) flags of the access + + Gets the RSN (Robust Secure Network, ie WPA version 2) flags of the access point. - + - the RSN flags + the RSN flags - a #NMAccessPoint + a #NMAccessPoint - - Gets the SSID of the access point. - + + Gets the SSID of the access point. + - the #GBytes containing the SSID, or %NULL if the + the #GBytes containing the SSID, or %NULL if the SSID is unknown. - a #NMAccessPoint + a #NMAccessPoint - - Gets the current signal strength of the access point as a percentage. - + + Gets the current signal strength of the access point as a percentage. + - the signal strength (0 to 100) + the signal strength (0 to 100) - a #NMAccessPoint + a #NMAccessPoint - - Gets the WPA (version 1) flags of the access point. - + + Gets the WPA (version 1) flags of the access point. + - the WPA flags + the WPA flags - a #NMAccessPoint + a #NMAccessPoint - - The channel bandwidth announced by the AP in MHz. + + The channel bandwidth announced by the AP in MHz. - - The BSSID of the access point. + + The BSSID of the access point. - - The flags of the access point. + + The flags of the access point. - - The frequency of the access point. + + The frequency of the access point. - - Alias for #NMAccessPoint:bssid. + + Alias for #NMAccessPoint:bssid. Use #NMAccessPoint:bssid. - - The timestamp (in CLOCK_BOOTTIME seconds) for the last time the + + The timestamp (in CLOCK_BOOTTIME seconds) for the last time the access point was found in scan results. A value of -1 means the access point has not been found in a scan. - - The maximum bit rate of the access point in kbit/s. + + The maximum bit rate of the access point in kbit/s. - - The mode of the access point; either "infrastructure" (a central + + The mode of the access point; either "infrastructure" (a central coordinator of the wireless network allowing clients to connect) or "ad-hoc" (a network with no central controller). - - The RSN flags of the access point. + + The RSN flags of the access point. - The SSID of the access point, or %NULL if it is not known. + The SSID of the access point, or %NULL if it is not known. - - The current signal strength of the access point. + + The current signal strength of the access point. - - The WPA flags of the access point. + + The WPA flags of the access point. - - + + - - Flags describing the current activation state. - - an alias for numeric zero, no flags set. - - - the device is a master. - - - the device is a slave. - - - layer2 is activated and ready. - - - IPv4 setting is completed. - - - IPv6 setting is completed. - - - The master has any slave devices attached. + + Flags describing the current activation state. + + an alias for numeric zero, no flags set. + + + the device is a master. + + + the device is a slave. + + + layer2 is activated and ready. + + + IPv4 setting is completed. + + + IPv6 setting is completed. + + + The master has any slave devices attached. This only makes sense if the device is a master. - - the lifetime + + the lifetime of the activation is bound to the visibility of the connection profile, which in turn depends on "connection.permissions" and whether a session for the user exists. Since: 1.16. - - the active connection was generated to + + the active connection was generated to represent an external configuration of a networking device. Since: 1.26. - - - - Gets the #NMRemoteConnection associated with @connection. - - - the #NMRemoteConnection which this + + + + Gets the #NMRemoteConnection associated with @connection. + + + the #NMRemoteConnection which this #NMActiveConnection is an active instance of. - a #NMActiveConnection + a #NMActiveConnection - - Gets the #NMConnection's type. - + + Gets the #NMConnection's type. + - the type of the #NMConnection that backs the #NMActiveConnection. + the type of the #NMConnection that backs the #NMActiveConnection. This is the internal string used by the connection, and must not be modified. - a #NMActiveConnection + a #NMActiveConnection - - Gets the controller #NMDevice of the connection. This replaces the + + Gets the controller #NMDevice of the connection. This replaces the deprecated nm_active_connection_get_master() method. - + - the controller #NMDevice of the #NMActiveConnection. + the controller #NMDevice of the #NMActiveConnection. - a #NMActiveConnection + a #NMActiveConnection - - Whether the active connection is the default IPv4 one (that is, is used for + + Whether the active connection is the default IPv4 one (that is, is used for the default IPv4 route and DNS information). - + - %TRUE if the active connection is the default IPv4 connection + %TRUE if the active connection is the default IPv4 connection - a #NMActiveConnection + a #NMActiveConnection - - Whether the active connection is the default IPv6 one (that is, is used for + + Whether the active connection is the default IPv6 one (that is, is used for the default IPv6 route and DNS information). - + - %TRUE if the active connection is the default IPv6 connection + %TRUE if the active connection is the default IPv6 connection - a #NMActiveConnection + a #NMActiveConnection - - Gets the #NMDevices used for the active connections. - + + Gets the #NMDevices used for the active connections. + - the #GPtrArray containing #NMDevices. + the #GPtrArray containing #NMDevices. This is the internal copy used by the connection, and must not be modified. @@ -1259,457 +670,267 @@ This is the internal copy used by the connection, and must not be modified. - a #NMActiveConnection + a #NMActiveConnection - - Gets the current IPv4 #NMDhcpConfig (if any) associated with the + + Gets the current IPv4 #NMDhcpConfig (if any) associated with the #NMActiveConnection. - + - the IPv4 #NMDhcpConfig, or %NULL if the connection + the IPv4 #NMDhcpConfig, or %NULL if the connection does not use DHCP, or is not in the %NM_ACTIVE_CONNECTION_STATE_ACTIVATED state. - an #NMActiveConnection + an #NMActiveConnection - - Gets the current IPv6 #NMDhcpConfig (if any) associated with the + + Gets the current IPv6 #NMDhcpConfig (if any) associated with the #NMActiveConnection. - + - the IPv6 #NMDhcpConfig, or %NULL if the connection + the IPv6 #NMDhcpConfig, or %NULL if the connection does not use DHCPv6, or is not in the %NM_ACTIVE_CONNECTION_STATE_ACTIVATED state. - an #NMActiveConnection + an #NMActiveConnection - - Gets the #NMConnection's ID. - + + Gets the #NMConnection's ID. + - the ID of the #NMConnection that backs the #NMActiveConnection. + the ID of the #NMConnection that backs the #NMActiveConnection. This is the internal string used by the connection, and must not be modified. - a #NMActiveConnection + a #NMActiveConnection - - Gets the current IPv4 #NMIPConfig associated with the #NMActiveConnection. - + + Gets the current IPv4 #NMIPConfig associated with the #NMActiveConnection. + - the IPv4 #NMIPConfig, or %NULL if the connection is + the IPv4 #NMIPConfig, or %NULL if the connection is not in the %NM_ACTIVE_CONNECTION_STATE_ACTIVATED state. - an #NMActiveConnection + an #NMActiveConnection - - Gets the current IPv6 #NMIPConfig associated with the #NMActiveConnection. - + + Gets the current IPv6 #NMIPConfig associated with the #NMActiveConnection. + - the IPv6 #NMIPConfig, or %NULL if the connection is + the IPv6 #NMIPConfig, or %NULL if the connection is not in the %NM_ACTIVE_CONNECTION_STATE_ACTIVATED state. - an #NMActiveConnection + an #NMActiveConnection - - Gets the master #NMDevice of the connection. + + Gets the master #NMDevice of the connection. Use nm_active_connection_get_controller() instead. - + - the master #NMDevice of the #NMActiveConnection. + the master #NMDevice of the #NMActiveConnection. - a #NMActiveConnection + a #NMActiveConnection - - Gets the path of the "specific object" used at activation. + + Gets the path of the "specific object" used at activation. Currently, there is no single method that will allow you to automatically turn this into an appropriate #NMObject; you need to know what kind of object it is based on other information. (Eg, if @connection corresponds to a Wi-Fi connection, then the specific object will be an #NMAccessPoint, and you can resolve it with nm_device_wifi_get_access_point_by_path().) - + - the specific object's D-Bus path. This is the internal string used + the specific object's D-Bus path. This is the internal string used by the connection, and must not be modified. - a #NMActiveConnection + a #NMActiveConnection - - Gets the active connection's state. - + + Gets the active connection's state. + - the state + the state - a #NMActiveConnection + a #NMActiveConnection - - Gets the active connection's state flags. - + + Gets the active connection's state flags. + - the state flags + the state flags - a #NMActiveConnection + a #NMActiveConnection - - Gets the reason for active connection's state. - + + Gets the reason for active connection's state. + - the reason - + the reason + - a #NMActiveConnection + a #NMActiveConnection - - Gets the #NMConnection's UUID. - + + Gets the #NMConnection's UUID. + - the UUID of the #NMConnection that backs the #NMActiveConnection. + the UUID of the #NMConnection that backs the #NMActiveConnection. This is the internal string used by the connection, and must not be modified. - a #NMActiveConnection + a #NMActiveConnection - - Whether the active connection is a VPN connection. - + + Whether the active connection is a VPN connection. + - %TRUE if the active connection is a VPN connection + %TRUE if the active connection is a VPN connection - a #NMActiveConnection + a #NMActiveConnection - - The connection that this is an active instance of. + + The connection that this is an active instance of. - - The controller device if one exists. This replaces the deprecated + + The controller device if one exists. This replaces the deprecated "master" property. - - Whether the active connection is the default IPv4 one. + + Whether the active connection is the default IPv4 one. - - Whether the active connection is the default IPv6 one. + + Whether the active connection is the default IPv6 one. - The devices of the active connection. + The devices of the active connection. - - The IPv4 #NMDhcpConfig of the connection. + + The IPv4 #NMDhcpConfig of the connection. - - The IPv6 #NMDhcpConfig of the connection. + + The IPv6 #NMDhcpConfig of the connection. - - The active connection's ID + + The active connection's ID - - The IPv4 #NMIPConfig of the connection. + + The IPv4 #NMIPConfig of the connection. - - The IPv6 #NMIPConfig of the connection. + + The IPv6 #NMIPConfig of the connection. - - The master device if one exists. Replaced by the "controller" property. + + The master device if one exists. Replaced by the "controller" property. - - The path to the "specific object" of the active connection; see + + The path to the "specific object" of the active connection; see nm_active_connection_get_specific_object_path() for more details. - - The state of the active connection. + + The state of the active connection. - - The state flags of the active connection. + + The state flags of the active connection. - The active connection's type + The active connection's type - - The active connection's UUID + + The active connection's UUID - - Whether the active connection is a VPN connection. + + Whether the active connection is a VPN connection. @@ -1718,314 +939,132 @@ nm_active_connection_get_specific_object_path() for more details. - the new state number (#NMActiveConnectionState) + the new state number (#NMActiveConnectionState) - the state change reason (#NMActiveConnectionStateReason) + the state change reason (#NMActiveConnectionStateReason) - - + + - - #NMActiveConnectionState values indicate the state of a connection to a + + #NMActiveConnectionState values indicate the state of a connection to a specific network while it is starting, connected, or disconnecting from that network. - - the state of the connection is unknown - - - a network connection is being prepared - - - there is a connection to the network - - - the network connection is being + + the state of the connection is unknown + + + a network connection is being prepared + + + there is a connection to the network + + + the network connection is being torn down and cleaned up - - the network connection is disconnected + + the network connection is disconnected and will be removed - - Active connection state reasons. - - The reason for the active connection + + Active connection state reasons. + + The reason for the active connection state change is unknown. - - No reason was given for the active + + No reason was given for the active connection state change. - - The active connection changed + + The active connection changed state because the user disconnected it. - - The active connection + + The active connection changed state because the device it was using was disconnected. - - The service providing the + + The service providing the VPN connection was stopped. - - The IP config of the active + + The IP config of the active connection was invalid. - - The connection attempt to + + The connection attempt to the VPN service timed out. - - A timeout occurred + + A timeout occurred while starting the service providing the VPN connection. - - Starting the service + + Starting the service providing the VPN connection failed. - - Necessary secrets for the + + Necessary secrets for the connection were not provided. - - Authentication to the + + Authentication to the server failed. - - The connection was + + The connection was deleted from settings. - - Master connection of this + + Master connection of this connection failed to activate. - - Could not create the + + Could not create the software device link. - - The device this connection + + The device this connection depended on disappeared. - - Errors returned from the secret-agent manager. + + Errors returned from the secret-agent manager. These errors may be returned from operations that could cause secrets to be requested (such as nm_client_activate_connection()), and correspond to D-Bus errors in the "org.freedesktop.NetworkManager.AgentManager" namespace. - - unknown or unspecified error - - - The caller does not have permission + + unknown or unspecified error + + + The caller does not have permission to register a secret agent, or is trying to register the same secret agent twice. - - The identifier is not a valid + + The identifier is not a valid secret agent identifier. - - The caller tried to unregister an agent + + The caller tried to unregister an agent that was not registered. - - No secret agent returned secrets for this + + No secret agent returned secrets for this request - - The user canceled the secrets request. + + The user canceled the secrets request. @@ -2033,105 +1072,56 @@ errors in the "org.freedesktop.NetworkManager.AgentManager" namespace. - - + + - - + + - - #NMBluetoothCapabilities values indicate the usable capabilities of a + + #NMBluetoothCapabilities values indicate the usable capabilities of a Bluetooth device. - - device has no usable capabilities - - - device provides Dial-Up Networking capability - - - device provides Network Access Point capability + + device has no usable capabilities + + + device provides Dial-Up Networking capability + + + device provides Network Access Point capability - - + + - Creates a new #NMBridgeVlan object for the given VLAN id range. + Creates a new #NMBridgeVlan object for the given VLAN id range. Setting @vid_end to 0 is equivalent to setting it to @vid_start and creates a single-id VLAN. Since 1.42, ref-counting of #NMBridgeVlan is thread-safe. - + - the new #NMBridgeVlan object. + the new #NMBridgeVlan object. - the start VLAN id, must be between 1 and 4094. + the start VLAN id, must be between 1 and 4094. - the end VLAN id, must be 0 or between @vid_start and 4094. + the end VLAN id, must be 0 or between @vid_start and 4094. - Compare two bridge VLAN objects. - - - zero of the two instances are equivalent or + Compare two bridge VLAN objects. + + + zero of the two instances are equivalent or a non-zero integer otherwise. This defines a total ordering over the VLANs. Whether a VLAN is sealed or not does not affect the comparison. @@ -2139,388 +1129,251 @@ Since 1.42, ref-counting of #NMBridgeVlan is thread-safe. - a #NMBridgeVlan + a #NMBridgeVlan - another #NMBridgeVlan + another #NMBridgeVlan - - Gets the VLAN id range. - + + Gets the VLAN id range. + - %TRUE is the VLAN specifies a range, %FALSE if it is + %TRUE is the VLAN specifies a range, %FALSE if it is a single-id VLAN. - the #NMBridgeVlan + the #NMBridgeVlan - - location to store the VLAN id range start. + + location to store the VLAN id range start. - - location to store the VLAN id range end + + location to store the VLAN id range end - - Returns whether the VLAN is the PVID for the port. - + + Returns whether the VLAN is the PVID for the port. + - %TRUE if the VLAN is the PVID + %TRUE if the VLAN is the PVID - the #NMBridgeVlan + the #NMBridgeVlan - - + + - whether @self is sealed or not. + whether @self is sealed or not. - the #NMBridgeVlan instance + the #NMBridgeVlan instance - - Returns whether the VLAN is untagged. - + + Returns whether the VLAN is untagged. + - %TRUE if the VLAN is untagged, %FALSE otherwise + %TRUE if the VLAN is untagged, %FALSE otherwise - the #NMBridgeVlan + the #NMBridgeVlan - - + + - a clone of @vlan. This instance + a clone of @vlan. This instance is always unsealed. - the #NMBridgeVlan instance to copy + the #NMBridgeVlan instance to copy - Increases the reference count of the object. - + Increases the reference count of the object. + - the input argument @vlan object. + the input argument @vlan object. Since 1.42, ref-counting of #NMBridgeVlan is thread-safe. - the #NMBridgeVlan + the #NMBridgeVlan - Seal the #NMBridgeVlan instance. Afterwards, it is a bug + Seal the #NMBridgeVlan instance. Afterwards, it is a bug to call all functions that modify the instance (except ref/unref). A sealed instance cannot be unsealed again, but you can create an unsealed copy with nm_bridge_vlan_new_clone(). - + - the #NMBridgeVlan instance + the #NMBridgeVlan instance - - Change the value of the PVID property of the VLAN. It + + Change the value of the PVID property of the VLAN. It is invalid to set the value to %TRUE for non-single-id VLANs. - + - the #NMBridgeVlan + the #NMBridgeVlan - the new value + the new value - - Change the value of the untagged property of the VLAN. - + + Change the value of the untagged property of the VLAN. + - the #NMBridgeVlan + the #NMBridgeVlan - the new value + the new value - - Convert a %NMBridgeVlan to a string. - + + Convert a %NMBridgeVlan to a string. + - formatted string or %NULL + formatted string or %NULL - the %NMBridgeVlan + the %NMBridgeVlan - Decreases the reference count of the object. If the reference count + Decreases the reference count of the object. If the reference count reaches zero the object will be destroyed. Since 1.42, ref-counting of #NMBridgeVlan is thread-safe. - + - the #NMBridgeVlan + the #NMBridgeVlan - - Parses the string representation of the queueing + + Parses the string representation of the queueing discipline to a %NMBridgeVlan instance. - + - the %NMBridgeVlan or %NULL + the %NMBridgeVlan or %NULL - the string representation of a bridge VLAN + the string representation of a bridge VLAN - - + + - - + + - - + + - - + + - - + + - - + + - - + + - major version (e.g. 1 for version 1.2.5) + major version (e.g. 1 for version 1.2.5) - minor version (e.g. 2 for version 1.2.5) + minor version (e.g. 2 for version 1.2.5) - micro version (e.g. 5 for version 1.2.5) + micro version (e.g. 5 for version 1.2.5) @@ -2531,126 +1384,86 @@ discipline to a %NMBridgeVlan instance. - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -2658,54 +1471,38 @@ discipline to a %NMBridgeVlan instance. - + - + - + - + - + - + - + - + @@ -2713,39 +1510,27 @@ discipline to a %NMBridgeVlan instance. - + - + - + - + - + - + @@ -2761,314 +1546,171 @@ discipline to a %NMBridgeVlan instance. - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - #NMCapability names the numbers in the Capabilities property. + + #NMCapability names the numbers in the Capabilities property. Capabilities are positive numbers. They are part of stable API and a certain capability number is guaranteed not to change. The range 0x7000 - 0x7FFF of capabilities is guaranteed not to be used by upstream NetworkManager. It could thus be used for downstream extensions. - - Teams can be managed. This means the team device plugin + + Teams can be managed. This means the team device plugin is loaded. - - OpenVSwitch can be managed. This means the OVS device plugin + + OpenVSwitch can be managed. This means the OVS device plugin is loaded. Since: 1.24. - - - - Gets the timestamp (in CLOCK_BOOTTIME milliseconds) of checkpoint creation. + + + + Gets the timestamp (in CLOCK_BOOTTIME milliseconds) of checkpoint creation. Use nm_utils_get_timestamp_msec() to obtain current time value suitable for comparing to this value. - + - the timestamp of checkpoint creation. + the timestamp of checkpoint creation. - a #NMCheckpoint + a #NMCheckpoint - - The devices that are part of this checkpoint. - + + The devices that are part of this checkpoint. + - the devices list. + the devices list. - a #NMCheckpoint + a #NMCheckpoint - - Gets the timeout in seconds for automatic rollback. - + + Gets the timeout in seconds for automatic rollback. + - the rollback timeout. + the rollback timeout. - a #NMCheckpoint + a #NMCheckpoint - - The timestamp (in CLOCK_BOOTTIME milliseconds) of checkpoint creation. + + The timestamp (in CLOCK_BOOTTIME milliseconds) of checkpoint creation. - - The devices that are part of this checkpoint. + + The devices that are part of this checkpoint. - - Timeout in seconds for automatic rollback, or zero. + + Timeout in seconds for automatic rollback, or zero. - - + + - - The flags for CheckpointCreate call - Public since 1.4, g-ir since 1.12. - - no flags - - - when creating + + The flags for CheckpointCreate call + + no flags + + + when creating a new checkpoint, destroy all existing ones. - - upon rollback, + + upon rollback, delete any new connection added after the checkpoint. Since: 1.6. - - upon rollback, + + upon rollback, disconnect any new device appeared after the checkpoint. Since: 1.6. - - by default, creating + + by default, creating a checkpoint fails if there are already existing checkpoints that reference the same devices. With this flag, creation of such checkpoints is allowed, however, if an older checkpoint @@ -3081,30 +1723,16 @@ comparing to this value. checkpoint can be automatically destroyed by the rollback of an older checkpoint. Since: 1.12. - - during rollback, + + during rollback, by default externally added ports attached to bridge devices are preserved. With this flag, the rollback detaches all external ports. This only has an effect for bridge ports. Before 1.38, this was the default behavior. Since: 1.38. - - NMClient contains a cache of the objects of NetworkManager's D-Bus API. + + NMClient contains a cache of the objects of NetworkManager's D-Bus API. It uses #GMainContext and #GDBusConnection for that and registers to D-Bus signals. That means, when iterating the associated #GMainContext, D-Bus signals gets processed and the #NMClient instance updates and @@ -3113,9 +1741,7 @@ emits #GObject signals. - Creates a new #NMClient synchronously. + Creates a new #NMClient synchronously. Note that this will block until a NMClient instance is fully initialized. This does nothing beside calling g_initable_new(). You are free to call @@ -3148,53 +1774,34 @@ leaks. See nm_client_get_context_busy_watcher(). Creating an #NMClient instance when NetworkManager is not running does not cause a failure. - + - a new #NMClient or NULL on an error + a new #NMClient or NULL on an error - - a #GCancellable, or %NULL + + a #GCancellable, or %NULL - - Gets the result of an nm_client_new_async() call. - + + Gets the result of an nm_client_new_async() call. + - a new #NMClient, or %NULL on error + a new #NMClient, or %NULL on error - a #GAsyncResult + a #GAsyncResult - Creates a new #NMClient asynchronously. + Creates a new #NMClient asynchronously. @callback will be called when it is done. Use nm_client_new_finish() to get the result. @@ -3215,70 +1822,41 @@ leaks. See nm_client_get_context_busy_watcher(). Creating an #NMClient instance when NetworkManager is not running does not cause a failure. - + - - a #GCancellable, or %NULL + + a #GCancellable, or %NULL - - callback to call when the client is created + + callback to call when the client is created - - data for @callback + + data for @callback - - - - %TRUE if waiting is complete successfully. In that case, all resources of the + + + + %TRUE if waiting is complete successfully. In that case, all resources of the nmclient are wrapped up and released. This can only fail by user cancellation. - a #GAsyncResult obtained from the #GAsyncReadyCallback passed to nm_client_wait_shutdown() + a #GAsyncResult obtained from the #GAsyncReadyCallback passed to nm_client_wait_shutdown() - - Asynchronously starts a connection to a particular network using the + + Asynchronously starts a connection to a particular network using the configuration settings from @connection and the network device @device. Certain connection types also take a "specific object" which is the object path of a connection- specific object, like an #NMAccessPoint for Wi-Fi @@ -3294,43 +1872,25 @@ Note that the callback is invoked when NetworkManager has started activating the new connection, not when it finishes. You can use the returned #NMActiveConnection object (in particular, #NMActiveConnection:state) to track the activation to its completion. - + - a #NMClient + a #NMClient - - an #NMConnection + + an #NMConnection - - the #NMDevice + + the #NMDevice - - the object path of a connection-type-specific + + the object path of a connection-type-specific object this activation should use. This parameter is currently ignored for wired and mobile broadband connections, and the value of %NULL should be used (ie, no specific object). For Wi-Fi or WiMAX connections, pass the object @@ -3339,73 +1899,41 @@ track the activation to its completion. details of the newly added connection. - - a #GCancellable, or %NULL + + a #GCancellable, or %NULL - - callback to be called when the activation has started + + callback to be called when the activation has started - - caller-specific data passed to @callback + + caller-specific data passed to @callback - - Gets the result of a call to nm_client_activate_connection_async(). - + + Gets the result of a call to nm_client_activate_connection_async(). + - the new #NMActiveConnection on success, %NULL on + the new #NMActiveConnection on success, %NULL on failure, in which case @error will be set. - an #NMClient + an #NMClient - the result passed to the #GAsyncReadyCallback + the result passed to the #GAsyncReadyCallback - - Adds a new connection using the given details (if any) as a template, + + Adds a new connection using the given details (if any) as a template, automatically filling in missing settings with the capabilities of the given device and specific object. The new connection is then asynchronously activated as with nm_client_activate_connection_async(). Cannot be used for @@ -3426,45 +1954,27 @@ by the daemon: meaning an explicit disconnect is needed. The value "dbus-client" means the connection will automatically be deactivated when the calling D-Bus client disappears from the system bus. - + - a #NMClient + a #NMClient - - an #NMConnection to add; the connection may be + + an #NMConnection to add; the connection may be partially filled (or even %NULL) and will be completed by NetworkManager using the given @device and @specific_object before being added - - the #NMDevice + + the #NMDevice - - the object path of a connection-type-specific + + the object path of a connection-type-specific object this activation should use. This parameter is currently ignored for wired and mobile broadband connections, and the value of %NULL should be used (i.e., no specific object). For Wi-Fi or WiMAX connections, pass the object @@ -3474,95 +1984,53 @@ by the daemon: - a #GVariant containing a dictionary with options, or %NULL + a #GVariant containing a dictionary with options, or %NULL - - a #GCancellable, or %NULL + + a #GCancellable, or %NULL - - callback to be called when the activation has started + + callback to be called when the activation has started - - caller-specific data passed to @callback + + caller-specific data passed to @callback - - Gets the result of a call to nm_client_add_and_activate_connection2(). + + Gets the result of a call to nm_client_add_and_activate_connection2(). You can call nm_active_connection_get_connection() on the returned #NMActiveConnection to find the path of the created #NMConnection. - + - the new #NMActiveConnection on success, %NULL on + the new #NMActiveConnection on success, %NULL on failure, in which case @error will be set. - an #NMClient + an #NMClient - the result passed to the #GAsyncReadyCallback + the result passed to the #GAsyncReadyCallback - - the output result + + the output result of type "a{sv}" returned by D-Bus' AddAndActivate2 call. Currently, no output is implemented yet. - - Adds a new connection using the given details (if any) as a template, + + Adds a new connection using the given details (if any) as a template, automatically filling in missing settings with the capabilities of the given device and specific object. The new connection is then asynchronously activated as with nm_client_activate_connection_async(). Cannot be used for @@ -3572,45 +2040,27 @@ Note that the callback is invoked when NetworkManager has started activating the new connection, not when it finishes. You can used the returned #NMActiveConnection object (in particular, #NMActiveConnection:state) to track the activation to its completion. - + - a #NMClient + a #NMClient - - an #NMConnection to add; the connection may be + + an #NMConnection to add; the connection may be partially filled (or even %NULL) and will be completed by NetworkManager using the given @device and @specific_object before being added - - the #NMDevice + + the #NMDevice - - the object path of a connection-type-specific + + the object path of a connection-type-specific object this activation should use. This parameter is currently ignored for wired and mobile broadband connections, and the value of %NULL should be used (ie, no specific object). For Wi-Fi or WiMAX connections, pass the object @@ -3620,115 +2070,68 @@ track the activation to its completion. If the variant is floating, it will be consumed. - - a #GCancellable, or %NULL + + a #GCancellable, or %NULL - - callback to be called when the activation has started + + callback to be called when the activation has started - - caller-specific data passed to @callback + + caller-specific data passed to @callback - - Gets the result of a call to nm_client_add_and_activate_connection_async(). + + Gets the result of a call to nm_client_add_and_activate_connection_async(). You can call nm_active_connection_get_connection() on the returned #NMActiveConnection to find the path of the created #NMConnection. - + - the new #NMActiveConnection on success, %NULL on + the new #NMActiveConnection on success, %NULL on failure, in which case @error will be set. - an #NMClient + an #NMClient - the result passed to the #GAsyncReadyCallback + the result passed to the #GAsyncReadyCallback - - Call AddConnection2() D-Bus API asynchronously. - + + Call AddConnection2() D-Bus API asynchronously. + - the %NMClient + the %NMClient - the "a{sa{sv}}" #GVariant with the content of the setting. + the "a{sa{sv}}" #GVariant with the content of the setting. - the %NMSettingsAddConnection2Flags argument. - - - - the "a{sv}" #GVariant with extra argument or %NULL + the %NMSettingsAddConnection2Flags argument. + + + + the "a{sv}" #GVariant with extra argument or %NULL for no extra arguments. - this function wraps AddConnection2(), which has an + this function wraps AddConnection2(), which has an additional result "a{sv}" output parameter. By setting this to %TRUE, you signal that you are not interested in that output parameter. This allows the function to fall back to AddConnection() and AddConnectionUnsaved(), @@ -3737,73 +2140,38 @@ You can call nm_active_connection_get_connection() on the returned under the hood always calls AddConnection2(). - - a #GCancellable, or %NULL + + a #GCancellable, or %NULL - - callback to be called when the add operation completes + + callback to be called when the add operation completes - - caller-specific data passed to @callback + + caller-specific data passed to @callback - - + + - on success, a pointer to the added + on success, a pointer to the added #NMRemoteConnection. - the #NMClient + the #NMClient - the #GAsyncResult + the #GAsyncResult - - the output + + the output #GVariant from AddConnection2(). If you care about the output result, then the "ignore_out_result" parameter of nm_client_add_connection2() must not be set to %TRUE. @@ -3811,11 +2179,8 @@ You can call nm_active_connection_get_connection() on the returned - - Requests that the remote settings service add the given settings to a new + + Requests that the remote settings service add the given settings to a new connection. If @save_to_disk is %TRUE, the connection is immediately written to disk; otherwise it is initially only stored in memory, but may be saved later by calling the connection's nm_remote_connection_commit_changes() @@ -3829,565 +2194,325 @@ operation is complete. Note that the #NMRemoteConnection returned in @callback may not contain identical settings to @connection as NetworkManager may perform automatic completion and/or normalization of connection properties. - + - the %NMClient + the %NMClient - the connection to add. Note that this object's settings will be + the connection to add. Note that this object's settings will be added, not the object itself - whether to immediately save the connection to disk + whether to immediately save the connection to disk - - a #GCancellable, or %NULL + + a #GCancellable, or %NULL - - callback to be called when the add operation completes + + callback to be called when the add operation completes - - caller-specific data passed to @callback + + caller-specific data passed to @callback - - Gets the result of a call to nm_client_add_connection_async(). - + + Gets the result of a call to nm_client_add_connection_async(). + - the new #NMRemoteConnection on success, %NULL on + the new #NMRemoteConnection on success, %NULL on failure, in which case @error will be set. - an #NMClient + an #NMClient - the result passed to the #GAsyncReadyCallback + the result passed to the #GAsyncReadyCallback - - Updates the network connectivity state and returns the (new) + + Updates the network connectivity state and returns the (new) current state. Contrast nm_client_get_connectivity(), which returns the most recent known state without re-checking. This is a blocking call; use nm_client_check_connectivity_async() if you do not want to block. Use nm_client_check_connectivity_async() or GDBusConnection. - + - the (new) current connectivity state + the (new) current connectivity state - an #NMClient + an #NMClient - - a #GCancellable + + a #GCancellable - - Asynchronously updates the network connectivity state and invokes + + Asynchronously updates the network connectivity state and invokes @callback when complete. Contrast nm_client_get_connectivity(), which (immediately) returns the most recent known state without re-checking, and nm_client_check_connectivity(), which blocks. - + - an #NMClient + an #NMClient - - a #GCancellable + + a #GCancellable - - callback to call with the result + + callback to call with the result - - data for @callback. + + data for @callback. - - Retrieves the result of an nm_client_check_connectivity_async() + + Retrieves the result of an nm_client_check_connectivity_async() call. - + - the (new) current connectivity state + the (new) current connectivity state - an #NMClient + an #NMClient - the #GAsyncResult + the #GAsyncResult - - Resets the timeout for the checkpoint with path @checkpoint_path + + Resets the timeout for the checkpoint with path @checkpoint_path to @timeout_add. - + - the %NMClient + the %NMClient - a D-Bus path to a checkpoint + a D-Bus path to a checkpoint - the timeout in seconds counting from now. + the timeout in seconds counting from now. Set to zero, to disable the timeout. - - a #GCancellable, or %NULL + + a #GCancellable, or %NULL - - callback to be called when the add operation completes + + callback to be called when the add operation completes - - caller-specific data passed to @callback + + caller-specific data passed to @callback - - Gets the result of a call to nm_client_checkpoint_adjust_rollback_timeout(). - + + Gets the result of a call to nm_client_checkpoint_adjust_rollback_timeout(). + - %TRUE on success or %FALSE on failure. + %TRUE on success or %FALSE on failure. - an #NMClient + an #NMClient - the result passed to the #GAsyncReadyCallback + the result passed to the #GAsyncReadyCallback - - Creates a checkpoint of the current networking configuration + + Creates a checkpoint of the current networking configuration for given interfaces. An empty @devices argument means all devices. If @rollback_timeout is not zero, a rollback is automatically performed after the given timeout. - + - the %NMClient + the %NMClient - a list of devices for which a + a list of devices for which a checkpoint should be created. - the rollback timeout in seconds + the rollback timeout in seconds - creation flags - - - - a #GCancellable, or %NULL + creation flags + + + + a #GCancellable, or %NULL - - callback to be called when the add operation completes + + callback to be called when the add operation completes - - caller-specific data passed to @callback + + caller-specific data passed to @callback - - Gets the result of a call to nm_client_checkpoint_create(). - + + Gets the result of a call to nm_client_checkpoint_create(). + - the new #NMCheckpoint on success, %NULL on + the new #NMCheckpoint on success, %NULL on failure, in which case @error will be set. - the #NMClient + the #NMClient - the result passed to the #GAsyncReadyCallback + the result passed to the #GAsyncReadyCallback - - Destroys an existing checkpoint without performing a rollback. - + + Destroys an existing checkpoint without performing a rollback. + - the %NMClient + the %NMClient - the D-Bus path for the checkpoint + the D-Bus path for the checkpoint - - a #GCancellable, or %NULL + + a #GCancellable, or %NULL - - callback to be called when the add operation completes + + callback to be called when the add operation completes - - caller-specific data passed to @callback + + caller-specific data passed to @callback - - Gets the result of a call to nm_client_checkpoint_destroy(). - + + Gets the result of a call to nm_client_checkpoint_destroy(). + - %TRUE on success or %FALSE on failure, in which case + %TRUE on success or %FALSE on failure, in which case @error will be set. - an #NMClient + an #NMClient - the result passed to the #GAsyncReadyCallback + the result passed to the #GAsyncReadyCallback - - Performs the rollback of a checkpoint before the timeout is reached. - + + Performs the rollback of a checkpoint before the timeout is reached. + - the %NMClient + the %NMClient - the D-Bus path to the checkpoint + the D-Bus path to the checkpoint - - a #GCancellable, or %NULL + + a #GCancellable, or %NULL - - callback to be called when the add operation completes + + callback to be called when the add operation completes - - caller-specific data passed to @callback + + caller-specific data passed to @callback - - Gets the result of a call to nm_client_checkpoint_rollback(). - + + Gets the result of a call to nm_client_checkpoint_rollback(). + - an hash table of + an hash table of devices and results. Devices are represented by their original D-Bus path; each result is a #NMRollbackResult. @@ -4397,129 +2522,83 @@ automatically performed after the given timeout. - an #NMClient + an #NMClient - the result passed to the #GAsyncReadyCallback + the result passed to the #GAsyncReadyCallback - - Determine whether connectivity checking is available. This + + Determine whether connectivity checking is available. This requires that the URI of a connectivity service has been set in the configuration file. - + - %TRUE if connectivity checking is available. + %TRUE if connectivity checking is available. - a #NMClient + a #NMClient - - Determine whether connectivity checking is enabled. - + + Determine whether connectivity checking is enabled. + - %TRUE if connectivity checking is enabled. + %TRUE if connectivity checking is enabled. - a #NMClient + a #NMClient - - Get the URI that will be queried to determine if there is internet + + Get the URI that will be queried to determine if there is internet connectivity. - + - the connectivity URI in use + the connectivity URI in use - a #NMClient + a #NMClient - - Enable or disable connectivity checking. Note that if a + + Enable or disable connectivity checking. Note that if a connectivity checking URI has not been configured, this will not have any effect. Use the async command nm_client_dbus_set_property() on %NM_DBUS_PATH, %NM_DBUS_INTERFACE to set "ConnectivityCheckEnabled" property to a "(b)" value. - + - a #NMClient + a #NMClient - %TRUE to enable connectivity checking + %TRUE to enable connectivity checking - - Call g_dbus_connection_call() on the current name owner with the specified + + Call g_dbus_connection_call() on the current name owner with the specified arguments. Most importantly, this invokes g_dbus_connection_call() with the client's #GMainContext, so that the response is always in order with other events D-Bus events. Of course, the call uses #GTask and will invoke the @@ -4527,401 +2606,235 @@ callback on the current g_main_context_get_thread_default(). This API is merely a convenient wrapper for g_dbus_connection_call(). You can also use g_dbus_connection_call() directly, with the same effect. - + - the #NMClient + the #NMClient - path of remote object + path of remote object - D-Bus interface to invoke method on + D-Bus interface to invoke method on - the name of the method to invoke + the name of the method to invoke - - a #GVariant tuple with parameters for the method + + a #GVariant tuple with parameters for the method or %NULL if not passing parameters - - the expected type of the reply (which will be a + + the expected type of the reply (which will be a tuple), or %NULL - the timeout in milliseconds, -1 to use the default + the timeout in milliseconds, -1 to use the default timeout or %G_MAXINT for no timeout - - a #GCancellable or %NULL + + a #GCancellable or %NULL - - a #GAsyncReadyCallback to call when the request + + a #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't care about the result of the method invocation - - the data to pass to @callback + + the data to pass to @callback - - Gets the result of a call to nm_client_dbus_call(). - + + Gets the result of a call to nm_client_dbus_call(). + - the result #GVariant or %NULL on error. + the result #GVariant or %NULL on error. - the #NMClient instance + the #NMClient instance - the result passed to the #GAsyncReadyCallback + the result passed to the #GAsyncReadyCallback - - Like nm_client_dbus_call() but calls "Set" on the standard "org.freedesktop.DBus.Properties" + + Like nm_client_dbus_call() but calls "Set" on the standard "org.freedesktop.DBus.Properties" D-Bus interface. - + - the #NMClient + the #NMClient - path of remote object + path of remote object - D-Bus interface for the property to set. + D-Bus interface for the property to set. - the name of the property to set + the name of the property to set - a #GVariant with the value to set. + a #GVariant with the value to set. - the timeout in milliseconds, -1 to use the default + the timeout in milliseconds, -1 to use the default timeout or %G_MAXINT for no timeout - - a #GCancellable or %NULL + + a #GCancellable or %NULL - - a #GAsyncReadyCallback to call when the request + + a #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't care about the result of the method invocation - - the data to pass to @callback + + the data to pass to @callback - - Gets the result of a call to nm_client_dbus_set_property(). - + + Gets the result of a call to nm_client_dbus_set_property(). + - %TRUE on success or %FALSE on failure. + %TRUE on success or %FALSE on failure. - the #NMClient instance + the #NMClient instance - the result passed to the #GAsyncReadyCallback + the result passed to the #GAsyncReadyCallback - - Deactivates an active #NMActiveConnection. + + Deactivates an active #NMActiveConnection. Use nm_client_deactivate_connection_async() or GDBusConnection. - + - success or failure + success or failure - a #NMClient + a #NMClient - the #NMActiveConnection to deactivate + the #NMActiveConnection to deactivate - - a #GCancellable, or %NULL + + a #GCancellable, or %NULL - - Asynchronously deactivates an active #NMActiveConnection. - + + Asynchronously deactivates an active #NMActiveConnection. + - a #NMClient + a #NMClient - the #NMActiveConnection to deactivate + the #NMActiveConnection to deactivate - - a #GCancellable, or %NULL + + a #GCancellable, or %NULL - - callback to be called when the deactivation has completed + + callback to be called when the deactivation has completed - - caller-specific data passed to @callback + + caller-specific data passed to @callback - - Gets the result of a call to nm_client_deactivate_connection_async(). - + + Gets the result of a call to nm_client_deactivate_connection_async(). + - success or failure + success or failure - a #NMClient + a #NMClient - the result passed to the #GAsyncReadyCallback + the result passed to the #GAsyncReadyCallback - - Gets the #NMActiveConnection corresponding to a + + Gets the #NMActiveConnection corresponding to a currently-activating connection that is expected to become the new #NMClient:primary-connection upon successful activation. - + - the appropriate #NMActiveConnection, if + the appropriate #NMActiveConnection, if any. - an #NMClient + an #NMClient - - Gets the active connections. - + + Gets the active connections. + - a #GPtrArray + a #GPtrArray containing all the active #NMActiveConnections. The returned array is owned by the client and should not be modified. @@ -4930,20 +2843,13 @@ The returned array is owned by the client and should not be modified. - a #NMClient + a #NMClient - - Gets both real devices and device placeholders (eg, software devices which + + Gets both real devices and device placeholders (eg, software devices which do not currently exist, but could be created automatically by NetworkManager if one of their NMDevice::ActivatableConnections was activated). Use nm_device_is_real() to determine whether each device is a real device or @@ -4952,12 +2858,9 @@ a placeholder. Use nm_device_get_type() or the NM_IS_DEVICE_XXXX() functions to determine what kind of device each member of the returned array is, and then you may use device-specific methods such as nm_device_ethernet_get_hw_address(). - + - a #GPtrArray + a #GPtrArray containing all the #NMDevices. The returned array is owned by the #NMClient object and should not be modified. @@ -4966,23 +2869,15 @@ containing all the #NMDevices. The returned array is owned by the - a #NMClient + a #NMClient - - + + - the + the list of capabilities reported by the server or %NULL if the capabilities are unknown. The numeric values correspond to #NMCapability enum. @@ -4994,37 +2889,20 @@ containing all the #NMDevices. The returned array is owned by the - the #NMClient instance + the #NMClient instance - - the number of returned capabilities. + + the number of returned capabilities. - - Gets all the active checkpoints. - + + Gets all the active checkpoints. + - a #GPtrArray + a #GPtrArray containing all the #NMCheckpoint. The returned array is owned by the #NMClient object and should not be modified. @@ -5033,24 +2911,16 @@ containing all the #NMCheckpoint. The returned array is owned by the - a #NMClient + a #NMClient - - Returns the first matching %NMRemoteConnection matching a given @id. - + + Returns the first matching %NMRemoteConnection matching a given @id. + - the remote connection object on success, or %NULL if no + the remote connection object on success, or %NULL if no matching object was found. The connection is as received from D-Bus and might not validate according @@ -5059,30 +2929,20 @@ to nm_connection_verify(). - the %NMClient + the %NMClient - the id of the remote connection + the id of the remote connection - - Returns the %NMRemoteConnection representing the connection at @path. - + + Returns the %NMRemoteConnection representing the connection at @path. + - the remote connection object on success, or %NULL if the object was + the remote connection object on success, or %NULL if the object was not known The connection is as received from D-Bus and might not validate according @@ -5091,30 +2951,20 @@ to nm_connection_verify(). - the %NMClient + the %NMClient - the D-Bus object path of the remote connection + the D-Bus object path of the remote connection - - Returns the %NMRemoteConnection identified by @uuid. - + + Returns the %NMRemoteConnection identified by @uuid. + - the remote connection object on success, or %NULL if the object was + the remote connection object on success, or %NULL if the object was not known The connection is as received from D-Bus and might not validate according @@ -5123,28 +2973,19 @@ to nm_connection_verify(). - the %NMClient + the %NMClient - the UUID of the remote connection + the UUID of the remote connection - - + + - an array + an array containing all connections provided by the remote settings service. The returned array is owned by the #NMClient object and should not be modified. @@ -5156,48 +2997,32 @@ to nm_connection_verify(). - the %NMClient + the %NMClient - - Gets the current network connectivity state. Contrast + + Gets the current network connectivity state. Contrast nm_client_check_connectivity() and nm_client_check_connectivity_async(), which re-check the connectivity state first before returning any information. - + - the current connectivity state + the current connectivity state - an #NMClient + an #NMClient - - + + - a GObject that stays alive as long as there are pending + a GObject that stays alive as long as there are pending D-Bus operations. NMClient will schedule asynchronous D-Bus requests which will complete on @@ -5230,131 +3055,84 @@ NMClient is gone completely. - the NMClient instance. + the NMClient instance. - - Gets the %GDBusConnection of the instance. This can be either passed when + + Gets the %GDBusConnection of the instance. This can be either passed when constructing the instance (as "dbus-connection" property), or it will be automatically initialized during async/sync init. - + - the D-Bus connection of the client, or %NULL if none is set. + the D-Bus connection of the client, or %NULL if none is set. - a #NMClient + a #NMClient - - + + - the current name owner of the D-Bus service of NetworkManager. + the current name owner of the D-Bus service of NetworkManager. - a #NMClient + a #NMClient - - Gets a #NMDevice from a #NMClient. - + + Gets a #NMDevice from a #NMClient. + - the #NMDevice for the given @iface or %NULL if none is found. + the #NMDevice for the given @iface or %NULL if none is found. - a #NMClient + a #NMClient - the interface name to search for + the interface name to search for - - Gets a #NMDevice from a #NMClient. - + + Gets a #NMDevice from a #NMClient. + - the #NMDevice for the given @object_path or %NULL if none is found. + the #NMDevice for the given @object_path or %NULL if none is found. - a #NMClient + a #NMClient - the object path to search for + the object path to search for - - Gets all the known network devices. Use nm_device_get_type() or the + + Gets all the known network devices. Use nm_device_get_type() or the <literal>NM_IS_DEVICE_XXXX</literal> functions to determine what kind of device member of the returned array is, and then you may use device-specific methods such as nm_device_ethernet_get_hw_address(). - + - a #GPtrArray + a #GPtrArray containing all the #NMDevices. The returned array is owned by the #NMClient object and should not be modified. @@ -5363,26 +3141,16 @@ containing all the #NMDevices. The returned array is owned by the - a #NMClient + a #NMClient - - Gets the current DNS configuration - + + Gets the current DNS configuration + - a #GPtrArray + a #GPtrArray containing #NMDnsEntry elements or %NULL in case the value is not available. The returned array is owned by the #NMClient object and should not be modified. @@ -5392,143 +3160,82 @@ and should not be modified. - a #NMClient + a #NMClient - - Gets the current DNS processing mode. - + + Gets the current DNS processing mode. + - the DNS processing mode, or %NULL in case the + the DNS processing mode, or %NULL in case the value is not available. - the #NMClient + the #NMClient - - Gets the current DNS resolv.conf manager. - + + Gets the current DNS resolv.conf manager. + - the resolv.conf manager or %NULL in case the + the resolv.conf manager or %NULL in case the value is not available. - the #NMClient + the #NMClient - - + + - the #NMClientInstanceFlags flags. + the #NMClientInstanceFlags flags. - the #NMClient instance. + the #NMClient instance. - - Gets NetworkManager current logging level and domains. + + Gets NetworkManager current logging level and domains. Use the async command nm_client_dbus_call() on %NM_DBUS_PATH, %NM_DBUS_INTERFACE to call "GetLogging" with no arguments to get "(ss)" for level and domains. - + - %TRUE on success, %FALSE otherwise + %TRUE on success, %FALSE otherwise - a #NMClient + a #NMClient - - return location for logging level string + + return location for logging level string - - return location for log domains string. The string is + + return location for log domains string. The string is a list of domains separated by "," - - The #NMClient instance is permanently associated with the current + + The #NMClient instance is permanently associated with the current thread default #GMainContext, referenced the time when the instance was created. To receive events, the user must iterate this context and can use it to synchronize access to the client. @@ -5537,134 +3244,86 @@ Note that even after #NMClient instance got destroyed, there might still be pending sources registered in the context. That means, to fully clean up, the user must continue iterating the context as long as the nm_client_get_context_busy_watcher() object is alive. - + - the #GMainContext of the client. + the #GMainContext of the client. - the #NMClient instance + the #NMClient instance - - + + - whether the default route is metered. + whether the default route is metered. - a #NMClient + a #NMClient - - Determines whether the daemon is running. - + + Determines whether the daemon is running. + - %TRUE if the daemon is running + %TRUE if the daemon is running - a #NMClient + a #NMClient - - + + - the #NMObject instance that is + the #NMObject instance that is cached under @dbus_path, or %NULL if no such object exists. - the #NMClient instance + the #NMClient instance - the D-Bus path of the object to look up + the D-Bus path of the object to look up - - Requests the result of a specific permission, which indicates whether the + + Requests the result of a specific permission, which indicates whether the client can or cannot perform the action the permission represents - + - the permission's result, one of #NMClientPermissionResult - + the permission's result, one of #NMClientPermissionResult + - a #NMClient + a #NMClient - the permission for which to return the result, one of #NMClientPermission + the permission for which to return the result, one of #NMClientPermission - - + + - the state of the cached permissions. %NM_TERNARY_DEFAULT + the state of the cached permissions. %NM_TERNARY_DEFAULT means that no permissions result was yet received. All permissions are unknown. %NM_TERNARY_TRUE means that the permissions got received and are cached. %%NM_TERNARY_FALSE means that permissions are cached, @@ -5674,19 +3333,13 @@ client can or cannot perform the action the permission represents - the #NMClient instance + the #NMClient instance - - Gets the #NMActiveConnection corresponding to the primary active + + Gets the #NMActiveConnection corresponding to the primary active network device. In particular, when there is no VPN active, or the VPN does not @@ -5697,134 +3350,84 @@ route to the VPN endpoint. If there is no default route, or the default route is over a non-NetworkManager-recognized device, this will return %NULL. - + - the appropriate #NMActiveConnection, if + the appropriate #NMActiveConnection, if any - an #NMClient + an #NMClient - - Get radio flags. - + + Get radio flags. + - the #NMRadioFlags. + the #NMRadioFlags. - a #NMClient + a #NMClient - - Tests whether the daemon is still in the process of activating + + Tests whether the daemon is still in the process of activating connections at startup. - + - whether the daemon is still starting up + whether the daemon is still starting up - a #NMClient + a #NMClient - - Gets the current daemon state. - + + Gets the current daemon state. + - the current %NMState + the current %NMState - a #NMClient + a #NMClient - - Gets NetworkManager version. - + + Gets NetworkManager version. + - string with the version (or %NULL if NetworkManager is not running) + string with the version (or %NULL if NetworkManager is not running) - a #NMClient + a #NMClient - - If available, the first element in the array is NM_VERSION which + + If available, the first element in the array is NM_VERSION which encodes the daemon version as "(major << 16 | minor << 8 | micro)". The following elements are a bitfield of %NMVersionInfoCapabilities that indicate that the daemon supports a certain capability. - + - the + the list of capabilities reported by the server or %NULL if the capabilities are unknown. @@ -5833,30 +3436,17 @@ that indicate that the daemon supports a certain capability. - the #NMClient instance + the #NMClient instance - - the number of returned capabilities. + + the number of returned capabilities. - - Requests that the remote settings service load or reload the given files, + + Requests that the remote settings service load or reload the given files, adding or updating the connections described within. The changes to the indicated files will not yet be reflected in @@ -5868,12 +3458,9 @@ NetworkManager tried to load the files, but some (or all) failed, then @failures will be set to a %NULL-terminated array of the filenames that failed to load. Use nm_client_load_connections_async() or GDBusConnection. - + - %TRUE on success. + %TRUE on success. Warning: before libnm 1.22, the boolean return value was inconsistent. That is made worse, because when running against certain server versions @@ -5887,589 +3474,342 @@ Warning: before libnm 1.22, the boolean return value was inconsistent. - the %NMClient + the %NMClient - %NULL-terminated array of filenames to load + %NULL-terminated array of filenames to load - - on return, a %NULL-terminated array of + + on return, a %NULL-terminated array of filenames that failed to load - - a #GCancellable, or %NULL + + a #GCancellable, or %NULL - - Requests that the remote settings service asynchronously load or reload the + + Requests that the remote settings service asynchronously load or reload the given files, adding or updating the connections described within. See nm_client_load_connections() for more details. - + - the %NMClient + the %NMClient - %NULL-terminated array of filenames to load + %NULL-terminated array of filenames to load - - a #GCancellable, or %NULL + + a #GCancellable, or %NULL - - callback to be called when the operation completes + + callback to be called when the operation completes - - caller-specific data passed to @callback + + caller-specific data passed to @callback - - Gets the result of an nm_client_load_connections_async() call. + + Gets the result of an nm_client_load_connections_async() call. See nm_client_load_connections() for more details. - + - %TRUE on success. + %TRUE on success. Note that even in the success case, you might have individual @failures. - the %NMClient + the %NMClient - - on return, a + + on return, a %NULL-terminated array of filenames that failed to load - the result passed to the #GAsyncReadyCallback + the result passed to the #GAsyncReadyCallback - - Whether networking is enabled or disabled. - + + Whether networking is enabled or disabled. + - %TRUE if networking is enabled, %FALSE if networking is disabled + %TRUE if networking is enabled, %FALSE if networking is disabled - a #NMClient + a #NMClient - - Enables or disables networking. When networking is disabled, all controlled + + Enables or disables networking. When networking is disabled, all controlled interfaces are disconnected and deactivated. When networking is enabled, all controlled interfaces are available for activation. Use the async command nm_client_dbus_call() on %NM_DBUS_PATH, %NM_DBUS_INTERFACE to call "Enable" with "(b)" arguments and no return value. - + - %TRUE on success, %FALSE otherwise + %TRUE on success, %FALSE otherwise - a #NMClient + a #NMClient - %TRUE to set networking enabled, %FALSE to set networking disabled + %TRUE to set networking enabled, %FALSE to set networking disabled - Reload NetworkManager's configuration and perform certain updates, like + Reload NetworkManager's configuration and perform certain updates, like flushing caches or rewriting external state to disk. This is similar to sending SIGHUP to NetworkManager but it allows for more fine-grained control over what to reload (see @flags). It also allows non-root access via PolicyKit and contrary to signals it is synchronous. - + - the %NMClient + the %NMClient - flags indicating what to reload. + flags indicating what to reload. - - a #GCancellable, or %NULL + + a #GCancellable, or %NULL - - callback to be called when the add operation completes + + callback to be called when the add operation completes - - caller-specific data passed to @callback + + caller-specific data passed to @callback - - Requests that the remote settings service reload all connection + + Requests that the remote settings service reload all connection files from disk, adding, updating, and removing connections until the in-memory state matches the on-disk state. Use nm_client_reload_connections_async() or GDBusConnection. - + - %TRUE on success, %FALSE on failure + %TRUE on success, %FALSE on failure - the #NMClient + the #NMClient - - a #GCancellable, or %NULL + + a #GCancellable, or %NULL - - Requests that the remote settings service begin reloading all connection + + Requests that the remote settings service begin reloading all connection files from disk, adding, updating, and removing connections until the in-memory state matches the on-disk state. - + - the #NMClient + the #NMClient - - a #GCancellable, or %NULL + + a #GCancellable, or %NULL - - callback to be called when the reload operation completes + + callback to be called when the reload operation completes - - caller-specific data passed to @callback + + caller-specific data passed to @callback - - Gets the result of an nm_client_reload_connections_async() call. - + + Gets the result of an nm_client_reload_connections_async() call. + - %TRUE on success, %FALSE on failure + %TRUE on success, %FALSE on failure - the #NMClient + the #NMClient - the result passed to the #GAsyncReadyCallback + the result passed to the #GAsyncReadyCallback - - Gets the result of a call to nm_client_reload(). - + + Gets the result of a call to nm_client_reload(). + - %TRUE on success or %FALSE on failure. + %TRUE on success or %FALSE on failure. - an #NMClient + an #NMClient - the result passed to the #GAsyncReadyCallback + the result passed to the #GAsyncReadyCallback - - Requests that the machine's persistent hostname be set to the specified value + + Requests that the machine's persistent hostname be set to the specified value or cleared. Use nm_client_save_hostname_async() or GDBusConnection. - + - %TRUE if the request was successful, %FALSE if it failed + %TRUE if the request was successful, %FALSE if it failed - the %NMClient + the %NMClient - - the new persistent hostname to set, or %NULL to + + the new persistent hostname to set, or %NULL to clear any existing persistent hostname - - a #GCancellable, or %NULL + + a #GCancellable, or %NULL - - Requests that the machine's persistent hostname be set to the specified value + + Requests that the machine's persistent hostname be set to the specified value or cleared. - + - the %NMClient + the %NMClient - - the new persistent hostname to set, or %NULL to + + the new persistent hostname to set, or %NULL to clear any existing persistent hostname - - a #GCancellable, or %NULL + + a #GCancellable, or %NULL - - callback to be called when the operation completes + + callback to be called when the operation completes - - caller-specific data passed to @callback + + caller-specific data passed to @callback - - Gets the result of an nm_client_save_hostname_async() call. - + + Gets the result of an nm_client_save_hostname_async() call. + - %TRUE if the request was successful, %FALSE if it failed + %TRUE if the request was successful, %FALSE if it failed - the %NMClient + the %NMClient - the result passed to the #GAsyncReadyCallback + the result passed to the #GAsyncReadyCallback - - Sets NetworkManager logging level and/or domains. + + Sets NetworkManager logging level and/or domains. Use the async command nm_client_dbus_call() on %NM_DBUS_PATH, %NM_DBUS_INTERFACE to call "SetLogging" with "(ss)" arguments for level and domains. - + - %TRUE on success, %FALSE otherwise + %TRUE on success, %FALSE otherwise - a #NMClient + a #NMClient - - logging level to set (%NULL or an empty string for no change) + + logging level to set (%NULL or an empty string for no change) - - logging domains to set. The string should be a list of log + + logging domains to set. The string should be a list of log domains separated by ",". (%NULL or an empty string for no change) - - The way to stop #NMClient is by unrefing it. That will cancel all + + The way to stop #NMClient is by unrefing it. That will cancel all internally pending async operations. However, as async operations in NMClient use GTask, hence they cannot complete right away. Instead, their (internal) result callback still needs to be dispatched by iterating @@ -6516,353 +3856,218 @@ thread. When being done, you can hand over the cleanup of the context to g_main_context_default(), assuming that the main thread iterates the default context. In that case, you don't need to care about passing a callback to know when shutdown completed. - + - the #NMClient to shutdown. + the #NMClient to shutdown. - whether to hook the client's maincontext + whether to hook the client's maincontext in the current thread default. Otherwise, you must ensure that the client's maincontext gets iterated so that it can complete. By integrating the maincontext in the current thread default, you may instead only iterate the latter. - - the #GCancellable to abort the shutdown. + + the #GCancellable to abort the shutdown. - - a #GAsyncReadyCallback to call when the request + + a #GAsyncReadyCallback to call when the request is satisfied or %NULL if you don't care about the result of the method invocation. - - the data to pass to @callback + + the data to pass to @callback - - Determines whether WiMAX is enabled. + + Determines whether WiMAX is enabled. This function always returns FALSE because WiMax is no longer supported. - + - %TRUE if WiMAX is enabled + %TRUE if WiMAX is enabled - a #NMClient + a #NMClient - - Determines whether the WiMAX hardware is enabled. + + Determines whether the WiMAX hardware is enabled. This function always returns FALSE because WiMax is no longer supported. - + - %TRUE if the WiMAX hardware is enabled + %TRUE if the WiMAX hardware is enabled - a #NMClient + a #NMClient - - Enables or disables WiMAX devices. + + Enables or disables WiMAX devices. This function does nothing because WiMax is no longer supported. - + - a #NMClient + a #NMClient - %TRUE to enable WiMAX + %TRUE to enable WiMAX - - Determines whether the wireless is enabled. - + + Determines whether the wireless is enabled. + - %TRUE if wireless is enabled + %TRUE if wireless is enabled - a #NMClient + a #NMClient - - Determines whether the wireless hardware is enabled. - + + Determines whether the wireless hardware is enabled. + - %TRUE if the wireless hardware is enabled + %TRUE if the wireless hardware is enabled - a #NMClient + a #NMClient - - Enables or disables wireless devices. + + Enables or disables wireless devices. Use the async command nm_client_dbus_set_property() on %NM_DBUS_PATH, %NM_DBUS_INTERFACE to set "WirelessEnabled" property to a "(b)" value. - + - a #NMClient + a #NMClient - %TRUE to enable wireless + %TRUE to enable wireless - - Determines whether WWAN is enabled. - + + Determines whether WWAN is enabled. + - %TRUE if WWAN is enabled + %TRUE if WWAN is enabled - a #NMClient + a #NMClient - - Determines whether the WWAN hardware is enabled. - + + Determines whether the WWAN hardware is enabled. + - %TRUE if the WWAN hardware is enabled + %TRUE if the WWAN hardware is enabled - a #NMClient + a #NMClient - - Enables or disables WWAN devices. + + Enables or disables WWAN devices. Use the async command nm_client_dbus_set_property() on %NM_DBUS_PATH, %NM_DBUS_INTERFACE to set "WwanEnabled" property to a "(b)" value. - + - a #NMClient + a #NMClient - %TRUE to enable WWAN + %TRUE to enable WWAN - - The #NMActiveConnection of the activating connection that is + + The #NMActiveConnection of the activating connection that is likely to become the new #NMClient:primary-connection. - - The active connections. + + The active connections. - - List of both real devices and device placeholders. + + List of both real devices and device placeholders. - - If %TRUE, adding and modifying connections is supported. + + If %TRUE, adding and modifying connections is supported. - - The list of capabilities numbers as guint32 or %NULL if + + The list of capabilities numbers as guint32 or %NULL if there are no capabilities. The numeric value correspond to %NMCapability enum. - - The list of active checkpoints. + + The list of active checkpoints. - - The list of configured connections that are available to the user. (Note + + The list of configured connections that are available to the user. (Note that this differs from the underlying D-Bus property, which may also contain the object paths of connections that the user does not have permission to read the details of.) @@ -6870,116 +4075,59 @@ permission to read the details of.) - - The network connectivity state. + + The network connectivity state. - + - + - - The used URI for connectivity checking. + + The used URI for connectivity checking. - - The #GDBusConnection to use. + + The #GDBusConnection to use. If this is not set during object construction, the D-Bus connection will automatically be chosen during async/sync initalization via g_bus_get(). - - The name owner of the NetworkManager D-Bus service. + + The name owner of the NetworkManager D-Bus service. - List of real network devices. Does not include placeholder devices. + List of real network devices. Does not include placeholder devices. - - The current DNS configuration, represented as an array + + The current DNS configuration, represented as an array of #NMDnsEntry objects. - - The current DNS processing mode. + + The current DNS processing mode. - - The current resolv.conf management mode. + + The current resolv.conf management mode. - The machine hostname stored in persistent configuration. This can be + The machine hostname stored in persistent configuration. This can be modified by calling nm_client_save_hostname(). - - #NMClientInstanceFlags for the instance. These affect behavior of #NMClient. + + #NMClientInstanceFlags for the instance. These affect behavior of #NMClient. This is a construct property and you may only set most flags only during construction. @@ -6992,44 +4140,22 @@ The flags %NM_CLIENT_INSTANCE_FLAGS_INITIALIZED_GOOD and %NM_CLIENT_INSTANCE_FLA cannot be set, however they will be returned by the getter after initialization completes. - - Whether the connectivity is metered. + + Whether the connectivity is metered. - - Whether networking is enabled. + + Whether networking is enabled. The property setter is a synchronous D-Bus call. This is deprecated since 1.22. - - Whether the daemon is running. + + Whether the daemon is running. - - The state of the cached permissions. The value %NM_TERNARY_DEFAULT + + The state of the cached permissions. The value %NM_TERNARY_DEFAULT means that no permissions are yet received (or not yet requested). %NM_TERNARY_TRUE means that permissions are received, cached and up to date. %NM_TERNARY_FALSE means that permissions were received and are @@ -7044,59 +4170,29 @@ no D-Bus name owner, no permissions are fetched (and this property won't change). - - The #NMActiveConnection of the device with the default route; + + The #NMActiveConnection of the device with the default route; see nm_client_get_primary_connection() for more details. - - Flags for radio interfaces. See #NMRadioFlags. + + Flags for radio interfaces. See #NMRadioFlags. - - Whether the daemon is still starting up. + + Whether the daemon is still starting up. - - The current daemon state. + + The current daemon state. - - The NetworkManager version. + + The NetworkManager version. - - Expose version info and capabilities of NetworkManager. If non-empty, + + Expose version info and capabilities of NetworkManager. If non-empty, the first element is NM_VERSION, which encodes the version of the daemon as "(major << 16 | minor << 8 | micro)". The following elements is a bitfields of %NMVersionInfoCapabilities. If a bit is set, then @@ -7105,590 +4201,305 @@ the running NetworkManager has the respective capability. - - Whether WiMAX functionality is enabled. + + Whether WiMAX functionality is enabled. WiMAX is no longer supported and this always returns FALSE. The setter has no effect. - - Whether the WiMAX hardware is enabled. + + Whether the WiMAX hardware is enabled. WiMAX is no longer supported and this always returns FALSE. - - Whether wireless is enabled. + + Whether wireless is enabled. The property setter is a synchronous D-Bus call. This is deprecated since 1.22. - - Whether the wireless hardware is enabled. + + Whether the wireless hardware is enabled. - - Whether WWAN functionality is enabled. + + Whether WWAN functionality is enabled. The property setter is a synchronous D-Bus call. This is deprecated since 1.22. - - Whether the WWAN hardware is enabled. + + Whether the WWAN hardware is enabled. - Notifies that a #NMActiveConnection has been added. + Notifies that a #NMActiveConnection has been added. - the new active connection + the new active connection - Notifies that a #NMActiveConnection has been removed. + Notifies that a #NMActiveConnection has been removed. - the removed active connection + the removed active connection - Notifies that a #NMDevice is added. This signal is emitted for both + Notifies that a #NMDevice is added. This signal is emitted for both regular devices and placeholder devices. - the new device + the new device - Notifies that a #NMDevice is removed. This signal is emitted for both + Notifies that a #NMDevice is removed. This signal is emitted for both regular devices and placeholder devices. - the removed device + the removed device - Notifies that a #NMConnection has been added. + Notifies that a #NMConnection has been added. - the new connection + the new connection - Notifies that a #NMConnection has been removed. + Notifies that a #NMConnection has been removed. - the removed connection + the removed connection - Notifies that a #NMDevice is added. This signal is not emitted for + Notifies that a #NMDevice is added. This signal is not emitted for placeholder devices. - the new device + the new device - Notifies that a #NMDevice is removed. This signal is not emitted for + Notifies that a #NMDevice is removed. This signal is not emitted for placeholder devices. - the removed device + the removed device - Notifies that a permission has changed + Notifies that a permission has changed - a permission from #NMClientPermission + a permission from #NMClientPermission - the permission's result, one of #NMClientPermissionResult + the permission's result, one of #NMClientPermissionResult - + - - Describes errors that may result from operations involving a #NMClient. + + Describes errors that may result from operations involving a #NMClient. D-Bus operations may also return errors from other domains, including #NMManagerError, #NMSettingsError, #NMAgentManagerError, and #NMConnectionError. - - unknown or unclassified error - - - an operation that requires NetworkManager + + unknown or unclassified error + + + an operation that requires NetworkManager failed because NetworkManager is not running - - NetworkManager claimed that an + + NetworkManager claimed that an operation succeeded, but the object that was allegedly created (eg, #NMRemoteConnection, #NMActiveConnection) was apparently destroyed before #NMClient could create a representation of it. - Registers an error quark for #NMClient if necessary. + Registers an error quark for #NMClient if necessary. - the error quark used for #NMClient errors. + the error quark used for #NMClient errors. - - - special value to indicate no flags. - - - by default, NMClient + + + special value to indicate no flags. + + + by default, NMClient will fetch the permissions via "GetPermissions" and refetch them when "CheckPermissions" signal gets received. By setting this flag, this behavior can be disabled. You can toggle this flag to enable and disable automatic fetching of the permissions. Watch also nm_client_get_permissions_state() to know whether the permissions are up to date. - - as #NMClient is an GInitable + + as #NMClient is an GInitable and GAsyncInitable, nm_client_get_instance_flags() returns this flag once initialization completed with success. This flag cannot be set as NM_CLIENT_INSTANCE_FLAGS property. Since: 1.42. - - like @NM_CLIENT_INSTANCE_FLAGS_INITIALIZED_GOOD + + like @NM_CLIENT_INSTANCE_FLAGS_INITIALIZED_GOOD indicates that the instance completed initialization with failure. In that case the instance is unusable. Since: 1.42. - - #NMClientPermission values indicate various permissions that NetworkManager + + #NMClientPermission values indicate various permissions that NetworkManager clients can obtain to perform certain tasks on behalf of the current user. - - unknown or no permission - - - controls whether networking + + unknown or no permission + + + controls whether networking can be globally enabled or disabled - - controls whether Wi-Fi can be + + controls whether Wi-Fi can be globally enabled or disabled - - controls whether WWAN (3G) can be + + controls whether WWAN (3G) can be globally enabled or disabled - - controls whether WiMAX can be + + controls whether WiMAX can be globally enabled or disabled - - controls whether the client can ask + + controls whether the client can ask NetworkManager to sleep and wake - - controls whether networking connections + + controls whether networking connections can be started, stopped, and changed - - controls whether a password + + controls whether a password protected Wi-Fi hotspot can be created - - controls whether an open Wi-Fi hotspot + + controls whether an open Wi-Fi hotspot can be created - - controls whether connections + + controls whether connections that are available to all users can be modified - - controls whether connections + + controls whether connections owned by the current user can be modified - - controls whether the + + controls whether the persistent hostname can be changed - - modify persistent global + + modify persistent global DNS configuration - - controls access to Reload. - - - permission to create checkpoints. - - - controls whether device + + controls access to Reload. + + + permission to create checkpoints. + + + controls whether device statistics can be globally enabled or disabled - - controls whether + + controls whether connectivity check can be enabled or disabled - - controls whether wifi scans can be performed - - - a reserved boundary value + + controls whether wifi scans can be performed + + + a reserved boundary value - - #NMClientPermissionResult values indicate what authorizations and permissions + + #NMClientPermissionResult values indicate what authorizations and permissions the user requires to obtain a given #NMClientPermission - - unknown or no authorization - - - the permission is available - - - authorization is necessary before the + + unknown or no authorization + + + the permission is available + + + authorization is necessary before the permission is available - - permission to perform the operation is + + permission to perform the operation is denied by system policy - - NMConnection is the interface implemented by #NMRemoteConnection on the + + NMConnection is the interface implemented by #NMRemoteConnection on the client side, and #NMSettingsConnection on the daemon side. - + @@ -7699,8 +4510,7 @@ client side, and #NMSettingsConnection on the daemon side. - + @@ -7711,8 +4521,7 @@ client side, and #NMSettingsConnection on the daemon side. - + @@ -7726,192 +4535,125 @@ client side, and #NMSettingsConnection on the daemon side. - Adds a #NMSetting to the connection, replacing any previous #NMSetting of the + Adds a #NMSetting to the connection, replacing any previous #NMSetting of the same name which has previously been added to the #NMConnection. The connection takes ownership of the #NMSetting object and does not increase the setting object's reference count. - + - a #NMConnection + a #NMConnection - the #NMSetting to add to the connection object + the #NMSetting to add to the connection object - Clears and frees any secrets that may be stored in the connection, to avoid + Clears and frees any secrets that may be stored in the connection, to avoid keeping secret data in memory when not needed. - + - the #NMConnection + the #NMConnection - - Clears and frees secrets determined by @func. - + + Clears and frees secrets determined by @func. + - the #NMConnection + the #NMConnection - - function to be called to determine whether a + + function to be called to determine whether a specific secret should be cleared or not. If %NULL, all secrets are cleared. - - - - caller-supplied data passed to @func + + + + caller-supplied data passed to @func - - Deletes all of @connection's settings. - + + Deletes all of @connection's settings. + - a #NMConnection + a #NMConnection - Compares two #NMConnection objects for similarity, with comparison behavior + Compares two #NMConnection objects for similarity, with comparison behavior modified by a set of flags. See nm_setting_compare() for a description of each flag's behavior. - + - %TRUE if the comparison succeeds, %FALSE if it does not + %TRUE if the comparison succeeds, %FALSE if it does not - a #NMConnection + a #NMConnection - a second #NMConnection to compare with the first + a second #NMConnection to compare with the first - compare flags, e.g. %NM_SETTING_COMPARE_FLAG_EXACT + compare flags, e.g. %NM_SETTING_COMPARE_FLAG_EXACT - Compares two #NMConnection objects for similarity, with comparison behavior + Compares two #NMConnection objects for similarity, with comparison behavior modified by a set of flags. See nm_setting_compare() for a description of each flag's behavior. If the connections differ, settings and keys within each setting that differ are added to the returned @out_settings hash table. No values are returned, only key names. - + - %TRUE if the connections contain the same values, %FALSE if they do + %TRUE if the connections contain the same values, %FALSE if they do not - a #NMConnection + a #NMConnection - a second #NMConnection to compare with the first + a second #NMConnection to compare with the first - compare flags, e.g. %NM_SETTING_COMPARE_FLAG_EXACT + compare flags, e.g. %NM_SETTING_COMPARE_FLAG_EXACT - - + + if the connections differ, on return a hash table mapping setting names to second-level GHashTable (utf8 to guint32), which contains the key names that differ mapped to one or more of @@ -7920,1095 +4662,701 @@ contains the key names that differ mapped to one or more of - + - Print the connection (including secrets!) to stdout. For debugging + Print the connection (including secrets!) to stdout. For debugging purposes ONLY, should NOT be used for serialization of the setting, or machine-parsed in any way. The output format is not guaranteed to be stable and may change at any time. - + - the #NMConnection + the #NMConnection - - Iterates over the properties of each #NMSetting object in the #NMConnection, + + Iterates over the properties of each #NMSetting object in the #NMConnection, calling the supplied user function for each property. - + - the #NMConnection + the #NMConnection - - user-supplied function called for each setting's property + + user-supplied function called for each setting's property - - user data passed to @func at each invocation + + user data passed to @func at each invocation - - A shortcut to return the type from the connection's #NMSettingConnection. - + + A shortcut to return the type from the connection's #NMSettingConnection. + - the type from the connection's 'connection' setting + the type from the connection's 'connection' setting - the #NMConnection + the #NMConnection - A shortcut to return the ID from the connection's #NMSettingConnection. - - - the ID from the connection's 'connection' setting + A shortcut to return the ID from the connection's #NMSettingConnection. + + + the ID from the connection's 'connection' setting - the #NMConnection + the #NMConnection - - Returns the interface name as stored in NMSettingConnection:interface_name. + + Returns the interface name as stored in NMSettingConnection:interface_name. If the connection contains no NMSettingConnection, it will return %NULL. For hardware devices and software devices created outside of NetworkManager, this name is used to match the device. for software devices created by NetworkManager, this is the name of the created interface. - + - Name of the kernel interface or %NULL + Name of the kernel interface or %NULL - The #NMConnection + The #NMConnection - Returns the connection's D-Bus path. - - - the D-Bus path of the connection, previously set by a call to + Returns the connection's D-Bus path. + + + the D-Bus path of the connection, previously set by a call to nm_connection_set_path(). - the #NMConnection + the #NMConnection - Gets the #NMSetting with the given #GType, if one has been previously added + Gets the #NMSetting with the given #GType, if one has been previously added to the #NMConnection. - + - the #NMSetting, or %NULL if no setting of that type was previously + the #NMSetting, or %NULL if no setting of that type was previously added to the #NMConnection - a #NMConnection + a #NMConnection - the #GType of the setting object to return + the #GType of the setting object to return - - A shortcut to return any #NMSetting8021x the connection might contain. - + + A shortcut to return any #NMSetting8021x the connection might contain. + - an #NMSetting8021x if the connection contains one, otherwise %NULL + an #NMSetting8021x if the connection contains one, otherwise %NULL - the #NMConnection + the #NMConnection - - A shortcut to return any #NMSettingAdsl the connection might contain. - + + A shortcut to return any #NMSettingAdsl the connection might contain. + - an #NMSettingAdsl if the connection contains one, otherwise %NULL + an #NMSettingAdsl if the connection contains one, otherwise %NULL - the #NMConnection + the #NMConnection - - A shortcut to return any #NMSettingBluetooth the connection might contain. - + + A shortcut to return any #NMSettingBluetooth the connection might contain. + - an #NMSettingBluetooth if the connection contains one, otherwise %NULL + an #NMSettingBluetooth if the connection contains one, otherwise %NULL - the #NMConnection + the #NMConnection - - A shortcut to return any #NMSettingBond the connection might contain. - + + A shortcut to return any #NMSettingBond the connection might contain. + - an #NMSettingBond if the connection contains one, otherwise %NULL + an #NMSettingBond if the connection contains one, otherwise %NULL - the #NMConnection + the #NMConnection - - A shortcut to return any #NMSettingBridge the connection might contain. - + + A shortcut to return any #NMSettingBridge the connection might contain. + - an #NMSettingBridge if the connection contains one, otherwise %NULL + an #NMSettingBridge if the connection contains one, otherwise %NULL - the #NMConnection + the #NMConnection - - A shortcut to return any #NMSettingBridgePort the connection might contain. - + + A shortcut to return any #NMSettingBridgePort the connection might contain. + - an #NMSettingBridgePort if the connection contains one, otherwise %NULL + an #NMSettingBridgePort if the connection contains one, otherwise %NULL - the #NMConnection + the #NMConnection - - Gets the #NMSetting with the given name, if one has been previously added + + Gets the #NMSetting with the given name, if one has been previously added the #NMConnection. - + - the #NMSetting, or %NULL if no setting with that name was previously + the #NMSetting, or %NULL if no setting with that name was previously added to the #NMConnection - a #NMConnection + a #NMConnection - a setting name + a setting name - - A shortcut to return any #NMSettingCdma the connection might contain. - + + A shortcut to return any #NMSettingCdma the connection might contain. + - an #NMSettingCdma if the connection contains one, otherwise %NULL + an #NMSettingCdma if the connection contains one, otherwise %NULL - the #NMConnection + the #NMConnection - - A shortcut to return any #NMSettingConnection the connection might contain. - + + A shortcut to return any #NMSettingConnection the connection might contain. + - an #NMSettingConnection if the connection contains one, otherwise %NULL + an #NMSettingConnection if the connection contains one, otherwise %NULL - the #NMConnection + the #NMConnection - - A shortcut to return any #NMSettingDcb the connection might contain. - + + A shortcut to return any #NMSettingDcb the connection might contain. + - an #NMSettingDcb if the connection contains one, otherwise NULL + an #NMSettingDcb if the connection contains one, otherwise NULL - the #NMConnection + the #NMConnection - - A shortcut to return any #NMSettingDummy the connection might contain. - + + A shortcut to return any #NMSettingDummy the connection might contain. + - an #NMSettingDummy if the connection contains one, otherwise %NULL + an #NMSettingDummy if the connection contains one, otherwise %NULL - the #NMConnection + the #NMConnection - - A shortcut to return any #NMSettingGeneric the connection might contain. - + + A shortcut to return any #NMSettingGeneric the connection might contain. + - an #NMSettingGeneric if the connection contains one, otherwise NULL + an #NMSettingGeneric if the connection contains one, otherwise NULL - the #NMConnection + the #NMConnection - - A shortcut to return any #NMSettingGsm the connection might contain. - + + A shortcut to return any #NMSettingGsm the connection might contain. + - an #NMSettingGsm if the connection contains one, otherwise %NULL + an #NMSettingGsm if the connection contains one, otherwise %NULL - the #NMConnection + the #NMConnection - - A shortcut to return any #NMSettingInfiniband the connection might contain. - + + A shortcut to return any #NMSettingInfiniband the connection might contain. + - an #NMSettingInfiniband if the connection contains one, otherwise %NULL + an #NMSettingInfiniband if the connection contains one, otherwise %NULL - the #NMConnection + the #NMConnection - - A shortcut to return any #NMSettingIP4Config the connection might contain. + + A shortcut to return any #NMSettingIP4Config the connection might contain. Note that it returns the value as type #NMSettingIPConfig, since the vast majority of IPv4-setting-related methods are on that type, not #NMSettingIP4Config. - + - an #NMSettingIP4Config if the + an #NMSettingIP4Config if the connection contains one, otherwise %NULL - the #NMConnection + the #NMConnection - - A shortcut to return any #NMSettingIP6Config the connection might contain. + + A shortcut to return any #NMSettingIP6Config the connection might contain. Note that it returns the value as type #NMSettingIPConfig, since the vast majority of IPv6-setting-related methods are on that type, not #NMSettingIP6Config. - + - an #NMSettingIP6Config if the + an #NMSettingIP6Config if the connection contains one, otherwise %NULL - the #NMConnection + the #NMConnection - - A shortcut to return any #NMSettingIPTunnel the connection might contain. - + + A shortcut to return any #NMSettingIPTunnel the connection might contain. + - an #NMSettingIPTunnel if the connection contains one, otherwise %NULL + an #NMSettingIPTunnel if the connection contains one, otherwise %NULL - the #NMConnection + the #NMConnection - - A shortcut to return any #NMSettingMacsec the connection might contain. - + + A shortcut to return any #NMSettingMacsec the connection might contain. + - an #NMSettingMacsec if the connection contains one, otherwise %NULL + an #NMSettingMacsec if the connection contains one, otherwise %NULL - the #NMConnection + the #NMConnection - - A shortcut to return any #NMSettingMacvlan the connection might contain. - + + A shortcut to return any #NMSettingMacvlan the connection might contain. + - an #NMSettingMacvlan if the connection contains one, otherwise %NULL + an #NMSettingMacvlan if the connection contains one, otherwise %NULL - the #NMConnection + the #NMConnection - - A shortcut to return any #NMSettingOlpcMesh the connection might contain. - + + A shortcut to return any #NMSettingOlpcMesh the connection might contain. + - an #NMSettingOlpcMesh if the connection contains one, otherwise %NULL + an #NMSettingOlpcMesh if the connection contains one, otherwise %NULL - the #NMConnection + the #NMConnection - - A shortcut to return any #NMSettingOvsBridge the connection might contain. - + + A shortcut to return any #NMSettingOvsBridge the connection might contain. + - an #NMSettingOvsBridge if the connection contains one, otherwise %NULL + an #NMSettingOvsBridge if the connection contains one, otherwise %NULL - the #NMConnection + the #NMConnection - - A shortcut to return any #NMSettingOvsInterface the connection might contain. - + + A shortcut to return any #NMSettingOvsInterface the connection might contain. + - an #NMSettingOvsInterface if the connection contains one, otherwise %NULL + an #NMSettingOvsInterface if the connection contains one, otherwise %NULL - the #NMConnection + the #NMConnection - - A shortcut to return any #NMSettingOvsPatch the connection might contain. - + + A shortcut to return any #NMSettingOvsPatch the connection might contain. + - an #NMSettingOvsPatch if the connection contains one, otherwise %NULL + an #NMSettingOvsPatch if the connection contains one, otherwise %NULL - the #NMConnection + the #NMConnection - - A shortcut to return any #NMSettingOvsPort the connection might contain. - + + A shortcut to return any #NMSettingOvsPort the connection might contain. + - an #NMSettingOvsPort if the connection contains one, otherwise %NULL + an #NMSettingOvsPort if the connection contains one, otherwise %NULL - the #NMConnection + the #NMConnection - - A shortcut to return any #NMSettingPpp the connection might contain. - + + A shortcut to return any #NMSettingPpp the connection might contain. + - an #NMSettingPpp if the connection contains one, otherwise %NULL + an #NMSettingPpp if the connection contains one, otherwise %NULL - the #NMConnection + the #NMConnection - - A shortcut to return any #NMSettingPppoe the connection might contain. - + + A shortcut to return any #NMSettingPppoe the connection might contain. + - an #NMSettingPppoe if the connection contains one, otherwise %NULL + an #NMSettingPppoe if the connection contains one, otherwise %NULL - the #NMConnection + the #NMConnection - - A shortcut to return any #NMSettingProxy the connection might contain. - + + A shortcut to return any #NMSettingProxy the connection might contain. + - an #NMSettingProxy if the connection contains one, otherwise %NULL + an #NMSettingProxy if the connection contains one, otherwise %NULL - the #NMConnection + the #NMConnection - - A shortcut to return any #NMSettingSerial the connection might contain. - + + A shortcut to return any #NMSettingSerial the connection might contain. + - an #NMSettingSerial if the connection contains one, otherwise %NULL + an #NMSettingSerial if the connection contains one, otherwise %NULL - the #NMConnection + the #NMConnection - - A shortcut to return any #NMSettingTCConfig the connection might contain. - + + A shortcut to return any #NMSettingTCConfig the connection might contain. + - an #NMSettingTCConfig if the connection contains one, otherwise %NULL + an #NMSettingTCConfig if the connection contains one, otherwise %NULL - the #NMConnection + the #NMConnection - - A shortcut to return any #NMSettingTeam the connection might contain. - + + A shortcut to return any #NMSettingTeam the connection might contain. + - an #NMSettingTeam if the connection contains one, otherwise %NULL + an #NMSettingTeam if the connection contains one, otherwise %NULL - the #NMConnection + the #NMConnection - - A shortcut to return any #NMSettingTeamPort the connection might contain. - + + A shortcut to return any #NMSettingTeamPort the connection might contain. + - an #NMSettingTeamPort if the connection contains one, otherwise %NULL + an #NMSettingTeamPort if the connection contains one, otherwise %NULL - the #NMConnection + the #NMConnection - - A shortcut to return any #NMSettingTun the connection might contain. - + + A shortcut to return any #NMSettingTun the connection might contain. + - an #NMSettingTun if the connection contains one, otherwise %NULL + an #NMSettingTun if the connection contains one, otherwise %NULL - the #NMConnection + the #NMConnection - - A shortcut to return any #NMSettingVlan the connection might contain. - + + A shortcut to return any #NMSettingVlan the connection might contain. + - an #NMSettingVlan if the connection contains one, otherwise %NULL + an #NMSettingVlan if the connection contains one, otherwise %NULL - the #NMConnection + the #NMConnection - - A shortcut to return any #NMSettingVpn the connection might contain. - + + A shortcut to return any #NMSettingVpn the connection might contain. + - an #NMSettingVpn if the connection contains one, otherwise %NULL + an #NMSettingVpn if the connection contains one, otherwise %NULL - the #NMConnection + the #NMConnection - - A shortcut to return any #NMSettingVxlan the connection might contain. - + + A shortcut to return any #NMSettingVxlan the connection might contain. + - an #NMSettingVxlan if the connection contains one, otherwise %NULL + an #NMSettingVxlan if the connection contains one, otherwise %NULL - the #NMConnection + the #NMConnection - - A shortcut to return any #NMSettingWimax the connection might contain. - + + A shortcut to return any #NMSettingWimax the connection might contain. + - an #NMSettingWimax if the connection contains one, otherwise %NULL + an #NMSettingWimax if the connection contains one, otherwise %NULL - the #NMConnection + the #NMConnection - - A shortcut to return any #NMSettingWired the connection might contain. - + + A shortcut to return any #NMSettingWired the connection might contain. + - an #NMSettingWired if the connection contains one, otherwise %NULL + an #NMSettingWired if the connection contains one, otherwise %NULL - the #NMConnection + the #NMConnection - - A shortcut to return any #NMSettingWireless the connection might contain. - + + A shortcut to return any #NMSettingWireless the connection might contain. + - an #NMSettingWireless if the connection contains one, otherwise %NULL + an #NMSettingWireless if the connection contains one, otherwise %NULL - the #NMConnection + the #NMConnection - - A shortcut to return any #NMSettingWirelessSecurity the connection might contain. - + + A shortcut to return any #NMSettingWirelessSecurity the connection might contain. + - an #NMSettingWirelessSecurity if the connection contains one, otherwise %NULL - + an #NMSettingWirelessSecurity if the connection contains one, otherwise %NULL + - the #NMConnection + the #NMConnection - - Retrieves the settings in @connection. + + Retrieves the settings in @connection. The returned array is %NULL-terminated. - + - a + a %NULL-terminated array containing every setting of @connection. If the connection has no settings, %NULL is returned. @@ -9017,154 +5365,101 @@ The returned array is %NULL-terminated. - the #NMConnection instance + the #NMConnection instance - - the length of the returned array + + the length of the returned array - A shortcut to return the UUID from the connection's #NMSettingConnection. - - - the UUID from the connection's 'connection' setting + A shortcut to return the UUID from the connection's #NMSettingConnection. + + + the UUID from the connection's 'connection' setting - the #NMConnection + the #NMConnection - - Returns the name that nm_device_disambiguate_names() would + + Returns the name that nm_device_disambiguate_names() would return for the virtual device that would be created for @connection. Eg, "VLAN (eth1.1)". - + - the name of @connection's device, + the name of @connection's device, or %NULL if @connection is not a virtual connection type - an #NMConnection for a virtual device type + an #NMConnection for a virtual device type - A convenience function to check if the given @connection is a particular + A convenience function to check if the given @connection is a particular type (ie wired, Wi-Fi, ppp, etc). Checks the #NMSettingConnection:type property of the connection and matches that against @type. - + - %TRUE if the connection is of the given @type, %FALSE if not + %TRUE if the connection is of the given @type, %FALSE if not - the #NMConnection + the #NMConnection - a setting name to check the connection's type against (like + a setting name to check the connection's type against (like %NM_SETTING_WIRELESS_SETTING_NAME or %NM_SETTING_WIRED_SETTING_NAME) - Checks if @connection refers to a virtual device (and thus can potentially be + Checks if @connection refers to a virtual device (and thus can potentially be activated even if the device it refers to doesn't exist). - + - whether @connection refers to a virtual device + whether @connection refers to a virtual device - an #NMConnection + an #NMConnection - Returns the name of the first setting object in the connection which would + Returns the name of the first setting object in the connection which would need secrets to make a successful connection. The returned hints are only intended as a guide to what secrets may be required, because in some circumstances, there is no way to conclusively determine exactly which secrets are needed. - + - the setting name of the #NMSetting object which has + the setting name of the #NMSetting object which has invalid or missing secrets - the #NMConnection + the #NMConnection - - + + the address of a pointer to a #GPtrArray, initialized to %NULL, which on return points to an allocated #GPtrArray containing the property names of secrets of the #NMSetting which may be required; the caller owns the array @@ -9176,12 +5471,8 @@ secrets are needed. - - Does some basic normalization and fixup of well known inconsistencies + + Does some basic normalization and fixup of well known inconsistencies and deprecated fields. If the connection was modified in any way, the output parameter @modified is set %TRUE. @@ -9189,28 +5480,18 @@ Finally the connection will be verified and %TRUE returns if the connection is valid. As this function only performs some specific normalization steps it cannot repair all connections. If the connection has errors that cannot be normalized, the connection will not be modified. - + - %TRUE if the connection is valid, %FALSE if it is not + %TRUE if the connection is valid, %FALSE if it is not - the #NMConnection to normalize + the #NMConnection to normalize - - a #GHashTable with + + a #GHashTable with normalization parameters to allow customization of the normalization by providing specific arguments. Unknown arguments will be ignored and the default will be used. The keys must be strings compared with g_str_equal() function. @@ -9220,207 +5501,141 @@ The values are opaque and depend on the parameter name. - - outputs whether any settings were modified. + + outputs whether any settings were modified. - - Removes the #NMSetting with the given #GType from the #NMConnection. This + + Removes the #NMSetting with the given #GType from the #NMConnection. This operation dereferences the #NMSetting object. - + - a #NMConnection + a #NMConnection - the #GType of the setting object to remove + the #GType of the setting object to remove - - Replaces @connection's settings with @new_settings (which must be + + Replaces @connection's settings with @new_settings (which must be syntactically valid, and describe a known type of connection, but does not need to result in a connection that passes nm_connection_verify()). - + - %TRUE if connection was updated, %FALSE if @new_settings could not + %TRUE if connection was updated, %FALSE if @new_settings could not be deserialized (in which case @connection will be unchanged). - a #NMConnection + a #NMConnection - a #GVariant of type %NM_VARIANT_TYPE_CONNECTION, with the new settings + a #GVariant of type %NM_VARIANT_TYPE_CONNECTION, with the new settings - - Deep-copies the settings of @new_connection and replaces the settings of @connection + + Deep-copies the settings of @new_connection and replaces the settings of @connection with the copied settings. - + - a #NMConnection + a #NMConnection - a #NMConnection to replace the settings of @connection with + a #NMConnection to replace the settings of @connection with - Sets the D-Bus path of the connection. This property is not serialized, and + Sets the D-Bus path of the connection. This property is not serialized, and is only for the reference of the caller. Sets the #NMConnection:path property. - + - the #NMConnection + the #NMConnection - the D-Bus path of the connection as given by the settings service + the D-Bus path of the connection as given by the settings service which provides the connection - Converts the #NMConnection into a #GVariant of type + Converts the #NMConnection into a #GVariant of type %NM_VARIANT_TYPE_CONNECTION describing the connection, suitable for marshalling over D-Bus or otherwise serializing. - + - a new floating #GVariant describing the connection, + a new floating #GVariant describing the connection, its settings, and each setting's properties. - the #NMConnection + the #NMConnection - serialization flags, e.g. %NM_CONNECTION_SERIALIZE_ALL - + serialization flags, e.g. %NM_CONNECTION_SERIALIZE_ALL + - - Update the specified setting's secrets, given a dictionary of secrets + + Update the specified setting's secrets, given a dictionary of secrets intended for that setting (deserialized from D-Bus for example). Will also extract the given setting's secrets hash if given a connection dictionary. If @setting_name is %NULL, expects a fully serialized #NMConnection as returned by nm_connection_to_dbus() and will update all secrets from all settings contained in @secrets. - + - %TRUE if the secrets were successfully updated, %FALSE if the update + %TRUE if the secrets were successfully updated, %FALSE if the update failed (tried to update secrets for a setting that doesn't exist, etc) - the #NMConnection + the #NMConnection - the setting object name to which the secrets apply + the setting object name to which the secrets apply - a #GVariant of secrets, of type %NM_VARIANT_TYPE_CONNECTION + a #GVariant of secrets, of type %NM_VARIANT_TYPE_CONNECTION or %NM_VARIANT_TYPE_SETTING - Validates the connection and all its settings. Each setting's properties + Validates the connection and all its settings. Each setting's properties have allowed values, and some values are dependent on other values. For example, if a Wi-Fi connection is security enabled, the #NMSettingWireless setting object's 'security' property must contain the setting name of the @@ -9429,51 +5644,34 @@ connection for the connection to be valid. As another example, the #NMSettingWired object's 'mac-address' property must be a validly formatted MAC address. The returned #GError contains information about which setting and which property failed validation, and how it failed validation. - + - %TRUE if the connection is valid, %FALSE if it is not + %TRUE if the connection is valid, %FALSE if it is not - the #NMConnection to verify + the #NMConnection to verify - - Verifies the secrets in the connection. - + + Verifies the secrets in the connection. + - %TRUE if the secrets are valid, %FALSE if they are not + %TRUE if the secrets are valid, %FALSE if they are not - the #NMConnection to verify in + the #NMConnection to verify in - The ::changed signal is emitted when any property (including secrets) + The ::changed signal is emitted when any property (including secrets) of any setting of the connection is modified, or when settings are added or removed. @@ -9481,131 +5679,71 @@ added or removed. - The ::secrets-cleared signal is emitted when the secrets of a connection + The ::secrets-cleared signal is emitted when the secrets of a connection are cleared. - The ::secrets-updated signal is emitted when the secrets of a setting + The ::secrets-updated signal is emitted when the secrets of a setting have been changed. - the setting name of the #NMSetting for which secrets were + the setting name of the #NMSetting for which secrets were updated - - Describes errors that may result from operations involving a #NMConnection + + Describes errors that may result from operations involving a #NMConnection or its #NMSettings. These errors may be returned directly from #NMConnection and #NMSetting methods, or may be returned from D-Bus operations (eg on #NMClient or #NMDevice), where they correspond to errors in the "org.freedesktop.NetworkManager.Settings.Connection" namespace. - - unknown or unclassified error - - - the #NMConnection object + + unknown or unclassified error + + + the #NMConnection object did not contain the specified #NMSetting object - - the #NMConnection did not contain the + + the #NMConnection did not contain the requested #NMSetting property - - an operation which requires a secret + + an operation which requires a secret was attempted on a non-secret property - - the #NMConnection object is missing an + + the #NMConnection object is missing an #NMSetting which is required for its configuration. The error message will always be prefixed with "&lt;setting-name>: ", where "&lt;setting-name>" is the name of the setting that is missing. - - the #NMConnection object contains an + + the #NMConnection object contains an invalid or inappropriate #NMSetting. The error message will always be prefixed with "&lt;setting-name>: ", where "&lt;setting-name>" is the name of the setting that is invalid. - - the #NMConnection object is invalid + + the #NMConnection object is invalid because it is missing a required property. The error message will always be prefixed with "&lt;setting-name>.&lt;property-name>: ", where "&lt;setting-name>" is the name of the setting with the missing property, and "&lt;property-name>" is the property that is missing. - - the #NMConnection object is invalid + + the #NMConnection object is invalid because a property has an invalid value. The error message will always be prefixed with "&lt;setting-name>.&lt;property-name>: ", where "&lt;setting-name>" is the name of the setting with the invalid property, and "&lt;property-name>" is @@ -9617,20 +5755,15 @@ methods, or may be returned from D-Bus operations (eg on #NMClient or - + - the parent interface struct + the parent interface struct - + @@ -9646,8 +5779,7 @@ methods, or may be returned from D-Bus operations (eg on #NMClient or - + @@ -9660,8 +5792,7 @@ methods, or may be returned from D-Bus operations (eg on #NMClient or - + @@ -9673,273 +5804,117 @@ methods, or may be returned from D-Bus operations (eg on #NMClient or - - - indicates that the per-connection + + + indicates that the per-connection setting is unspecified. In this case, it will fallback to the default value, which is %NM_CONNECTION_MULTI_CONNECT_SINGLE. - - the connection profile can only + + the connection profile can only be active once at each moment. Activating a profile that is already active, will first deactivate it. - - the profile can + + the profile can be manually activated multiple times on different devices. However, regarding autoconnect, the profile will autoconnect only if it is currently not connected otherwise. - - the profile can autoactivate + + the profile can autoactivate and be manually activated multiple times together. - - These flags determine which properties are serialized when calling + + These flags determine which properties are serialized when calling nm_connection_to_dbus(). - - serialize all properties (including secrets) - - - serialize properties that are + + serialize all properties (including secrets) + + + serialize properties that are not secrets. Since 1.32. - - this is a deprecated alias for + + this is a deprecated alias for @NM_CONNECTION_SERIALIZE_WITH_NON_SECRET. - - serialize all secrets. This flag is + + serialize all secrets. This flag is ignored if any of @NM_CONNECTION_SERIALIZE_WITH_SECRETS_AGENT_OWNED, @NM_CONNECTION_SERIALIZE_WITH_SECRETS_SYSTEM_OWNED or @NM_CONNECTION_SERIALIZE_WITH_SECRETS_NOT_SAVED is set. Since 1.32. - - a deprecated alias for + + a deprecated alias for @NM_CONNECTION_SERIALIZE_WITH_SECRETS. - - serialize agent-owned + + serialize agent-owned secrets. Since: 1.20. - - serialize system-owned + + serialize system-owned secrets. Since: 1.32. - - serialize secrets that + + serialize secrets that are marked as never saved. Since: 1.32. - - - Network connectivity is unknown. This means the + + + Network connectivity is unknown. This means the connectivity checks are disabled (e.g. on server installations) or has not run yet. The graphical shell should assume the Internet connection might be available and not present a captive portal window. - - The host is not connected to any network. There's + + The host is not connected to any network. There's no active connection that contains a default route to the internet and thus it makes no sense to even attempt a connectivity check. The graphical shell should use this state to indicate the network connection is unavailable. - - The Internet connection is hijacked by a captive + + The Internet connection is hijacked by a captive portal gateway. The graphical shell may open a sandboxed web browser window (because the captive portals typically attempt a man-in-the-middle attacks against the https connections) for the purpose of authenticating to a gateway and retrigger the connectivity check with CheckConnectivity() when the browser window is dismissed. - - The host is connected to a network, does not appear + + The host is connected to a network, does not appear to be able to reach the full Internet, but a captive portal has not been detected. - - The host is connected to a network, and + + The host is connected to a network, and appears to be able to reach the full Internet. - - Cryptography-related errors that can be returned from some nm-utils methods, + + Cryptography-related errors that can be returned from some nm-utils methods, and some #NMSetting8021x operations. - - generic failure - - - the certificate or key data provided + + generic failure + + + the certificate or key data provided was invalid - - the password was invalid - - - the data uses an unknown cipher - - - decryption failed - - - encryption failed + + the password was invalid + + + the data uses an unknown cipher + + + decryption failed + + + encryption failed @@ -9947,470 +5922,315 @@ and some #NMSetting8021x operations. - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -10424,286 +6244,191 @@ and some #NMSetting8021x operations. - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - + - + - + - + @@ -10711,680 +6436,436 @@ and some #NMSetting8021x operations. - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - + - - + + - - + + - - + + - - + + - - + + - + - + - + - + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + @@ -11395,241 +6876,164 @@ and some #NMSetting8021x operations. - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + @@ -11637,31 +7041,22 @@ and some #NMSetting8021x operations. - - + + - - + + - - + + @@ -11679,145 +7074,94 @@ and some #NMSetting8021x operations. - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + @@ -11828,679 +7172,432 @@ and some #NMSetting8021x operations. - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - Generates a list of short-ish unique presentation names for the + + Generates a list of short-ish unique presentation names for the devices in @devices. - + - the device names + the device names - an array of #NMDevice + an array of #NMDevice - length of @devices + length of @devices - - Validates a given connection for a given #NMDevice object and returns + + Validates a given connection for a given #NMDevice object and returns whether the connection may be activated with the device. For example if @device is a Wi-Fi device that supports only WEP encryption, the connection will only be valid if it is a Wi-Fi connection which describes a WEP or open @@ -12511,301 +7608,182 @@ device. This function does the same as nm_device_connection_valid(), i.e. checking compatibility of the given device and connection. But, in addition, it sets GError when FALSE is returned. - + - %TRUE if the connection may be activated with this device, %FALSE + %TRUE if the connection may be activated with this device, %FALSE if is incompatible with the device's capabilities and characteristics. - an #NMDevice to validate @connection against + an #NMDevice to validate @connection against - an #NMConnection to validate against @device + an #NMConnection to validate against @device - - Validates a given connection for a given #NMDevice object and returns + + Validates a given connection for a given #NMDevice object and returns whether the connection may be activated with the device. For example if @device is a Wi-Fi device that supports only WEP encryption, the connection will only be valid if it is a Wi-Fi connection which describes a WEP or open network, and will not be valid if it describes a WPA network, or if it is an Ethernet, Bluetooth, WWAN, etc connection that is incompatible with the device. - + - %TRUE if the connection may be activated with this device, %FALSE + %TRUE if the connection may be activated with this device, %FALSE if is incompatible with the device's capabilities and characteristics. - an #NMDevice to validate @connection against + an #NMDevice to validate @connection against - an #NMConnection to validate against @device + an #NMConnection to validate against @device - - Deletes the software device. Hardware devices can't be deleted. + + Deletes the software device. Hardware devices can't be deleted. Use nm_device_delete_async() or GDBusConnection. - + - %TRUE on success, %FALSE on error, in which case @error + %TRUE on success, %FALSE on error, in which case @error will be set. - a #NMDevice + a #NMDevice - - a #GCancellable, or %NULL + + a #GCancellable, or %NULL - Asynchronously begins deleting the software device. Hardware devices can't + Asynchronously begins deleting the software device. Hardware devices can't be deleted. - + - a #NMDevice + a #NMDevice - - a #GCancellable, or %NULL + + a #GCancellable, or %NULL - - callback to be called when delete operation completes + + callback to be called when delete operation completes - - caller-specific data passed to @callback + + caller-specific data passed to @callback - - Gets the result of a call to nm_device_delete_async(). - + + Gets the result of a call to nm_device_delete_async(). + - %TRUE on success, %FALSE on error, in which case @error + %TRUE on success, %FALSE on error, in which case @error will be set. - a #NMDevice + a #NMDevice - the result passed to the #GAsyncReadyCallback + the result passed to the #GAsyncReadyCallback - - Disconnects the device if currently connected, and prevents the device from + + Disconnects the device if currently connected, and prevents the device from automatically connecting to networks until the next manual network connection request. Use nm_device_disconnect_async() or GDBusConnection. - + - %TRUE on success, %FALSE on error, in which case @error will be set. + %TRUE on success, %FALSE on error, in which case @error will be set. - a #NMDevice + a #NMDevice - - a #GCancellable, or %NULL + + a #GCancellable, or %NULL - - Asynchronously begins disconnecting the device if currently connected, and + + Asynchronously begins disconnecting the device if currently connected, and prevents the device from automatically connecting to networks until the next manual network connection request. - + - a #NMDevice + a #NMDevice - - a #GCancellable, or %NULL + + a #GCancellable, or %NULL - - callback to be called when the disconnect operation completes + + callback to be called when the disconnect operation completes - - caller-specific data passed to @callback + + caller-specific data passed to @callback - - Gets the result of a call to nm_device_disconnect_async(). - + + Gets the result of a call to nm_device_disconnect_async(). + - %TRUE on success, %FALSE on error, in which case @error + %TRUE on success, %FALSE on error, in which case @error will be set. - a #NMDevice + a #NMDevice - the result passed to the #GAsyncReadyCallback + the result passed to the #GAsyncReadyCallback - - Filters a given array of connections for a given #NMDevice object and returns + + Filters a given array of connections for a given #NMDevice object and returns connections which may be activated with the device. For example if @device is a Wi-Fi device that supports only WEP encryption, the returned array will contain any Wi-Fi connections in @connections that allow connection to @@ -12813,12 +7791,9 @@ unencrypted or WEP-enabled SSIDs. The returned array will not contain Ethernet, Bluetooth, Wi-Fi WPA connections, or any other connection that is incompatible with the device. To get the full list of connections see nm_client_get_connections(). - + - an array of + an array of #NMConnections that could be activated with the given @device. The array should be freed with g_ptr_array_unref() when it is no longer required. @@ -12831,61 +7806,38 @@ WARNING: the transfer annotation for this function may not work correctly - an #NMDevice to filter connections for + an #NMDevice to filter connections for - an array of #NMConnections to filter + an array of #NMConnections to filter - - Gets the #NMActiveConnection object which owns this device during activation. - + + Gets the #NMActiveConnection object which owns this device during activation. + - the #NMActiveConnection or %NULL if the device is + the #NMActiveConnection or %NULL if the device is not part of an active connection - a #NMDevice + a #NMDevice - - Fetch the currently applied connection on the device. + + Fetch the currently applied connection on the device. Use nm_device_get_applied_connection_async() or GDBusConnection. - + - a %NMConnection with the currently applied settings + a %NMConnection with the currently applied settings or %NULL on error. The connection is as received from D-Bus and might not validate according @@ -12894,108 +7846,58 @@ to nm_connection_verify(). - a #NMDevice + a #NMDevice - the flags argument. See #NMDeviceReapplyFlags. + the flags argument. See #NMDeviceReapplyFlags. - - returns the current version id of + + returns the current version id of the applied connection - - a #GCancellable, or %NULL + + a #GCancellable, or %NULL - - Asynchronously begins and gets the currently applied connection. - + + Asynchronously begins and gets the currently applied connection. + - a #NMDevice + a #NMDevice - the flags argument. See #NMDeviceReapplyFlags. + the flags argument. See #NMDeviceReapplyFlags. - - a #GCancellable, or %NULL + + a #GCancellable, or %NULL - - callback to be called when the reapply operation completes + + callback to be called when the reapply operation completes - - caller-specific data passed to @callback + + caller-specific data passed to @callback - - Gets the result of a call to nm_device_get_applied_connection_async(). - + + Gets the result of a call to nm_device_get_applied_connection_async(). + - a currently applied %NMConnection or %NULL in case + a currently applied %NMConnection or %NULL in case of error. The connection is as received from D-Bus and might not validate according @@ -13004,67 +7906,40 @@ to nm_connection_verify(). - a #NMDevice + a #NMDevice - the result passed to the #GAsyncReadyCallback + the result passed to the #GAsyncReadyCallback - - the current version id of the applied + + the current version id of the applied connection. - - Whether the #NMDevice can be autoconnected. - + + Whether the #NMDevice can be autoconnected. + - %TRUE if the device is allowed to be autoconnected + %TRUE if the device is allowed to be autoconnected - a #NMDevice + a #NMDevice - - Gets the #NMRemoteConnections currently known to the daemon that could + + Gets the #NMRemoteConnections currently known to the daemon that could be activated on @device. - + - the #GPtrArray + the #GPtrArray containing #NMRemoteConnections. This is the internal copy used by the connection, and must not be modified. @@ -13073,422 +7948,271 @@ the connection, and must not be modified. - a #NMDevice + a #NMDevice - - Gets the device' capabilities. - + + Gets the device' capabilities. + - the capabilities + the capabilities - a #NMDevice + a #NMDevice - - The connectivity state of the device for given address family. + + The connectivity state of the device for given address family. Supported address families are %AF_INET for IPv4, %AF_INET6 for IPv6 or %AF_UNSPEC for any. - + - the current connectivity state + the current connectivity state - a #NMDevice + a #NMDevice - network address family + network address family - Gets a description of @device, based on its vendor and product names. - - - a description of @device. If either the vendor or the + Gets a description of @device, based on its vendor and product names. + + + a description of @device. If either the vendor or the product name is unknown, this returns the interface name. - an #NMDevice + an #NMDevice - - Returns the numeric type of the #NMDevice, ie Ethernet, Wi-Fi, etc. - + + Returns the numeric type of the #NMDevice, ie Ethernet, Wi-Fi, etc. + - the device type + the device type - a #NMDevice + a #NMDevice - - Gets the current IPv4 #NMDhcpConfig associated with the #NMDevice. + + Gets the current IPv4 #NMDhcpConfig associated with the #NMDevice. You can alternatively use nm_active_connection_get_dhcp4_config(), which also works with VPN connections. - + - the IPv4 #NMDhcpConfig, or %NULL if the device is + the IPv4 #NMDhcpConfig, or %NULL if the device is not activated or not using DHCP. - a #NMDevice + a #NMDevice - - Gets the current IPv6 #NMDhcpConfig associated with the #NMDevice. + + Gets the current IPv6 #NMDhcpConfig associated with the #NMDevice. You can alternatively use nm_active_connection_get_dhcp6_config(), which also works with VPN connections. - + - the IPv6 #NMDhcpConfig, or %NULL if the device is + the IPv6 #NMDhcpConfig, or %NULL if the device is not activated or not using DHCPv6. - a #NMDevice + a #NMDevice - - Gets the driver of the #NMDevice. - + + Gets the driver of the #NMDevice. + - the driver of the device. This is the internal string used by the + the driver of the device. This is the internal string used by the device, and must not be modified. - a #NMDevice + a #NMDevice - - Gets the driver version of the #NMDevice. - + + Gets the driver version of the #NMDevice. + - the version of the device driver. This is the internal string used by the + the version of the device driver. This is the internal string used by the device, and must not be modified. - a #NMDevice + a #NMDevice - - Indicates that firmware required for the device's operation is likely + + Indicates that firmware required for the device's operation is likely to be missing. - + - %TRUE if firmware required for the device's operation is likely + %TRUE if firmware required for the device's operation is likely to be missing. - a #NMDevice + a #NMDevice - - Gets the firmware version of the #NMDevice. - + + Gets the firmware version of the #NMDevice. + - the firmware version of the device. This is the internal string used by the + the firmware version of the device. This is the internal string used by the device, and must not be modified. - a #NMDevice + a #NMDevice - - Gets the current a hardware address (MAC) for the @device. - + + Gets the current a hardware address (MAC) for the @device. + - the current MAC of the device, or %NULL. + the current MAC of the device, or %NULL. This is the internal string used by the device, and must not be modified. - a #NMDevice + a #NMDevice - Gets the interface name of the #NMDevice. - - - the interface of the device. This is the internal string used by the + Gets the interface name of the #NMDevice. + + + the interface of the device. This is the internal string used by the device, and must not be modified. - a #NMDevice + a #NMDevice - - Gets the interface flags of the device. - + + Gets the interface flags of the device. + - the flags + the flags - a #NMDevice + a #NMDevice - - Gets the current IPv4 #NMIPConfig associated with the #NMDevice. + + Gets the current IPv4 #NMIPConfig associated with the #NMDevice. You can alternatively use nm_active_connection_get_ip4_config(), which also works with VPN connections. - + - the IPv4 #NMIPConfig, or %NULL if the device is not + the IPv4 #NMIPConfig, or %NULL if the device is not activated. - a #NMDevice + a #NMDevice - - Gets the current IPv6 #NMIPConfig associated with the #NMDevice. + + Gets the current IPv6 #NMIPConfig associated with the #NMDevice. You can alternatively use nm_active_connection_get_ip6_config(), which also works with VPN connections. - + - the IPv6 #NMIPConfig or %NULL if the device is not activated. + the IPv6 #NMIPConfig or %NULL if the device is not activated. - a #NMDevice + a #NMDevice - Gets the IP interface name of the #NMDevice over which IP traffic flows + Gets the IP interface name of the #NMDevice over which IP traffic flows when the device is in the ACTIVATED state. - + - the IP traffic interface of the device. This is the internal string + the IP traffic interface of the device. This is the internal string used by the device, and must not be modified. - a #NMDevice + a #NMDevice - - Gets the list of neighbors discovered through LLDP. - + + Gets the list of neighbors discovered through LLDP. + - the #GPtrArray + the #GPtrArray containing #NMLldpNeighbor<!-- -->s. This is the internal copy used by the device and must not be modified. The library never modifies the returned array and thus it is safe for callers to reference and keep using it. @@ -13498,120 +8222,72 @@ array and thus it is safe for callers to reference and keep using it. - a #NMDevice + a #NMDevice - - Whether the #NMDevice is managed by NetworkManager. - + + Whether the #NMDevice is managed by NetworkManager. + - %TRUE if the device is managed by NetworkManager + %TRUE if the device is managed by NetworkManager - a #NMDevice + a #NMDevice - - Gets the metered setting of a #NMDevice. - + + Gets the metered setting of a #NMDevice. + - the metered setting. + the metered setting. - a #NMDevice + a #NMDevice - - Gets the MTU of the #NMDevice. - + + Gets the MTU of the #NMDevice. + - the MTU of the device in bytes. + the MTU of the device in bytes. - a #NMDevice + a #NMDevice - - Indicates that the NetworkManager plugin for the device is not installed. - + + Indicates that the NetworkManager plugin for the device is not installed. + - %TRUE if the device plugin not installed. + %TRUE if the device plugin not installed. - a #NMDevice + a #NMDevice - - Gets the path of the #NMDevice as exposed by the udev property ID_PATH. - + + Gets the path of the #NMDevice as exposed by the udev property ID_PATH. + - the path of the device. + the path of the device. The string is backslash escaped (C escaping) for invalid characters. The escaping can be reverted with g_strcompress(), however the result may not be valid UTF-8. @@ -13619,54 +8295,35 @@ can be reverted with g_strcompress(), however the result may not be valid UTF-8. - a #NMDevice + a #NMDevice - - Gets the physical port ID of the #NMDevice. If non-%NULL, this is + + Gets the physical port ID of the #NMDevice. If non-%NULL, this is an opaque string that can be used to recognize when seemingly-unrelated #NMDevices are actually just different virtual ports on a single physical port. (Eg, NPAR / SR-IOV.) - + - the physical port ID of the device, or %NULL if the port + the physical port ID of the device, or %NULL if the port ID is unknown. This is the internal string used by the device and must not be modified. - a #NMDevice + a #NMDevice - - Gets the devices currently set as port of @device. - + + Gets the devices currently set as port of @device. + - the #GPtrArray containing #NMDevices that + the #GPtrArray containing #NMDevices that are slaves of @device. This is the internal copy used by the device and must not be modified. @@ -13675,25 +8332,16 @@ must not be modified. - a #NMDevice + a #NMDevice - - Gets the product string of the #NMDevice. - + + Gets the product string of the #NMDevice. + - the product name of the device. This is the internal string used by the + the product name of the device. This is the internal string used by the device, and must not be modified. The string is backslash escaped (C escaping) for invalid characters. The escaping @@ -13702,143 +8350,91 @@ can be reverted with g_strcompress(), however the result may not be valid UTF-8. - a #NMDevice + a #NMDevice - - Gets the (primary) #NMSetting subtype associated with connections + + Gets the (primary) #NMSetting subtype associated with connections that can be used on @device. - + - @device's associated #NMSetting type + @device's associated #NMSetting type - an #NMDevice + an #NMDevice - - Gets the current #NMDevice state. - + + Gets the current #NMDevice state. + - the current device state + the current device state - a #NMDevice + a #NMDevice - - Gets the reason for entering the current #NMDevice state. - + + Gets the reason for entering the current #NMDevice state. + - the reason for entering the current device state + the reason for entering the current device state - a #NMDevice + a #NMDevice - - Gets a (non-localized) description of the type of device that + + Gets a (non-localized) description of the type of device that @device is. - + - the type description of the device. This is the internal + the type description of the device. This is the internal string used by the device, and must not be modified. - a #NMDevice + a #NMDevice - - Gets the Unique Device Identifier of the #NMDevice. - + + Gets the Unique Device Identifier of the #NMDevice. + - the Unique Device Identifier of the device. This identifier may be + the Unique Device Identifier of the device. This identifier may be used to gather more information about the device from various operating system services like udev or sysfs. - a #NMDevice + a #NMDevice - - Gets the vendor string of the #NMDevice. - + + Gets the vendor string of the #NMDevice. + - the vendor name of the device. This is the internal string used by the + the vendor name of the device. This is the internal string used by the device, and must not be modified. The string is backslash escaped (C escaping) for invalid characters. The escaping @@ -13847,590 +8443,325 @@ can be reverted with g_strcompress(), however the result may not be valid UTF-8. - a #NMDevice + a #NMDevice - + - %TRUE if the device exists, or %FALSE if it is a placeholder device + %TRUE if the device exists, or %FALSE if it is a placeholder device that could be automatically created by NetworkManager if one of its #NMDevice:available-connections was activated. - a #NMDevice + a #NMDevice - Whether the device is a software device. - - - %TRUE if @device is a software device, %FALSE if it is a hardware device. + Whether the device is a software device. + + + %TRUE if @device is a software device, %FALSE if it is a hardware device. - a #NMDevice + a #NMDevice - - Attempts to update device with changes to the currently active connection + + Attempts to update device with changes to the currently active connection made since it was last applied. Use nm_device_reapply_async() or GDBusConnection. - + - %TRUE on success, %FALSE on error, in which case @error will be set. + %TRUE on success, %FALSE on error, in which case @error will be set. - a #NMDevice + a #NMDevice - - the #NMConnection to replace the applied + + the #NMConnection to replace the applied settings with or %NULL to reuse existing - zero or the expected version id of the applied connection. + zero or the expected version id of the applied connection. If specified and the version id mismatches, the call fails without modification. This allows to catch concurrent accesses. - always set this to zero + always set this to zero - - a #GCancellable, or %NULL + + a #GCancellable, or %NULL - - Asynchronously begins an attempt to update device with changes to the + + Asynchronously begins an attempt to update device with changes to the currently active connection made since it was last applied. - + - a #NMDevice + a #NMDevice - - the #NMConnection to replace the applied + + the #NMConnection to replace the applied settings with or %NULL to reuse existing - zero or the expected version id of the applied + zero or the expected version id of the applied connection. If specified and the version id mismatches, the call fails without modification. This allows to catch concurrent accesses. - always set this to zero + always set this to zero - - a #GCancellable, or %NULL + + a #GCancellable, or %NULL - - callback to be called when the reapply operation completes + + callback to be called when the reapply operation completes - - caller-specific data passed to @callback + + caller-specific data passed to @callback - - Gets the result of a call to nm_device_reapply_async(). - + + Gets the result of a call to nm_device_reapply_async(). + - %TRUE on success, %FALSE on error, in which case @error + %TRUE on success, %FALSE on error, in which case @error will be set. - a #NMDevice + a #NMDevice - the result passed to the #GAsyncReadyCallback + the result passed to the #GAsyncReadyCallback - - Enables or disables automatic activation of the #NMDevice. + + Enables or disables automatic activation of the #NMDevice. Use the async command nm_client_dbus_set_property() on nm_object_get_path(), %NM_DBUS_INTERFACE_DEVICE to set "Autoconnect" property to a "(b)" value. This function is deprecated because it calls a synchronous D-Bus method and modifies the content of the NMClient cache client side. - + - a #NMDevice + a #NMDevice - %TRUE to enable autoconnecting + %TRUE to enable autoconnecting - - Enables or disables management of #NMDevice by NetworkManager. + + Enables or disables management of #NMDevice by NetworkManager. Use the async command nm_client_dbus_set_property() on nm_object_get_path(), interface %NM_DBUS_INTERFACE_DEVICE to set the "Managed" property to a "(b)" boolean value. This function is deprecated because it calls a synchronous D-Bus method and modifies the content of the NMClient cache client side. Also, it does not emit a property changed signal. - + - a #NMDevice + a #NMDevice - %TRUE to make the device managed by NetworkManager. + %TRUE to make the device managed by NetworkManager. - - The #NMActiveConnection object that "owns" this device during activation. + + The #NMActiveConnection object that "owns" this device during activation. - - Whether the device can auto-activate a connection. + + Whether the device can auto-activate a connection. The property setter is a synchronous D-Bus call. This is deprecated since 1.22. - - The available connections of the device + + The available connections of the device - - The capabilities of the device. + + The capabilities of the device. - - The numeric type of the device. + + The numeric type of the device. - - The IPv4 #NMDhcpConfig of the device. + + The IPv4 #NMDhcpConfig of the device. - - The IPv6 #NMDhcpConfig of the device. + + The IPv6 #NMDhcpConfig of the device. - - The driver of the device. + + The driver of the device. - - The version of the device driver. + + The version of the device driver. - - When %TRUE indicates the device is likely missing firmware required + + When %TRUE indicates the device is likely missing firmware required for its operation. - - The firmware version of the device. + + The firmware version of the device. - - The hardware address of the device. + + The hardware address of the device. - - The interface of the device. + + The interface of the device. - - The interface flags. + + The interface flags. - - The IP interface of the device which should be used for all IP-related + + The IP interface of the device which should be used for all IP-related operations like addressing and routing. - - The #NMIP4Config of the device. + + The #NMIP4Config of the device. - - The IPv4 connectivity state of the device. + + The IPv4 connectivity state of the device. - - The IPv6 #NMIPConfig of the device. + + The IPv6 #NMIPConfig of the device. - - The IPv6 connectivity state of the device. + + The IPv6 connectivity state of the device. - - The LLDP neighbors. + + The LLDP neighbors. - - Whether the device is managed by NetworkManager. + + Whether the device is managed by NetworkManager. - - Whether the device is metered. + + Whether the device is metered. - - The MTU of the device. + + The MTU of the device. - - When %TRUE indicates that the NetworkManager plugin for the device + + When %TRUE indicates that the NetworkManager plugin for the device is not installed. - - The device path as exposed by the udev property ID_PATH. + + The device path as exposed by the udev property ID_PATH. The string is backslash escaped (C escaping) for invalid characters. The escaping can be reverted with g_strcompress(), however the result may not be valid UTF-8. - - The physical port ID of the device. (See + + The physical port ID of the device. (See nm_device_get_physical_port_id().) - - The port devices of the controller device. For devices that cannot be + + The port devices of the controller device. For devices that cannot be controllers this is likely to be always empty. - - The product string of the device. + + The product string of the device. - - Whether the device is real or is a placeholder device that could + + Whether the device is real or is a placeholder device that could be created automatically by NetworkManager if one of its #NMDevice:available-connections was activated. - - The state of the device. + + The state of the device. - - The reason for the device state. + + The reason for the device state. - - An operating-system specific device hardware identifier; this is not + + An operating-system specific device hardware identifier; this is not unique to a specific hardware device across reboots or hotplugs. It is an opaque string which for some device types (Bluetooth, Modem) contains an identifier provided by the underlying hardware service daemon @@ -14438,217 +8769,116 @@ such as Bluez or ModemManager, and clients can use this property to request more information about the device from those services. - - The vendor string of the device. + + The vendor string of the device. - Notifies the state change of a #NMDevice. + Notifies the state change of a #NMDevice. - the new state of the device + the new state of the device - the previous state of the device + the previous state of the device - the reason describing the state change + the reason describing the state change - - - - - - the device's parent device + + + + + + the device's parent device - a #NMDevice6Lowpan + a #NMDevice6Lowpan - - The devices's parent device. + + The devices's parent device. - - + + - - - - Whether the device has carrier. - - - %TRUE if the device has carrier + + + + Whether the device has carrier. + + + %TRUE if the device has carrier - a #NMDeviceAdsl + a #NMDeviceAdsl - - Whether the device has carrier. + + Whether the device has carrier. - - + + - - - - Whether the device has carrier. - - - %TRUE if the device has carrier + + + + Whether the device has carrier. + + + %TRUE if the device has carrier - a #NMDeviceBond + a #NMDeviceBond - - Gets the hardware (MAC) address of the #NMDeviceBond + + Gets the hardware (MAC) address of the #NMDeviceBond Use nm_device_get_hw_address() instead. - + - the hardware address. This is the internal string used by the + the hardware address. This is the internal string used by the device, and must not be modified. - a #NMDeviceBond + a #NMDeviceBond - - Gets the devices currently enslaved to @device. + + Gets the devices currently enslaved to @device. Use nm_device_get_ports() instead. - + - the #GPtrArray containing + the #GPtrArray containing #NMDevices that are slaves of @device. This is the internal copy used by the device, and must not be modified. @@ -14657,113 +8887,63 @@ copy used by the device, and must not be modified. - a #NMDeviceBond + a #NMDeviceBond - - Whether the device has carrier. + + Whether the device has carrier. - The devices enslaved to the bond device. + The devices enslaved to the bond device. - - + + - - - - Whether the device has carrier. - - - %TRUE if the device has carrier + + + + Whether the device has carrier. + + + %TRUE if the device has carrier - a #NMDeviceBridge + a #NMDeviceBridge - - Gets the hardware (MAC) address of the #NMDeviceBridge + + Gets the hardware (MAC) address of the #NMDeviceBridge Use nm_device_get_hw_address() instead. - + - the hardware address. This is the internal string used by the + the hardware address. This is the internal string used by the device, and must not be modified. - a #NMDeviceBridge + a #NMDeviceBridge - - Gets the devices currently enslaved to @device. + + Gets the devices currently enslaved to @device. Use nm_device_get_ports() instead. - + - the #GPtrArray containing + the #GPtrArray containing #NMDevices that are slaves of @device. This is the internal copy used by the device, and must not be modified. @@ -14772,369 +8952,170 @@ copy used by the device, and must not be modified. - a #NMDeviceBridge + a #NMDeviceBridge - - Whether the device has carrier. + + Whether the device has carrier. - The devices enslaved to the bridge device. + The devices enslaved to the bridge device. - - + + - - - - Returns the Bluetooth device's usable capabilities. - - - a combination of #NMBluetoothCapabilities + + + + Returns the Bluetooth device's usable capabilities. + + + a combination of #NMBluetoothCapabilities - a #NMDeviceBt + a #NMDeviceBt - - Gets the hardware (MAC) address of the #NMDeviceBt + + Gets the hardware (MAC) address of the #NMDeviceBt Use nm_device_get_hw_address() instead. - + - the hardware address. This is the internal string used by the + the hardware address. This is the internal string used by the device, and must not be modified. - a #NMDeviceBt + a #NMDeviceBt - - Gets the name of the #NMDeviceBt. - + + Gets the name of the #NMDeviceBt. + - the name of the device + the name of the device - a #NMDeviceBt + a #NMDeviceBt - - The device's bluetooth capabilities, a combination of #NMBluetoothCapabilities. + + The device's bluetooth capabilities, a combination of #NMBluetoothCapabilities. - - The name of the bluetooth device. + + The name of the bluetooth device. - - + + - - General device capability flags. - - device has no special capabilities - - - NetworkManager supports this device - - - this device can indicate carrier status - - - this device is a software device - - - this device supports single-root I/O virtualization + + General device capability flags. + + device has no special capabilities + + + NetworkManager supports this device + + + this device can indicate carrier status + + + this device is a software device + + + this device supports single-root I/O virtualization - + - - - - Gets the hardware (MAC) address of the #NMDeviceDummy + + + + Gets the hardware (MAC) address of the #NMDeviceDummy Use nm_device_get_hw_address() instead. - + - the hardware address. This is the internal string used by the + the hardware address. This is the internal string used by the device, and must not be modified. - a #NMDeviceDummy + a #NMDeviceDummy - - + + - - Device-related errors. + + Device-related errors. These errors may be returned directly from #NMDevice methods, or may be returned from D-Bus operations (where they correspond to errors in the "org.freedesktop.NetworkManager.Device" namespace). - - unknown or unclassified error - - - NetworkManager failed to create the device - - - the specified connection is not valid - - - the specified connection is not + + unknown or unclassified error + + + NetworkManager failed to create the device + + + the specified connection is not valid + + + the specified connection is not compatible with this device. - - the device does not have an active connection - - - the requested operation is only valid on + + the device does not have an active connection + + + the requested operation is only valid on software devices. - - the requested operation is not allowed at + + the requested operation is not allowed at this time. - - the "specific object" in the + + the "specific object" in the activation request (eg, the #NMAccessPoint or #NMWimaxNsp) was not found. - - the version id did not match. - - - the requested operation could not + + the version id did not match. + + + the requested operation could not be completed due to missing dependencies. - - invalid argument. Since: 1.16. + + invalid argument. Since: 1.16. @@ -15142,101 +9123,58 @@ returned from D-Bus operations (where they correspond to errors in the - - - - Whether the device has carrier. - - - %TRUE if the device has carrier + + + + Whether the device has carrier. + + + %TRUE if the device has carrier - a #NMDeviceEthernet + a #NMDeviceEthernet - - Gets the active hardware (MAC) address of the #NMDeviceEthernet + + Gets the active hardware (MAC) address of the #NMDeviceEthernet Use nm_device_get_hw_address() instead. - + - the active hardware address. This is the internal string used by the + the active hardware address. This is the internal string used by the device, and must not be modified. - a #NMDeviceEthernet + a #NMDeviceEthernet - - Gets the permanent hardware (MAC) address of the #NMDeviceEthernet - + + Gets the permanent hardware (MAC) address of the #NMDeviceEthernet + - the permanent hardware address. This is the internal string used by the + the permanent hardware address. This is the internal string used by the device, and must not be modified. - a #NMDeviceEthernet + a #NMDeviceEthernet - - Return the list of s390 subchannels if the device supports them. - + + Return the list of s390 subchannels if the device supports them. + - array of strings, each specifying + array of strings, each specifying one subchannel the s390 device uses to communicate to the host. @@ -15244,1415 +9182,744 @@ device, and must not be modified. - a #NMDeviceEthernet + a #NMDeviceEthernet - - Gets the speed of the #NMDeviceEthernet in Mbit/s. - + + Gets the speed of the #NMDeviceEthernet in Mbit/s. + - the speed of the device in Mbit/s + the speed of the device in Mbit/s - a #NMDeviceEthernet + a #NMDeviceEthernet - - Whether the device has carrier. + + Whether the device has carrier. - - The permanent hardware (MAC) address of the device. + + The permanent hardware (MAC) address of the device. - - Identifies subchannels of this network device used for + + Identifies subchannels of this network device used for communication with z/VM or s390 host. - - The speed of the device. + + The speed of the device. - - + + - - - - Gets the hardware address of the #NMDeviceGeneric + + + + Gets the hardware address of the #NMDeviceGeneric Use nm_device_get_hw_address() instead. - + - the hardware address. This is the internal string used by the + the hardware address. This is the internal string used by the device, and must not be modified. - a #NMDeviceGeneric + a #NMDeviceGeneric - - A description of the specific type of device this is, or %NULL + + A description of the specific type of device this is, or %NULL if not known. - - + + - - - - - - the last byte of the supervision address + + + + + + the last byte of the supervision address - a #NMDeviceHsr + a #NMDeviceHsr - - + + - the device's port1 device + the device's port1 device - a #NMDeviceHsr + a #NMDeviceHsr - - + + - the device's port2 device + the device's port2 device - a #NMDeviceHsr + a #NMDeviceHsr - - + + - whether PRP protocol is used or not + whether PRP protocol is used or not - a #NMDeviceHsr + a #NMDeviceHsr - - + + - the supervision MAC adddress + the supervision MAC adddress - a #NMDeviceHsr + a #NMDeviceHsr - - The device last byte of the supervision address. + + The device last byte of the supervision address. - - The device's port1 device. + + The device's port1 device. - - The device's port2 device. + + The device's port2 device. - - Whether the PRP protocol is used or not. + + Whether the PRP protocol is used or not. - - The device supervision MAC adddress. + + The device supervision MAC adddress. - - + + - - - - - - the maximum permitted encapsulation level + + + + + + the maximum permitted encapsulation level - a #NMDeviceIPTunnel + a #NMDeviceIPTunnel - - + + - the tunnel flags + the tunnel flags - a #NMDeviceIPTunnel + a #NMDeviceIPTunnel - - + + - the flow label assigned to tunnel packets + the flow label assigned to tunnel packets - a #NMDeviceIPTunnel + a #NMDeviceIPTunnel - - + + - the fwmark assigned to tunnel packets. This property applies only + the fwmark assigned to tunnel packets. This property applies only to VTI tunnels. - a #NMDeviceIPTunnel + a #NMDeviceIPTunnel - - + + - the key used for incoming packets + the key used for incoming packets - a #NMDeviceIPTunnel + a #NMDeviceIPTunnel - - + + - the local endpoint of the tunnel + the local endpoint of the tunnel - a #NMDeviceIPTunnel + a #NMDeviceIPTunnel - - + + - the tunneling mode + the tunneling mode - a #NMDeviceIPTunnel + a #NMDeviceIPTunnel - - + + - the key used for outgoing packets + the key used for outgoing packets - a #NMDeviceIPTunnel + a #NMDeviceIPTunnel - - + + - the device's parent device + the device's parent device - a #NMDeviceIPTunnel + a #NMDeviceIPTunnel - - + + - whether path MTU discovery is enabled + whether path MTU discovery is enabled - a #NMDeviceIPTunnel + a #NMDeviceIPTunnel - - + + - the remote endpoint of the tunnel + the remote endpoint of the tunnel - a #NMDeviceIPTunnel + a #NMDeviceIPTunnel - - + + - type of service (IPv4) or traffic class (IPv6) assigned + type of service (IPv4) or traffic class (IPv6) assigned to tunneled packets. - a #NMDeviceIPTunnel + a #NMDeviceIPTunnel - - + + - the TTL assigned to tunneled packets + the TTL assigned to tunneled packets - a #NMDeviceIPTunnel + a #NMDeviceIPTunnel - - How many additional levels of encapsulation are permitted to + + How many additional levels of encapsulation are permitted to be prepended to packets. This property applies only to IPv6 tunnels. - - Tunnel flags. + + Tunnel flags. - - The flow label to assign to tunnel packets. This property + + The flow label to assign to tunnel packets. This property applies only to IPv6 tunnels. - - The fwmark value to assign to tunnel packets. This property applies only + + The fwmark value to assign to tunnel packets. This property applies only to VTI tunnels. - - The key used for tunneled input packets, if applicable. + + The key used for tunneled input packets, if applicable. - - The local endpoint of the tunnel. + + The local endpoint of the tunnel. - - The tunneling mode of the device. + + The tunneling mode of the device. - - The key used for tunneled output packets, if applicable. + + The key used for tunneled output packets, if applicable. - - The devices's parent device. + + The devices's parent device. - - Whether path MTU discovery is enabled on this tunnel. + + Whether path MTU discovery is enabled on this tunnel. - - The remote endpoint of the tunnel. + + The remote endpoint of the tunnel. - - The type of service (IPv4) or traffic class (IPv6) assigned to + + The type of service (IPv4) or traffic class (IPv6) assigned to tunneled packets. - - The TTL assigned to tunneled packets. 0 is a special value + + The TTL assigned to tunneled packets. 0 is a special value meaning that packets inherit the TTL value - - + + - - - - Whether the device has carrier. - - - %TRUE if the device has carrier + + + + Whether the device has carrier. + + + %TRUE if the device has carrier - a #NMDeviceInfiniband + a #NMDeviceInfiniband - - Gets the hardware (MAC) address of the #NMDeviceInfiniband + + Gets the hardware (MAC) address of the #NMDeviceInfiniband Use nm_device_get_hw_address() instead. - + - the hardware address. This is the internal string used by the + the hardware address. This is the internal string used by the device, and must not be modified. - a #NMDeviceInfiniband + a #NMDeviceInfiniband - - Whether the device has carrier. + + Whether the device has carrier. - - + + - - Flags for a network interface. - - the interface is enabled from the + + Flags for a network interface. + + the interface is enabled from the administrative point of view. Corresponds to kernel IFF_UP. - - the physical link is up. Corresponds + + the physical link is up. Corresponds to kernel IFF_LOWER_UP. - - receive all packets. Corresponds to + + receive all packets. Corresponds to kernel IFF_PROMISC. Since: 1.32. - - the interface has carrier. In most + + the interface has carrier. In most cases this is equal to the value of @NM_DEVICE_INTERFACE_FLAG_LOWER_UP. However some devices have a non-standard carrier detection mechanism. - - the flag to indicate device + + the flag to indicate device LLDP status. Since: 1.32. - - + + - - + + - - - - Gets the set of cryptographic algorithms in use - - - the set of cryptographic algorithms in use + + + + Gets the set of cryptographic algorithms in use + + + the set of cryptographic algorithms in use - a #NMDeviceMacsec + a #NMDeviceMacsec - - Gets the value of the Association Number (0..3) for the Security + + Gets the value of the Association Number (0..3) for the Security Association in use. - + - the current Security Association + the current Security Association - a #NMDeviceMacsec + a #NMDeviceMacsec - - Gets whether encryption of transmitted frames is enabled - + + Gets whether encryption of transmitted frames is enabled + - whether encryption is enabled + whether encryption is enabled - a #NMDeviceMacsec + a #NMDeviceMacsec - - Gets whether the ES (End station) bit is enabled in SecTAG for + + Gets whether the ES (End station) bit is enabled in SecTAG for transmitted frames - + - whether the ES (End station) bit is enabled + whether the ES (End station) bit is enabled - a #NMDeviceMacsec + a #NMDeviceMacsec - - Gets the hardware (MAC) address of the #NMDeviceMacsec + + Gets the hardware (MAC) address of the #NMDeviceMacsec Use nm_device_get_hw_address() instead. - + - the hardware address. This is the internal string used by the + the hardware address. This is the internal string used by the device, and must not be modified. - a #NMDeviceMacsec + a #NMDeviceMacsec - - Gets the length of ICV (Integrity Check Value) - + + Gets the length of ICV (Integrity Check Value) + - the length of ICV + the length of ICV - a #NMDeviceMacsec + a #NMDeviceMacsec - - Gets whether the SCI is always included in SecTAG for transmitted + + Gets whether the SCI is always included in SecTAG for transmitted frames - + - whether the SCI is always included + whether the SCI is always included - a #NMDeviceMacsec + a #NMDeviceMacsec - - + + - the device's parent device + the device's parent device - a #NMDeviceMacsec + a #NMDeviceMacsec - - Gets whether protection of transmitted frames is enabled - + + Gets whether protection of transmitted frames is enabled + - whether protection is enabled + whether protection is enabled - a #NMDeviceMacsec + a #NMDeviceMacsec - - Gets whether replay protection is enabled - + + Gets whether replay protection is enabled + - whether replay protection is enabled + whether replay protection is enabled - a #NMDeviceMacsec + a #NMDeviceMacsec - - Gets whether the SCB (Single Copy Broadcast) bit is enabled in + + Gets whether the SCB (Single Copy Broadcast) bit is enabled in SecTAG for transmitted frames - + - whether the SCB (Single Copy Broadcast) bit is enabled + whether the SCB (Single Copy Broadcast) bit is enabled - a #NMDeviceMacsec + a #NMDeviceMacsec - - Gets the Secure Channel Identifier in use - + + Gets the Secure Channel Identifier in use + - the SCI + the SCI - a #NMDeviceMacsec + a #NMDeviceMacsec - - Gets the validation mode for incoming packets (strict, check, + + Gets the validation mode for incoming packets (strict, check, disabled) - + - the validation mode + the validation mode - a #NMDeviceMacsec + a #NMDeviceMacsec - - Gets the size of the replay window - + + Gets the size of the replay window + - size of the replay window + size of the replay window - a #NMDeviceMacsec + a #NMDeviceMacsec - - The set of cryptographic algorithms in use. + + The set of cryptographic algorithms in use. - - The value of the Association Number (0..3) for the Security + + The value of the Association Number (0..3) for the Security Association in use. - - Whether encryption of transmitted frames is enabled. + + Whether encryption of transmitted frames is enabled. - - Whether the ES (End station) bit is enabled in SecTAG for + + Whether the ES (End station) bit is enabled in SecTAG for transmitted frames. - - The length of ICV (Integrity Check Value). + + The length of ICV (Integrity Check Value). - - Whether the SCI is always included in SecTAG for transmitted + + Whether the SCI is always included in SecTAG for transmitted frames. - - The devices's parent device. + + The devices's parent device. - - Whether protection of transmitted frames is enabled. + + Whether protection of transmitted frames is enabled. - - Whether replay protection is enabled. + + Whether replay protection is enabled. - - Whether the SCB (Single Copy Broadcast) bit is enabled in + + Whether the SCB (Single Copy Broadcast) bit is enabled in SecTAG for transmitted frames. - - The Secure Channel Identifier in use. + + The Secure Channel Identifier in use. - - The validation mode for incoming packets (strict, check, + + The validation mode for incoming packets (strict, check, disabled). - - The size of the replay window. + + The size of the replay window. - - + + - - - - Gets the hardware (MAC) address of the #NMDeviceMacvlan + + + + Gets the hardware (MAC) address of the #NMDeviceMacvlan Use nm_device_get_hw_address() instead. - + - the hardware address. This is the internal string used by the + the hardware address. This is the internal string used by the device, and must not be modified. This property is not implemented yet, and the function always return NULL. @@ -16660,545 +9927,284 @@ This property is not implemented yet, and the function always return NULL. - a #NMDeviceMacvlan + a #NMDeviceMacvlan - - Gets the MACVLAN mode of the device. - + + Gets the MACVLAN mode of the device. + - the MACVLAN mode. This is the internal string used by the + the MACVLAN mode. This is the internal string used by the device, and must not be modified. - a #NMDeviceMacvlan + a #NMDeviceMacvlan - - Gets the no-promiscuous flag of the device. - + + Gets the no-promiscuous flag of the device. + - the no-promiscuous flag of the device. + the no-promiscuous flag of the device. - a #NMDeviceMacvlan + a #NMDeviceMacvlan - - + + - the device's parent device + the device's parent device - a #NMDeviceMacvlan + a #NMDeviceMacvlan - - Gets the device type (MACVLAN or MACVTAP). - + + Gets the device type (MACVLAN or MACVTAP). + - %TRUE if the device is a MACVTAP, %FALSE if it is a MACVLAN. + %TRUE if the device is a MACVTAP, %FALSE if it is a MACVLAN. - a #NMDeviceMacvlan + a #NMDeviceMacvlan - - The MACVLAN mode. + + The MACVLAN mode. - - Whether the device has the no-promiscuos flag. + + Whether the device has the no-promiscuos flag. - - The devices's parent device. + + The devices's parent device. - - Whether the device is a MACVTAP. + + Whether the device is a MACVTAP. - - + + - - - - The access point name the modem is connected to. - - - the APN name or %NULL if disconnected + + + + The access point name the modem is connected to. + + + the APN name or %NULL if disconnected - a #NMDeviceModem + a #NMDeviceModem - - Returns a bitfield of the generic access technology families the modem + + Returns a bitfield of the generic access technology families the modem supports without a firmware reload or reinitialization. This value represents the network types the modem can immediately connect to. - + - the generic access technology families the modem supports without + the generic access technology families the modem supports without a firmware reload or other reinitialization - + - a #NMDeviceModem + a #NMDeviceModem - - An identifier used by the modem backend (ModemManager) that aims to + + An identifier used by the modem backend (ModemManager) that aims to uniquely identify the a device. Can be used to match a connection to a particular device. - + - a device-id string + a device-id string - a #NMDeviceModem + a #NMDeviceModem - - Returns a bitfield of the generic access technology families the modem + + Returns a bitfield of the generic access technology families the modem supports. Not all capabilities are available concurrently however; some may require a firmware reload or reinitialization. - + - the generic access technology families the modem supports - + the generic access technology families the modem supports + - a #NMDeviceModem + a #NMDeviceModem - - The MCC and MNC (concatenated) of the network the modem is connected to. - + + The MCC and MNC (concatenated) of the network the modem is connected to. + - the operator code or %NULL if disconnected or not a 3GPP modem. + the operator code or %NULL if disconnected or not a 3GPP modem. - a #NMDeviceModem + a #NMDeviceModem - + - - The generic family of access technologies the modem currently supports + + The generic family of access technologies the modem currently supports without a firmware reload or reinitialization. - + - - The generic family of access technologies the modem supports. Not all + + The generic family of access technologies the modem supports. Not all capabilities are available at the same time however; some modems require a firmware reload or other reinitialization to switch between eg CDMA/EVDO and GSM/UMTS. - + - - #NMDeviceModemCapabilities values indicate the generic radio access + + #NMDeviceModemCapabilities values indicate the generic radio access technology families a modem device supports. For more information on the specific access technologies the device supports use the ModemManager D-Bus API. - - modem has no usable capabilities - - - modem uses the analog wired telephone + + modem has no usable capabilities + + + modem uses the analog wired telephone network and is not a wireless/cellular device - - modem supports at least one of CDMA + + modem supports at least one of CDMA 1xRTT, EVDO revision 0, EVDO revision A, or EVDO revision B - - modem supports at least one of GSM, + + modem supports at least one of GSM, GPRS, EDGE, UMTS, HSDPA, HSUPA, or HSPA+ packet switched data capability - - modem has LTE data capability - - - modem has 5GNR data capability. Since: 1.36. + + modem has LTE data capability + + + modem has 5GNR data capability. Since: 1.36. - - + + - - - - Returns the active channel of the #NMDeviceOlpcMesh device. - - - active channel of the device + + + + Returns the active channel of the #NMDeviceOlpcMesh device. + + + active channel of the device - a #NMDeviceOlpcMesh + a #NMDeviceOlpcMesh - - Gets the companion device of the #NMDeviceOlpcMesh. - + + Gets the companion device of the #NMDeviceOlpcMesh. + - the companion of the device of %NULL + the companion of the device of %NULL - a #NMDeviceOlpcMesh + a #NMDeviceOlpcMesh - - Gets the hardware (MAC) address of the #NMDeviceOlpcMesh + + Gets the hardware (MAC) address of the #NMDeviceOlpcMesh Use nm_device_get_hw_address() instead. - + - the hardware address. This is the internal string used by the + the hardware address. This is the internal string used by the device, and must not be modified. - a #NMDeviceOlpcMesh + a #NMDeviceOlpcMesh - - The device's active channel. + + The device's active channel. - - The companion device. + + The companion device. - - + + - - - - Gets the ports currently enslaved to @device. + + + + Gets the ports currently enslaved to @device. Use nm_device_get_ports() instead. - + - the #GPtrArray containing + the #GPtrArray containing #NMDevices that are slaves of @device. This is the internal copy used by the device, and must not be modified. @@ -17207,78 +10213,35 @@ copy used by the device, and must not be modified. - a #NMDeviceOvsBridge + a #NMDeviceOvsBridge - - Gets the ports currently enslaved to the device. + + Gets the ports currently enslaved to the device. - - + + - - + + - - + + - - - - Gets the interfaces currently enslaved to @device. + + + + Gets the interfaces currently enslaved to @device. Use nm_device_get_ports() instead. - + - the #GPtrArray containing + the #GPtrArray containing #NMDevices that are slaves of @device. This is the internal copy used by the device, and must not be modified. @@ -17287,954 +10250,365 @@ copy used by the device, and must not be modified. - a #NMDeviceOvsPort + a #NMDeviceOvsPort - - Gets the interfaces currently enslaved to the device. + + Gets the interfaces currently enslaved to the device. - - + + - - + + - - + + - - Flags for the Reapply() D-Bus call of a device and + + Flags for the Reapply() D-Bus call of a device and nm_device_reapply_async(). - - no flag set. - - - during reapply, + + no flag set. + + + during reapply, preserve external IP addresses and routes. - - - the device's state is unknown - - - the device is recognized, but not managed by + + + the device's state is unknown + + + the device is recognized, but not managed by NetworkManager - - the device is managed by NetworkManager, but + + the device is managed by NetworkManager, but is not available for use. Reasons may include the wireless switched off, missing firmware, no ethernet carrier, missing supplicant or modem manager, etc. - - the device can be activated, but is currently + + the device can be activated, but is currently idle and not connected to a network. - - the device is preparing the connection to the + + the device is preparing the connection to the network. This may include operations like changing the MAC address, setting physical link properties, and anything else required to connect to the requested network. - - the device is connecting to the requested network. + + the device is connecting to the requested network. This may include operations like associating with the Wi-Fi AP, dialing the modem, connecting to the remote Bluetooth device, etc. - - the device requires more information to continue + + the device requires more information to continue connecting to the requested network. This includes secrets like WiFi passphrases, login passwords, PIN codes, etc. - - the device is requesting IPv4 and/or IPv6 + + the device is requesting IPv4 and/or IPv6 addresses and routing information from the network. - - the device is checking whether further action is + + the device is checking whether further action is required for the requested network connection. This may include checking whether only local network access is available, whether a captive portal is blocking access to the Internet, etc. - - the device is waiting for a secondary + + the device is waiting for a secondary connection (like a VPN) which must activated before the device can be activated - - the device has a network connection, either local + + the device has a network connection, either local or global. - - a disconnection from the current network + + a disconnection from the current network connection was requested, and the device is cleaning up resources used for that connection. The network connection may still be valid. - - the device failed to connect to the requested + + the device failed to connect to the requested network and is cleaning up the connection request - - Device state change reason codes - - No reason given - - - Unknown error - - - Device is now managed - - - Device is now unmanaged - - - The device could not be readied for configuration - - - IP configuration could not be reserved (no available address, timeout, etc) - - - The IP config is no longer valid - - - Secrets were required, but not provided - - - 802.1x supplicant disconnected - - - 802.1x supplicant configuration failed - - - 802.1x supplicant failed - - - 802.1x supplicant took too long to authenticate - - - PPP service failed to start - - - PPP service disconnected - - - PPP failed - - - DHCP client failed to start - - - DHCP client error - - - DHCP client failed - - - Shared connection service failed to start - - - Shared connection service failed - - - AutoIP service failed to start - - - AutoIP service error - - - AutoIP service failed - - - The line is busy - - - No dial tone - - - No carrier could be established - - - The dialing request timed out - - - The dialing attempt failed - - - Modem initialization failed - - - Failed to select the specified APN - - - Not searching for networks - - - Network registration denied - - - Network registration timed out - - - Failed to register with the requested network - - - PIN check failed - - - Necessary firmware for the device may be missing - - - The device was removed - - - NetworkManager went to sleep - - - The device's active connection disappeared - - - Device disconnected by user or client - - - Carrier/link changed - - - The device's existing connection was assumed - - - The supplicant is now available - - - The modem could not be found - - - The Bluetooth connection failed or timed out - - - GSM Modem's SIM Card not inserted - - - GSM Modem's SIM Pin required - - - GSM Modem's SIM Puk required - - - GSM Modem's SIM wrong - - - InfiniBand device does not support connected mode - - - A dependency of the connection failed - - - Problem with the RFC 2684 Ethernet over ADSL bridge - - - ModemManager not running - - - The Wi-Fi network could not be found - - - A secondary connection of the base connection failed - - - DCB or FCoE setup failed - - - teamd control failed - - - Modem failed or no longer available - - - Modem now ready and available - - - SIM PIN was incorrect - - - New connection activation was enqueued - - - the device's parent changed - - - the device parent's management changed - - - problem communicating with Open vSwitch database - - - a duplicate IP address was detected - - - The selected IP method is not supported - - - configuration of SR-IOV parameters failed - - - The Wi-Fi P2P peer could not be found - - - The device handler dispatcher returned an + + Device state change reason codes + + No reason given + + + Unknown error + + + Device is now managed + + + Device is now unmanaged + + + The device could not be readied for configuration + + + IP configuration could not be reserved (no available address, timeout, etc) + + + The IP config is no longer valid + + + Secrets were required, but not provided + + + 802.1x supplicant disconnected + + + 802.1x supplicant configuration failed + + + 802.1x supplicant failed + + + 802.1x supplicant took too long to authenticate + + + PPP service failed to start + + + PPP service disconnected + + + PPP failed + + + DHCP client failed to start + + + DHCP client error + + + DHCP client failed + + + Shared connection service failed to start + + + Shared connection service failed + + + AutoIP service failed to start + + + AutoIP service error + + + AutoIP service failed + + + The line is busy + + + No dial tone + + + No carrier could be established + + + The dialing request timed out + + + The dialing attempt failed + + + Modem initialization failed + + + Failed to select the specified APN + + + Not searching for networks + + + Network registration denied + + + Network registration timed out + + + Failed to register with the requested network + + + PIN check failed + + + Necessary firmware for the device may be missing + + + The device was removed + + + NetworkManager went to sleep + + + The device's active connection disappeared + + + Device disconnected by user or client + + + Carrier/link changed + + + The device's existing connection was assumed + + + The supplicant is now available + + + The modem could not be found + + + The Bluetooth connection failed or timed out + + + GSM Modem's SIM Card not inserted + + + GSM Modem's SIM Pin required + + + GSM Modem's SIM Puk required + + + GSM Modem's SIM wrong + + + InfiniBand device does not support connected mode + + + A dependency of the connection failed + + + Problem with the RFC 2684 Ethernet over ADSL bridge + + + ModemManager not running + + + The Wi-Fi network could not be found + + + A secondary connection of the base connection failed + + + DCB or FCoE setup failed + + + teamd control failed + + + Modem failed or no longer available + + + Modem now ready and available + + + SIM PIN was incorrect + + + New connection activation was enqueued + + + the device's parent changed + + + the device parent's management changed + + + problem communicating with Open vSwitch database + + + a duplicate IP address was detected + + + The selected IP method is not supported + + + configuration of SR-IOV parameters failed + + + The Wi-Fi P2P peer could not be found + + + The device handler dispatcher returned an error. Since: 1.46 - - - - Whether the device has carrier. - - - %TRUE if the device has carrier + + + + Whether the device has carrier. + + + %TRUE if the device has carrier - a #NMDeviceTeam + a #NMDeviceTeam - - Gets the current JSON configuration of the #NMDeviceTeam - + + Gets the current JSON configuration of the #NMDeviceTeam + - the current configuration. This is the internal string used by the + the current configuration. This is the internal string used by the device, and must not be modified. - a #NMDeviceTeam + a #NMDeviceTeam - - Gets the hardware (MAC) address of the #NMDeviceTeam + + Gets the hardware (MAC) address of the #NMDeviceTeam Use nm_device_get_hw_address() instead. - + - the hardware address. This is the internal string used by the + the hardware address. This is the internal string used by the device, and must not be modified. - a #NMDeviceTeam + a #NMDeviceTeam - - Gets the devices currently enslaved to @device. + + Gets the devices currently enslaved to @device. Use nm_device_get_ports() instead. - + - the #GPtrArray containing + the #GPtrArray containing #NMDevices that are slaves of @device. This is the internal copy used by the device, and must not be modified. @@ -18243,895 +10617,410 @@ copy used by the device, and must not be modified. - a #NMDeviceTeam + a #NMDeviceTeam - - Whether the device has carrier. + + Whether the device has carrier. - - The current JSON configuration of the device. + + The current JSON configuration of the device. - The devices enslaved to the team device. + The devices enslaved to the team device. - - + + - - - - Gets the tunnel group. - - - the gid of the tunnel group, or -1 if it has no owner. + + + + Gets the tunnel group. + + + the gid of the tunnel group, or -1 if it has no owner. - a #NMDeviceTun + a #NMDeviceTun - - Gets the hardware (MAC) address of the #NMDeviceTun + + Gets the hardware (MAC) address of the #NMDeviceTun Use nm_device_get_hw_address() instead. - + - the hardware address. This is the internal string used by the + the hardware address. This is the internal string used by the device, and must not be modified. - a #NMDeviceTun + a #NMDeviceTun - - Returns the TUN/TAP mode for the device. - + + Returns the TUN/TAP mode for the device. + - 'tun' or 'tap' + 'tun' or 'tap' - a #NMDeviceTun + a #NMDeviceTun - - Returns whether the #NMDeviceTun has the IFF_MULTI_QUEUE flag. - + + Returns whether the #NMDeviceTun has the IFF_MULTI_QUEUE flag. + - %TRUE if the device doesn't have the flag, %FALSE otherwise + %TRUE if the device doesn't have the flag, %FALSE otherwise - a #NMDeviceTun + a #NMDeviceTun - - Returns whether the #NMDeviceTun has the IFF_NO_PI flag. - + + Returns whether the #NMDeviceTun has the IFF_NO_PI flag. + - %TRUE if the device has the flag, %FALSE otherwise + %TRUE if the device has the flag, %FALSE otherwise - a #NMDeviceTun + a #NMDeviceTun - - Gets the tunnel owner. - + + Gets the tunnel owner. + - the uid of the tunnel owner, or -1 if it has no owner. + the uid of the tunnel owner, or -1 if it has no owner. - a #NMDeviceTun + a #NMDeviceTun - - Returns whether the #NMDeviceTun has the IFF_VNET_HDR flag. - + + Returns whether the #NMDeviceTun has the IFF_VNET_HDR flag. + - %TRUE if the device has the flag, %FALSE otherwise + %TRUE if the device has the flag, %FALSE otherwise - a #NMDeviceTun + a #NMDeviceTun - - The gid of the tunnel group, or -1 if it has no owner. + + The gid of the tunnel group, or -1 if it has no owner. - - The tunnel mode, either "tun" or "tap". + + The tunnel mode, either "tun" or "tap". - - The tunnel's "TUN_TAP_MQ" flag; true if callers can connect to + + The tunnel's "TUN_TAP_MQ" flag; true if callers can connect to the tap device multiple times, for multiple send/receive queues. - - The tunnel's "TUN_NO_PI" flag; true if no protocol info is + + The tunnel's "TUN_NO_PI" flag; true if no protocol info is prepended to the tunnel packets. - - The uid of the tunnel owner, or -1 if it has no owner. + + The uid of the tunnel owner, or -1 if it has no owner. - - The tunnel's "TUN_VNET_HDR" flag; true if the tunnel packets + + The tunnel's "TUN_VNET_HDR" flag; true if the tunnel packets include a virtio network header. - - + + - - #NMDeviceType values indicate the type of hardware represented by a + + #NMDeviceType values indicate the type of hardware represented by a device object. - - unknown device - - - a wired ethernet device - - - an 802.11 Wi-Fi device - - - not used - - - not used - - - a Bluetooth device supporting PAN or DUN access protocols - - - an OLPC XO mesh networking device - - - an 802.16e Mobile WiMAX broadband device - - - a modem supporting analog telephone, CDMA/EVDO, + + unknown device + + + a wired ethernet device + + + an 802.11 Wi-Fi device + + + not used + + + not used + + + a Bluetooth device supporting PAN or DUN access protocols + + + an OLPC XO mesh networking device + + + an 802.16e Mobile WiMAX broadband device + + + a modem supporting analog telephone, CDMA/EVDO, GSM/UMTS, or LTE network access protocols - - an IP-over-InfiniBand device - - - a bond master interface - - - an 802.1Q VLAN interface - - - ADSL modem - - - a bridge master interface - - - generic support for unrecognized device types - - - a team master interface - - - a TUN or TAP interface - - - a IP tunnel interface - - - a MACVLAN interface - - - a VXLAN interface - - - a VETH interface - - - a MACsec interface - - - a dummy interface - - - a PPP interface - - - a Open vSwitch interface - - - a Open vSwitch port - - - a Open vSwitch bridge - - - a IEEE 802.15.4 (WPAN) MAC Layer Device - - - 6LoWPAN interface - - - a WireGuard interface - - - an 802.11 Wi-Fi P2P device. Since: 1.16. - - - A VRF (Virtual Routing and Forwarding) interface. Since: 1.24. - - - a loopback interface. Since: 1.42. - - - A HSR/PRP device. Since: 1.46. + + an IP-over-InfiniBand device + + + a bond master interface + + + an 802.1Q VLAN interface + + + ADSL modem + + + a bridge master interface + + + generic support for unrecognized device types + + + a team master interface + + + a TUN or TAP interface + + + a IP tunnel interface + + + a MACVLAN interface + + + a VXLAN interface + + + a VETH interface + + + a MACsec interface + + + a dummy interface + + + a PPP interface + + + a Open vSwitch interface + + + a Open vSwitch port + + + a Open vSwitch bridge + + + a IEEE 802.15.4 (WPAN) MAC Layer Device + + + 6LoWPAN interface + + + a WireGuard interface + + + an 802.11 Wi-Fi P2P device. Since: 1.16. + + + A VRF (Virtual Routing and Forwarding) interface. Since: 1.24. + + + a loopback interface. Since: 1.42. + + + A HSR/PRP device. Since: 1.46. - - - - - - the device's peer device + + + + + + the device's peer device - a #NMDeviceVeth + a #NMDeviceVeth - - The device's peer device. + + The device's peer device. - - + + - - - - Whether the device has carrier. - - - %TRUE if the device has carrier + + + + Whether the device has carrier. + + + %TRUE if the device has carrier - a #NMDeviceVlan + a #NMDeviceVlan - - Gets the hardware (MAC) address of the #NMDeviceVlan + + Gets the hardware (MAC) address of the #NMDeviceVlan Use nm_device_get_hw_address() instead. - + - the hardware address. This is the internal string used by the + the hardware address. This is the internal string used by the device, and must not be modified. - a #NMDeviceVlan + a #NMDeviceVlan - - + + - the device's parent device + the device's parent device - a #NMDeviceVlan + a #NMDeviceVlan - - + + - the device's VLAN ID + the device's VLAN ID - a #NMDeviceVlan + a #NMDeviceVlan - - Whether the device has carrier. + + Whether the device has carrier. - The devices's parent device. + The devices's parent device. - - The device's VLAN ID. + + The device's VLAN ID. - - + + - - - - - - the device's VRF routing table. + + + + + + the device's VRF routing table. - a #NMDeviceVrf + a #NMDeviceVrf - - The device's VRF table. + + The device's VRF table. - - + + - - - - - - the lifetime in seconds of FDB entries learnt by the kernel + + + + + + the lifetime in seconds of FDB entries learnt by the kernel - a #NMDeviceVxlan + a #NMDeviceVxlan - - Whether the device has carrier. - + + Whether the device has carrier. + - %TRUE if the device has carrier. + %TRUE if the device has carrier. This property is not implemented yet, and the function always returns FALSE. @@ -19139,593 +11028,329 @@ FALSE. - a #NMDeviceVxlan + a #NMDeviceVxlan - - + + - the UDP destination port + the UDP destination port - a #NMDeviceVxlan + a #NMDeviceVxlan - - + + - The unicast destination IP address or the multicast + The unicast destination IP address or the multicast IP address joined - a #NMDeviceVxlan + a #NMDeviceVxlan - - Gets the hardware (MAC) address of the #NMDeviceVxlan + + Gets the hardware (MAC) address of the #NMDeviceVxlan Use nm_device_get_hw_address() instead. - + - the hardware address. This is the internal string used by the + the hardware address. This is the internal string used by the device, and must not be modified. - a #NMDeviceVxlan + a #NMDeviceVxlan - - + + - the device's VXLAN ID. + the device's VXLAN ID. - a #NMDeviceVxlan + a #NMDeviceVxlan - - + + - whether netlink LL ADDR miss notifications are generated + whether netlink LL ADDR miss notifications are generated - a #NMDeviceVxlan + a #NMDeviceVxlan - - + + - whether netlink IP ADDR miss notifications are generated + whether netlink IP ADDR miss notifications are generated - a #NMDeviceVxlan + a #NMDeviceVxlan - - + + - whether address learning is enabled + whether address learning is enabled - a #NMDeviceVxlan + a #NMDeviceVxlan - - + + - the maximum number of entries that can be added to the + the maximum number of entries that can be added to the forwarding table - a #NMDeviceVxlan + a #NMDeviceVxlan - - + + - the source IP address to use in outgoing packets + the source IP address to use in outgoing packets - a #NMDeviceVxlan + a #NMDeviceVxlan - - + + - the device's parent device + the device's parent device - a #NMDeviceVxlan + a #NMDeviceVxlan - - + + - whether ARP proxy is turned on + whether ARP proxy is turned on - a #NMDeviceVxlan + a #NMDeviceVxlan - - + + - whether route short circuit is turned on + whether route short circuit is turned on - a #NMDeviceVxlan + a #NMDeviceVxlan - - + + - the maximum UDP source port + the maximum UDP source port - a #NMDeviceVxlan + a #NMDeviceVxlan - - + + - the minimum UDP source port + the minimum UDP source port - a #NMDeviceVxlan + a #NMDeviceVxlan - - + + - the TOS value to use in outgoing packets + the TOS value to use in outgoing packets - a #NMDeviceVxlan + a #NMDeviceVxlan - - + + - the time-to-live value to use in outgoing packets + the time-to-live value to use in outgoing packets - a #NMDeviceVxlan + a #NMDeviceVxlan - - The lifetime in seconds of FDB entries learnt by the kernel. + + The lifetime in seconds of FDB entries learnt by the kernel. - - Whether the device has carrier. + + Whether the device has carrier. This property is not implemented yet, and the property is always FALSE. - - The UDP destination port used to communicate with the remote VXLAN tunnel + + The UDP destination port used to communicate with the remote VXLAN tunnel endpoint. - - The unicast destination IP address used in outgoing packets when the + + The unicast destination IP address used in outgoing packets when the destination link layer address is not known in the VXLAN device forwarding database or the multicast IP address joined. - - The device's VXLAN ID. + + The device's VXLAN ID. - - Whether netlink LL ADDR miss notifications are generated. + + Whether netlink LL ADDR miss notifications are generated. - - Whether netlink IP ADDR miss notifications are generated. + + Whether netlink IP ADDR miss notifications are generated. - - Whether unknown source link layer addresses and IP addresses are entered + + Whether unknown source link layer addresses and IP addresses are entered into the VXLAN device forwarding database. - - The maximum number of entries that can be added to the forwarding table. + + The maximum number of entries that can be added to the forwarding table. - - The source IP address to use in outgoing packets. + + The source IP address to use in outgoing packets. - - The devices's parent device. + + The devices's parent device. - - Whether ARP proxy is turned on. + + Whether ARP proxy is turned on. - - Whether route short circuit is turned on. + + Whether route short circuit is turned on. - - The maximum UDP source port used to communicate with the remote VXLAN + + The maximum UDP source port used to communicate with the remote VXLAN tunnel endpoint. - - The minimum UDP source port used to communicate with the remote VXLAN + + The minimum UDP source port used to communicate with the remote VXLAN tunnel endpoint. - - The TOS value to use in outgoing packets. + + The TOS value to use in outgoing packets. - - The time-to-live value to use in outgoing packets. + + The time-to-live value to use in outgoing packets. - - + + - - - - Gets a #NMAccessPoint by path. - - - the access point or %NULL if none is found. + + + + Gets a #NMAccessPoint by path. + + + the access point or %NULL if none is found. - a #NMDeviceWifi + a #NMDeviceWifi - the object path of the access point + the object path of the access point - - Gets all the scanned access points of the #NMDeviceWifi. - + + Gets all the scanned access points of the #NMDeviceWifi. + - a #GPtrArray containing all the + a #GPtrArray containing all the scanned #NMAccessPoints. The returned array is owned by the client and should not be modified. @@ -19734,311 +11359,187 @@ The returned array is owned by the client and should not be modified. - a #NMDeviceWifi + a #NMDeviceWifi - - Gets the active #NMAccessPoint. - + + Gets the active #NMAccessPoint. + - the access point or %NULL if none is active + the access point or %NULL if none is active - a #NMDeviceWifi + a #NMDeviceWifi - - Gets the bit rate of the #NMDeviceWifi in kbit/s. - + + Gets the bit rate of the #NMDeviceWifi in kbit/s. + - the bit rate (kbit/s) + the bit rate (kbit/s) - a #NMDeviceWifi + a #NMDeviceWifi - - Gets the Wi-Fi capabilities of the #NMDeviceWifi. - + + Gets the Wi-Fi capabilities of the #NMDeviceWifi. + - the capabilities - + the capabilities + - a #NMDeviceWifi + a #NMDeviceWifi - - Gets the actual hardware (MAC) address of the #NMDeviceWifi + + Gets the actual hardware (MAC) address of the #NMDeviceWifi Use nm_device_get_hw_address() instead. - + - the actual hardware address. This is the internal string used by the + the actual hardware address. This is the internal string used by the device, and must not be modified. - a #NMDeviceWifi + a #NMDeviceWifi - - Returns the timestamp (in CLOCK_BOOTTIME milliseconds) for the last finished + + Returns the timestamp (in CLOCK_BOOTTIME milliseconds) for the last finished network scan. A value of -1 means the device never scanned for access points. Use nm_utils_get_timestamp_msec() to obtain current time value suitable for comparing to this value. - + - the last scan time in milliseconds (in clock_gettime(CLOCK_BOOTTIME) scale). + the last scan time in milliseconds (in clock_gettime(CLOCK_BOOTTIME) scale). - a #NMDeviceWifi + a #NMDeviceWifi - - Gets the #NMDeviceWifi mode. - + + Gets the #NMDeviceWifi mode. + - the mode + the mode - a #NMDeviceWifi + a #NMDeviceWifi - - Gets the permanent hardware (MAC) address of the #NMDeviceWifi - + + Gets the permanent hardware (MAC) address of the #NMDeviceWifi + - the permanent hardware address. This is the internal string used by the + the permanent hardware address. This is the internal string used by the device, and must not be modified. - a #NMDeviceWifi + a #NMDeviceWifi - - Request NM to scan for access points on @device. Note that the function + + Request NM to scan for access points on @device. Note that the function returns immediately after requesting the scan, and it may take some time after that for the scan to complete. Use nm_device_wifi_request_scan_async() or GDBusConnection. - + - %TRUE on success, %FALSE on error, in which case @error will be + %TRUE on success, %FALSE on error, in which case @error will be set. - a #NMDeviceWifi + a #NMDeviceWifi - - a #GCancellable, or %NULL + + a #GCancellable, or %NULL - - Request NM to scan for access points on @device. Note that @callback will be + + Request NM to scan for access points on @device. Note that @callback will be called immediately after requesting the scan, and it may take some time after that for the scan to complete. - + - a #NMDeviceWifi + a #NMDeviceWifi - - a #GCancellable, or %NULL + + a #GCancellable, or %NULL - - callback to be called when the scan has been requested + + callback to be called when the scan has been requested - - caller-specific data passed to @callback + + caller-specific data passed to @callback - - Gets the result of a call to nm_device_wifi_request_scan_async() and + + Gets the result of a call to nm_device_wifi_request_scan_async() and nm_device_wifi_request_scan_options_async(). - + - %TRUE on success, %FALSE on error, in which case @error will be + %TRUE on success, %FALSE on error, in which case @error will be set. - a #NMDeviceWifi + a #NMDeviceWifi - the result passed to the #GAsyncReadyCallback + the result passed to the #GAsyncReadyCallback - - Request NM to scan for access points on @device. Note that the function + + Request NM to scan for access points on @device. Note that the function returns immediately after requesting the scan, and it may take some time after that for the scan to complete. This is the same as @nm_device_wifi_request_scan except it accepts @options @@ -20046,45 +11547,29 @@ for the scanning. The argument is the dictionary passed to RequestScan() D-Bus call. Valid options inside the dictionary are: 'ssids' => array of SSIDs (saay) Use nm_device_wifi_request_scan_options_async() or GDBusConnection. - + - %TRUE on success, %FALSE on error, in which case @error will be + %TRUE on success, %FALSE on error, in which case @error will be set. - a #NMDeviceWifi + a #NMDeviceWifi - dictionary with options for RequestScan(), or %NULL + dictionary with options for RequestScan(), or %NULL - - a #GCancellable, or %NULL + + a #GCancellable, or %NULL - - Request NM to scan for access points on @device. Note that @callback will be + + Request NM to scan for access points on @device. Note that @callback will be called immediately after requesting the scan, and it may take some time after that for the scan to complete. This is the same as @nm_device_wifi_request_scan_async except it accepts @options @@ -20093,383 +11578,182 @@ D-Bus call. Valid options inside the dictionary are: 'ssids' => array of SSIDs (saay) To complete the request call nm_device_wifi_request_scan_finish(). - + - a #NMDeviceWifi + a #NMDeviceWifi - dictionary with options for RequestScan(), or %NULL + dictionary with options for RequestScan(), or %NULL - - a #GCancellable, or %NULL + + a #GCancellable, or %NULL - - callback to be called when the scan has been requested + + callback to be called when the scan has been requested - - caller-specific data passed to @callback + + caller-specific data passed to @callback - - List of all Wi-Fi access points the device can see. + + List of all Wi-Fi access points the device can see. - - The active #NMAccessPoint of the device. + + The active #NMAccessPoint of the device. - - The bit rate of the device in kbit/s. + + The bit rate of the device in kbit/s. - - The timestamp (in CLOCK_BOOTTIME seconds) for the last finished + + The timestamp (in CLOCK_BOOTTIME seconds) for the last finished network scan. A value of -1 means the device never scanned for access points. - - The mode of the device. + + The mode of the device. - - The hardware (MAC) address of the device. + + The hardware (MAC) address of the device. - - The wireless capabilities of the device. + + The wireless capabilities of the device. - Notifies that a #NMAccessPoint is added to the Wi-Fi device. + Notifies that a #NMAccessPoint is added to the Wi-Fi device. - the new access point + the new access point - Notifies that a #NMAccessPoint is removed from the Wi-Fi device. + Notifies that a #NMAccessPoint is removed from the Wi-Fi device. - the removed access point + the removed access point - - 802.11 specific device encryption and authentication capabilities. - - device has no encryption/authentication capabilities - - - device supports 40/64-bit WEP encryption - - - device supports 104/128-bit WEP encryption - - - device supports TKIP encryption - - - device supports AES/CCMP encryption - - - device supports WPA1 authentication - - - device supports WPA2/RSN authentication - - - device supports Access Point mode - - - device supports Ad-Hoc mode - - - device reports frequency capabilities - - - device supports 2.4GHz frequencies - - - device supports 5GHz frequencies - - - device supports 6GHz frequencies. Since: 1.46. - - - device supports acting as a mesh point. Since: 1.20. - - - device supports WPA2/RSN in an IBSS network. Since: 1.22. + + 802.11 specific device encryption and authentication capabilities. + + device has no encryption/authentication capabilities + + + device supports 40/64-bit WEP encryption + + + device supports 104/128-bit WEP encryption + + + device supports TKIP encryption + + + device supports AES/CCMP encryption + + + device supports WPA1 authentication + + + device supports WPA2/RSN authentication + + + device supports Access Point mode + + + device supports Ad-Hoc mode + + + device reports frequency capabilities + + + device supports 2.4GHz frequencies + + + device supports 5GHz frequencies + + + device supports 6GHz frequencies. Since: 1.46. + + + device supports acting as a mesh point. Since: 1.20. + + + device supports WPA2/RSN in an IBSS network. Since: 1.22. - - + + - - - - Gets the actual hardware (MAC) address of the #NMDeviceWifiP2P + + + + Gets the actual hardware (MAC) address of the #NMDeviceWifiP2P Use nm_device_get_hw_address() instead. - + - the actual hardware address. This is the internal string used by the + the actual hardware address. This is the internal string used by the device, and must not be modified. - a #NMDeviceWifiP2P + a #NMDeviceWifiP2P - - Gets a #NMWifiP2PPeer by path. - + + Gets a #NMWifiP2PPeer by path. + - the peer or %NULL if none is found. + the peer or %NULL if none is found. - a #NMDeviceWifiP2P + a #NMDeviceWifiP2P - the object path of the peer + the object path of the peer - - Gets all the found peers of the #NMDeviceWifiP2P. - + + Gets all the found peers of the #NMDeviceWifiP2P. + - a #GPtrArray containing all the + a #GPtrArray containing all the found #NMWifiP2PPeers. The returned array is owned by the client and should not be modified. @@ -20478,430 +11762,248 @@ The returned array is owned by the client and should not be modified. - a #NMDeviceWifiP2P + a #NMDeviceWifiP2P - - Request NM to search for Wi-Fi P2P peers on @device. Note that the call + + Request NM to search for Wi-Fi P2P peers on @device. Note that the call returns immediately after requesting the find, and it may take some time after that for peers to be found. The find operation will run for 30s by default. You can stop it earlier using nm_device_p2p_wifi_stop_find(). - + - a #NMDeviceWifiP2P + a #NMDeviceWifiP2P - - optional options passed to StartFind. + + optional options passed to StartFind. - - a #GCancellable, or %NULL + + a #GCancellable, or %NULL - - a #GAsyncReadyCallback, or %NULL + + a #GAsyncReadyCallback, or %NULL - - user_data for @callback + + user_data for @callback - - Finish an operation started by nm_device_wifi_p2p_start_find(). - + + Finish an operation started by nm_device_wifi_p2p_start_find(). + - %TRUE if the call was successful + %TRUE if the call was successful - a #NMDeviceWifiP2P + a #NMDeviceWifiP2P - the #GAsyncResult + the #GAsyncResult - - Request NM to stop any ongoing find operation for Wi-Fi P2P peers on @device. - + + Request NM to stop any ongoing find operation for Wi-Fi P2P peers on @device. + - a #NMDeviceWifiP2P + a #NMDeviceWifiP2P - - a #GCancellable, or %NULL + + a #GCancellable, or %NULL - - a #GAsyncReadyCallback, or %NULL + + a #GAsyncReadyCallback, or %NULL - - user_data for @callback + + user_data for @callback - - Finish an operation started by nm_device_wifi_p2p_stop_find(). - + + Finish an operation started by nm_device_wifi_p2p_stop_find(). + - %TRUE if the call was successful + %TRUE if the call was successful - a #NMDeviceWifiP2P + a #NMDeviceWifiP2P - the #GAsyncResult + the #GAsyncResult - - List of all Wi-Fi P2P peers the device can see. + + List of all Wi-Fi P2P peers the device can see. - Notifies that a #NMWifiP2PPeer is added to the Wi-Fi P2P device. + Notifies that a #NMWifiP2PPeer is added to the Wi-Fi P2P device. - the new access point + the new access point - Notifies that a #NMWifiP2PPeer is removed from the Wi-Fi P2P device. + Notifies that a #NMWifiP2PPeer is removed from the Wi-Fi P2P device. - the removed access point + the removed access point - - + + - + WiMAX is no longer supported by NetworkManager since 1.2.0. - - - Gets the active #NMWimaxNsp. + + + Gets the active #NMWimaxNsp. WiMAX is no longer supported. - + - the access point or %NULL if none is active + the access point or %NULL if none is active - a #NMDeviceWimax + a #NMDeviceWimax - - Gets the ID of the serving Base Station when the device is connected. + + Gets the ID of the serving Base Station when the device is connected. WiMAX is no longer supported. - + - the ID of the serving Base Station, or %NULL + the ID of the serving Base Station, or %NULL - a #NMDeviceWimax + a #NMDeviceWimax - - Gets the center frequency (in KHz) of the radio channel the device is using + + Gets the center frequency (in KHz) of the radio channel the device is using to communicate with the network when connected. Has no meaning when the device is not connected. WiMAX is no longer supported. - + - the center frequency in KHz, or 0 + the center frequency in KHz, or 0 - a #NMDeviceWimax + a #NMDeviceWimax - - Gets the CINR (Carrier to Interference + Noise Ratio) of the current radio + + Gets the CINR (Carrier to Interference + Noise Ratio) of the current radio link in dB. CINR is a more accurate measure of radio link quality. Has no meaning when the device is not connected. WiMAX is no longer supported. - + - the CINR in dB, or 0 + the CINR in dB, or 0 - a #NMDeviceWimax + a #NMDeviceWimax - - Gets the hardware (MAC) address of the #NMDeviceWimax + + Gets the hardware (MAC) address of the #NMDeviceWimax WiMAX is no longer supported. - + - the hardware address. This is the internal string used by the + the hardware address. This is the internal string used by the device, and must not be modified. - a #NMDeviceWimax + a #NMDeviceWimax - - Gets a #NMWimaxNsp by path. + + Gets a #NMWimaxNsp by path. WiMAX is no longer supported. - + - the access point or %NULL if none is found. + the access point or %NULL if none is found. - a #NMDeviceWimax + a #NMDeviceWimax - the object path of the NSP + the object path of the NSP - - Gets all the scanned NSPs of the #NMDeviceWimax. + + Gets all the scanned NSPs of the #NMDeviceWimax. WiMAX is no longer supported. - + - a #GPtrArray containing + a #GPtrArray containing all the scanned #NMWimaxNsps. The returned array is owned by the client and should not be modified. @@ -20910,439 +12012,239 @@ The returned array is owned by the client and should not be modified. - a #NMDeviceWimax + a #NMDeviceWimax - - Gets the RSSI of the current radio link in dBm. This value indicates how + + Gets the RSSI of the current radio link in dBm. This value indicates how strong the raw received RF signal from the base station is, but does not indicate the overall quality of the radio link. Has no meaning when the device is not connected. WiMAX is no longer supported. - + - the RSSI in dBm, or 0 + the RSSI in dBm, or 0 - a #NMDeviceWimax + a #NMDeviceWimax - - Average power of the last burst transmitted by the device, in units of + + Average power of the last burst transmitted by the device, in units of 0.5 dBm. i.e. a TxPower of -11 represents an actual device TX power of -5.5 dBm. Has no meaning when the device is not connected. WiMAX is no longer supported. - + - the TX power in dBm, or 0 + the TX power in dBm, or 0 - a #NMDeviceWimax + a #NMDeviceWimax - - The active #NMWimaxNsp of the device. + + The active #NMWimaxNsp of the device. WiMAX is no longer supported. - - The ID of the serving base station as received from the network. Has + + The ID of the serving base station as received from the network. Has no meaning when the device is not connected. WiMAX is no longer supported. - - The center frequency (in KHz) of the radio channel the device is using to + + The center frequency (in KHz) of the radio channel the device is using to communicate with the network when connected. Has no meaning when the device is not connected. WiMAX is no longer supported. - - CINR (Carrier to Interference + Noise Ratio) of the current radio link + + CINR (Carrier to Interference + Noise Ratio) of the current radio link in dB. CINR is a more accurate measure of radio link quality. Has no meaning when the device is not connected. WiMAX is no longer supported. - - The hardware (MAC) address of the device. + + The hardware (MAC) address of the device. WiMAX is no longer supported. - List of all WiMAX Network Service Providers the device can see. + List of all WiMAX Network Service Providers the device can see. - - RSSI of the current radio link in dBm. This value indicates how strong + + RSSI of the current radio link in dBm. This value indicates how strong the raw received RF signal from the base station is, but does not indicate the overall quality of the radio link. Has no meaning when the device is not connected. WiMAX is no longer supported. - - Average power of the last burst transmitted by the device, in units of + + Average power of the last burst transmitted by the device, in units of 0.5 dBm. i.e. a TxPower of -11 represents an actual device TX power of -5.5 dBm. Has no meaning when the device is not connected. WiMAX is no longer supported. - - Notifies that a #NMWimaxNsp is added to the wimax device. + + Notifies that a #NMWimaxNsp is added to the wimax device. WiMAX is no longer supported. - the new NSP + the new NSP - - Notifies that a #NMWimaxNsp is removed from the wimax device. + + Notifies that a #NMWimaxNsp is removed from the wimax device. WiMAX is no longer supported. - the removed NSP + the removed NSP - - + + - - - - Gets the fwmark (firewall mark) for this interface. + + + + Gets the fwmark (firewall mark) for this interface. It can be used to set routing policy for outgoing encrypted packets. See: ip-rule(8) - + - 0 if fwmark not in use, 32-bit fwmark value otherwise + 0 if fwmark not in use, 32-bit fwmark value otherwise - a #NMDeviceWireGuard + a #NMDeviceWireGuard - - Gets the local UDP port this interface listens on - + + Gets the local UDP port this interface listens on + - UDP listen port + UDP listen port - a #NMDeviceWireGuard + a #NMDeviceWireGuard - - Gets the public key for this interface - + + Gets the public key for this interface + - the #GBytes containing the 32-byte public key + the #GBytes containing the 32-byte public key - a #NMDeviceWireGuard + a #NMDeviceWireGuard - - Optional firewall mark - see ip-rule(8). + + Optional firewall mark - see ip-rule(8). Used when setting routing policy for outgoing encrypted packets. Set to 0 to disable the mark (default). - - Local UDP listen port. + + Local UDP listen port. Set to 0 to allow a random port to be chosen (default). - - 32-byte public key, derived from the current private key. + + 32-byte public key, derived from the current private key. - - + + - - + + - - + + - - - - Gets the IP address family of the configuration - - - the IP address family; either <literal>AF_INET</literal> or + + + + Gets the IP address family of the configuration + + + the IP address family; either <literal>AF_INET</literal> or <literal>AF_INET6</literal> - a #NMDhcpConfig + a #NMDhcpConfig - - Gets one option by option name. - + + Gets one option by option name. + - the configuration option's value. This is the internal string used by the + the configuration option's value. This is the internal string used by the configuration, and must not be modified. - a #NMDhcpConfig + a #NMDhcpConfig - the option to retrieve + the option to retrieve - - Gets all the options contained in the configuration. - + + Gets all the options contained in the configuration. + - the #GHashTable containing + the #GHashTable containing strings for keys and values. This is the internal copy used by the configuration, and must not be modified. @@ -21352,261 +12254,154 @@ configuration, and must not be modified. - a #NMDhcpConfig + a #NMDhcpConfig - - The IP address family of the configuration; either + + The IP address family of the configuration; either <literal>AF_INET</literal> or <literal>AF_INET6</literal>. - The #GHashTable containing options of the configuration. + The #GHashTable containing options of the configuration. - - + + - - #NMDhcpHostnameFlags describe flags related to the DHCP hostname and + + #NMDhcpHostnameFlags describe flags related to the DHCP hostname and FQDN. - - no flag set. The default value from + + no flag set. The default value from Networkmanager global configuration is used. If such value is unset or still zero, the DHCP request will use standard FQDN flags, i.e. %NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE and %NM_DHCP_HOSTNAME_FLAG_FQDN_ENCODED for IPv4 and %NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE for IPv6. - - whether the server should + + whether the server should do the A RR (FQDN-to-address) DNS updates. - - if set, the FQDN is encoded + + if set, the FQDN is encoded using canonical wire format. Otherwise it uses the deprecated ASCII encoding. This flag is allowed only for DHCPv4. - - when not set, request the + + when not set, request the server to perform updates (the PTR RR and possibly the A RR based on the %NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE flag). If this is set, the %NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE flag should be cleared. - - when set, no FQDN flags are + + when set, no FQDN flags are sent in the DHCP FQDN option. When cleared and all other FQDN flags are zero, standard FQDN flags are sent. This flag is incompatible with any other FQDN flag. - + - - Gets the list of DNS domains. - - - the list of DNS domains + + Gets the list of DNS domains. + + + the list of DNS domains - the #NMDnsEntry + the #NMDnsEntry - - Gets the interface on which name servers are contacted. - + + Gets the interface on which name servers are contacted. + - the interface name + the interface name - the #NMDnsEntry + the #NMDnsEntry - - Gets the list of name servers for this entry. - + + Gets the list of name servers for this entry. + - the list of name servers + the list of name servers - the #NMDnsEntry + the #NMDnsEntry - - Gets the priority of the entry - + + Gets the priority of the entry + - the priority of the entry + the priority of the entry - the #NMDnsEntry + the #NMDnsEntry - Gets whether the entry refers to VPN name servers. - - - %TRUE if the entry refers to VPN name servers + Gets whether the entry refers to VPN name servers. + + + %TRUE if the entry refers to VPN name servers - the #NMDnsEntry + the #NMDnsEntry - Decreases the reference count of the object. If the reference count + Decreases the reference count of the object. If the reference count reaches zero, the object will be destroyed. - + - the #NMDnsEntry + the #NMDnsEntry - - + + @@ -21616,781 +12411,454 @@ reaches zero, the object will be destroyed. - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - Creates a new #NMIPAddress object. - + Creates a new #NMIPAddress object. + - the new #NMIPAddress object, or %NULL on error + the new #NMIPAddress object, or %NULL on error - the IP address family (<literal>AF_INET</literal> or + the IP address family (<literal>AF_INET</literal> or <literal>AF_INET6</literal>) - the IP address + the IP address - the address prefix length + the address prefix length - - Creates a new #NMIPAddress object. @addr must point to a buffer of the + + Creates a new #NMIPAddress object. @addr must point to a buffer of the correct size for @family. - + - the new #NMIPAddress object, or %NULL on error + the new #NMIPAddress object, or %NULL on error - the IP address family (<literal>AF_INET</literal> or + the IP address family (<literal>AF_INET</literal> or <literal>AF_INET6</literal>) - - the IP address + + the IP address - the address prefix length + the address prefix length - - Note that with @cmp_flags #NM_IP_ADDRESS_CMP_FLAGS_WITH_ATTRS, there + + Note that with @cmp_flags #NM_IP_ADDRESS_CMP_FLAGS_WITH_ATTRS, there is no total order for comparing GVariant. That means, if the two addresses only differ by their attributes, the sort order is undefined and the return value only indicates equality. - + - 0 if the two objects have the same values (according to their flags) + 0 if the two objects have the same values (according to their flags) or a integer indicating the compare order. - the #NMIPAddress + the #NMIPAddress - the #NMIPAddress to compare @address to. + the #NMIPAddress to compare @address to. - the #NMIPAddressCmpFlags that indicate what to compare. + the #NMIPAddressCmpFlags that indicate what to compare. - Creates a copy of @address - + Creates a copy of @address + - a copy of @address + a copy of @address This API was part of public headers before 1.32.0 but was erroneously not exported in the ABI. It is thus only @@ -22399,395 +12867,253 @@ usable since 1.32.0. - the #NMIPAddress + the #NMIPAddress - Determines if two #NMIPAddress objects contain the same address and prefix + Determines if two #NMIPAddress objects contain the same address and prefix (attributes are not compared). - + - %TRUE if the objects contain the same values, %FALSE if they do not. + %TRUE if the objects contain the same values, %FALSE if they do not. - the #NMIPAddress + the #NMIPAddress - the #NMIPAddress to compare @address to. + the #NMIPAddress to compare @address to. - Gets the IP address property of this address object. - - - the IP address + Gets the IP address property of this address object. + + + the IP address - the #NMIPAddress + the #NMIPAddress - - Gets the IP address property of this address object. + + Gets the IP address property of this address object. @addr must point to a buffer that is the correct size for @address's family. - + - the #NMIPAddress + the #NMIPAddress - - a buffer in which to store the address in binary format. + + a buffer in which to store the address in binary format. - Gets the value of the attribute with name @name on @address - - - the value of the attribute with name @name on + Gets the value of the attribute with name @name on @address + + + the value of the attribute with name @name on @address, or %NULL if @address has no such attribute. - the #NMIPAddress + the #NMIPAddress - the name of an address attribute + the name of an address attribute - - Gets an array of attribute names defined on @address. - + + Gets an array of attribute names defined on @address. + - a %NULL-terminated array of attribute names, + a %NULL-terminated array of attribute names, - the #NMIPAddress + the #NMIPAddress - Gets the IP address family (eg, AF_INET) property of this address + Gets the IP address family (eg, AF_INET) property of this address object. - + - the IP address family + the IP address family - the #NMIPAddress + the #NMIPAddress - Gets the IP address prefix (ie "24" or "30" etc) property of this address + Gets the IP address prefix (ie "24" or "30" etc) property of this address object. - + - the IP address prefix + the IP address prefix - the #NMIPAddress + the #NMIPAddress - Increases the reference count of the object. - + Increases the reference count of the object. + - the #NMIPAddress + the #NMIPAddress - Sets the IP address property of this address object. + Sets the IP address property of this address object. @addr must be a valid address of @address's family. If you aren't sure you have a valid address, use nm_utils_ipaddr_valid() to check it. - + - the #NMIPAddress + the #NMIPAddress - the IP address, as a string + the IP address, as a string - - Sets the IP address property of this address object. + + Sets the IP address property of this address object. @addr must point to a buffer that is the correct size for @address's family. - + - the #NMIPAddress + the #NMIPAddress - - the address, in binary format + + the address, in binary format - Sets or clears the named attribute on @address to the given value. - + Sets or clears the named attribute on @address to the given value. + - the #NMIPAddress + the #NMIPAddress - the name of an address attribute + the name of an address attribute - - the value + + the value - Sets the IP address prefix property of this address object. - + Sets the IP address prefix property of this address object. + - the #NMIPAddress + the #NMIPAddress - the IP address prefix + the IP address prefix - Decreases the reference count of the object. If the reference count + Decreases the reference count of the object. If the reference count reaches zero, the object will be destroyed. - + - the #NMIPAddress + the #NMIPAddress - - Compare flags for nm_ip_address_cmp_full(). - - no flags. - - - when comparing two addresses, + + Compare flags for nm_ip_address_cmp_full(). + + no flags. + + + when comparing two addresses, also consider their attributes. Warning: note that attributes are GVariants and they don't have a total order. In other words, if the address differs only by their attributes, the returned compare order is not total. In that case, the return value merely indicates equality (zero) or inequality. - - - - Gets the IP addresses (containing the address, prefix, and gateway). - - - the #GPtrArray + + + + Gets the IP addresses (containing the address, prefix, and gateway). + + + the #GPtrArray containing #NMIPAddress<!-- -->es. This is the internal copy used by the configuration and must not be modified. The library never modifies the returned array and thus it is safe for callers to reference and keep using it. @@ -22797,25 +13123,16 @@ returned array and thus it is safe for callers to reference and keep using it. - a #NMIPConfig + a #NMIPConfig - - Gets the domain names. - + + Gets the domain names. + - the array of domains. + the array of domains. (This is never %NULL, though it may be 0-length). @@ -22823,97 +13140,61 @@ returned array and thus it is safe for callers to reference and keep using it. - a #NMIPConfig + a #NMIPConfig - - Gets the IP address family - + + Gets the IP address family + - the IP address family; either <literal>AF_INET</literal> or + the IP address family; either <literal>AF_INET</literal> or <literal>AF_INET6</literal> - a #NMIPConfig + a #NMIPConfig - - Gets the IP gateway address. - + + Gets the IP gateway address. + - the IP address of the gateway. + the IP address of the gateway. - a #NMIPConfig + a #NMIPConfig - - Gets the domain name servers (DNS). - + + Gets the domain name servers (DNS). + - the array of nameserver IP addresses + the array of nameserver IP addresses - a #NMIPConfig + a #NMIPConfig - - Gets the routes. - + + Gets the routes. + - the #GPtrArray containing + the #GPtrArray containing #NMIPRoute<!-- -->s. This is the internal copy used by the configuration, and must not be modified. The library never modifies the returned array and thus it is safe for callers to reference and keep using it. @@ -22923,25 +13204,16 @@ safe for callers to reference and keep using it. - a #NMIPConfig + a #NMIPConfig - - Gets the DNS searches. - + + Gets the DNS searches. + - the array of DNS search strings. + the array of DNS search strings. (This is never %NULL, though it may be 0-length). @@ -22949,25 +13221,16 @@ safe for callers to reference and keep using it. - a #NMIPConfig + a #NMIPConfig - - Gets the Windows Internet Name Service servers (WINS). - + + Gets the Windows Internet Name Service servers (WINS). + - the arry of WINS server IP address strings. + the arry of WINS server IP address strings. (This is never %NULL, though it may be 0-length.) @@ -22975,220 +13238,131 @@ safe for callers to reference and keep using it. - a #NMIPConfig + a #NMIPConfig - - A #GPtrArray containing the addresses (#NMIPAddress) of the configuration. + + A #GPtrArray containing the addresses (#NMIPAddress) of the configuration. - The array containing domain strings of the configuration. + The array containing domain strings of the configuration. - - The IP address family of the configuration; either + + The IP address family of the configuration; either <literal>AF_INET</literal> or <literal>AF_INET6</literal>. - - The IP gateway address of the configuration as string. + + The IP gateway address of the configuration as string. - - The array containing name server IP addresses of the configuration. + + The array containing name server IP addresses of the configuration. - A #GPtrArray containing the routes (#NMIPRoute) of the configuration. + A #GPtrArray containing the routes (#NMIPRoute) of the configuration. - - The array containing DNS search strings of the configuration. + + The array containing DNS search strings of the configuration. - - The array containing WINS server IP addresses of the configuration. + + The array containing WINS server IP addresses of the configuration. (This will always be empty for IPv6 configurations.) - - + + - - + + - Creates a new #NMIPRoute object. - + Creates a new #NMIPRoute object. + - the new #NMIPRoute object, or %NULL on error + the new #NMIPRoute object, or %NULL on error - the IP address family (<literal>AF_INET</literal> or + the IP address family (<literal>AF_INET</literal> or <literal>AF_INET6</literal>) - the IP address of the route's destination + the IP address of the route's destination - the address prefix length + the address prefix length - - the IP address of the next hop (or %NULL) + + the IP address of the next hop (or %NULL) - the route metric (or -1 for "default") + the route metric (or -1 for "default") - - Creates a new #NMIPRoute object. @dest and @next_hop (if non-%NULL) must + + Creates a new #NMIPRoute object. @dest and @next_hop (if non-%NULL) must point to buffers of the correct size for @family. - + - the new #NMIPRoute object, or %NULL on error + the new #NMIPRoute object, or %NULL on error - the IP address family (<literal>AF_INET</literal> or + the IP address family (<literal>AF_INET</literal> or <literal>AF_INET6</literal>) - - the IP address of the route's destination + + the IP address of the route's destination - the address prefix length + the address prefix length - - the IP address of the next hop (or %NULL) + + the IP address of the next hop (or %NULL) - the route metric (or -1 for "default") + the route metric (or -1 for "default") - Creates a copy of @route - + Creates a copy of @route + - a copy of @route + a copy of @route This API was part of public headers before 1.32.0 but was erroneously not exported in the ABI. It is thus only @@ -23197,73 +13371,49 @@ usable since 1.32.0. - the #NMIPRoute + the #NMIPRoute - Determines if two #NMIPRoute objects contain the same destination, prefix, + Determines if two #NMIPRoute objects contain the same destination, prefix, next hop, and metric. (Attributes are not compared.) - + - %TRUE if the objects contain the same values, %FALSE if they do not. + %TRUE if the objects contain the same values, %FALSE if they do not. - the #NMIPRoute + the #NMIPRoute - the #NMIPRoute to compare @route to. + the #NMIPRoute to compare @route to. - - Determines if two #NMIPRoute objects contain the same destination, prefix, + + Determines if two #NMIPRoute objects contain the same destination, prefix, next hop, and metric. - + - %TRUE if the objects contain the same values, %FALSE if they do not. + %TRUE if the objects contain the same values, %FALSE if they do not. - the #NMIPRoute + the #NMIPRoute - the #NMIPRoute to compare @route to. + the #NMIPRoute to compare @route to. - tune how to compare attributes. Currently, only + tune how to compare attributes. Currently, only NM_IP_ROUTE_EQUAL_CMP_FLAGS_NONE (0) and NM_IP_ROUTE_EQUAL_CMP_FLAGS_WITH_ATTRS (1) is supported. @@ -23271,1004 +13421,653 @@ next hop, and metric. - Gets the value of the attribute with name @name on @route - - - the value of the attribute with name @name on + Gets the value of the attribute with name @name on @route + + + the value of the attribute with name @name on @route, or %NULL if @route has no such attribute. - the #NMIPRoute + the #NMIPRoute - the name of an route attribute + the name of an route attribute - - Gets an array of attribute names defined on @route. - + + Gets an array of attribute names defined on @route. + - a %NULL-terminated array of attribute names + a %NULL-terminated array of attribute names - the #NMIPRoute + the #NMIPRoute - Gets the IP destination address property of this route object. - - - the IP address of the route's destination + Gets the IP destination address property of this route object. + + + the IP address of the route's destination - the #NMIPRoute + the #NMIPRoute - - Gets the destination property of this route object. + + Gets the destination property of this route object. @dest must point to a buffer that is the correct size for @route's family. - + - the #NMIPRoute + the #NMIPRoute - - a buffer in which to store the destination in binary format. + + a buffer in which to store the destination in binary format. - Gets the IP address family (eg, AF_INET) property of this route + Gets the IP address family (eg, AF_INET) property of this route object. - + - the IP address family + the IP address family - the #NMIPRoute + the #NMIPRoute - Gets the route metric property of this route object; lower values + Gets the route metric property of this route object; lower values indicate "better" or more preferred routes; -1 indicates "default" (meaning NetworkManager will set it appropriately). - + - the route metric + the route metric - the #NMIPRoute + the #NMIPRoute - Gets the IP address of the next hop of this route; this will be %NULL if the + Gets the IP address of the next hop of this route; this will be %NULL if the route has no next hop. - + - the IP address of the next hop, or %NULL if this is a device route. + the IP address of the next hop, or %NULL if this is a device route. - the #NMIPRoute + the #NMIPRoute - - Gets the next hop property of this route object. + + Gets the next hop property of this route object. @next_hop must point to a buffer that is the correct size for @route's family. - + - %TRUE if @route has a next hop, %FALSE if not (in which case + %TRUE if @route has a next hop, %FALSE if not (in which case @next_hop will be zeroed out) - the #NMIPRoute + the #NMIPRoute - - a buffer in which to store the next hop in binary format. + + a buffer in which to store the next hop in binary format. - Gets the IP prefix (ie "24" or "30" etc) of this route. - - - the IP prefix + Gets the IP prefix (ie "24" or "30" etc) of this route. + + + the IP prefix - the #NMIPRoute + the #NMIPRoute - Increases the reference count of the object. - + Increases the reference count of the object. + - the #NMIPRoute + the #NMIPRoute - Sets the named attribute on @route to the given value. - + Sets the named attribute on @route to the given value. + - the #NMIPRoute + the #NMIPRoute - the name of a route attribute + the name of a route attribute - - the value + + the value - Sets the destination property of this route object. + Sets the destination property of this route object. @dest must be a valid address of @route's family. If you aren't sure you have a valid address, use nm_inet_is_valid() to check it. - + - the #NMIPRoute + the #NMIPRoute - the route's destination, as a string + the route's destination, as a string - - Sets the destination property of this route object. + + Sets the destination property of this route object. @dest must point to a buffer that is the correct size for @route's family. - + - the #NMIPRoute + the #NMIPRoute - - the route's destination, in binary format + + the route's destination, in binary format - Sets the metric property of this route object. - + Sets the metric property of this route object. + - the #NMIPRoute + the #NMIPRoute - the route metric (or -1 for "default") + the route metric (or -1 for "default") - Sets the next-hop property of this route object. + Sets the next-hop property of this route object. @next_hop (if non-%NULL) must be a valid address of @route's family. If you aren't sure you have a valid address, use nm_utils_ipaddr_valid() to check it. - + - the #NMIPRoute + the #NMIPRoute - - the route's next hop, as a string + + the route's next hop, as a string - - Sets the destination property of this route object. + + Sets the destination property of this route object. @next_hop (if non-%NULL) must point to a buffer that is the correct size for @route's family. - + - the #NMIPRoute + the #NMIPRoute - - the route's next hop, in binary format + + the route's next hop, in binary format - Sets the prefix property of this route object. - + Sets the prefix property of this route object. + - the #NMIPRoute + the #NMIPRoute - the route prefix + the route prefix - Decreases the reference count of the object. If the reference count + Decreases the reference count of the object. If the reference count reaches zero, the object will be destroyed. - + - the #NMIPRoute + the #NMIPRoute - - Validates a route attribute, i.e. checks that the attribute is a known one + + Validates a route attribute, i.e. checks that the attribute is a known one and the value is of the correct type and well-formed. - + - %TRUE if the attribute is valid, %FALSE otherwise + %TRUE if the attribute is valid, %FALSE otherwise - the attribute name + the attribute name - the attribute value + the attribute value - IP address family of the route + IP address family of the route - - on return, whether the attribute name is a known one + + on return, whether the attribute name is a known one - - - - the specifiers for route attributes - + + + + the specifiers for route attributes + - - - - + + + + - a newly created rule instance with the + a newly created rule instance with the provided address family. The instance is unsealed. - the address family of the routing rule. Must be either + the address family of the routing rule. Must be either %AF_INET (2) or %AF_INET6 (10). - + - zero, a positive, or a negative integer to indicate + zero, a positive, or a negative integer to indicate equality or how the arguments compare. - - the #NMIPRoutingRule instance to compare + + the #NMIPRoutingRule instance to compare - - the other #NMIPRoutingRule instance to compare + + the other #NMIPRoutingRule instance to compare - - + + - the set action. + the set action. - the #NMIPRoutingRule instance + the #NMIPRoutingRule instance - - + + - the address family of the rule. Either %AF_INET or %AF_INET6. + the address family of the rule. Either %AF_INET or %AF_INET6. - the #NMIPRoutingRule instance + the #NMIPRoutingRule instance - - + + - the destination port end setting. + the destination port end setting. - the #NMIPRoutingRule instance + the #NMIPRoutingRule instance - - + + - the destination port start setting. + the destination port start setting. - the #NMIPRoutingRule instance + the #NMIPRoutingRule instance - - + + - the set from/src parameter or + the set from/src parameter or %NULL, if no value is set. - the #NMIPRoutingRule instance + the #NMIPRoutingRule instance - - + + - the set prefix length for the from/src parameter. + the set prefix length for the from/src parameter. - the #NMIPRoutingRule instance + the #NMIPRoutingRule instance - - + + - the fwmark setting. + the fwmark setting. - the #NMIPRoutingRule instance + the #NMIPRoutingRule instance - - + + - the fwmask setting. + the fwmask setting. - the #NMIPRoutingRule instance + the #NMIPRoutingRule instance - - + + - the set iifname or %NULL if unset. + the set iifname or %NULL if unset. - the #NMIPRoutingRule instance. + the #NMIPRoutingRule instance. - - + + - the "invert" setting of the rule. + the "invert" setting of the rule. - the #NMIPRoutingRule instance + the #NMIPRoutingRule instance - - + + - the ipproto of the rule. + the ipproto of the rule. - the #NMIPRoutingRule instance + the #NMIPRoutingRule instance - - + + - the set oifname or %NULL if unset. + the set oifname or %NULL if unset. - the #NMIPRoutingRule instance. + the #NMIPRoutingRule instance. - - + + - the priority. A valid priority is in the range from + the priority. A valid priority is in the range from 0 to %G_MAXUINT32. If unset, -1 is returned. - the #NMIPRoutingRule instance + the #NMIPRoutingRule instance - - + + - the source port end setting. + the source port end setting. - the #NMIPRoutingRule instance + the #NMIPRoutingRule instance - - + + - the source port start setting. + the source port start setting. - the #NMIPRoutingRule instance + the #NMIPRoutingRule instance - - + + - the suppress_prefixlength of the rule. -1 means that the value is unset. + the suppress_prefixlength of the rule. -1 means that the value is unset. - the #NMIPRoutingRule instance + the #NMIPRoutingRule instance - - + + - the set table. + the set table. - the #NMIPRoutingRule instance + the #NMIPRoutingRule instance - - + + - the set to/dst parameter or + the set to/dst parameter or %NULL, if no value is set. - the #NMIPRoutingRule instance + the #NMIPRoutingRule instance - - + + - the set prefix length for the to/dst parameter. + the set prefix length for the to/dst parameter. - the #NMIPRoutingRule instance + the #NMIPRoutingRule instance - - + + - the tos of the rule. + the tos of the rule. - the #NMIPRoutingRule instance + the #NMIPRoutingRule instance - - + + - %TRUE if a uid range is set. + %TRUE if a uid range is set. This API was wrongly introduced in the header files for 1.32, but the symbols were not exported. The API only works since 1.34 and newer. @@ -24276,599 +14075,391 @@ symbols were not exported. The API only works since 1.34 and newer. - the #NMIPRoutingRule instance + the #NMIPRoutingRule instance - - returns the start of the range + + returns the start of the range or 0 if the range is not set. - - returns the end of the range + + returns the end of the range or 0 if the range is not set. - - + + - whether @self is sealed. Once sealed, an instance + whether @self is sealed. Once sealed, an instance cannot be modified nor unsealed. - the #NMIPRoutingRule instance + the #NMIPRoutingRule instance - - Since 1.42, ref-counting of #NMIPRoutingRule is thread-safe. - + + Since 1.42, ref-counting of #NMIPRoutingRule is thread-safe. + - a newly created rule instance with + a newly created rule instance with the same settings as @rule. Note that the instance will always be unsealed. - the #NMIPRoutingRule to clone. + the #NMIPRoutingRule to clone. - Increases the reference count of the instance. - + Increases the reference count of the instance. + - the @self argument with incremented + the @self argument with incremented reference count. Since 1.42, ref-counting of #NMIPRoutingRule is thread-safe. - - the #NMIPRoutingRule instance + + the #NMIPRoutingRule instance - - Seals the routing rule. Afterwards, the instance can no longer be + + Seals the routing rule. Afterwards, the instance can no longer be modified, and it is a bug to call any of the accessors that would modify the rule. If @self was already sealed, this has no effect. - + - the #NMIPRoutingRule instance + the #NMIPRoutingRule instance - - Note that currently only certain actions are allowed. nm_ip_routing_rule_validate() + + Note that currently only certain actions are allowed. nm_ip_routing_rule_validate() will reject unsupported actions as invalid. - + - the #NMIPRoutingRule instance + the #NMIPRoutingRule instance - the action to set + the action to set - - + + - the #NMIPRoutingRule instance + the #NMIPRoutingRule instance - the start port to set. + the start port to set. - the end port to set. + the end port to set. - - Setting invalid values is accepted, but will later fail + + Setting invalid values is accepted, but will later fail during nm_ip_routing_rule_validate(). - + - the #NMIPRoutingRule instance + the #NMIPRoutingRule instance - - the from/src address to set. + + the from/src address to set. The address family must match. - the corresponding prefix length of the address. + the corresponding prefix length of the address. - - + + - the #NMIPRoutingRule instance + the #NMIPRoutingRule instance - the fwmark + the fwmark - the fwmask + the fwmask - - The name supports C backslash escaping for non-UTF-8 characters. + + The name supports C backslash escaping for non-UTF-8 characters. Note that nm_ip_routing_rule_from_string() too uses backslash escaping when tokenizing the words by whitespace. So, in string representation you'd get double backslashes. - + - the #NMIPRoutingRule instance. + the #NMIPRoutingRule instance. - - the iifname to set or %NULL to unset. + + the iifname to set or %NULL to unset. - - + + - the #NMIPRoutingRule instance + the #NMIPRoutingRule instance - the new value to set + the new value to set - - + + - the #NMIPRoutingRule instance + the #NMIPRoutingRule instance - the ipproto to set + the ipproto to set - - The name supports C backslash escaping for non-UTF-8 characters. + + The name supports C backslash escaping for non-UTF-8 characters. Note that nm_ip_routing_rule_from_string() too uses backslash escaping when tokenizing the words by whitespace. So, in string representation you'd get double backslashes. - + - the #NMIPRoutingRule instance. + the #NMIPRoutingRule instance. - - the oifname to set or %NULL to unset. + + the oifname to set or %NULL to unset. - - A valid priority ranges from 0 to %G_MAXUINT32. "-1" is also allowed + + A valid priority ranges from 0 to %G_MAXUINT32. "-1" is also allowed to reset the priority. It is a bug calling this function with any other value. - + - the #NMIPRoutingRule instance + the #NMIPRoutingRule instance - the priority to set + the priority to set - - + + - the #NMIPRoutingRule instance + the #NMIPRoutingRule instance - the start port to set. + the start port to set. - the end port to set. + the end port to set. - - + + - the #NMIPRoutingRule instance + the #NMIPRoutingRule instance - the suppress_prefixlength to set. The value -1 means + the suppress_prefixlength to set. The value -1 means unset. - - + + - the #NMIPRoutingRule instance + the #NMIPRoutingRule instance - the table to set + the table to set - - Setting invalid values is accepted, but will later fail + + Setting invalid values is accepted, but will later fail during nm_ip_routing_rule_validate(). - + - the #NMIPRoutingRule instance + the #NMIPRoutingRule instance - - the to/dst address to set. + + the to/dst address to set. The address family must match. - the corresponding prefix length of the address. + the corresponding prefix length of the address. If @to is %NULL, this valid is ignored. - - + + - the #NMIPRoutingRule instance + the #NMIPRoutingRule instance - the tos to set + the tos to set - - For a valid range, start must be less or equal to end. + + For a valid range, start must be less or equal to end. If set to an invalid range, the range gets unset. This API was wrongly introduced in the header files for 1.32, but the symbols were not exported. The API only works since 1.34 and newer. - + - the #NMIPRoutingRule instance + the #NMIPRoutingRule instance - the uid_range start to set. + the uid_range start to set. - the uid_range start to set. + the uid_range start to set. - - + + - the string representation or %NULL on error. + the string representation or %NULL on error. - the #NMIPRoutingRule instance to convert to string. + the #NMIPRoutingRule instance to convert to string. - #NMIPRoutingRuleAsStringFlags for controlling the + #NMIPRoutingRuleAsStringFlags for controlling the string conversion. - - - - extra arguments for controlling the string + + + + extra arguments for controlling the string conversion. Currently, not extra arguments are supported. @@ -24877,87 +14468,53 @@ symbols were not exported. The API only works since 1.34 and newer. - - Decreases the reference count of the instance and destroys + + Decreases the reference count of the instance and destroys the instance if the reference count reaches zero. Since 1.42, ref-counting of #NMIPRoutingRule is thread-safe. - + - - the #NMIPRoutingRule instance + + the #NMIPRoutingRule instance - - + + - %TRUE if the rule validates. + %TRUE if the rule validates. - the #NMIPRoutingRule instance to validate + the #NMIPRoutingRule instance to validate - - + + - the new #NMIPRoutingRule or %NULL on error. + the new #NMIPRoutingRule or %NULL on error. - the string representation to convert to an #NMIPRoutingRule + the string representation to convert to an #NMIPRoutingRule - #NMIPRoutingRuleAsStringFlags for controlling the + #NMIPRoutingRuleAsStringFlags for controlling the string conversion. - - - - extra arguments for controlling the string + + + + extra arguments for controlling the string conversion. Currently, not extra arguments are supported. @@ -24967,2649 +14524,1747 @@ Since 1.42, ref-counting of #NMIPRoutingRule is thread-safe. - - - no flags selected. - - - whether to allow parsing + + + no flags selected. + + + whether to allow parsing IPv4 addresses. - - whether to allow parsing + + whether to allow parsing IPv6 addresses. If both @NM_IP_ROUTING_RULE_AS_STRING_FLAGS_AF_INET and @NM_IP_ROUTING_RULE_AS_STRING_FLAGS_AF_INET6 are unset, it's the same as setting them both. - - if set, ensure that the + + if set, ensure that the rule verfies or fail. - - IP tunnel flags. - - no flag - - - don't add encapsulation limit + + IP tunnel flags. + + no flag + + + don't add encapsulation limit if one isn't present in inner packet - - copy the traffic class field + + copy the traffic class field from the inner packet - - copy the flowlabel from the + + copy the flowlabel from the inner packet - - used for Mobile IPv6 - - - copy DSCP from the outer packet - - - copy fwmark from inner packet + + used for Mobile IPv6 + + + copy DSCP from the outer packet + + + copy fwmark from inner packet - - The tunneling mode. - - Unknown/unset tunnel mode - - - IP in IP tunnel - - - GRE tunnel - - - SIT tunnel - - - ISATAP tunnel - - - VTI tunnel - - - IPv6 in IPv6 tunnel - - - IPv4 in IPv6 tunnel - - - IPv6 GRE tunnel - - - IPv6 VTI tunnel - - - GRETAP tunnel - - - IPv6 GRETAP tunnel + + The tunneling mode. + + Unknown/unset tunnel mode + + + IP in IP tunnel + + + GRE tunnel + + + SIT tunnel + + + ISATAP tunnel + + + VTI tunnel + + + IPv6 in IPv6 tunnel + + + IPv4 in IPv6 tunnel + + + IPv6 GRE tunnel + + + IPv6 VTI tunnel + + + GRETAP tunnel + + + IPv6 GRETAP tunnel - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - Opaque type with parameters for the callback. The actual content + + Opaque type with parameters for the callback. The actual content depends on the %NMKeyfileHandlerType. - - Set the error for the handler. This lets the operation fail + + Set the error for the handler. This lets the operation fail with the provided error. You may only set the error once. @src must be non-%NULL. @@ -27623,25 +16278,17 @@ after calling this function on it. - the #NMKeyfileHandlerData + the #NMKeyfileHandlerData - error to move into the return location + error to move into the return location - - Get context information of the current event. This function can be called + + Get context information of the current event. This function can be called on all events, but the context information may be unset. @@ -27649,263 +16296,125 @@ on all events, but the context information may be unset. - the #NMKeyfileHandlerData for any event. - - - - if the event + the #NMKeyfileHandlerData for any event. + + + + if the event is in the context of a keyfile group, the group name. - - if the event + + if the event is in the context of a keyfile value, the key name. - - if the event + + if the event happens while handling a particular #NMSetting instance. - - the + + the property name if applicable. - + - the #NMKeyfileHandlerData for a %NM_KEYFILE_HANDLER_TYPE_WARN + the #NMKeyfileHandlerData for a %NM_KEYFILE_HANDLER_TYPE_WARN event. - - - - the warning message. + + + + the warning message. - - the #NMKeyfileWarnSeverity warning severity. + + the #NMKeyfileWarnSeverity warning severity. - - Flags for customizing nm_keyfile_read() and nm_keyfile_write(). + + Flags for customizing nm_keyfile_read() and nm_keyfile_write(). Currently no flags are implemented. - - no flags set. + + no flags set. - - The type of the callback for %NMKeyfileReadHandler and %NMKeyfileWriteHandler. + + The type of the callback for %NMKeyfileReadHandler and %NMKeyfileWriteHandler. Depending on the type, you can interpret %NMKeyfileHandlerData. - - a warning. - - - for handling certificates while writing + + a warning. + + + for handling certificates while writing a connection to keyfile. - - Hook to nm_keyfile_read(). + + Hook to nm_keyfile_read(). The callee may abort the reading by setting an error via nm_keyfile_handler_data_fail_with_error(). - the callee should return TRUE, if the event was handled and/or recognized. + the callee should return TRUE, if the event was handled and/or recognized. Otherwise, a default action will be performed that depends on the @type. For %NM_KEYFILE_HANDLER_TYPE_WARN type, the default action is doing nothing. - the #GKeyFile that is currently read + the #GKeyFile that is currently read - the #NMConnection that is being constructed. + the #NMConnection that is being constructed. - the %NMKeyfileHandlerType that indicates which type + the %NMKeyfileHandlerType that indicates which type the request is. - the #NMKeyfileHandlerData. What you can do with it + the #NMKeyfileHandlerData. What you can do with it depends on the @handler_type. - - the user-data argument to nm_keyfile_read(). + + the user-data argument to nm_keyfile_read(). - - The severity level of %NM_KEYFILE_HANDLER_TYPE_WARN events. - - debug message - - - info message - - - info message about a missing file - - - a warning message + + The severity level of %NM_KEYFILE_HANDLER_TYPE_WARN events. + + debug message + + + info message + + + info message about a missing file + + + a warning message - - This is a hook to tweak the serialization. + + This is a hook to tweak the serialization. Handler for certain properties or events that are not entirely contained within the keyfile or that might be serialized differently. The @type and @@ -27917,234 +16426,138 @@ The callee may call nm_keyfile_handler_data_fail_with_error() to abort the writing with error. - the callee should return %TRUE if the event was handled. If the + the callee should return %TRUE if the event was handled. If the event was unhandled, a default action will be performed that depends on the @handler_type. - the #NMConnection that is currently written. + the #NMConnection that is currently written. - the #GKeyFile that is currently constructed. + the #GKeyFile that is currently constructed. - the %NMKeyfileHandlerType that indicates which type + the %NMKeyfileHandlerType that indicates which type the request is. - the #NMKeyfileHandlerData. What you can do with it + the #NMKeyfileHandlerData. What you can do with it depends on the @handler_type. - - the user-data argument to nm_keyfile_read(). + + the user-data argument to nm_keyfile_read(). - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - Supported attributes are: + + Supported attributes are: - #NM_LLDP_ATTR_CHASSIS_ID_TYPE (type: 'u') - #NM_LLDP_ATTR_CHASSIS_ID (type: 's') @@ -28201,12 +16614,8 @@ the writing with error. - #NM_LLDP_ATTR_SYSTEM_DESCRIPTION (type: 's') - #NM_LLDP_ATTR_SYSTEM_NAME (type: 's') - - Creates a new #NMLldpNeighbor object. + + Creates a new #NMLldpNeighbor object. Note that #NMLldpNeighbor has no public API for mutating an instance. Also, libnm will not internally mutate a @@ -28216,392 +16625,212 @@ Since 1.32, ref-counting of #NMLldpNeighbor is thread-safe. This function is not useful, as there is no public API to actually modify the (empty) instance. - + - the new #NMLldpNeighbor object. + the new #NMLldpNeighbor object. - - Gets an array of attribute names available for @neighbor. - + + Gets an array of attribute names available for @neighbor. + - a %NULL-terminated array of attribute names. + a %NULL-terminated array of attribute names. - the #NMLldpNeighbor + the #NMLldpNeighbor - - Gets the string value of attribute with name @name on @neighbor - + + Gets the string value of attribute with name @name on @neighbor + - %TRUE if a string attribute with name @name was found, %FALSE otherwise + %TRUE if a string attribute with name @name was found, %FALSE otherwise - the #NMLldpNeighbor + the #NMLldpNeighbor - the attribute name + the attribute name - - on return, the + + on return, the attribute value - - Get the type of an attribute. - + + Get the type of an attribute. + - the #GVariantType of the attribute with name @name + the #GVariantType of the attribute with name @name - the #NMLldpNeighbor + the #NMLldpNeighbor - the attribute name + the attribute name - - Gets the uint32 value of attribute with name @name on @neighbor - + + Gets the uint32 value of attribute with name @name on @neighbor + - %TRUE if a uint32 attribute with name @name was found, %FALSE otherwise + %TRUE if a uint32 attribute with name @name was found, %FALSE otherwise - the #NMLldpNeighbor + the #NMLldpNeighbor - the attribute name + the attribute name - - on return, the attribute value + + on return, the attribute value - - Gets the value (as a GVariant) of attribute with name @name on @neighbor - + + Gets the value (as a GVariant) of attribute with name @name on @neighbor + - the value or %NULL if the attribute with @name was + the value or %NULL if the attribute with @name was not found. - the #NMLldpNeighbor + the #NMLldpNeighbor - the attribute name + the attribute name - Increases the reference count of the object. + Increases the reference count of the object. Since 1.32, ref-counting of #NMLldpNeighbor is thread-safe. - + - the #NMLldpNeighbor + the #NMLldpNeighbor - Decreases the reference count of the object. If the reference count + Decreases the reference count of the object. If the reference count reaches zero, the object will be destroyed. Since 1.32, ref-counting of #NMLldpNeighbor is thread-safe. - + - the #NMLldpNeighbor + the #NMLldpNeighbor - Evaluates to the major version number of NetworkManager which this source + Evaluates to the major version number of NetworkManager which this source is compiled against. - + - Evaluates to the micro version number of NetworkManager which this source + Evaluates to the micro version number of NetworkManager which this source compiled against. - + - Evaluates to the minor version number of NetworkManager which this source + Evaluates to the minor version number of NetworkManager which this source is compiled against. - + - - Errors related to the main "network management" interface of NetworkManager. + + Errors related to the main "network management" interface of NetworkManager. These may be returned from #NMClient methods that invoke D-Bus operations on the "org.freedesktop.NetworkManager" interface, and correspond to D-Bus errors in that namespace. - - unknown or unclassified error - - - Permission denied. - - - The requested connection is not known. - - - The requested device is not known. - - - The requested connection cannot be + + unknown or unclassified error + + + Permission denied. + + + The requested connection is not known. + + + The requested device is not known. + + + The requested connection cannot be activated at this time. - - The request could not be completed + + The request could not be completed because a required connection is not active. - - The connection to be activated was + + The connection to be activated was already active on another device. - - An activation request failed due to a + + An activation request failed due to a dependency being unavailable. - - The manager is already in the requested + + The manager is already in the requested sleep/wake state. - - The network is already + + The network is already enabled/disabled. - - Unknown log level in SetLogging - - - Unknown log domain in SetLogging - - - Invalid arguments for D-Bus request - - - A plug-in was needed to complete the + + Unknown log level in SetLogging + + + Unknown log domain in SetLogging + + + Invalid arguments for D-Bus request + + + A plug-in was needed to complete the activation but is not available. @@ -28610,57 +16839,27 @@ errors in that namespace. - - Flags for the manager Reload() call. - - reload the NetworkManager.conf configuration + + Flags for the manager Reload() call. + + reload the NetworkManager.conf configuration from disk. Note that this does not include connections, which can be reloaded via Setting's ReloadConnections(). - - update DNS configuration, which usually + + update DNS configuration, which usually involves writing /etc/resolv.conf anew. - - means to restart the DNS plugin. This + + means to restart the DNS plugin. This is for example useful when using dnsmasq plugin, which uses additional configuration in /etc/NetworkManager/dnsmasq.d. If you edit those files, you can restart the DNS plugin. This action shortly interrupts name resolution. - - The NMMetered enum has two different purposes: one is to configure + + The NMMetered enum has two different purposes: one is to configure "connection.metered" setting of a connection profile in #NMSettingConnection, and the other is to express the actual metered state of the #NMDevice at a given moment. @@ -28686,83 +16885,31 @@ routing is configured. In general, the global metered state tries to express whe the traffic is likely metered, but since that depends on the traffic itself, there is not one answer in all cases. Hence, an application may want to consider the per-device's metered states. - - The metered status is unknown - - - Metered, the value was explicitly configured - - - Not metered, the value was explicitly configured - - - Metered, the value was guessed - - - Not metered, the value was guessed + + The metered status is unknown + + + Metered, the value was explicitly configured + + + Not metered, the value was explicitly configured + + + Metered, the value was guessed + + + Not metered, the value was guessed - - - The default, meaning that no MPTCP flags are set. - - - don't configure MPTCP endpoints on the device. - - - MPTCP is enabled and endpoints will be configured. + + + The default, meaning that no MPTCP flags are set. + + + don't configure MPTCP endpoints on the device. + + + MPTCP is enabled and endpoints will be configured. This flag is implied if any of the other flags indicate that MPTCP is enabled and therefore in most cases unnecessary. Note that if "/proc/sys/net/mptcp/enabled" sysctl is disabled, MPTCP @@ -28773,75 +16920,39 @@ the per-device's metered states. with the "also-without-default-route" and this affects endpoints per address family. - - even if MPTCP handling is enabled + + even if MPTCP handling is enabled via the "enabled" flag, it is ignored unless "/proc/sys/net/mptcp/enabled" is on. With this flag, MPTCP endpoints will be configured regardless of the sysctl setting. - - even if MPTCP handling is enabled + + even if MPTCP handling is enabled via the "enabled" flag, it is ignored per-address family unless NetworkManager configures a default route. With this flag, NetworkManager will also configure MPTCP endpoints if there is no default route. This takes effect per-address family. - - Flag for the MPTCP endpoint. The endpoint will be + + Flag for the MPTCP endpoint. The endpoint will be announced/signaled to each peer via an MPTCP ADD_ADDR sub-option. - - Flag for the MPTCP endpoint. If additional subflow creation + + Flag for the MPTCP endpoint. If additional subflow creation is allowed by the MPTCP limits, the MPTCP path manager will try to create an additional subflow using this endpoint as the source address after the MPTCP connection is established. - - Flag for the MPTCP endpoint. If this is a subflow endpoint, the + + Flag for the MPTCP endpoint. If this is a subflow endpoint, the subflows created using this endpoint will have the backup flag set during the connection process. This flag instructs the peer to only send data on a given subflow when all non-backup subflows are unavailable. This does not affect outgoing data, where subflow priority is determined by the backup/non-backup flag received from the peer - - Flag for the MPTCP endpoint. If this is a subflow endpoint and additional + + Flag for the MPTCP endpoint. If this is a subflow endpoint and additional subflow creation is allowed by the MPTCP limits, the MPTCP path manager will try to create an additional subflow for each known peer address, using this endpoint as the source address. This will occur after the MPTCP connection is established. If the peer did not announce @@ -28857,9 +16968,7 @@ the per-device's metered states. - + @@ -28870,9 +16979,7 @@ the per-device's metered states. - + @@ -28883,54 +16990,32 @@ the per-device's metered states. - + - - Returns the #NMClient instance in which object is cached. + + Returns the #NMClient instance in which object is cached. Also, if the object got removed from the client cached, this returns %NULL. So it can be used to check whether the object is still alive. - the #NMClient cache in which the + the #NMClient cache in which the object can be found, or %NULL if the object is no longer cached. - a #NMObject + a #NMObject - - Gets the DBus path of the #NMObject. + + Gets the DBus path of the #NMObject. - the object's path. This is the internal string used by the + the object's path. This is the internal string used by the object, and must not be modified. Note that the D-Bus path of an NMObject never changes, even @@ -28940,20 +17025,13 @@ whether the object is still alive/cached, check nm_object_get_client(). - a #NMObject + a #NMObject - - The NMClient instance as returned by nm_object_get_client(). + + The NMClient instance as returned by nm_object_get_client(). When an NMObject gets removed from the NMClient cache, the NMObject:path property stays unchanged, but this client @@ -28961,13 +17039,8 @@ instance gets reset to %NULL. You can use this property to track removal of the object from the cache. - - The D-Bus object path. + + The D-Bus object path. The D-Bus path of an object instance never changes, even if the object gets removed from the cache. To see whether the object is still in the @@ -28975,279 +17048,168 @@ cache, check NMObject:client. - + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - Flags related to radio interfaces. - - an alias for numeric zero, no flags set. - - - A Wireless LAN device or rfkill switch + + + + + + + + + + + + + + + + + + Flags related to radio interfaces. + + an alias for numeric zero, no flags set. + + + A Wireless LAN device or rfkill switch is detected in the system. - - A Wireless WAN device or rfkill switch + + A Wireless WAN device or rfkill switch is detected in the system. - + - Creates a new #NMRange object for the given range. Setting @end + Creates a new #NMRange object for the given range. Setting @end equal to @start creates a single-element range. - the new #NMRange object. + the new #NMRange object. - the first element of the range + the first element of the range - the last element of the range, must be greater than or equal + the last element of the range, must be greater than or equal to @start. - Compare two ranges. + Compare two ranges. - zero if the two instances are equivalent or + zero if the two instances are equivalent or a non-zero integer otherwise. This defines a total ordering over the ranges. - a #NMRange + a #NMRange - another #NMRange + another #NMRange - - Gets the start and end values for the range. + + Gets the start and end values for the range. - %TRUE if the range contains more than one + %TRUE if the range contains more than one element, %FALSE otherwise. - the #NMRange + the #NMRange - - location to store the start value + + location to store the start value - - location to store the end value + + location to store the end value - Increases the reference count of the object. + Increases the reference count of the object. This is thread-safe. - the input argument @range object. + the input argument @range object. - the #NMRange + the #NMRange - Convert a %NMRange to a string. + Convert a %NMRange to a string. - a string representing the range. + a string representing the range. - the %NMRange + the %NMRange - Decreases the reference count of the object. If the reference count + Decreases the reference count of the object. If the reference count reaches zero the object will be destroyed. This is thread-safe. @@ -29256,345 +17218,199 @@ This is thread-safe. - the #NMRange + the #NMRange - - Parses the string representation of the range to create a %NMRange + + Parses the string representation of the range to create a %NMRange instance. - the %NMRange or %NULL + the %NMRange or %NULL - the string representation of a range + the string representation of a range - - + + - - Send any local changes to the settings and properties of @connection to + + Send any local changes to the settings and properties of @connection to NetworkManager. If @save_to_disk is %TRUE, the updated connection will be saved to disk; if %FALSE, then only the in-memory representation will be changed. Use nm_remote_connection_commit_changes_async() or GDBusConnection. - + - %TRUE on success, %FALSE on error, in which case @error will be set. + %TRUE on success, %FALSE on error, in which case @error will be set. - the #NMRemoteConnection + the #NMRemoteConnection - whether to persist the changes to disk + whether to persist the changes to disk - - a #GCancellable, or %NULL + + a #GCancellable, or %NULL - - Asynchronously sends any local changes to the settings and properties of + + Asynchronously sends any local changes to the settings and properties of @connection to NetworkManager. If @save is %TRUE, the updated connection will be saved to disk; if %FALSE, then only the in-memory representation will be changed. - + - the #NMRemoteConnection + the #NMRemoteConnection - whether to save the changes to persistent storage + whether to save the changes to persistent storage - - a #GCancellable, or %NULL + + a #GCancellable, or %NULL - - callback to be called when the commit operation completes + + callback to be called when the commit operation completes - - caller-specific data passed to @callback + + caller-specific data passed to @callback - - Gets the result of a call to nm_remote_connection_commit_changes_async(). - + + Gets the result of a call to nm_remote_connection_commit_changes_async(). + - %TRUE on success, %FALSE on error, in which case @error will be set. + %TRUE on success, %FALSE on error, in which case @error will be set. - the #NMRemoteConnection + the #NMRemoteConnection - the result passed to the #GAsyncReadyCallback + the result passed to the #GAsyncReadyCallback - - Deletes the connection. + + Deletes the connection. Use nm_remote_connection_delete_async() or GDBusConnection. - + - %TRUE on success, %FALSE on error, in which case @error will be set. + %TRUE on success, %FALSE on error, in which case @error will be set. - the #NMRemoteConnection + the #NMRemoteConnection - - a #GCancellable, or %NULL + + a #GCancellable, or %NULL - - Asynchronously deletes the connection. - + + Asynchronously deletes the connection. + - the #NMRemoteConnection + the #NMRemoteConnection - - a #GCancellable, or %NULL + + a #GCancellable, or %NULL - - callback to be called when the delete operation completes + + callback to be called when the delete operation completes - - caller-specific data passed to @callback + + caller-specific data passed to @callback - - Gets the result of a call to nm_remote_connection_delete_async(). - + + Gets the result of a call to nm_remote_connection_delete_async(). + - %TRUE on success, %FALSE on error, in which case @error will be set. + %TRUE on success, %FALSE on error, in which case @error will be set. - the #NMRemoteConnection + the #NMRemoteConnection - the result passed to the #GAsyncReadyCallback + the result passed to the #GAsyncReadyCallback - - + + - file that stores the connection in case the connection is file-backed. + file that stores the connection in case the connection is file-backed. - the #NMRemoteConnection + the #NMRemoteConnection - - + + - the flags of the connection of type #NMSettingsConnectionFlags. - + the flags of the connection of type #NMSettingsConnectionFlags. + - the #NMRemoteConnection + the #NMRemoteConnection - - Request the connection's secrets. Note that this is a blocking D-Bus call, + + Request the connection's secrets. Note that this is a blocking D-Bus call, not a simple property accessor. - + - a #GVariant of type %NM_VARIANT_TYPE_CONNECTION containing + a #GVariant of type %NM_VARIANT_TYPE_CONNECTION containing @connection's secrets, or %NULL on error. Warning: NMClient contains a cache of objects on D-Bus. This cache gets updated @@ -29606,162 +17422,98 @@ Warning: NMClient contains a cache of objects on D-Bus. This cache gets updated - the #NMRemoteConnection + the #NMRemoteConnection - the #NMSetting object name to get secrets for + the #NMSetting object name to get secrets for - - a #GCancellable, or %NULL + + a #GCancellable, or %NULL - - Asynchronously requests the connection's secrets. - + + Asynchronously requests the connection's secrets. + - the #NMRemoteConnection + the #NMRemoteConnection - the #NMSetting object name to get secrets for + the #NMSetting object name to get secrets for - - a #GCancellable, or %NULL + + a #GCancellable, or %NULL - - callback to be called when the secret request completes + + callback to be called when the secret request completes - - caller-specific data passed to @callback + + caller-specific data passed to @callback - - Gets the result of a call to nm_remote_connection_get_secrets_async(). - + + Gets the result of a call to nm_remote_connection_get_secrets_async(). + - a #GVariant of type %NM_VARIANT_TYPE_CONNECTION + a #GVariant of type %NM_VARIANT_TYPE_CONNECTION containing @connection's secrets, or %NULL on error. - the #NMRemoteConnection + the #NMRemoteConnection - the result passed to the #GAsyncReadyCallback + the result passed to the #GAsyncReadyCallback - - + + - %TRUE if the remote connection contains changes that have not + %TRUE if the remote connection contains changes that have not been saved to disk, %FALSE if the connection is the same as its on-disk representation. - the #NMRemoteConnection + the #NMRemoteConnection - - + + - the version-id of the profile. This ID is incremented + the version-id of the profile. This ID is incremented whenever the profile is modified. - the #NMRemoteConnection + the #NMRemoteConnection - - Checks if the connection is visible to the current user. If the + + Checks if the connection is visible to the current user. If the connection is not visible then it is essentially useless; it will not contain any settings, and operations such as nm_remote_connection_save() and nm_remote_connection_delete() will @@ -29769,291 +17521,161 @@ always fail. (#NMRemoteSettings will not normally return non-visible connections to callers, but it is possible for a connection's visibility to change after you already have a reference to it.) - + - %TRUE if the remote connection is visible to the current + %TRUE if the remote connection is visible to the current user, %FALSE if not. - the #NMRemoteConnection + the #NMRemoteConnection - - Saves the connection to disk if the connection has changes that have not yet + + Saves the connection to disk if the connection has changes that have not yet been written to disk, or if the connection has never been saved. Use nm_remote_connection_save_async() or GDBusConnection. - + - %TRUE on success, %FALSE on error, in which case @error will be set. + %TRUE on success, %FALSE on error, in which case @error will be set. - the #NMRemoteConnection + the #NMRemoteConnection - - a #GCancellable, or %NULL + + a #GCancellable, or %NULL - Saves the connection to disk if the connection has changes that have not yet + Saves the connection to disk if the connection has changes that have not yet been written to disk, or if the connection has never been saved. - + - the #NMRemoteConnection + the #NMRemoteConnection - - a #GCancellable, or %NULL + + a #GCancellable, or %NULL - - callback to be called when the save operation completes + + callback to be called when the save operation completes - - caller-specific data passed to @callback + + caller-specific data passed to @callback - - Gets the result of a call to nm_remote_connection_save_async(). - + + Gets the result of a call to nm_remote_connection_save_async(). + - %TRUE on success, %FALSE on error, in which case @error will be set. + %TRUE on success, %FALSE on error, in which case @error will be set. - the #NMRemoteConnection + the #NMRemoteConnection - the result passed to the #GAsyncReadyCallback + the result passed to the #GAsyncReadyCallback - - Asynchronously calls the Update2() D-Bus method. - + + Asynchronously calls the Update2() D-Bus method. + - the #NMRemoteConnection + the #NMRemoteConnection - - optional connection to update the settings. + + optional connection to update the settings. - update-flags + update-flags - - optional arguments. + + optional arguments. - - a #GCancellable, or %NULL + + a #GCancellable, or %NULL - - callback to be called when the commit operation completes + + callback to be called when the commit operation completes - - caller-specific data passed to @callback + + caller-specific data passed to @callback - - Gets the result of a call to nm_remote_connection_commit_changes_async(). - + + Gets the result of a call to nm_remote_connection_commit_changes_async(). + - on success, a #GVariant of type "a{sv}" with the result. On failure, + on success, a #GVariant of type "a{sv}" with the result. On failure, %NULL. - the #NMRemoteConnection + the #NMRemoteConnection - the result passed to the #GAsyncReadyCallback + the result passed to the #GAsyncReadyCallback - - File that stores the connection in case the connection is + + File that stores the connection in case the connection is file-backed. - - The flags of the connection as unsigned integer. The values + + The flags of the connection as unsigned integer. The values correspond to the #NMSettingsConnectionFlags enum. - - %TRUE if the remote connection contains changes that have not been saved + + %TRUE if the remote connection contains changes that have not been saved to disk, %FALSE if the connection is the same as its on-disk representation. - - The version ID of the profile that is incremented when the profile gets modified. + + The version ID of the profile that is incremented when the profile gets modified. This can be used to track concurrent modifications of the profile. - - %TRUE if the remote connection is visible to the current user, %FALSE if + + %TRUE if the remote connection is visible to the current user, %FALSE if not. If the connection is not visible then it is essentially useless; it will not contain any settings, and operations such as nm_remote_connection_save() and nm_remote_connection_delete() will always @@ -30063,6293 +17685,3826 @@ after you already have a reference to it.) - - + + - The result of a checkpoint Rollback() operation for a specific device. - + The result of a checkpoint Rollback() operation for a specific device. + - the rollback succeeded. - - - the device no longer exists. - - - the device is now unmanaged. - - - other errors during rollback. + the rollback succeeded. + + + the device no longer exists. + + + the device is now unmanaged. + + + other errors during rollback. - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - Connection type describing a connection to devices that support the Bluetooth + + Connection type describing a connection to devices that support the Bluetooth DUN profile. - + - - Connection type describing a Bluetooth NAP (Network Access Point), + + Connection type describing a Bluetooth NAP (Network Access Point), which accepts PANU clients. - + - - Connection type describing PANU connection to a Bluetooth NAP (Network + + Connection type describing PANU connection to a Bluetooth NAP (Network Access Point). - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - Indicates that the FCoE controller should use "fabric" mode (default) - + + Indicates that the FCoE controller should use "fabric" mode (default) + - - Indicates that the FCoE controller should use "VN2VN" mode. - + + Indicates that the FCoE controller should use "VN2VN" mode. + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - IPv4 configuration should be automatically determined via a method appropriate + + IPv4 configuration should be automatically determined via a method appropriate for the hardware interface, ie DHCP or PPP or some other device-specific manner. - - - - - This connection does not use or require IPv4 address and it should be disabled. - - - - - IPv4 configuration should be automatically configured for link-local-only + + + + + This connection does not use or require IPv4 address and it should be disabled. + + + + + IPv4 configuration should be automatically configured for link-local-only operation. - + - - All necessary IPv4 configuration (addresses, prefix, DNS, etc) is specified + + All necessary IPv4 configuration (addresses, prefix, DNS, etc) is specified in the setting's properties. - + - - This connection specifies configuration that allows other computers to + + This connection specifies configuration that allows other computers to connect through it to the default network (usually the Internet). The connection's interface will be assigned a private address, and a DHCP server, caching DNS server, and Network Address Translation (NAT) functionality will be started on this connection's interface to allow other devices to connect through that interface to the default network. - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - IPv6 configuration should be automatically determined via a method appropriate + + IPv6 configuration should be automatically determined via a method appropriate for the hardware interface, ie router advertisements, DHCP, or PPP or some other device-specific manner. - + - - IPv6 configuration should be automatically determined via DHCPv6 only and + + IPv6 configuration should be automatically determined via DHCPv6 only and router advertisements should be ignored. - - - - - IPv6 is disabled for the connection. - - - - - IPv6 is not required or is handled by some other mechanism, and NetworkManager + + + + + IPv6 is disabled for the connection. + + + + + IPv6 is not required or is handled by some other mechanism, and NetworkManager should not configure IPv6 for this connection. - + - - IPv6 configuration should be automatically configured for link-local-only + + IPv6 configuration should be automatically configured for link-local-only operation. - + - - All necessary IPv6 configuration (addresses, prefix, DNS, etc) is specified + + All necessary IPv6 configuration (addresses, prefix, DNS, etc) is specified in the setting's properties. - + - - This connection specifies configuration that allows other computers to + + This connection specifies configuration that allows other computers to connect through it to the default network (usually the Internet). The connection's interface will be assigned a private address, and router advertisements, a caching DNS server, and Network Address Translation (NAT) functionality will be started on this connection's interface to allow other devices to connect through that interface to the default network. (not yet supported for IPv6) - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - The mac address of the peer to connect to. - + + The mac address of the peer to connect to. + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - Indicates Ad-Hoc mode where no access point is expected to be present. - + + Indicates Ad-Hoc mode where no access point is expected to be present. + - - Indicates AP/master mode where the wireless device is started as an access + + Indicates AP/master mode where the wireless device is started as an access point/hotspot. - + - - Indicates infrastructure mode where an access point is expected to be present + + Indicates infrastructure mode where an access point is expected to be present for this connection. - + - - Indicates that the connection should create a mesh point. - + + Indicates that the connection should create a mesh point. + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - #NMSecretAgentCapabilities indicate various capabilities of the agent. - - the agent supports no special capabilities - - - the agent supports passing hints to + + + + + + + + + + + + + + + + + + + + + + #NMSecretAgentCapabilities indicate various capabilities of the agent. + + the agent supports no special capabilities + + + the agent supports passing hints to VPN plugin authentication dialogs. - - bounds checking value; should not be used. + + bounds checking value; should not be used. - - #NMSecretAgentError values are passed by secret agents back to NetworkManager + + #NMSecretAgentError values are passed by secret agents back to NetworkManager when they encounter problems retrieving secrets on behalf of NM. They correspond to errors in the "org.freedesktop.NetworkManager.SecretManager" namespace. @@ -36357,62 +21512,26 @@ namespace. Client APIs such as nm_client_activate_connection() will not see these error codes; instead, the secret agent manager will translate them to the corresponding #NMAgentManagerError codes. - - unknown or unclassified error - - - the caller (ie, NetworkManager) is + + unknown or unclassified error + + + the caller (ie, NetworkManager) is not authorized to make this request - - the connection for which secrets + + the connection for which secrets were requested is invalid - - the request was canceled by the user - - - the agent canceled the request + + the request was canceled by the user + + + the agent canceled the request because it was requested to do so by NetworkManager - - the agent cannot find any secrets for this + + the agent cannot find any secrets for this connection @@ -36421,106 +21540,50 @@ corresponding #NMAgentManagerError codes. - - #NMSecretAgentGetSecretsFlags values modify the behavior of a GetSecrets request. - - no special behavior; by default no + + #NMSecretAgentGetSecretsFlags values modify the behavior of a GetSecrets request. + + no special behavior; by default no user interaction is allowed and requests for secrets are fulfilled from persistent storage, or if no secrets are available an error is returned. - - allows the request to + + allows the request to interact with the user, possibly prompting via UI for secrets if any are required, or if none are found in persistent storage. - - explicitly prompt for new + + explicitly prompt for new secrets from the user. This flag signals that NetworkManager thinks any existing secrets are invalid or wrong. This flag implies that interaction is allowed. - - set if the request was + + set if the request was initiated by user-requested action via the D-Bus interface, as opposed to automatically initiated by NetworkManager in response to (for example) scan results or carrier changes. - - indicates that WPS enrollment + + indicates that WPS enrollment is active with PBC method. The agent may suggest that the user pushes a button on the router instead of supplying a PSK. - - Internal flag, not part of + + Internal flag, not part of the D-Bus API. - - Internal flag, not part of + + Internal flag, not part of the D-Bus API. - - + + - + @@ -36537,224 +21600,137 @@ corresponding #NMAgentManagerError codes. - Asynchronously asks the agent to delete all saved secrets belonging to + Asynchronously asks the agent to delete all saved secrets belonging to @connection. - + - a #NMSecretAgentOld + a #NMSecretAgentOld - a #NMConnection + a #NMConnection - - a callback, to be invoked when the operation is done - - - - caller-specific data to be passed to @callback + + a callback, to be invoked when the operation is done + + + + caller-specific data to be passed to @callback - Asynchronously retrieves secrets belonging to @connection for the + Asynchronously retrieves secrets belonging to @connection for the setting @setting_name. @flags indicate specific behavior that the secret agent should use when performing the request, for example returning only existing secrets without user interaction, or requesting entirely new secrets from the user. - + - a #NMSecretAgentOld + a #NMSecretAgentOld - the #NMConnection for which we're asked secrets + the #NMConnection for which we're asked secrets - the name of the secret setting + the name of the secret setting - hints to the agent + hints to the agent - flags that modify the behavior of the request - - - - a callback, to be invoked when the operation is done - - - - caller-specific data to be passed to @callback + flags that modify the behavior of the request + + + + a callback, to be invoked when the operation is done + + + + caller-specific data to be passed to @callback - Asynchronously ensures that all secrets inside @connection are stored to + Asynchronously ensures that all secrets inside @connection are stored to disk. - + - a #NMSecretAgentOld + a #NMSecretAgentOld - a #NMConnection + a #NMConnection - - a callback, to be invoked when the operation is done - - - - caller-specific data to be passed to @callback + + a callback, to be invoked when the operation is done + + + + caller-specific data to be passed to @callback - - Asynchronously asks the agent to delete all saved secrets belonging to + + Asynchronously asks the agent to delete all saved secrets belonging to @connection. - + - a #NMSecretAgentOld + a #NMSecretAgentOld - a #NMConnection + a #NMConnection - - a callback, to be invoked when the operation is done - - - - caller-specific data to be passed to @callback + + a callback, to be invoked when the operation is done + + + + caller-specific data to be passed to @callback - - Since 1.24, the instance will already register a D-Bus object on the + + Since 1.24, the instance will already register a D-Bus object on the D-Bus connection during initialization. That object will stay registered until @self gets unrefed (destroyed) or this function is called. This function performs the necessary cleanup to tear down the instance. Afterwards, @@ -36765,56 +21741,40 @@ might still have a reference on @self. You may call this function any time and repeatedly. However, after destroying the instance, it is a bug to still use the instance for other purposes. The instance becomes defunct and cannot re-register. - + - the #NMSecretAgentOld instance. + the #NMSecretAgentOld instance. - - This has the same effect as setting %NM_SECRET_AGENT_OLD_AUTO_REGISTER + + This has the same effect as setting %NM_SECRET_AGENT_OLD_AUTO_REGISTER property. Unlike most other functions, you may already call this function before initialization completes. - + - the #NMSecretAgentOld instance + the #NMSecretAgentOld instance - whether to enable or disable the listener. + whether to enable or disable the listener. - - Returns a #GObject that stays alive as long as there are pending + + Returns a #GObject that stays alive as long as there are pending requests in the #GDBusConnection. Such requests keep the #GMainContext alive, and thus you may want to keep iterating the context as long until a weak reference indicates that this object is gone. This is @@ -36823,56 +21783,38 @@ the internally pending requests get cancelled), any pending g_dbus_connection_ca requests will still invoke the result on the #GMainContext. Hence, this allows you to know how long you must iterate the context to know that all remains are cleaned up. - + - a #GObject that you may register a weak pointer + a #GObject that you may register a weak pointer to know that the #GMainContext is still kept busy by @self. - the #NMSecretAgentOld instance + the #NMSecretAgentOld instance - - + + - the #GDBusConnection used by the secret agent. + the #GDBusConnection used by the secret agent. You may either set this as construct property %NM_SECRET_AGENT_OLD_DBUS_CONNECTION, or it will automatically set during initialization. - the #NMSecretAgentOld instance + the #NMSecretAgentOld instance - - + + - the current D-Bus name owner. While this property + the current D-Bus name owner. While this property is set while registering, it really only makes sense when the nm_secret_agent_old_get_registered() indicates that registration is successful. @@ -36880,41 +21822,28 @@ that all remains are cleaned up. - the #NMSecretAgentOld instance + the #NMSecretAgentOld instance - - + + - the #GMainContext instance associate with the + the #GMainContext instance associate with the instance. This is the g_main_context_get_thread_default() at the time when creating the instance. - the #NMSecretAgentOld instance + the #NMSecretAgentOld instance - - Note that the secret agent transparently registers and re-registers + + Note that the secret agent transparently registers and re-registers as the D-Bus name owner appears. Hence, this property is not really useful. Also, to be graceful against races during registration, the instance will already accept requests while being in the process of @@ -36922,109 +21851,69 @@ registering. If you need to avoid races and want to wait until @self is registered, call nm_secret_agent_old_register_async(). If that function completes with success, you know the instance is registered. - + - a %TRUE if the agent is registered, %FALSE if it is not. + a %TRUE if the agent is registered, %FALSE if it is not. - a #NMSecretAgentOld + a #NMSecretAgentOld - - Asynchronously retrieves secrets belonging to @connection for the + + Asynchronously retrieves secrets belonging to @connection for the setting @setting_name. @flags indicate specific behavior that the secret agent should use when performing the request, for example returning only existing secrets without user interaction, or requesting entirely new secrets from the user. - + - a #NMSecretAgentOld + a #NMSecretAgentOld - the #NMConnection for which we're asked secrets + the #NMConnection for which we're asked secrets - the name of the secret setting + the name of the secret setting - hints to the agent + hints to the agent - flags that modify the behavior of the request - - - - a callback, to be invoked when the operation is done - - - - caller-specific data to be passed to @callback + flags that modify the behavior of the request + + + + a callback, to be invoked when the operation is done + + + + caller-specific data to be passed to @callback - - Registers the #NMSecretAgentOld with the NetworkManager secret manager, + + Registers the #NMSecretAgentOld with the NetworkManager secret manager, indicating to NetworkManager that the agent is able to provide and save secrets for connections on behalf of its user. Use nm_secret_agent_old_enable() or nm_secret_agent_old_register_async(). - + - %TRUE if registration was successful, %FALSE on error. + %TRUE if registration was successful, %FALSE on error. Since 1.24, this can no longer fail unless the @cancellable gets cancelled. Contrary to nm_secret_agent_old_register_async(), this also @@ -37037,27 +21926,17 @@ Since 1.24, registration is idempotent. It has the same effect as setting - a #NMSecretAgentOld + a #NMSecretAgentOld - - a #GCancellable, or %NULL + + a #GCancellable, or %NULL - - Asynchronously registers the #NMSecretAgentOld with the NetworkManager secret + + Asynchronously registers the #NMSecretAgentOld with the NetworkManager secret manager, indicating to NetworkManager that the agent is able to provide and save secrets for connections on behalf of its user. @@ -37071,61 +21950,34 @@ try to register and handle secret requests. A failure of this function only indi that currently the instance might not be ready (but since it will automatically try to recover, it might be ready in a moment afterwards). Use this function if you want to check and ensure that the agent is registered. - + - a #NMSecretAgentOld + a #NMSecretAgentOld - - a #GCancellable, or %NULL + + a #GCancellable, or %NULL - - callback to call when the agent is registered + + callback to call when the agent is registered - - data for @callback + + data for @callback - - Gets the result of a call to nm_secret_agent_old_register_async(). - + + Gets the result of a call to nm_secret_agent_old_register_async(). + - %TRUE if registration was successful, %FALSE on error. + %TRUE if registration was successful, %FALSE on error. Since 1.24, registration cannot fail and is idempotent. It has the same effect as setting %NM_SECRET_AGENT_OLD_AUTO_REGISTER to %TRUE @@ -37134,81 +21986,49 @@ or nm_secret_agent_old_enable(). - a #NMSecretAgentOld + a #NMSecretAgentOld - the result passed to the #GAsyncReadyCallback + the result passed to the #GAsyncReadyCallback - - Asynchronously ensures that all secrets inside @connection are stored to + + Asynchronously ensures that all secrets inside @connection are stored to disk. - + - a #NMSecretAgentOld + a #NMSecretAgentOld - a #NMConnection + a #NMConnection - - a callback, to be invoked when the operation is done - - - - caller-specific data to be passed to @callback + + a callback, to be invoked when the operation is done + + + + caller-specific data to be passed to @callback - - Unregisters the #NMSecretAgentOld with the NetworkManager secret manager, + + Unregisters the #NMSecretAgentOld with the NetworkManager secret manager, indicating to NetworkManager that the agent will no longer provide or store secrets on behalf of this user. Use nm_secret_agent_old_enable(). - + - %TRUE if unregistration was successful, %FALSE on error + %TRUE if unregistration was successful, %FALSE on error Since 1.24, registration cannot fail and is idempotent. It has the same effect as setting %NM_SECRET_AGENT_OLD_AUTO_REGISTER to %FALSE @@ -37217,29 +22037,17 @@ or nm_secret_agent_old_enable(). - a #NMSecretAgentOld + a #NMSecretAgentOld - - a #GCancellable, or %NULL + + a #GCancellable, or %NULL - - Asynchronously unregisters the #NMSecretAgentOld with the NetworkManager secret + + Asynchronously unregisters the #NMSecretAgentOld with the NetworkManager secret manager, indicating to NetworkManager that the agent will no longer provide or store secrets on behalf of this user. @@ -37247,64 +22055,35 @@ Since 1.24, registration cannot fail and is idempotent. It has the same effect as setting %NM_SECRET_AGENT_OLD_AUTO_REGISTER to %FALSE or nm_secret_agent_old_enable(). Use nm_secret_agent_old_enable(). - + - a #NMSecretAgentOld + a #NMSecretAgentOld - - a #GCancellable, or %NULL + + a #GCancellable, or %NULL - - callback to call when the agent is unregistered + + callback to call when the agent is unregistered - - data for @callback + + data for @callback - - Gets the result of a call to nm_secret_agent_old_unregister_async(). + + Gets the result of a call to nm_secret_agent_old_unregister_async(). Use nm_secret_agent_old_enable(). - + - %TRUE if unregistration was successful, %FALSE on error. + %TRUE if unregistration was successful, %FALSE on error. Since 1.24, registration cannot fail and is idempotent. It has the same effect as setting %NM_SECRET_AGENT_OLD_AUTO_REGISTER to %FALSE @@ -37313,27 +22092,17 @@ or nm_secret_agent_old_enable(). - a #NMSecretAgentOld + a #NMSecretAgentOld - the result passed to the #GAsyncReadyCallback + the result passed to the #GAsyncReadyCallback - - If %TRUE (the default), the agent will always be registered when + + If %TRUE (the default), the agent will always be registered when NetworkManager is running; if NetworkManager exits and restarts, the agent will re-register itself automatically. @@ -37352,40 +22121,21 @@ Calling nm_secret_agent_old_enable() has the same effect as setting this property. - - A bitfield of %NMSecretAgentCapabilities. + + A bitfield of %NMSecretAgentCapabilities. Changing this property is possible at any time. In case the secret agent is currently registered, this will cause a re-registration. - - The #GDBusConnection used by the instance. You may either set this + + The #GDBusConnection used by the instance. You may either set this as construct-only property, or otherwise #NMSecretAgentOld will choose a connection via g_bus_get() during initialization. - - Identifies this agent; only one agent in each user session may use the + + Identifies this agent; only one agent in each user session may use the same identifier. Identifier formatting follows the same rules as D-Bus bus names with the exception that the ':' character is not allowed. The valid set of characters is "[A-Z][a-z][0-9]_-." and the @@ -37394,89 +22144,57 @@ of 3 characters. An example valid identifier is 'org.gnome.nm-applet' (without quotes). - - %TRUE if the agent is registered with NetworkManager, %FALSE if not. + + %TRUE if the agent is registered with NetworkManager, %FALSE if not. - - + + - + - a #NMSecretAgentOld + a #NMSecretAgentOld - the #NMConnection for which we're asked secrets + the #NMConnection for which we're asked secrets - the name of the secret setting + the name of the secret setting - hints to the agent + hints to the agent - flags that modify the behavior of the request - + flags that modify the behavior of the request + - - a callback, to be invoked when the operation is done - + + a callback, to be invoked when the operation is done + - - caller-specific data to be passed to @callback + + caller-specific data to be passed to @callback @@ -37484,8 +22202,7 @@ of 3 characters. An example valid identifier is 'org.gnome.nm-applet' - + @@ -37504,45 +22221,28 @@ of 3 characters. An example valid identifier is 'org.gnome.nm-applet' - + - a #NMSecretAgentOld + a #NMSecretAgentOld - a #NMConnection + a #NMConnection - - a callback, to be invoked when the operation is done - + + a callback, to be invoked when the operation is done + - - caller-specific data to be passed to @callback + + caller-specific data to be passed to @callback @@ -37550,45 +22250,28 @@ of 3 characters. An example valid identifier is 'org.gnome.nm-applet' - + - a #NMSecretAgentOld + a #NMSecretAgentOld - a #NMConnection + a #NMConnection - - a callback, to be invoked when the operation is done - + + a callback, to be invoked when the operation is done + - - caller-specific data to be passed to @callback + + caller-specific data to be passed to @callback @@ -37600,57 +22283,38 @@ of 3 characters. An example valid identifier is 'org.gnome.nm-applet' - - Called as a result of a request by NM to delete secrets. When the + + Called as a result of a request by NM to delete secrets. When the #NMSecretAgentOld subclass has finished deleting the secrets, this function should be called. - + - the secret agent object + the secret agent object - the connection for which secrets were to be deleted, + the connection for which secrets were to be deleted, note that this object will be unrefed after the callback has returned, use g_object_ref()/g_object_unref() if you want to use this object after the callback has returned - if the deleting secrets failed, give a descriptive error here + if the deleting secrets failed, give a descriptive error here - - caller-specific data to be passed to the function + + caller-specific data to be passed to the function - - Called as a result of a request by NM to retrieve secrets. When the + + Called as a result of a request by NM to retrieve secrets. When the #NMSecretAgentOld subclass has finished retrieving secrets and is ready to return them, or to return an error, this function should be called with those secrets or the error. @@ -37678,31 +22342,24 @@ something like this: g_variant_unref (secrets_dict); </programlisting> </example> - + - the secret agent object + the secret agent object - the connection for which secrets were requested, + the connection for which secrets were requested, note that this object will be unrefed after the callback has returned, use g_object_ref()/g_object_unref() if you want to use this object after the callback has returned - the #GVariant of type %NM_VARIANT_TYPE_CONNECTION containing the requested + the #GVariant of type %NM_VARIANT_TYPE_CONNECTION containing the requested secrets (as created by nm_connection_to_dbus() for example). Each key in @secrets should be the name of a #NMSetting object (like "802-11-wireless-security") and each value should be an %NM_VARIANT_TYPE_SETTING variant. The sub-dicts @@ -37711,84 +22368,49 @@ and the value is the secret - if the secrets request failed, give a descriptive error here + if the secrets request failed, give a descriptive error here - - caller-specific data to be passed to the function + + caller-specific data to be passed to the function - - Called as a result of a request by NM to save secrets. When the + + Called as a result of a request by NM to save secrets. When the #NMSecretAgentOld subclass has finished saving the secrets, this function should be called. - + - the secret agent object + the secret agent object - the connection for which secrets were to be saved, + the connection for which secrets were to be saved, note that this object will be unrefed after the callback has returned, use g_object_ref()/g_object_unref() if you want to use this object after the callback has returned - if the saving secrets failed, give a descriptive error here + if the saving secrets failed, give a descriptive error here - - caller-specific data to be passed to the function + + caller-specific data to be passed to the function - + - - Get the type of the enum that defines the values that the property accepts. It is only + + Get the type of the enum that defines the values that the property accepts. It is only useful for properties configured to accept values from certain enum type, otherwise it will return %G_TYPE_INVALID. Note that flags (children of G_TYPE_FLAGS) are also considered enums. @@ -37798,129 +22420,90 @@ as enum. Find out what underlying type is used, checking the #GParamSpec, before setting the GObject property. - the enum's GType, or %G_TYPE_INVALID if the property is not of enum type + the enum's GType, or %G_TYPE_INVALID if the property is not of enum type - the GType of the NMSetting instance + the GType of the NMSetting instance - the name of the property + the name of the property - Returns the #GType of the setting's class for a given setting name. + Returns the #GType of the setting's class for a given setting name. - the #GType of the setting's class, or %G_TYPE_INVALID if + the #GType of the setting's class, or %G_TYPE_INVALID if @name is not recognized. - a setting name + a setting name - Compares two #NMSetting objects for similarity, with comparison behavior + Compares two #NMSetting objects for similarity, with comparison behavior modified by a set of flags. See the documentation for #NMSettingCompareFlags for a description of each flag's behavior. - %TRUE if the comparison succeeds, %FALSE if it does not + %TRUE if the comparison succeeds, %FALSE if it does not - a #NMSetting + a #NMSetting - a second #NMSetting to compare with the first + a second #NMSetting to compare with the first - compare flags, e.g. %NM_SETTING_COMPARE_FLAG_EXACT + compare flags, e.g. %NM_SETTING_COMPARE_FLAG_EXACT - Compares two #NMSetting objects for similarity, with comparison behavior + Compares two #NMSetting objects for similarity, with comparison behavior modified by a set of flags. See the documentation for #NMSettingCompareFlags for a description of each flag's behavior. If the settings differ, the keys of each setting that differ from the other are added to @results, mapped to one or more #NMSettingDiffResult values. - %TRUE if the settings contain the same values, %FALSE if they do not + %TRUE if the settings contain the same values, %FALSE if they do not - a #NMSetting + a #NMSetting - a second #NMSetting to compare with the first + a second #NMSetting to compare with the first - compare flags, e.g. %NM_SETTING_COMPARE_FLAG_EXACT + compare flags, e.g. %NM_SETTING_COMPARE_FLAG_EXACT - this parameter is used internally by libnm and should + this parameter is used internally by libnm and should be set to %FALSE. If %TRUE inverts the meaning of the #NMSettingDiffResult. - - if the + + if the settings differ, on return a hash table mapping the differing keys to one or more %NMSettingDiffResult values OR-ed together. If the settings do not differ, any hash table passed in is unmodified. If no hash table is passed @@ -37933,31 +22516,22 @@ in and the settings differ, a new one is created and returned. - Duplicates a #NMSetting. + Duplicates a #NMSetting. - a new #NMSetting containing the same properties and values as the + a new #NMSetting containing the same properties and values as the source #NMSetting - the #NMSetting to duplicate + the #NMSetting to duplicate - - Iterates over each property of the #NMSetting object, calling the supplied + + Iterates over each property of the #NMSetting object, calling the supplied user function for each property. @@ -37965,140 +22539,89 @@ user function for each property. - the #NMSetting + the #NMSetting - - user-supplied function called for each property of the setting + + user-supplied function called for each property of the setting - - user data passed to @func at each invocation + + user data passed to @func at each invocation - - Gets the D-Bus marshalling type of a property. @property_name is a D-Bus + + Gets the D-Bus marshalling type of a property. @property_name is a D-Bus property name, which may not necessarily be a #GObject property. - the D-Bus marshalling type of @property on @setting. + the D-Bus marshalling type of @property on @setting. - an #NMSetting + an #NMSetting - the property of @setting to get the type of + the property of @setting to get the type of - - Returns the type name of the #NMSetting object + + Returns the type name of the #NMSetting object - a string containing the type name of the #NMSetting object, + a string containing the type name of the #NMSetting object, like 'ppp' or 'wireless' or 'wired'. - the #NMSetting + the #NMSetting - - For a given secret, retrieves the #NMSettingSecretFlags describing how to + + For a given secret, retrieves the #NMSettingSecretFlags describing how to handle that secret. - %TRUE on success (if the given secret name was a valid property of + %TRUE on success (if the given secret name was a valid property of this setting, and if that property is secret), %FALSE if not - the #NMSetting + the #NMSetting - the secret key name to get flags for + the secret key name to get flags for - on success, the #NMSettingSecretFlags for the secret + on success, the #NMSettingSecretFlags for the secret - + - the #NMSetting + the #NMSetting - - the predicate for which names + + the predicate for which names should be clear. If the predicate returns %TRUE for an option name, the option gets removed. If %NULL, all options will be removed. @@ -38106,43 +22629,29 @@ this setting, and if that property is secret), %FALSE if not - + - the #GVariant or %NULL if the option + the #GVariant or %NULL if the option is not set. - the #NMSetting + the #NMSetting - the option name to request. + the option name to request. - - Gives the name of all set options. + + Gives the name of all set options. - + A %NULL terminated array of key names. If no names are present, this returns %NULL. The returned array and the names are owned by %NMSetting and might be invalidated by the next operation. @@ -38152,99 +22661,60 @@ this setting, and if that property is secret), %FALSE if not - the #NMSetting + the #NMSetting - + - + - %TRUE if @opt_name is set to a boolean variant. + %TRUE if @opt_name is set to a boolean variant. - the #NMSetting + the #NMSetting - the option to get + the option to get - - the optional output value. + + the optional output value. If the option is unset, %FALSE will be returned. - + - %TRUE if @opt_name is set to a uint32 variant. + %TRUE if @opt_name is set to a uint32 variant. - the #NMSetting + the #NMSetting - the option to get + the option to get - - the optional output value. + + the optional output value. If the option is unset, 0 will be returned. - - If @variant is %NULL, this clears the option if it is set. + + If @variant is %NULL, this clears the option if it is set. Otherwise, @variant is set as the option. If @variant is a floating reference, it will be consumed. @@ -38257,1265 +22727,816 @@ Currently, only #NMSettingEthtool supports it. - the #NMSetting + the #NMSetting - the option name to set + the option name to set - - the variant to set. + + the variant to set. - - Like nm_setting_option_set() to set a boolean GVariant. + + Like nm_setting_option_set() to set a boolean GVariant. - the #NMSetting + the #NMSetting - the value to set. + the value to set. - - Like nm_setting_option_set() to set a uint32 GVariant. + + Like nm_setting_option_set() to set a uint32 GVariant. - the #NMSetting + the #NMSetting - the value to set. + the value to set. - - For a given secret, stores the #NMSettingSecretFlags describing how to + + For a given secret, stores the #NMSettingSecretFlags describing how to handle that secret. - %TRUE on success (if the given secret name was a valid property of + %TRUE on success (if the given secret name was a valid property of this setting, and if that property is secret), %FALSE if not - the #NMSetting + the #NMSetting - the secret key name to set flags for + the secret key name to set flags for - the #NMSettingSecretFlags for the secret + the #NMSettingSecretFlags for the secret - Convert the setting (including secrets!) into a string. For debugging + Convert the setting (including secrets!) into a string. For debugging purposes ONLY, should NOT be used for serialization of the setting, or machine-parsed in any way. The output format is not guaranteed to be stable and may change at any time. - an allocated string containing a textual representation of the + an allocated string containing a textual representation of the setting's properties and values, which the caller should free with g_free() - the #NMSetting + the #NMSetting - Validates the setting. Each setting's properties have allowed values, and + Validates the setting. Each setting's properties have allowed values, and some are dependent on other values (hence the need for @connection). The returned #GError contains information about which property of the setting failed validation, and in what way that property failed validation. - %TRUE if the setting is valid, %FALSE if it is not + %TRUE if the setting is valid, %FALSE if it is not - the #NMSetting to verify + the #NMSetting to verify - - the #NMConnection that @setting came from, or + + the #NMConnection that @setting came from, or %NULL if @setting is being verified in isolation. - - Verifies the secrets in the setting. + + Verifies the secrets in the setting. The returned #GError contains information about which secret of the setting failed validation, and in what way that secret failed validation. The secret validation is done separately from main setting validation, because in some cases connection failure is not desired just for the secrets. - %TRUE if the setting secrets are valid, %FALSE if they are not + %TRUE if the setting secrets are valid, %FALSE if they are not - the #NMSetting to verify secrets in + the #NMSetting to verify secrets in - - the #NMConnection that @setting came from, or + + the #NMConnection that @setting came from, or %NULL if @setting is being verified in isolation. - - The setting's name, which uniquely identifies the setting within the + + The setting's name, which uniquely identifies the setting within the connection. Each setting type has a name unique to that type, for example "ppp" or "802-11-wireless" or "802-3-ethernet". - - 6LoWPAN Settings - - - Creates a new #NMSetting6Lowpan object with default values. - + + 6LoWPAN Settings + + + Creates a new #NMSetting6Lowpan object with default values. + - the new empty #NMSetting6Lowpan object + the new empty #NMSetting6Lowpan object - - - - the #NMSetting6Lowpan:parent property of the setting + + + + the #NMSetting6Lowpan:parent property of the setting - the #NMSetting6Lowpan + the #NMSetting6Lowpan - - If given, specifies the parent interface name or parent connection UUID + + If given, specifies the parent interface name or parent connection UUID from which this 6LowPAN interface should be created. - - + + - - IEEE 802.1x Authentication Settings - + + IEEE 802.1x Authentication Settings + - Creates a new #NMSetting8021x object with default values. - + Creates a new #NMSetting8021x object with default values. + - the new empty #NMSetting8021x object + the new empty #NMSetting8021x object - - Determines and verifies the blob type. + + Determines and verifies the blob type. When setting certificate properties of NMSetting8021x the blob must be not UNKNOWN (or NULL). - + - the scheme of the blob or %NM_SETTING_802_1X_CK_SCHEME_UNKNOWN. + the scheme of the blob or %NM_SETTING_802_1X_CK_SCHEME_UNKNOWN. For NULL it also returns NM_SETTING_802_1X_CK_SCHEME_UNKNOWN. - - the data pointer + + the data pointer - the length of the data + the length of the data - - Adds an allowed alternate subject name match. Until at least one + + Adds an allowed alternate subject name match. Until at least one match is added, the altSubjectName of the remote authentication server is not verified. - + - %TRUE if the alternative subject name match was + %TRUE if the alternative subject name match was successfully added, %FALSE if it was already allowed. - the #NMSetting8021x + the #NMSetting8021x - the altSubjectName to allow for this connection + the altSubjectName to allow for this connection - - Adds an allowed EAP method. The setting is not valid until at least one + + Adds an allowed EAP method. The setting is not valid until at least one EAP method has been added. See #NMSetting8021x:eap property for a list of allowed EAP methods. - + - %TRUE if the EAP method was successfully added, %FALSE if it was + %TRUE if the EAP method was successfully added, %FALSE if it was not a valid method or if it was already allowed. - the #NMSetting8021x + the #NMSetting8021x - the name of the EAP method to allow for this connection + the name of the EAP method to allow for this connection - - Adds an allowed alternate subject name match for "phase 2". Until + + Adds an allowed alternate subject name match for "phase 2". Until at least one match is added, the altSubjectName of the "phase 2" remote authentication server is not verified. - + - %TRUE if the "phase 2" alternative subject name match was + %TRUE if the "phase 2" alternative subject name match was successfully added, %FALSE if it was already allowed. - the #NMSetting8021x + the #NMSetting8021x - the "phase 2" altSubjectName to allow for this + the "phase 2" altSubjectName to allow for this connection - - Clears all altSubjectName matches. - + + Clears all altSubjectName matches. + - the #NMSetting8021x + the #NMSetting8021x - - Clears all allowed EAP methods. - + + Clears all allowed EAP methods. + - the #NMSetting8021x + the #NMSetting8021x - - Clears all "phase 2" altSubjectName matches. - + + Clears all "phase 2" altSubjectName matches. + - the #NMSetting8021x + the #NMSetting8021x - - Returns the altSubjectName match at index @i. - + + Returns the altSubjectName match at index @i. + - the altSubjectName match at index @i + the altSubjectName match at index @i - the #NMSettingConnection + the #NMSettingConnection - the zero-based index of the array of altSubjectName matches + the zero-based index of the array of altSubjectName matches - - Returns the anonymous identifier used by some EAP methods (like TTLS) to + + Returns the anonymous identifier used by some EAP methods (like TTLS) to authenticate the user in the outer unencrypted "phase 1" authentication. The inner "phase 2" authentication will use the #NMSetting8021x:identity in a secure form, if applicable for that EAP method. - + - the anonymous identifier + the anonymous identifier - the #NMSetting8021x + the #NMSetting8021x - - Returns the value contained in the #NMSetting8021x:auth-timeout property. - + + Returns the value contained in the #NMSetting8021x:auth-timeout property. + - the configured authentication timeout in seconds. Zero means the + the configured authentication timeout in seconds. Zero means the global default value. - the #NMSetting8021x + the #NMSetting8021x - - Returns the CA certificate blob if the CA certificate is stored using the + + Returns the CA certificate blob if the CA certificate is stored using the %NM_SETTING_802_1X_CK_SCHEME_BLOB scheme. Not all EAP methods use a CA certificate (LEAP for example), and those that can take advantage of the CA certificate allow it to be unset. Note that lack of a CA certificate reduces security by allowing man-in-the-middle attacks, because the identity of the network cannot be confirmed by the client. - + - the CA certificate data + the CA certificate data - the #NMSetting8021x + the #NMSetting8021x - - + + - the password used to access the CA certificate stored in + the password used to access the CA certificate stored in #NMSetting8021x:ca-cert property. Only makes sense if the certificate is stored on a PKCS#<!-- -->11 token that requires a login. - the #NMSetting8021x + the #NMSetting8021x - - + + - the #NMSettingSecretFlags pertaining to the + the #NMSettingSecretFlags pertaining to the #NMSetting8021x:ca-cert-password - the #NMSetting8021x + the #NMSetting8021x - - Returns the CA certificate path if the CA certificate is stored using the + + Returns the CA certificate path if the CA certificate is stored using the %NM_SETTING_802_1X_CK_SCHEME_PATH scheme. Not all EAP methods use a CA certificate (LEAP for example), and those that can take advantage of the CA certificate allow it to be unset. Note that lack of a CA certificate reduces security by allowing man-in-the-middle attacks, because the identity of the network cannot be confirmed by the client. - + - path to the CA certificate file + path to the CA certificate file - the #NMSetting8021x + the #NMSetting8021x - - Returns the scheme used to store the CA certificate. If the returned scheme + + Returns the scheme used to store the CA certificate. If the returned scheme is %NM_SETTING_802_1X_CK_SCHEME_BLOB, use nm_setting_802_1x_get_ca_cert_blob(); if %NM_SETTING_802_1X_CK_SCHEME_PATH, use nm_setting_802_1x_get_ca_cert_path(); if %NM_SETTING_802_1X_CK_SCHEME_PKCS11, use nm_setting_802_1x_get_ca_cert_uri(). - + - scheme used to store the CA certificate (blob or path) + scheme used to store the CA certificate (blob or path) - the #NMSetting8021x + the #NMSetting8021x - - Returns the CA certificate URI analogously to + + Returns the CA certificate URI analogously to nm_setting_802_1x_get_ca_cert_blob() and nm_setting_802_1x_get_ca_cert_path(). Currently, it's limited to PKCS#11 URIs ('pkcs11' scheme as defined by RFC 7512), but may be extended to other schemes in future (such as 'file' URIs for local files and 'data' URIs for inline certificate data). - + - the URI string + the URI string - the #NMSetting8021x + the #NMSetting8021x - - Returns the path of the CA certificate directory if previously set. Systems + + Returns the path of the CA certificate directory if previously set. Systems will often have a directory that contains multiple individual CA certificates which the supplicant can then add to the verification chain. This may be used in addition to the #NMSetting8021x:ca-cert property to add more CA certificates for verifying the network to client. - + - the CA certificate directory path + the CA certificate directory path - the #NMSetting8021x + the #NMSetting8021x - - Client certificates are used to identify the connecting client to the network + + Client certificates are used to identify the connecting client to the network when EAP-TLS is used as either the "phase 1" or "phase 2" 802.1x authentication method. - + - the client certificate data + the client certificate data - the #NMSetting8021x + the #NMSetting8021x - - + + - the password used to access the client certificate stored in + the password used to access the client certificate stored in #NMSetting8021x:client-cert property. Only makes sense if the certificate is stored on a PKCS#<!-- -->11 token that requires a login. - the #NMSetting8021x + the #NMSetting8021x - - + + - the #NMSettingSecretFlags pertaining to the + the #NMSettingSecretFlags pertaining to the #NMSetting8021x:client-cert-password - the #NMSetting8021x + the #NMSetting8021x - - Client certificates are used to identify the connecting client to the network + + Client certificates are used to identify the connecting client to the network when EAP-TLS is used as either the "phase 1" or "phase 2" 802.1x authentication method. - + - path to the client certificate file + path to the client certificate file - the #NMSetting8021x + the #NMSetting8021x - - Returns the scheme used to store the client certificate. If the returned scheme + + Returns the scheme used to store the client certificate. If the returned scheme is %NM_SETTING_802_1X_CK_SCHEME_BLOB, use nm_setting_802_1x_get_client_cert_blob(); if %NM_SETTING_802_1X_CK_SCHEME_PATH, use nm_setting_802_1x_get_client_cert_path(); if %NM_SETTING_802_1X_CK_SCHEME_PKCS11, use nm_setting_802_1x_get_client_cert_uri(). - + - scheme used to store the client certificate (blob or path) + scheme used to store the client certificate (blob or path) - the #NMSetting8021x + the #NMSetting8021x - - Returns the client certificate URI analogously to + + Returns the client certificate URI analogously to nm_setting_802_1x_get_client_cert_blob() and nm_setting_802_1x_get_client_cert_path(). Currently, it's limited to PKCS#11 URIs ('pkcs11' scheme as defined by RFC 7512), but may be extended to other schemes in future (such as 'file' URIs for local files and 'data' URIs for inline certificate data). - + - the URI string + the URI string - the #NMSetting8021x + the #NMSetting8021x - - + + - the #NMSetting8021x:domain-match property. + the #NMSetting8021x:domain-match property. - the #NMSetting8021x + the #NMSetting8021x - - + + - the #NMSetting8021x:domain-suffix-match property. + the #NMSetting8021x:domain-suffix-match property. - the #NMSetting8021x + the #NMSetting8021x - - Returns the name of the allowed EAP method at index @i. - + + Returns the name of the allowed EAP method at index @i. + - the name of the allowed EAP method at index @i + the name of the allowed EAP method at index @i - the #NMSetting8021x + the #NMSetting8021x - the index of the EAP method name to return + the index of the EAP method name to return - - Returns the identifier used by some EAP methods (like TLS) to + + Returns the identifier used by some EAP methods (like TLS) to authenticate the user. Often this is a username or login name. - + - the user identifier + the user identifier - the #NMSetting8021x + the #NMSetting8021x - - Returns the number of entries in the + + Returns the number of entries in the #NMSetting8021x:altsubject-matches property of this setting. - + - the number of altsubject-matches entries. + the number of altsubject-matches entries. - the #NMSetting8021x + the #NMSetting8021x - - Returns the number of eap methods allowed for use when connecting to the + + Returns the number of eap methods allowed for use when connecting to the network. Generally only one EAP method is used. Use the functions nm_setting_802_1x_get_eap_method(), nm_setting_802_1x_add_eap_method(), and nm_setting_802_1x_remove_eap_method() for adding, removing, and retrieving allowed EAP methods. - + - the number of allowed EAP methods + the number of allowed EAP methods - the #NMSetting8021x + the #NMSetting8021x - - Returns the number of entries in the + + Returns the number of entries in the #NMSetting8021x:phase2-altsubject-matches property of this setting. - + - the number of phase2-altsubject-matches entries. + the number of phase2-altsubject-matches entries. - the #NMSetting8021x + the #NMSetting8021x - - Returns the value contained in the #NMSetting8021x:optional property. - + + Returns the value contained in the #NMSetting8021x:optional property. + - %TRUE if the activation should proceed even when the 802.1X + %TRUE if the activation should proceed even when the 802.1X authentication fails; %FALSE otherwise - the #NMSetting8021x + the #NMSetting8021x - - Returns the file containing PAC credentials used by EAP-FAST method. - + + Returns the file containing PAC credentials used by EAP-FAST method. + - the PAC file + the PAC file - the #NMSetting8021x + the #NMSetting8021x - - + + - the password used by the authentication method, if any, as specified + the password used by the authentication method, if any, as specified by the #NMSetting8021x:password property - the #NMSetting8021x + the #NMSetting8021x - - + + - the #NMSettingSecretFlags pertaining to the #NMSetting8021x:password + the #NMSettingSecretFlags pertaining to the #NMSetting8021x:password - the #NMSetting8021x + the #NMSetting8021x - - + + - the password used by the authentication method as a + the password used by the authentication method as a UTF-8-encoded array of bytes, as specified by the #NMSetting8021x:password-raw property - the #NMSetting8021x + the #NMSetting8021x - - + + - the #NMSettingSecretFlags pertaining to the + the #NMSettingSecretFlags pertaining to the #NMSetting8021x:password-raw - the #NMSetting8021x + the #NMSetting8021x - - + + - the authentication flags for "phase 1". + the authentication flags for "phase 1". - the #NMSetting8021x + the #NMSetting8021x - - + + - whether "phase 1" PEAP fast provisioning should be used, as specified + whether "phase 1" PEAP fast provisioning should be used, as specified by the #NMSetting8021x:phase1-fast-provisioning property. See the wpa_supplicant documentation for more details. - the #NMSetting8021x + the #NMSetting8021x - - + + - whether the "phase 1" PEAP label is new-style or old-style, to be + whether the "phase 1" PEAP label is new-style or old-style, to be used when authenticating with EAP-PEAP, as contained in the #NMSetting8021x:phase1-peaplabel property. Valid values are %NULL (unset), "0" (use old-style label), and "1" (use new-style label). See the @@ -39524,659 +23545,445 @@ UTF-8-encoded array of bytes, as specified by the - the #NMSetting8021x + the #NMSetting8021x - - + + - the "phase 1" PEAP version to be used when authenticating with + the "phase 1" PEAP version to be used when authenticating with EAP-PEAP as contained in the #NMSetting8021x:phase1-peapver property. Valid values are %NULL (unset), "0" (PEAP version 0), and "1" (PEAP version 1). - the #NMSetting8021x + the #NMSetting8021x - - Returns the "phase 2" altSubjectName match at index @i. - + + Returns the "phase 2" altSubjectName match at index @i. + - the "phase 2" altSubjectName match at index @i + the "phase 2" altSubjectName match at index @i - the #NMSettingConnection + the #NMSettingConnection - the zero-based index of the array of "phase 2" altSubjectName matches + the zero-based index of the array of "phase 2" altSubjectName matches - - + + - the "phase 2" non-EAP (ex MD5) allowed authentication method as + the "phase 2" non-EAP (ex MD5) allowed authentication method as specified by the #NMSetting8021x:phase2-auth property. - the #NMSetting8021x + the #NMSetting8021x - - + + - the "phase 2" EAP-based (ex TLS) allowed authentication method as + the "phase 2" EAP-based (ex TLS) allowed authentication method as specified by the #NMSetting8021x:phase2-autheap property. - the #NMSetting8021x + the #NMSetting8021x - - Returns the "phase 2" CA certificate blob if the CA certificate is stored + + Returns the "phase 2" CA certificate blob if the CA certificate is stored using the %NM_SETTING_802_1X_CK_SCHEME_BLOB scheme. Not all EAP methods use a CA certificate (LEAP for example), and those that can take advantage of the CA certificate allow it to be unset. Note that lack of a CA certificate reduces security by allowing man-in-the-middle attacks, because the identity of the network cannot be confirmed by the client. - + - the "phase 2" CA certificate data + the "phase 2" CA certificate data - the #NMSetting8021x + the #NMSetting8021x - - + + - the password used to access the "phase2" CA certificate stored in + the password used to access the "phase2" CA certificate stored in #NMSetting8021x:phase2-ca-cert property. Only makes sense if the certificate is stored on a PKCS#<!-- -->11 token that requires a login. - the #NMSetting8021x + the #NMSetting8021x - - + + - the #NMSettingSecretFlags pertaining to the + the #NMSettingSecretFlags pertaining to the #NMSetting8021x:phase2-private-key-password - the #NMSetting8021x + the #NMSetting8021x - - Returns the "phase 2" CA certificate path if the CA certificate is stored + + Returns the "phase 2" CA certificate path if the CA certificate is stored using the %NM_SETTING_802_1X_CK_SCHEME_PATH scheme. Not all EAP methods use a CA certificate (LEAP for example), and those that can take advantage of the CA certificate allow it to be unset. Note that lack of a CA certificate reduces security by allowing man-in-the-middle attacks, because the identity of the network cannot be confirmed by the client. - + - path to the "phase 2" CA certificate file + path to the "phase 2" CA certificate file - the #NMSetting8021x + the #NMSetting8021x - - Returns the scheme used to store the "phase 2" CA certificate. If the + + Returns the scheme used to store the "phase 2" CA certificate. If the returned scheme is %NM_SETTING_802_1X_CK_SCHEME_BLOB, use nm_setting_802_1x_get_ca_cert_blob(); if %NM_SETTING_802_1X_CK_SCHEME_PATH, use nm_setting_802_1x_get_ca_cert_path(); if %NM_SETTING_802_1X_CK_SCHEME_PKCS11, use nm_setting_802_1x_get_ca_cert_uri(). - + - scheme used to store the "phase 2" CA certificate (blob or path) + scheme used to store the "phase 2" CA certificate (blob or path) - the #NMSetting8021x + the #NMSetting8021x - - Returns the "phase 2" CA certificate URI analogously to + + Returns the "phase 2" CA certificate URI analogously to nm_setting_802_1x_get_phase2_ca_cert_blob() and nm_setting_802_1x_get_phase2_ca_cert_path(). Currently, it's limited to PKCS#<!-- -->11 URIs ('pkcs11' scheme as defined by RFC 7512), but may be extended to other schemes in future (such as 'file' URIs for local files and 'data' URIs for inline certificate data). - + - the URI string + the URI string - the #NMSetting8021x + the #NMSetting8021x - - Returns the path of the "phase 2" CA certificate directory if previously set. + + Returns the path of the "phase 2" CA certificate directory if previously set. Systems will often have a directory that contains multiple individual CA certificates which the supplicant can then add to the verification chain. This may be used in addition to the #NMSetting8021x:phase2-ca-cert property to add more CA certificates for verifying the network to client. - + - the "phase 2" CA certificate directory path + the "phase 2" CA certificate directory path - the #NMSetting8021x + the #NMSetting8021x - - Client certificates are used to identify the connecting client to the network + + Client certificates are used to identify the connecting client to the network when EAP-TLS is used as either the "phase 1" or "phase 2" 802.1x authentication method. - + - the "phase 2" client certificate data + the "phase 2" client certificate data - the #NMSetting8021x + the #NMSetting8021x - - + + - the password used to access the "phase2" client certificate stored in + the password used to access the "phase2" client certificate stored in #NMSetting8021x:phase2-client-cert property. Only makes sense if the certificate is stored on a PKCS#<!-- -->11 token that requires a login. - the #NMSetting8021x + the #NMSetting8021x - - + + - the #NMSettingSecretFlags pertaining to the + the #NMSettingSecretFlags pertaining to the #NMSetting8021x:phase2-client-cert-password - the #NMSetting8021x + the #NMSetting8021x - - Client certificates are used to identify the connecting client to the network + + Client certificates are used to identify the connecting client to the network when EAP-TLS is used as either the "phase 1" or "phase 2" 802.1x authentication method. - + - path to the "phase 2" client certificate file + path to the "phase 2" client certificate file - the #NMSetting8021x + the #NMSetting8021x - - Returns the scheme used to store the "phase 2" client certificate. If the + + Returns the scheme used to store the "phase 2" client certificate. If the returned scheme is %NM_SETTING_802_1X_CK_SCHEME_BLOB, use nm_setting_802_1x_get_client_cert_blob(); if %NM_SETTING_802_1X_CK_SCHEME_PATH, use nm_setting_802_1x_get_client_cert_path(); if %NM_SETTING_802_1X_CK_SCHEME_PKCS11, use nm_setting_802_1x_get_client_cert_uri(). - + - scheme used to store the "phase 2" client certificate (blob or path) + scheme used to store the "phase 2" client certificate (blob or path) - the #NMSetting8021x + the #NMSetting8021x - - Returns the "phase 2" client certificate URI analogously to + + Returns the "phase 2" client certificate URI analogously to nm_setting_802_1x_get_phase2_ca_cert_blob() and nm_setting_802_1x_get_phase2_ca_cert_path(). Currently, it's limited to PKCS#<!-- -->11 URIs ('pkcs11' scheme as defined by RFC 7512), but may be extended to other schemes in future (such as 'file' URIs for local files and 'data' URIs for inline certificate data). - + - the URI string + the URI string - the #NMSetting8021x + the #NMSetting8021x - - + + - the #NMSetting8021x:phase2-domain-match property. + the #NMSetting8021x:phase2-domain-match property. - the #NMSetting8021x + the #NMSetting8021x - - + + - the #NMSetting8021x:phase2-domain-suffix-match property. + the #NMSetting8021x:phase2-domain-suffix-match property. - the #NMSetting8021x + the #NMSetting8021x - - Private keys are used to authenticate the connecting client to the network + + Private keys are used to authenticate the connecting client to the network when EAP-TLS is used as either the "phase 1" or "phase 2" 802.1x authentication method. WARNING: the phase2 private key property is not a "secret" property, and thus unencrypted private key data may be readable by unprivileged users. Private keys should always be encrypted with a private key password. - + - the "phase 2" private key data + the "phase 2" private key data - the #NMSetting8021x + the #NMSetting8021x - - + + - the data format of the "phase 2" private key data stored in the + the data format of the "phase 2" private key data stored in the #NMSetting8021x:phase2-private-key property - the #NMSetting8021x + the #NMSetting8021x - - + + - the private key password used to decrypt the private key if + the private key password used to decrypt the private key if previously set with nm_setting_802_1x_set_phase2_private_key() or the #NMSetting8021x:phase2-private-key-password property. - the #NMSetting8021x + the #NMSetting8021x - - + + - the #NMSettingSecretFlags pertaining to the + the #NMSettingSecretFlags pertaining to the #NMSetting8021x:phase2-private-key-password - the #NMSetting8021x + the #NMSetting8021x - - Private keys are used to authenticate the connecting client to the network + + Private keys are used to authenticate the connecting client to the network when EAP-TLS is used as either the "phase 1" or "phase 2" 802.1x authentication method. - + - path to the "phase 2" private key file + path to the "phase 2" private key file - the #NMSetting8021x + the #NMSetting8021x - - Returns the scheme used to store the "phase 2" private key. If the returned + + Returns the scheme used to store the "phase 2" private key. If the returned scheme is %NM_SETTING_802_1X_CK_SCHEME_BLOB, use nm_setting_802_1x_get_client_cert_blob(); if %NM_SETTING_802_1X_CK_SCHEME_PATH, use nm_setting_802_1x_get_client_cert_path(); if %NM_SETTING_802_1X_CK_SCHEME_PKCS11, use nm_setting_802_1x_get_client_cert_uri(). - + - scheme used to store the "phase 2" private key (blob or path) + scheme used to store the "phase 2" private key (blob or path) - the #NMSetting8021x + the #NMSetting8021x - - Returns the "phase 2" private key URI analogously to + + Returns the "phase 2" private key URI analogously to nm_setting_802_1x_get_phase2_private_key_blob() and nm_setting_802_1x_get_phase2_private_key_path(). Currently, it's limited to PKCS#<!-- -->11 URIs ('pkcs11' scheme as defined by RFC 7512), but may be extended to other schemes in future (such as 'file' URIs for local files and 'data' URIs for inline certificate data). - + - the URI string + the URI string - the #NMSetting8021x + the #NMSetting8021x - - + + - the #NMSetting8021x:phase2-subject-match property. This is + the #NMSetting8021x:phase2-subject-match property. This is the substring to be matched against the subject of the "phase 2" authentication server certificate, or %NULL no subject verification is to be performed. @@ -40184,236 +23991,162 @@ is to be performed. - the #NMSetting8021x + the #NMSetting8021x - - + + - the PIN used by the authentication method, if any, as specified + the PIN used by the authentication method, if any, as specified by the #NMSetting8021x:pin property - the #NMSetting8021x + the #NMSetting8021x - - + + - the #NMSettingSecretFlags pertaining to the + the #NMSettingSecretFlags pertaining to the #NMSetting8021x:pin - the #NMSetting8021x + the #NMSetting8021x - - Private keys are used to authenticate the connecting client to the network + + Private keys are used to authenticate the connecting client to the network when EAP-TLS is used as either the "phase 1" or "phase 2" 802.1x authentication method. WARNING: the private key property is not a "secret" property, and thus unencrypted private key data may be readable by unprivileged users. Private keys should always be encrypted with a private key password. - + - the private key data + the private key data - the #NMSetting8021x + the #NMSetting8021x - - + + - the data format of the private key data stored in the + the data format of the private key data stored in the #NMSetting8021x:private-key property - the #NMSetting8021x + the #NMSetting8021x - - + + - the private key password used to decrypt the private key if + the private key password used to decrypt the private key if previously set with nm_setting_802_1x_set_private_key(), or the #NMSetting8021x:private-key-password property. - the #NMSetting8021x + the #NMSetting8021x - - + + - the #NMSettingSecretFlags pertaining to the + the #NMSettingSecretFlags pertaining to the #NMSetting8021x:private-key-password - the #NMSetting8021x + the #NMSetting8021x - - Private keys are used to authenticate the connecting client to the network + + Private keys are used to authenticate the connecting client to the network when EAP-TLS is used as either the "phase 1" or "phase 2" 802.1x authentication method. - + - path to the private key file + path to the private key file - the #NMSetting8021x + the #NMSetting8021x - - Returns the scheme used to store the private key. If the returned scheme is + + Returns the scheme used to store the private key. If the returned scheme is %NM_SETTING_802_1X_CK_SCHEME_BLOB, use nm_setting_802_1x_get_client_cert_blob(); if %NM_SETTING_802_1X_CK_SCHEME_PATH, use nm_setting_802_1x_get_client_cert_path(); if %NM_SETTING_802_1X_CK_SCHEME_PKCS11, use nm_setting_802_1x_get_client_cert_uri(). - + - scheme used to store the private key (blob or path) + scheme used to store the private key (blob or path) - the #NMSetting8021x + the #NMSetting8021x - - Returns the private key URI analogously to + + Returns the private key URI analogously to nm_setting_802_1x_get_private_key_blob() and nm_setting_802_1x_get_private_key_path(). Currently, it's limited to PKCS#<!-- -->11 URIs ('pkcs11' scheme as defined by RFC 7512), but may be extended to other schemes in future (such as 'file' URIs for local files and 'data' URIs for inline certificate data). - + - the URI string + the URI string - the #NMSetting8021x + the #NMSetting8021x - - + + - the #NMSetting8021x:subject-match property. This is the + the #NMSetting8021x:subject-match property. This is the substring to be matched against the subject of the authentication server certificate, or %NULL no subject verification is to be performed. @@ -40421,231 +24154,154 @@ performed. - the #NMSetting8021x + the #NMSetting8021x - - Sets the #NMSetting8021x:system-ca-certs property. The + + Sets the #NMSetting8021x:system-ca-certs property. The #NMSetting8021x:ca-path and #NMSetting8021x:phase2-ca-path properties are ignored if the #NMSetting8021x:system-ca-certs property is %TRUE, in which case a system-wide CA certificate directory specified at compile time (using the --system-ca-path configure option) is used in place of these properties. - + - %TRUE if a system CA certificate path should be used, %FALSE if not + %TRUE if a system CA certificate path should be used, %FALSE if not - the #NMSetting8021x + the #NMSetting8021x - - Removes the allowed altSubjectName at the specified index. - + + Removes the allowed altSubjectName at the specified index. + - the #NMSetting8021x + the #NMSetting8021x - the index of the altSubjectName match to remove + the index of the altSubjectName match to remove - - Removes the allowed altSubjectName @altsubject_match. - + + Removes the allowed altSubjectName @altsubject_match. + - %TRUE if the alternative subject name match was found and removed, + %TRUE if the alternative subject name match was found and removed, %FALSE if it was not. - the #NMSetting8021x + the #NMSetting8021x - the altSubjectName to remove + the altSubjectName to remove - - Removes the allowed EAP method at the specified index. - + + Removes the allowed EAP method at the specified index. + - the #NMSetting8021x + the #NMSetting8021x - the index of the EAP method to remove + the index of the EAP method to remove - - Removes the allowed EAP method @method. - + + Removes the allowed EAP method @method. + - %TRUE if the EAP method was founs and removed, %FALSE if it was not. + %TRUE if the EAP method was founs and removed, %FALSE if it was not. - the #NMSetting8021x + the #NMSetting8021x - the name of the EAP method to remove + the name of the EAP method to remove - - Removes the allowed "phase 2" altSubjectName at the specified index. - + + Removes the allowed "phase 2" altSubjectName at the specified index. + - the #NMSetting8021x + the #NMSetting8021x - the index of the "phase 2" altSubjectName match to remove + the index of the "phase 2" altSubjectName match to remove - - Removes the allowed "phase 2" altSubjectName @phase2_altsubject_match. - + + Removes the allowed "phase 2" altSubjectName @phase2_altsubject_match. + - %TRUE if the alternative subject name match for "phase 2" was found and removed, + %TRUE if the alternative subject name match for "phase 2" was found and removed, %FALSE if it was not. - the #NMSetting8021x + the #NMSetting8021x - the "phase 2" altSubjectName to remove + the "phase 2" altSubjectName to remove - - Reads a certificate from disk and sets the #NMSetting8021x:ca-cert property + + Reads a certificate from disk and sets the #NMSetting8021x:ca-cert property with the raw certificate data if using the %NM_SETTING_802_1X_CK_SCHEME_BLOB scheme, or with the path to the certificate file if using the %NM_SETTING_802_1X_CK_SCHEME_PATH scheme. - + - %TRUE if the operation succeeded, %FALSE if it was unsuccessful + %TRUE if the operation succeeded, %FALSE if it was unsuccessful - the #NMSetting8021x + the #NMSetting8021x - when @scheme is set to either %NM_SETTING_802_1X_CK_SCHEME_PATH + when @scheme is set to either %NM_SETTING_802_1X_CK_SCHEME_PATH or %NM_SETTING_802_1X_CK_SCHEME_BLOB, pass the path of the CA certificate file (PEM or DER format). The path must be UTF-8 encoded; use g_filename_to_utf8() to convert if needed. Passing %NULL with any @scheme @@ -40653,27 +24309,17 @@ scheme, or with the path to the certificate file if using the - desired storage scheme for the certificate + desired storage scheme for the certificate - on successful return, the type of the certificate added - + on successful return, the type of the certificate added + - - Reads a certificate from disk and sets the #NMSetting8021x:client-cert + + Reads a certificate from disk and sets the #NMSetting8021x:client-cert property with the raw certificate data if using the %NM_SETTING_802_1X_CK_SCHEME_BLOB scheme, or with the path to the certificate file if using the %NM_SETTING_802_1X_CK_SCHEME_PATH scheme. @@ -40681,25 +24327,18 @@ file if using the %NM_SETTING_802_1X_CK_SCHEME_PATH scheme. Client certificates are used to identify the connecting client to the network when EAP-TLS is used as either the "phase 1" or "phase 2" 802.1x authentication method. - + - %TRUE if the operation succeeded, %FALSE if it was unsuccessful + %TRUE if the operation succeeded, %FALSE if it was unsuccessful - the #NMSetting8021x + the #NMSetting8021x - when @scheme is set to either %NM_SETTING_802_1X_CK_SCHEME_PATH + when @scheme is set to either %NM_SETTING_802_1X_CK_SCHEME_PATH or %NM_SETTING_802_1X_CK_SCHEME_BLOB, pass the path of the client certificate file (PEM, DER, or PKCS#<!-- -->12 format). The path must be UTF-8 encoded; use g_filename_to_utf8() to convert if needed. Passing %NULL with @@ -40707,49 +24346,32 @@ authentication method. - desired storage scheme for the certificate + desired storage scheme for the certificate - on successful return, the type of the certificate added - + on successful return, the type of the certificate added + - - Reads a certificate from disk and sets the #NMSetting8021x:phase2-ca-cert + + Reads a certificate from disk and sets the #NMSetting8021x:phase2-ca-cert property with the raw certificate data if using the %NM_SETTING_802_1X_CK_SCHEME_BLOB scheme, or with the path to the certificate file if using the %NM_SETTING_802_1X_CK_SCHEME_PATH scheme. - + - %TRUE if the operation succeeded, %FALSE if it was unsuccessful + %TRUE if the operation succeeded, %FALSE if it was unsuccessful - the #NMSetting8021x + the #NMSetting8021x - when @scheme is set to either %NM_SETTING_802_1X_CK_SCHEME_PATH + when @scheme is set to either %NM_SETTING_802_1X_CK_SCHEME_PATH or %NM_SETTING_802_1X_CK_SCHEME_BLOB, pass the path of the "phase2" CA certificate file (PEM or DER format). The path must be UTF-8 encoded; use g_filename_to_utf8() to convert if needed. Passing %NULL with any @scheme @@ -40757,27 +24379,17 @@ file if using the %NM_SETTING_802_1X_CK_SCHEME_PATH scheme. - desired storage scheme for the certificate + desired storage scheme for the certificate - on successful return, the type of the certificate added - + on successful return, the type of the certificate added + - - Reads a certificate from disk and sets the #NMSetting8021x:phase2-client-cert + + Reads a certificate from disk and sets the #NMSetting8021x:phase2-client-cert property with the raw certificate data if using the %NM_SETTING_802_1X_CK_SCHEME_BLOB scheme, or with the path to the certificate file if using the %NM_SETTING_802_1X_CK_SCHEME_PATH scheme. @@ -40785,25 +24397,18 @@ file if using the %NM_SETTING_802_1X_CK_SCHEME_PATH scheme. Client certificates are used to identify the connecting client to the network when EAP-TLS is used as either the "phase 1" or "phase 2" 802.1x authentication method. - + - %TRUE if the operation succeeded, %FALSE if it was unsuccessful + %TRUE if the operation succeeded, %FALSE if it was unsuccessful - the #NMSetting8021x + the #NMSetting8021x - when @scheme is set to either %NM_SETTING_802_1X_CK_SCHEME_PATH + when @scheme is set to either %NM_SETTING_802_1X_CK_SCHEME_PATH or %NM_SETTING_802_1X_CK_SCHEME_BLOB, pass the path of the "phase2" client certificate file (PEM, DER, or PKCS#<!-- -->12 format). The path must be UTF-8 encoded; use g_filename_to_utf8() to convert if needed. Passing %NULL with @@ -40811,27 +24416,17 @@ authentication method. - desired storage scheme for the certificate + desired storage scheme for the certificate - on successful return, the type of the certificate added - + on successful return, the type of the certificate added + - - Private keys are used to authenticate the connecting client to the network + + Private keys are used to authenticate the connecting client to the network when EAP-TLS is used as either the "phase 1" or "phase 2" 802.1x authentication method. @@ -40852,25 +24447,18 @@ WARNING: the "phase2" private key property is not a "secret" property, and thus unencrypted private key data using the BLOB scheme may be readable by unprivileged users. Private keys should always be encrypted with a private key password to prevent unauthorized access to unencrypted private key data. - + - %TRUE if the operation succeeded, %FALSE if it was unsuccessful + %TRUE if the operation succeeded, %FALSE if it was unsuccessful - the #NMSetting8021x + the #NMSetting8021x - when @scheme is set to either %NM_SETTING_802_1X_CK_SCHEME_PATH or + when @scheme is set to either %NM_SETTING_802_1X_CK_SCHEME_PATH or %NM_SETTING_802_1X_CK_SCHEME_BLOB, pass the path of the "phase2" private key file (PEM, DER, or PKCS#<!-- -->12 format). The path must be UTF-8 encoded; use g_filename_to_utf8() to convert if needed. Passing %NULL with any @@ -40878,35 +24466,23 @@ key password to prevent unauthorized access to unencrypted private key data. - password used to decrypt the private key, or %NULL if the password + password used to decrypt the private key, or %NULL if the password is unknown. If the password is given but fails to decrypt the private key, an error is returned. - desired storage scheme for the private key + desired storage scheme for the private key - on successful return, the type of the private key added - + on successful return, the type of the private key added + - - Private keys are used to authenticate the connecting client to the network + + Private keys are used to authenticate the connecting client to the network when EAP-TLS is used as either the "phase 1" or "phase 2" 802.1x authentication method. @@ -40927,25 +24503,18 @@ WARNING: the private key property is not a "secret" property, and thus unencrypted private key data using the BLOB scheme may be readable by unprivileged users. Private keys should always be encrypted with a private key password to prevent unauthorized access to unencrypted private key data. - + - %TRUE if the operation succeeded, %FALSE if it was unsuccessful + %TRUE if the operation succeeded, %FALSE if it was unsuccessful - the #NMSetting8021x + the #NMSetting8021x - when @scheme is set to either %NM_SETTING_802_1X_CK_SCHEME_PATH or + when @scheme is set to either %NM_SETTING_802_1X_CK_SCHEME_PATH or %NM_SETTING_802_1X_CK_SCHEME_BLOB, pass the path of the private key file (PEM, DER, or PKCS#<!-- -->12 format). The path must be UTF-8 encoded; use g_filename_to_utf8() to convert if needed. Passing %NULL with any @scheme @@ -40953,71 +24522,42 @@ key password to prevent unauthorized access to unencrypted private key data. - password used to decrypt the private key, or %NULL if the password + password used to decrypt the private key, or %NULL if the password is unknown. If the password is given but fails to decrypt the private key, an error is returned. - desired storage scheme for the private key + desired storage scheme for the private key - on successful return, the type of the private key added - + on successful return, the type of the private key added + - - List of strings to be matched against the altSubjectName of the + + List of strings to be matched against the altSubjectName of the certificate presented by the authentication server. If the list is empty, no verification of the server certificate's altSubjectName is performed. - - Anonymous identity string for EAP authentication methods. Used as the + + Anonymous identity string for EAP authentication methods. Used as the unencrypted identity with EAP types that support different tunneled identity like EAP-TTLS. - - A timeout for the authentication. Zero means the global default; if the + + A timeout for the authentication. Zero means the global default; if the global default is not set, the authentication timeout is 25 seconds. - - Contains the CA certificate if used by the EAP method specified in the + + Contains the CA certificate if used by the EAP method specified in the #NMSetting8021x:eap property. Certificate data is specified using a "scheme"; three are currently @@ -41036,38 +24576,18 @@ Setting this property directly is discouraged; use the nm_setting_802_1x_set_ca_cert() function instead. - - The password used to access the CA certificate stored in + + The password used to access the CA certificate stored in #NMSetting8021x:ca-cert property. Only makes sense if the certificate is stored on a PKCS#<!-- -->11 token that requires a login. - - Flags indicating how to handle the #NMSetting8021x:ca-cert-password property. + + Flags indicating how to handle the #NMSetting8021x:ca-cert-password property. - - UTF-8 encoded path to a directory containing PEM or DER formatted + + UTF-8 encoded path to a directory containing PEM or DER formatted certificates to be added to the verification chain in addition to the certificate specified in the #NMSetting8021x:ca-cert property. @@ -41075,13 +24595,8 @@ If NMSetting8021x:system-ca-certs is enabled and the built-in CA path is an existing directory, then this setting is ignored. - - Contains the client certificate if used by the EAP method specified in + + Contains the client certificate if used by the EAP method specified in the #NMSetting8021x:eap property. Certificate data is specified using a "scheme"; two are currently @@ -41095,39 +24610,18 @@ Setting this property directly is discouraged; use the nm_setting_802_1x_set_client_cert() function instead. - - The password used to access the client certificate stored in + + The password used to access the client certificate stored in #NMSetting8021x:client-cert property. Only makes sense if the certificate is stored on a PKCS#<!-- -->11 token that requires a login. - - Flags indicating how to handle the #NMSetting8021x:client-cert-password property. + + Flags indicating how to handle the #NMSetting8021x:client-cert-password property. - - Constraint for server domain name. If set, this list of FQDNs is used as + + Constraint for server domain name. If set, this list of FQDNs is used as a match requirement for dNSName element(s) of the certificate presented by the authentication server. If a matching dNSName is found, this constraint is met. If no dNSName values are present, this constraint is @@ -41135,15 +24629,8 @@ matched against SubjectName CN using the same comparison. Multiple valid FQDNs can be passed as a ";" delimited list. - - Constraint for server domain name. If set, this FQDN is used as a suffix + + Constraint for server domain name. If set, this FQDN is used as a suffix match requirement for dNSName element(s) of the certificate presented by the authentication server. If a matching dNSName is found, this constraint is met. If no dNSName values are present, this constraint is @@ -41153,9 +24640,7 @@ list. - The allowed EAP method to be used when authenticating to the network with + The allowed EAP method to be used when authenticating to the network with 802.1x. Valid methods are: "leap", "md5", "tls", "peap", "ttls", "pwd", and "fast". Each method requires different configuration using the properties of this setting; refer to wpa_supplicant documentation for the @@ -41164,95 +24649,46 @@ allowed combinations. - - Identity string for EAP authentication methods. Often the user's user or + + Identity string for EAP authentication methods. Often the user's user or login name. - - Whether the 802.1X authentication is optional. If %TRUE, the activation + + Whether the 802.1X authentication is optional. If %TRUE, the activation will continue even after a timeout or an authentication failure. Setting the property to %TRUE is currently allowed only for Ethernet connections. If set to %FALSE, the activation can continue only after a successful authentication. - - UTF-8 encoded file path containing PAC for EAP-FAST. + + UTF-8 encoded file path containing PAC for EAP-FAST. - - UTF-8 encoded password used for EAP authentication methods. If both the + + UTF-8 encoded password used for EAP authentication methods. If both the #NMSetting8021x:password property and the #NMSetting8021x:password-raw property are specified, #NMSetting8021x:password is preferred. - - Flags indicating how to handle the #NMSetting8021x:password property. + + Flags indicating how to handle the #NMSetting8021x:password property. - - Password used for EAP authentication methods, given as a byte array to + + Password used for EAP authentication methods, given as a byte array to allow passwords in other encodings than UTF-8 to be used. If both the #NMSetting8021x:password property and the #NMSetting8021x:password-raw property are specified, #NMSetting8021x:password is preferred. - - Flags indicating how to handle the #NMSetting8021x:password-raw property. + + Flags indicating how to handle the #NMSetting8021x:password-raw property. - - Specifies authentication flags to use in "phase 1" outer + + Specifies authentication flags to use in "phase 1" outer authentication using #NMSetting8021xAuthFlags options. The individual TLS versions can be explicitly disabled. TLS time checks can be also disabled. If a certain TLS disable flag is not @@ -41261,14 +24697,8 @@ map to tls_disable_tlsv1_x and tls_disable_time_checks settings. See the wpa_supplicant documentation for more details. - - Enables or disables in-line provisioning of EAP-FAST credentials when + + Enables or disables in-line provisioning of EAP-FAST credentials when FAST is specified as the EAP method in the #NMSetting8021x:eap property. Recognized values are "0" (disabled), "1" (allow unauthenticated provisioning), "2" (allow authenticated provisioning), and "3" (allow @@ -41276,27 +24706,15 @@ both authenticated and unauthenticated provisioning). See the wpa_supplicant documentation for more details. - - Forces use of the new PEAP label during key derivation. Some RADIUS + + Forces use of the new PEAP label during key derivation. Some RADIUS servers may require forcing the new PEAP label to interoperate with PEAPv1. Set to "1" to force use of the new PEAP label. See the wpa_supplicant documentation for more details. - - Forces which PEAP version is used when PEAP is set as the EAP method in + + Forces which PEAP version is used when PEAP is set as the EAP method in the #NMSetting8021x:eap property. When unset, the version reported by the server will be used. Sometimes when using older RADIUS servers, it is necessary to force the client to use a particular PEAP version. To do @@ -41304,12 +24722,8 @@ so, this property may be set to "0" or "1" to force that specific PEAP version. - - List of strings to be matched against the altSubjectName of the + + List of strings to be matched against the altSubjectName of the certificate presented by the authentication server during the inner "phase 2" authentication. If the list is empty, no verification of the server certificate's altSubjectName is performed. @@ -41317,14 +24731,8 @@ server certificate's altSubjectName is performed. - - Specifies the allowed "phase 2" inner authentication method when an EAP + + Specifies the allowed "phase 2" inner authentication method when an EAP method that uses an inner TLS tunnel is specified in the #NMSetting8021x:eap property. For TTLS this property selects one of the supported non-EAP inner methods: "pap", "chap", "mschap", "mschapv2" while @@ -41336,14 +24744,8 @@ Both #NMSetting8021x:phase2-auth and #NMSetting8021x:phase2-autheap cannot be specified. - - Specifies the allowed "phase 2" inner EAP-based authentication method + + Specifies the allowed "phase 2" inner EAP-based authentication method when TTLS is specified in the #NMSetting8021x:eap property. Recognized EAP-based "phase 2" methods are "md5", "mschapv2", "otp", "gtc", and "tls". Each "phase 2" inner method requires specific parameters for @@ -41351,13 +24753,8 @@ successful authentication; see the wpa_supplicant documentation for more details. - - Contains the "phase 2" CA certificate if used by the EAP method specified + + Contains the "phase 2" CA certificate if used by the EAP method specified in the #NMSetting8021x:phase2-auth or #NMSetting8021x:phase2-autheap properties. @@ -41377,38 +24774,18 @@ Setting this property directly is discouraged; use the nm_setting_802_1x_set_phase2_ca_cert() function instead. - - The password used to access the "phase2" CA certificate stored in + + The password used to access the "phase2" CA certificate stored in #NMSetting8021x:phase2-ca-cert property. Only makes sense if the certificate is stored on a PKCS#<!-- -->11 token that requires a login. - - Flags indicating how to handle the #NMSetting8021x:phase2-ca-cert-password property. + + Flags indicating how to handle the #NMSetting8021x:phase2-ca-cert-password property. - - UTF-8 encoded path to a directory containing PEM or DER formatted + + UTF-8 encoded path to a directory containing PEM or DER formatted certificates to be added to the verification chain in addition to the certificate specified in the #NMSetting8021x:phase2-ca-cert property. @@ -41416,13 +24793,8 @@ If NMSetting8021x:system-ca-certs is enabled and the built-in CA path is an existing directory, then this setting is ignored. - - Contains the "phase 2" client certificate if used by the EAP method + + Contains the "phase 2" client certificate if used by the EAP method specified in the #NMSetting8021x:phase2-auth or #NMSetting8021x:phase2-autheap properties. @@ -41439,39 +24811,18 @@ Setting this property directly is discouraged; use the nm_setting_802_1x_set_phase2_client_cert() function instead. - - The password used to access the "phase2" client certificate stored in + + The password used to access the "phase2" client certificate stored in #NMSetting8021x:phase2-client-cert property. Only makes sense if the certificate is stored on a PKCS#<!-- -->11 token that requires a login. - - Flags indicating how to handle the #NMSetting8021x:phase2-client-cert-password property. + + Flags indicating how to handle the #NMSetting8021x:phase2-client-cert-password property. - - Constraint for server domain name. If set, this list of FQDNs is used as + + Constraint for server domain name. If set, this list of FQDNs is used as a match requirement for dNSName element(s) of the certificate presented by the authentication server during the inner "phase 2" authentication. If a matching dNSName is found, this constraint is met. If no dNSName @@ -41480,15 +24831,8 @@ using the same comparison. Multiple valid FQDNs can be passed as a ";" delimited list. - - Constraint for server domain name. If set, this FQDN is used as a suffix + + Constraint for server domain name. If set, this FQDN is used as a suffix match requirement for dNSName element(s) of the certificate presented by the authentication server during the inner "phase 2" authentication. If a matching dNSName is found, this constraint is met. If no dNSName @@ -41498,13 +24842,8 @@ Since version 1.24, multiple valid FQDNs can be passed as a ";" delimited list. - - Contains the "phase 2" inner private key when the + + Contains the "phase 2" inner private key when the #NMSetting8021x:phase2-auth or #NMSetting8021x:phase2-autheap property is set to "tls". @@ -41528,14 +24867,8 @@ Setting this property directly is discouraged; use the nm_setting_802_1x_set_phase2_private_key() function instead. - - The password used to decrypt the "phase 2" private key specified in the + + The password used to decrypt the "phase 2" private key specified in the #NMSetting8021x:phase2-private-key property when the private key either uses the path scheme, or is a PKCS#<!-- -->12 format key. Setting this property directly is not generally necessary except when returning @@ -41544,27 +24877,13 @@ the private key by the nm_setting_802_1x_set_phase2_private_key() function. - - Flags indicating how to handle the + + Flags indicating how to handle the #NMSetting8021x:phase2-private-key-password property. - - Substring to be matched against the subject of the certificate presented + + Substring to be matched against the subject of the certificate presented by the authentication server during the inner "phase 2" authentication. When unset, no verification of the authentication server certificate's subject is performed. This property provides little security, @@ -41572,33 +24891,16 @@ if any, and should not be used. Use #NMSetting8021x:phase2-domain-suffix-match instead. - - PIN used for EAP authentication methods. + + PIN used for EAP authentication methods. - - Flags indicating how to handle the #NMSetting8021x:pin property. + + Flags indicating how to handle the #NMSetting8021x:pin property. - - Contains the private key when the #NMSetting8021x:eap property is set to + + Contains the private key when the #NMSetting8021x:eap property is set to "tls". Key data is specified using a "scheme"; two are currently supported: blob @@ -41627,14 +24929,8 @@ private key password to prevent unauthorized access to unencrypted private key data. - - The password used to decrypt the private key specified in the + + The password used to decrypt the private key specified in the #NMSetting8021x:private-key property when the private key either uses the path scheme, or if the private key is a PKCS#<!-- -->12 format key. Setting this property directly is not generally necessary except when returning @@ -41642,41 +24938,21 @@ secrets to NetworkManager; it is generally set automatically when setting the private key by the nm_setting_802_1x_set_private_key() function. - - Flags indicating how to handle the #NMSetting8021x:private-key-password + + Flags indicating how to handle the #NMSetting8021x:private-key-password property. - - Substring to be matched against the subject of the certificate presented + + Substring to be matched against the subject of the certificate presented by the authentication server. When unset, no verification of the authentication server certificate's subject is performed. This property provides little security, if any, and should not be used. Use #NMSetting8021x:phase2-domain-suffix-match instead. - - When %TRUE, overrides the #NMSetting8021x:ca-path and + + When %TRUE, overrides the #NMSetting8021x:ca-path and #NMSetting8021x:phase2-ca-path properties using the system CA directory specified at configure time with the --system-ca-path switch. The certificates in this directory are added to the verification chain in @@ -41688,638 +24964,314 @@ properties instead (sets ca_cert/ca_cert2 options for wpa_supplicant). - - #NMSetting8021xAuthFlags values indicate which authentication settings + + #NMSetting8021xAuthFlags values indicate which authentication settings should be used. Before 1.22, this was wrongly marked as a enum and not as a flags type. - - No flags - - - Disable TLSv1.0 - - - Disable TLSv1.1 - - - Disable TLSv1.2 - - - Disable TLS time checks. Since 1.42. - - - Disable TLSv1.3. Since 1.42. - - - Enable TLSv1.0. Since 1.42. - - - Enable TLSv1.1. Since 1.42. - - - Enable TLSv1.2. Since 1.42. - - - Enable TLSv1.3. Since 1.42. - - - All supported flags + + No flags + + + Disable TLSv1.0 + + + Disable TLSv1.1 + + + Disable TLSv1.2 + + + Disable TLS time checks. Since 1.42. + + + Disable TLSv1.3. Since 1.42. + + + Enable TLSv1.0. Since 1.42. + + + Enable TLSv1.1. Since 1.42. + + + Enable TLSv1.2. Since 1.42. + + + Enable TLSv1.3. Since 1.42. + + + All supported flags - - #NMSetting8021xCKFormat values indicate the general type of a certificate + + #NMSetting8021xCKFormat values indicate the general type of a certificate or private key - - unknown file format - - - file contains an X.509 format certificate - - - file contains an old-style OpenSSL PEM + + unknown file format + + + file contains an X.509 format certificate + + + file contains an old-style OpenSSL PEM or DER private key - - file contains a PKCS#<!-- -->12 certificate + + file contains a PKCS#<!-- -->12 certificate and private key - - #NMSetting8021xCKScheme values indicate how a certificate or private key is + + #NMSetting8021xCKScheme values indicate how a certificate or private key is stored in the setting properties, either as a blob of the item's data, or as a path to a certificate or private key file on the filesystem - - unknown certificate or private key + + unknown certificate or private key scheme - - certificate or key is stored as the raw + + certificate or key is stored as the raw item data - - certificate or key is stored as a path + + certificate or key is stored as a path to a file containing the certificate or key data - - certificate or key is stored as a + + certificate or key is stored as a URI of an object on a PKCS#11 token - - + + - - ADSL Settings - + + ADSL Settings + - Creates a new #NMSettingAdsl object with default values. - + Creates a new #NMSettingAdsl object with default values. + - the new empty #NMSettingAdsl object + the new empty #NMSettingAdsl object - - - - the #NMSettingAdsl:encapsulation property of the setting + + + + the #NMSettingAdsl:encapsulation property of the setting - the #NMSettingAdsl + the #NMSettingAdsl - - + + - the #NMSettingAdsl:password property of the setting + the #NMSettingAdsl:password property of the setting - the #NMSettingAdsl + the #NMSettingAdsl - - + + - the #NMSettingSecretFlags pertaining to the #NMSettingAdsl:password + the #NMSettingSecretFlags pertaining to the #NMSettingAdsl:password - the #NMSettingAdsl + the #NMSettingAdsl - - + + - the #NMSettingAdsl:protocol property of the setting + the #NMSettingAdsl:protocol property of the setting - the #NMSettingAdsl + the #NMSettingAdsl - - + + - the #NMSettingAdsl:username property of the setting + the #NMSettingAdsl:username property of the setting - the #NMSettingAdsl + the #NMSettingAdsl - - + + - the #NMSettingAdsl:vci property of the setting + the #NMSettingAdsl:vci property of the setting - the #NMSettingAdsl + the #NMSettingAdsl - - + + - the #NMSettingAdsl:vpi property of the setting + the #NMSettingAdsl:vpi property of the setting - the #NMSettingAdsl + the #NMSettingAdsl - - Encapsulation of ADSL connection. Can be "vcmux" or "llc". + + Encapsulation of ADSL connection. Can be "vcmux" or "llc". - - Password used to authenticate with the ADSL service. + + Password used to authenticate with the ADSL service. - - Flags indicating how to handle the #NMSettingAdsl:password property. + + Flags indicating how to handle the #NMSettingAdsl:password property. - - ADSL connection protocol. Can be "pppoa", "pppoe" or "ipoatm". + + ADSL connection protocol. Can be "pppoa", "pppoe" or "ipoatm". - - Username used to authenticate with the ADSL service. + + Username used to authenticate with the ADSL service. - - VCI of ADSL connection + + VCI of ADSL connection - - VPI of ADSL connection + + VPI of ADSL connection - - + + - - Bluetooth Settings - + + Bluetooth Settings + - Creates a new #NMSettingBluetooth object with default values. - + Creates a new #NMSettingBluetooth object with default values. + - the new empty #NMSettingBluetooth object + the new empty #NMSettingBluetooth object - - Gets the Bluetooth address of the remote device which this setting + + Gets the Bluetooth address of the remote device which this setting describes a connection to. - + - the Bluetooth address + the Bluetooth address - the #NMSettingBluetooth + the #NMSettingBluetooth - - Returns the connection method for communicating with the remote device (i.e. + + Returns the connection method for communicating with the remote device (i.e. either DUN to a DUN-capable device or PANU to a NAP-capable device). - + - the type, either %NM_SETTING_BLUETOOTH_TYPE_PANU, + the type, either %NM_SETTING_BLUETOOTH_TYPE_PANU, %NM_SETTING_BLUETOOTH_TYPE_NAP or %NM_SETTING_BLUETOOTH_TYPE_DUN - the #NMSettingBluetooth + the #NMSettingBluetooth - - The Bluetooth address of the device. + + The Bluetooth address of the device. - - Either "dun" for Dial-Up Networking connections or "panu" for Personal + + Either "dun" for Dial-Up Networking connections or "panu" for Personal Area Networking connections to devices supporting the NAP profile. - - + + - - Bonding Settings - + + Bonding Settings + - Creates a new #NMSettingBond object with default values. - + Creates a new #NMSettingBond object with default values. + - the new empty #NMSettingBond object + the new empty #NMSettingBond object - - Checks whether @name is a valid bond option and @value is a valid value for + + Checks whether @name is a valid bond option and @value is a valid value for the @name. If @value is %NULL, the function only validates the option name. - + - %TRUE, if the @value is valid for the given name. + %TRUE, if the @value is valid for the given name. If the @name is not a valid option, %FALSE will be returned. - the name of the option to validate + the name of the option to validate - - the value of the option to validate. + + the value of the option to validate. - Add an option to the table. Adding a new name replaces any existing name/value pair + Add an option to the table. Adding a new name replaces any existing name/value pair that may already exist. - + - returns %FALSE if either @name or @value is %NULL, in that case + returns %FALSE if either @name or @value is %NULL, in that case the option is not set. Otherwise, the function does not fail and does not validate the arguments. All validation happens via nm_connection_verify() or do basic validation yourself with nm_setting_bond_validate_option(). @@ -42332,251 +25284,168 @@ to perform validation. - the #NMSettingBond + the #NMSettingBond - name for the option + name for the option - value for the option + value for the option - - Returns the number of options that should be set for this bond when it + + Returns the number of options that should be set for this bond when it is activated. This can be used to retrieve each option individually using nm_setting_bond_get_option(). - + - the number of bonding options + the number of bonding options - the #NMSettingBond + the #NMSettingBond - Given an index, return the value of the bonding option at that index. Indexes + Given an index, return the value of the bonding option at that index. Indexes are *not* guaranteed to be static across modifications to options done by nm_setting_bond_add_option() and nm_setting_bond_remove_option(), and should not be used to refer to options except for short periods of time such as during option iteration. - + - %TRUE on success if the index was valid and an option was found, + %TRUE on success if the index was valid and an option was found, %FALSE if the index was invalid (ie, greater than the number of options currently held by the setting) - the #NMSettingBond + the #NMSettingBond - index of the desired option, from 0 to + index of the desired option, from 0 to nm_setting_bond_get_num_options() - 1 - - on return, the name of the bonding option; + + on return, the name of the bonding option; this value is owned by the setting and should not be modified - - on return, the value of the name of the + + on return, the value of the name of the bonding option; this value is owned by the setting and should not be modified - - Returns the value associated with the bonding option specified by + + Returns the value associated with the bonding option specified by @name, if it exists. - + - the value, or %NULL if the key/value pair was never added to the + the value, or %NULL if the key/value pair was never added to the setting; the value is owned by the setting and must not be modified - the #NMSettingBond + the #NMSettingBond - the option name for which to retrieve the value + the option name for which to retrieve the value - - + + - the value of the bond option if not overridden by an entry in + the value of the bond option if not overridden by an entry in the #NMSettingBond:options property. - the #NMSettingBond + the #NMSettingBond - the name of the option + the name of the option - - + + - the value of the bond option after normalization, which is what NetworkManager + the value of the bond option after normalization, which is what NetworkManager will actually apply when activating the connection. %NULL if the option won't be applied to the connection. - the #NMSettingBond + the #NMSettingBond - the name of the option + the name of the option - - Returns a list of valid bond options. + + Returns a list of valid bond options. The @setting argument is unused and may be passed as %NULL. - + - a %NULL-terminated array of strings of valid bond options. + a %NULL-terminated array of strings of valid bond options. - - the #NMSettingBond + + the #NMSettingBond - - Remove the bonding option referenced by @name from the internal option + + Remove the bonding option referenced by @name from the internal option list. - + - %TRUE if the option was found and removed from the internal option + %TRUE if the option was found and removed from the internal option list, %FALSE if it was not. - the #NMSettingBond + the #NMSettingBond - name of the option to remove + name of the option to remove - Dictionary of key/value pairs of bonding options. Both keys and values + Dictionary of key/value pairs of bonding options. Both keys and values must be strings. Option names must contain only alphanumeric characters (ie, [a-zA-Z0-9]). @@ -42585,882 +25454,531 @@ must be strings. Option names must contain only alphanumeric characters - - + + - - Bond Port Settings - - - Creates a new #NMSettingBondPort object with default values. - + + Bond Port Settings + + + Creates a new #NMSettingBondPort object with default values. + - the new empty #NMSettingBondPort object + the new empty #NMSettingBondPort object - - - - the #NMSettingBondPort:prio property of the setting + + + + the #NMSettingBondPort:prio property of the setting - the #NMSettingBondPort + the #NMSettingBondPort - - + + - the #NMSettingBondPort:queue_id property of the setting + the #NMSettingBondPort:queue_id property of the setting - the #NMSettingBondPort + the #NMSettingBondPort - - The port priority for bond active port re-selection during failover. A + + The port priority for bond active port re-selection during failover. A higher number means a higher priority in selection. The primary port has the highest priority. This option is only compatible with active-backup, balance-tlb and balance-alb modes. - - The queue ID of this bond port. The maximum value of queue ID is + + The queue ID of this bond port. The maximum value of queue ID is the number of TX queues currently active in device. - - + + - - Bridging Settings - + + Bridging Settings + - Creates a new #NMSettingBridge object with default values. - + Creates a new #NMSettingBridge object with default values. + - the new empty #NMSettingBridge object + the new empty #NMSettingBridge object - - Appends a new vlan and associated information to the setting. The + + Appends a new vlan and associated information to the setting. The given vlan gets sealed and a reference to it is added. - + - the #NMSettingBridge + the #NMSettingBridge - the vlan to add + the vlan to add - - Removes all configured VLANs. - + + Removes all configured VLANs. + - the #NMSettingBridge + the #NMSettingBridge - - + + - the #NMSettingBridge:ageing-time property of the setting + the #NMSettingBridge:ageing-time property of the setting - the #NMSettingBridge + the #NMSettingBridge - - + + - the #NMSettingBridge:forward-delay property of the setting + the #NMSettingBridge:forward-delay property of the setting - the #NMSettingBridge + the #NMSettingBridge - - + + - the #NMSettingBridge:group-address property of the setting + the #NMSettingBridge:group-address property of the setting - the #NMSettingBridge + the #NMSettingBridge - - + + - the #NMSettingBridge:group-forward-mask property of the setting + the #NMSettingBridge:group-forward-mask property of the setting - the #NMSettingBridge + the #NMSettingBridge - - + + - the #NMSettingBridge:hello-time property of the setting + the #NMSettingBridge:hello-time property of the setting - the #NMSettingBridge + the #NMSettingBridge - - + + - the #NMSettingBridge:mac-address property of the setting + the #NMSettingBridge:mac-address property of the setting - the #NMSettingBridge + the #NMSettingBridge - - + + - the #NMSettingBridge:max-age property of the setting + the #NMSettingBridge:max-age property of the setting - the #NMSettingBridge + the #NMSettingBridge - - + + - the #NMSettingBridge:multicast-hash-max property of the setting + the #NMSettingBridge:multicast-hash-max property of the setting - the #NMSettingBridge + the #NMSettingBridge - - + + - the #NMSettingBridge:multicast-last-member-count property of the setting + the #NMSettingBridge:multicast-last-member-count property of the setting - the #NMSettingBridge + the #NMSettingBridge - - + + - the #NMSettingBridge:multicast-last-member-interval property of the setting + the #NMSettingBridge:multicast-last-member-interval property of the setting - the #NMSettingBridge + the #NMSettingBridge - - + + - the #NMSettingBridge:multicast-membership-interval property of the setting + the #NMSettingBridge:multicast-membership-interval property of the setting - the #NMSettingBridge + the #NMSettingBridge - - + + - the #NMSettingBridge:multicast-querier property of the setting + the #NMSettingBridge:multicast-querier property of the setting - the #NMSettingBridge + the #NMSettingBridge - - + + - the #NMSettingBridge:multicast-querier-interval property of the setting + the #NMSettingBridge:multicast-querier-interval property of the setting - the #NMSettingBridge + the #NMSettingBridge - - + + - the #NMSettingBridge:multicast-query-interval property of the setting + the #NMSettingBridge:multicast-query-interval property of the setting - the #NMSettingBridge + the #NMSettingBridge - - + + - the #NMSettingBridge:multicast-query-response-interval property of the setting + the #NMSettingBridge:multicast-query-response-interval property of the setting - the #NMSettingBridge + the #NMSettingBridge - - + + - the #NMSettingBridge:multicast-query-use-ifaddr property of the setting + the #NMSettingBridge:multicast-query-use-ifaddr property of the setting - the #NMSettingBridge + the #NMSettingBridge - - + + - the #NMSettingBridge:multicast-router property of the setting + the #NMSettingBridge:multicast-router property of the setting - the #NMSettingBridge + the #NMSettingBridge - - + + - the #NMSettingBridge:multicast-snooping property of the setting + the #NMSettingBridge:multicast-snooping property of the setting - the #NMSettingBridge + the #NMSettingBridge - - + + - the #NMSettingBridge:multicast-query-response-interval property of the setting + the #NMSettingBridge:multicast-query-response-interval property of the setting - the #NMSettingBridge + the #NMSettingBridge - - + + - the #NMSettingBridge:multicast-startup-query-interval property of the setting + the #NMSettingBridge:multicast-startup-query-interval property of the setting - the #NMSettingBridge + the #NMSettingBridge - - + + - the number of VLANs + the number of VLANs - the #NMSettingBridge + the #NMSettingBridge - - + + - the #NMSettingBridge:priority property of the setting + the #NMSettingBridge:priority property of the setting - the #NMSettingBridge + the #NMSettingBridge - - + + - the #NMSettingBridge:stp property of the setting + the #NMSettingBridge:stp property of the setting - the #NMSettingBridge + the #NMSettingBridge - - + + - the VLAN at index @idx + the VLAN at index @idx - the #NMSettingBridge + the #NMSettingBridge - index number of the VLAN to return + index number of the VLAN to return - - + + - the #NMSettingBridge:vlan-default-pvid property of the setting + the #NMSettingBridge:vlan-default-pvid property of the setting - the #NMSettingBridge + the #NMSettingBridge - - + + - the #NMSettingBridge:vlan-filtering property of the setting + the #NMSettingBridge:vlan-filtering property of the setting - the #NMSettingBridge + the #NMSettingBridge - - + + - the #NMSettingBridge:vlan-protocol property of the setting + the #NMSettingBridge:vlan-protocol property of the setting - the #NMSettingBridge + the #NMSettingBridge - - + + - the #NMSettingBridge:vlan-stats-enabled property of the setting + the #NMSettingBridge:vlan-stats-enabled property of the setting - the #NMSettingBridge + the #NMSettingBridge - - Removes the vlan at index @idx. - + + Removes the vlan at index @idx. + - the #NMSettingBridge + the #NMSettingBridge - index number of the VLAN. + index number of the VLAN. - - Remove the VLAN with range @vid_start to @vid_end. + + Remove the VLAN with range @vid_start to @vid_end. If @vid_end is zero, it is assumed to be equal to @vid_start and so the single-id VLAN with id @vid_start is removed. - + - %TRUE if the vlan was found and removed; %FALSE otherwise + %TRUE if the vlan was found and removed; %FALSE otherwise - the #NMSettingBridge + the #NMSettingBridge - the vlan start index + the vlan start index - the vlan end index + the vlan end index - - The Ethernet MAC address aging time, in seconds. + + The Ethernet MAC address aging time, in seconds. - - The Spanning Tree Protocol (STP) forwarding delay, in seconds. + + The Spanning Tree Protocol (STP) forwarding delay, in seconds. - - If specified, The MAC address of the multicast group this bridge uses for STP. + + If specified, The MAC address of the multicast group this bridge uses for STP. The address must be a link-local address in standard Ethernet MAC address format, ie an address of the form 01:80:C2:00:00:0X, with X in [0, 4..F]. If not specified the default value is 01:80:C2:00:00:00. - - A mask of group addresses to forward. Usually, group addresses in + + A mask of group addresses to forward. Usually, group addresses in the range from 01:80:C2:00:00:00 to 01:80:C2:00:00:0F are not forwarded according to standards. This property is a mask of 16 bits, each corresponding to a group address in that range that must be @@ -43468,26 +25986,12 @@ forwarded. The mask can't have bits 0, 1 or 2 set because they are used for STP, MAC pause frames and LACP. - - The Spanning Tree Protocol (STP) hello time, in seconds. + + The Spanning Tree Protocol (STP) hello time, in seconds. - - If specified, the MAC address of bridge. When creating a new bridge, this + + If specified, the MAC address of bridge. When creating a new bridge, this MAC address will be set. If this field is left unspecified, the "ethernet.cloned-mac-address" is @@ -43497,125 +26001,59 @@ the bridge later while activating the bridge. Use the #NMSettingWired:cloned-mac-address property instead. - - The Spanning Tree Protocol (STP) maximum message age, in seconds. + + The Spanning Tree Protocol (STP) maximum message age, in seconds. - - Set maximum size of multicast hash table (value must be a power of 2). + + Set maximum size of multicast hash table (value must be a power of 2). - - Set the number of queries the bridge will send before + + Set the number of queries the bridge will send before stopping forwarding a multicast group after a "leave" message has been received. - - Set interval (in deciseconds) between queries to find remaining + + Set interval (in deciseconds) between queries to find remaining members of a group, after a "leave" message is received. - - Set delay (in deciseconds) after which the bridge will + + Set delay (in deciseconds) after which the bridge will leave a group, if no membership reports for this group are received. - - Enable or disable sending of multicast queries by the bridge. + + Enable or disable sending of multicast queries by the bridge. If not specified the option is disabled. - - If no queries are seen after this delay (in deciseconds) has passed, + + If no queries are seen after this delay (in deciseconds) has passed, the bridge will start to send its own queries. - - Interval (in deciseconds) between queries sent + + Interval (in deciseconds) between queries sent by the bridge after the end of the startup phase. - - Set the Max Response Time/Max Response Delay + + Set the Max Response Time/Max Response Delay (in deciseconds) for IGMP/MLD queries sent by the bridge. - - If enabled the bridge's own IP address is used as + + If enabled the bridge's own IP address is used as the source address for IGMP queries otherwise the default of 0.0.0.0 is used. - - Sets bridge's multicast router. Multicast-snooping must be enabled + + Sets bridge's multicast router. Multicast-snooping must be enabled for this option to work. Supported values are: 'auto', 'disabled', 'enabled' to which kernel @@ -43623,117 +26061,54 @@ assigns the numbers 1, 0, and 2, respectively. If not specified the default value is 'auto' (1). - - Controls whether IGMP snooping is enabled for this bridge. + + Controls whether IGMP snooping is enabled for this bridge. Note that if snooping was automatically disabled due to hash collisions, the system may refuse to enable the feature until the collisions are resolved. - - Set the number of IGMP queries to send during startup phase. + + Set the number of IGMP queries to send during startup phase. - - Sets the time (in deciseconds) between queries sent out + + Sets the time (in deciseconds) between queries sent out at startup to determine membership information. - - Sets the Spanning Tree Protocol (STP) priority for this bridge. Lower + + Sets the Spanning Tree Protocol (STP) priority for this bridge. Lower values are "better"; the lowest priority bridge will be elected the root bridge. - - Controls whether Spanning Tree Protocol (STP) is enabled for this bridge. + + Controls whether Spanning Tree Protocol (STP) is enabled for this bridge. - - The default PVID for the ports of the bridge, that is the VLAN id + + The default PVID for the ports of the bridge, that is the VLAN id assigned to incoming untagged frames. - - Control whether VLAN filtering is enabled on the bridge. + + Control whether VLAN filtering is enabled on the bridge. - - If specified, the protocol used for VLAN filtering. + + If specified, the protocol used for VLAN filtering. Supported values are: '802.1Q', '802.1ad'. If not specified the default value is '802.1Q'. - - Controls whether per-VLAN stats accounting is enabled. + + Controls whether per-VLAN stats accounting is enabled. - - Array of bridge VLAN objects. In addition to the VLANs + + Array of bridge VLAN objects. In addition to the VLANs specified here, the bridge will also have the default-pvid VLAN configured by the bridge.vlan-default-pvid property. @@ -43749,294 +26124,177 @@ range, represented as a couple of ids separated by a dash. - - + + - - Bridge Port Settings - + + Bridge Port Settings + - Creates a new #NMSettingBridgePort object with default values. - + Creates a new #NMSettingBridgePort object with default values. + - the new empty #NMSettingBridgePort object + the new empty #NMSettingBridgePort object - - Appends a new vlan and associated information to the setting. The + + Appends a new vlan and associated information to the setting. The given vlan gets sealed and a reference to it is added. - + - the #NMSettingBridgePort + the #NMSettingBridgePort - the vlan to add + the vlan to add - - Removes all configured VLANs. - + + Removes all configured VLANs. + - the #NMSettingBridgePort + the #NMSettingBridgePort - - + + - the #NMSettingBridgePort:hairpin-mode property of the setting + the #NMSettingBridgePort:hairpin-mode property of the setting - the #NMSettingBridgePort + the #NMSettingBridgePort - - + + - the number of VLANs + the number of VLANs - the #NMSettingBridgePort + the #NMSettingBridgePort - - + + - the #NMSettingBridgePort:path-cost property of the setting + the #NMSettingBridgePort:path-cost property of the setting - the #NMSettingBridgePort + the #NMSettingBridgePort - - + + - the #NMSettingBridgePort:priority property of the setting + the #NMSettingBridgePort:priority property of the setting - the #NMSettingBridgePort + the #NMSettingBridgePort - - + + - the VLAN at index @idx + the VLAN at index @idx - the #NMSettingBridgePort + the #NMSettingBridgePort - index number of the VLAN to return + index number of the VLAN to return - - Removes the vlan at index @idx. - + + Removes the vlan at index @idx. + - the #NMSettingBridgePort + the #NMSettingBridgePort - index number of the VLAN. + index number of the VLAN. - - Remove the VLAN with range @vid_start to @vid_end. + + Remove the VLAN with range @vid_start to @vid_end. If @vid_end is zero, it is assumed to be equal to @vid_start and so the single-id VLAN with id @vid_start is removed. - + - %TRUE if the vlan was found and removed; %FALSE otherwise + %TRUE if the vlan was found and removed; %FALSE otherwise - the #NMSettingBridgePort + the #NMSettingBridgePort - the vlan start index + the vlan start index - the vlan end index + the vlan end index - - Enables or disables "hairpin mode" for the port, which allows frames to + + Enables or disables "hairpin mode" for the port, which allows frames to be sent back out through the port the frame was received on. - - The Spanning Tree Protocol (STP) port cost for destinations via this + + The Spanning Tree Protocol (STP) port cost for destinations via this port. - - The Spanning Tree Protocol (STP) priority of this bridge port. + + The Spanning Tree Protocol (STP) priority of this bridge port. - - Array of bridge VLAN objects. In addition to the VLANs + + Array of bridge VLAN objects. In addition to the VLANs specified here, the port will also have the default-pvid VLAN configured on the bridge by the bridge.vlan-default-pvid property. @@ -44053,341 +26311,178 @@ range, represented as a couple of ids separated by a dash. - - + + - - CDMA-based Mobile Broadband Settings - + + CDMA-based Mobile Broadband Settings + - Creates a new #NMSettingCdma object with default values. - + Creates a new #NMSettingCdma object with default values. + - the new empty #NMSettingCdma object + the new empty #NMSettingCdma object - - - - the #NMSettingCdma:mtu property of the setting + + + + the #NMSettingCdma:mtu property of the setting - the #NMSettingCdma + the #NMSettingCdma - - + + - the #NMSettingCdma:number property of the setting + the #NMSettingCdma:number property of the setting - the #NMSettingCdma + the #NMSettingCdma - - + + - the #NMSettingCdma:password property of the setting + the #NMSettingCdma:password property of the setting - the #NMSettingCdma + the #NMSettingCdma - - + + - the #NMSettingSecretFlags pertaining to the #NMSettingCdma:password + the #NMSettingSecretFlags pertaining to the #NMSettingCdma:password - the #NMSettingCdma + the #NMSettingCdma - - + + - the #NMSettingCdma:username property of the setting + the #NMSettingCdma:username property of the setting - the #NMSettingCdma + the #NMSettingCdma - - If non-zero, only transmit packets of the specified size or smaller, + + If non-zero, only transmit packets of the specified size or smaller, breaking larger packets up into multiple frames. - - The number to dial to establish the connection to the CDMA-based mobile + + The number to dial to establish the connection to the CDMA-based mobile broadband network, if any. If not specified, the default number (#777) is used when required. - - The password used to authenticate with the network, if required. Many + + The password used to authenticate with the network, if required. Many providers do not require a password, or accept any password. But if a password is required, it is specified here. - - Flags indicating how to handle the #NMSettingCdma:password property. + + Flags indicating how to handle the #NMSettingCdma:password property. - - The username used to authenticate with the network, if required. Many + + The username used to authenticate with the network, if required. Many providers do not require a username, or accept any username. But if a username is required, it is specified here. - - + + - + - + - %TRUE to clear the secret, %FALSE to not clear the secret + %TRUE to clear the secret, %FALSE to not clear the secret - The setting for which secrets are being iterated + The setting for which secrets are being iterated - The secret's name + The secret's name - The secret's flags, eg %NM_SETTING_SECRET_FLAG_AGENT_OWNED + The secret's flags, eg %NM_SETTING_SECRET_FLAG_AGENT_OWNED - - User data passed to nm_connection_clear_secrets_with_flags() + + User data passed to nm_connection_clear_secrets_with_flags() - - These flags modify the comparison behavior when comparing two settings or + + These flags modify the comparison behavior when comparing two settings or two connections. - - match all properties exactly - - - match only important attributes, like SSID, + + match all properties exactly + + + match only important attributes, like SSID, type, security settings, etc. Does not match, for example, connection ID or UUID. - - ignore the connection's ID - - - ignore all secrets - - - ignore secrets for which + + ignore the connection's ID + + + ignore all secrets + + + ignore secrets for which the secret's flags indicate the secret is owned by a user secret agent (ie, the secret's flag includes @NM_SETTING_SECRET_FLAG_AGENT_OWNED) - - ignore secrets for which + + ignore secrets for which the secret's flags indicate the secret should not be saved to persistent storage (ie, the secret's flag includes @NM_SETTING_SECRET_FLAG_NOT_SAVED) - - if this flag is set, + + if this flag is set, nm_setting_diff() and nm_connection_diff() will also include properties that are set to their default value. See also @NM_SETTING_COMPARE_FLAG_DIFF_RESULT_NO_DEFAULT. - - if this flag is set, + + if this flag is set, nm_setting_diff() and nm_connection_diff() will not include properties that are set to their default value. This is the opposite of @NM_SETTING_COMPARE_FLAG_DIFF_RESULT_WITH_DEFAULT. If both flags are set together, @@ -44399,54 +26494,28 @@ two connections. is set, nm_setting_diff() will also set the flags @NM_SETTING_DIFF_RESULT_IN_A_DEFAULT and @NM_SETTING_DIFF_RESULT_IN_B_DEFAULT, if the values are default values. - - ignore the connection's timestamp + + ignore the connection's timestamp - - General Connection Profile Settings - + + General Connection Profile Settings + - Creates a new #NMSettingConnection object with default values. - + Creates a new #NMSettingConnection object with default values. + - the new empty #NMSettingConnection object + the new empty #NMSettingConnection object - - Adds a permission to the connection's permission list. At this time, only + + Adds a permission to the connection's permission list. At this time, only the "user" permission type is supported, and @pitem must be a username. See #NMSettingConnection:permissions: for more details. - + - %TRUE if the permission was unique and was successfully added to the + %TRUE if the permission was unique and was successfully added to the list, %FALSE if @ptype or @pitem was invalid. If the permission was already present in the list, it will not be added a second time but %TRUE will be returned. Note that before 1.28, in this @@ -44455,1069 +26524,665 @@ case %FALSE would be returned. - the #NMSettingConnection + the #NMSettingConnection - the permission type; at this time only "user" is supported + the permission type; at this time only "user" is supported - the permission item formatted as required for @ptype + the permission item formatted as required for @ptype - - unused at this time; must be %NULL + + unused at this time; must be %NULL - - Adds a new secondary connection UUID to the setting. - + + Adds a new secondary connection UUID to the setting. + - %TRUE if the secondary connection UUID was added; %FALSE if the UUID + %TRUE if the secondary connection UUID was added; %FALSE if the UUID was already present - the #NMSettingConnection + the #NMSettingConnection - the secondary connection UUID to add + the secondary connection UUID to add - - Returns the value contained in the #NMSettingConnection:auth-retries property. - + + Returns the value contained in the #NMSettingConnection:auth-retries property. + - the configured authentication retries. Zero means + the configured authentication retries. Zero means infinity and -1 means a global default value. - the #NMSettingConnection + the #NMSettingConnection - - Returns the #NMSettingConnection:autoconnect property of the connection. - + + Returns the #NMSettingConnection:autoconnect property of the connection. + - the connection's autoconnect behavior + the connection's autoconnect behavior - the #NMSettingConnection + the #NMSettingConnection - - Returns the #NMSettingConnection:autoconnect-ports property of the connection. - + + Returns the #NMSettingConnection:autoconnect-ports property of the connection. + - whether ports of the connection should be activated together + whether ports of the connection should be activated together with the connection. - the #NMSettingConnection + the #NMSettingConnection - - Returns the #NMSettingConnection:autoconnect-priority property of the connection. + + Returns the #NMSettingConnection:autoconnect-priority property of the connection. The higher number, the higher priority. - + - the connection's autoconnect priority + the connection's autoconnect priority - the #NMSettingConnection + the #NMSettingConnection - - Returns the #NMSettingConnection:autoconnect-retries property of the connection. + + Returns the #NMSettingConnection:autoconnect-retries property of the connection. Zero means infinite, -1 means the global default value. - + - the connection's autoconnect retries + the connection's autoconnect retries - the #NMSettingConnection + the #NMSettingConnection - - Returns the #NMSettingConnection:autoconnect-slaves property of the connection. + + Returns the #NMSettingConnection:autoconnect-slaves property of the connection. Use nm_setting_connection_get_autoconnect_ports() instead, this is just an alias. - + - whether slaves of the connection should be activated together + whether slaves of the connection should be activated together with the connection. - + - the #NMSettingConnection + the #NMSettingConnection - - Returns the #NMSettingConnection:type property of the connection. - + + Returns the #NMSettingConnection:type property of the connection. + - the connection type + the connection type - the #NMSettingConnection + the #NMSettingConnection - - Returns the #NMSettingConnection:controller property of the connection. - + + Returns the #NMSettingConnection:controller property of the connection. + - interface name of the controller device or UUID of the controller + interface name of the controller device or UUID of the controller connection. - the #NMSettingConnection + the #NMSettingConnection - - + + - the #NMSettingConnection:dns-over-tls property of the setting. - + the #NMSettingConnection:dns-over-tls property of the setting. + - the #NMSettingConnection + the #NMSettingConnection - - + + - the value contained in the #NMSettingConnection:gateway-ping-timeout + the value contained in the #NMSettingConnection:gateway-ping-timeout property. - the #NMSettingConnection + the #NMSettingConnection - - Returns the #NMSettingConnection:id property of the connection. - + + Returns the #NMSettingConnection:id property of the connection. + - the connection ID + the connection ID - the #NMSettingConnection + the #NMSettingConnection - - Returns the #NMSettingConnection:interface-name property of the connection. - + + Returns the #NMSettingConnection:interface-name property of the connection. + - the connection's interface name + the connection's interface name - the #NMSettingConnection + the #NMSettingConnection - - Returns the #NMSettingConnection:lldp property of the connection. - + + Returns the #NMSettingConnection:lldp property of the connection. + - a %NMSettingConnectionLldp which indicates whether LLDP must be + a %NMSettingConnectionLldp which indicates whether LLDP must be enabled for the connection. - the #NMSettingConnection + the #NMSettingConnection - - + + - the #NMSettingConnection:llmnr property of the setting. - + the #NMSettingConnection:llmnr property of the setting. + - the #NMSettingConnection + the #NMSettingConnection - - Returns the #NMSettingConnection:master property of the connection. + + Returns the #NMSettingConnection:master property of the connection. Use nm_setting_connection_get_controller() instead which is just an alias. - + - interface name of the master device or UUID of the master + interface name of the master device or UUID of the master connection. - the #NMSettingConnection + the #NMSettingConnection - - + + - the #NMSettingConnection:mdns property of the setting. + the #NMSettingConnection:mdns property of the setting. - the #NMSettingConnection + the #NMSettingConnection - - + + - the #NMSettingConnection:metered property of the setting. + the #NMSettingConnection:metered property of the setting. - the #NMSettingConnection + the #NMSettingConnection - - + + - the #NMSettingConnection:mptcp-flags property of the setting. + the #NMSettingConnection:mptcp-flags property of the setting. - the #NMSettingConnection + the #NMSettingConnection - - Returns the value contained in the #NMSettingConnection:mud-url + + Returns the value contained in the #NMSettingConnection:mud-url property. - + - the #NMSettingConnection + the #NMSettingConnection - - + + - the #NMSettingConnection:multi-connect property of the connection. - + the #NMSettingConnection:multi-connect property of the connection. + - the #NMSettingConnection + the #NMSettingConnection - - Returns the number of entries in the #NMSettingConnection:permissions + + Returns the number of entries in the #NMSettingConnection:permissions property of this setting. - + - the number of permissions entries + the number of permissions entries - the #NMSettingConnection + the #NMSettingConnection - - + + - the number of configured secondary connection UUIDs + the number of configured secondary connection UUIDs - the #NMSettingConnection + the #NMSettingConnection - - Retrieve one of the entries of the #NMSettingConnection:permissions property + + Retrieve one of the entries of the #NMSettingConnection:permissions property of this setting. - + - %TRUE if a permission was returned, %FALSE if @idx was invalid + %TRUE if a permission was returned, %FALSE if @idx was invalid - the #NMSettingConnection + the #NMSettingConnection - the zero-based index of the permissions entry + the zero-based index of the permissions entry - on return, the permission type. This is currently always "user", + on return, the permission type. This is currently always "user", unless the entry is invalid, in which case it returns "invalid". - on return, the permission item (formatted according to @ptype, see + on return, the permission item (formatted according to @ptype, see #NMSettingConnection:permissions for more detail - on return, the permission detail (at this time, always %NULL) + on return, the permission detail (at this time, always %NULL) - - Returns the #NMSettingConnection:port-type property of the connection. - + + Returns the #NMSettingConnection:port-type property of the connection. + - the type of port this connection is, if any. + the type of port this connection is, if any. - the #NMSettingConnection + the #NMSettingConnection - - Returns the #NMSettingConnection:read-only property of the connection. + + Returns the #NMSettingConnection:read-only property of the connection. This property is deprecated and has no meaning. - + - %TRUE if the connection is read-only, %FALSE if it is not + %TRUE if the connection is read-only, %FALSE if it is not - the #NMSettingConnection + the #NMSettingConnection - - + + - the secondary connection UUID at index @idx or + the secondary connection UUID at index @idx or %NULL if @idx is the number of secondaries. - the #NMSettingConnection + the #NMSettingConnection - the zero-based index of the secondary connection UUID entry. + the zero-based index of the secondary connection UUID entry. Access one past the length of secondaries is ok and will return %NULL. Otherwise, it is a user error. - - Returns the #NMSettingConnection:slave-type property of the connection. + + Returns the #NMSettingConnection:slave-type property of the connection. Use nm_setting_connection_get_port_type() instead which is just an alias. - + - the type of slave this connection is, if any + the type of slave this connection is, if any - the #NMSettingConnection + the #NMSettingConnection - - Returns the #NMSettingConnection:stable_id property of the connection. - + + Returns the #NMSettingConnection:stable_id property of the connection. + - the stable-id for the connection + the stable-id for the connection - the #NMSettingConnection + the #NMSettingConnection - - Returns the #NMSettingConnection:timestamp property of the connection. - + + Returns the #NMSettingConnection:timestamp property of the connection. + - the connection's timestamp + the connection's timestamp - the #NMSettingConnection + the #NMSettingConnection - - Returns the #NMSettingConnection:uuid property of the connection. - + + Returns the #NMSettingConnection:uuid property of the connection. + - the connection UUID + the connection UUID - the #NMSettingConnection + the #NMSettingConnection - - + + - the %NM_SETTING_CONNECTION_WAIT_ACTIVATION_DELAY property with + the %NM_SETTING_CONNECTION_WAIT_ACTIVATION_DELAY property with the delay in milliseconds. -1 is the default. - the #NMSettingConnection + the #NMSettingConnection - - + + - the %NM_SETTING_CONNECTION_WAIT_DEVICE_TIMEOUT property with + the %NM_SETTING_CONNECTION_WAIT_DEVICE_TIMEOUT property with the timeout in milliseconds. -1 is the default. - the #NMSettingConnection + the #NMSettingConnection - - Returns the #NMSettingConnection:zone property of the connection. - + + Returns the #NMSettingConnection:zone property of the connection. + - the trust level of a connection + the trust level of a connection - the #NMSettingConnection + the #NMSettingConnection - - + + - %TRUE if connection is of the given slave @type + %TRUE if connection is of the given slave @type - the #NMSettingConnection + the #NMSettingConnection - the setting name (ie #NM_SETTING_BOND_SETTING_NAME) to be matched + the setting name (ie #NM_SETTING_BOND_SETTING_NAME) to be matched against @setting's slave type - - Checks whether the given username is allowed to view/access this connection. - + + Checks whether the given username is allowed to view/access this connection. + - %TRUE if the requested user is allowed to view this connection, + %TRUE if the requested user is allowed to view this connection, %FALSE if the given user is not allowed to view this connection - the #NMSettingConnection + the #NMSettingConnection - the user name to check permissions for + the user name to check permissions for - - Removes the permission at index @idx from the connection. - + + Removes the permission at index @idx from the connection. + - the #NMSettingConnection + the #NMSettingConnection - the zero-based index of the permission to remove + the zero-based index of the permission to remove - - Removes the permission from the connection. + + Removes the permission from the connection. At this time, only the "user" permission type is supported, and @pitem must be a username. See #NMSettingConnection:permissions: for more details. - + - %TRUE if the permission was found and removed; %FALSE if it was not. + %TRUE if the permission was found and removed; %FALSE if it was not. - the #NMSettingConnection + the #NMSettingConnection - the permission type; at this time only "user" is supported + the permission type; at this time only "user" is supported - the permission item formatted as required for @ptype + the permission item formatted as required for @ptype - - unused at this time; must be %NULL + + unused at this time; must be %NULL - - Removes the secondary connection UUID at index @idx. - + + Removes the secondary connection UUID at index @idx. + - the #NMSettingConnection + the #NMSettingConnection - index number of the secondary connection UUID + index number of the secondary connection UUID - - Removes the secondary connection UUID @sec_uuid. - + + Removes the secondary connection UUID @sec_uuid. + - %TRUE if the secondary connection UUID was found and removed; %FALSE if it was not. + %TRUE if the secondary connection UUID was found and removed; %FALSE if it was not. - the #NMSettingConnection + the #NMSettingConnection - the secondary connection UUID to remove + the secondary connection UUID to remove - - The number of retries for the authentication. Zero means to try indefinitely; -1 means + + The number of retries for the authentication. Zero means to try indefinitely; -1 means to use a global default. If the global default is not set, the authentication retries for 3 times before failing the connection. Currently, this only applies to 802-1x authentication. - - Whether or not the connection should be automatically connected by + + Whether or not the connection should be automatically connected by NetworkManager when the resources for the connection are available. %TRUE to automatically activate the connection, %FALSE to require manual intervention to activate the connection. @@ -45540,15 +27205,8 @@ Depending on "connection.multi-connect", a profile can (auto)connect only once at a time or multiple times. - - Whether or not ports of this connection should be automatically brought up + + Whether or not ports of this connection should be automatically brought up when NetworkManager activates this connection. This only has a real effect for controller connections. The properties #NMSettingConnection:autoconnect, #NMSettingConnection:autoconnect-priority and #NMSettingConnection:autoconnect-retries @@ -45559,14 +27217,8 @@ If -1 (default) is set, global connection.autoconnect-ports is read to determine the real value. If it is default as well, this fallbacks to 0. - - The autoconnect priority in range -999 to 999. If the connection is set + + The autoconnect priority in range -999 to 999. If the connection is set to autoconnect, connections with higher priority will be preferred. The higher number means higher priority. Defaults to 0. Note that this property only matters if there are more than one candidate @@ -45574,29 +27226,16 @@ profile to select for autoconnect. In case of equal priority, the profile used most recently is chosen. - - The number of times a connection should be tried when autoactivating before + + The number of times a connection should be tried when autoactivating before giving up. Zero means forever, -1 means the global default (4 times if not overridden). Setting this to 1 means to try activation only once before blocking autoconnect. Note that after a timeout, NetworkManager will try to autoconnect again. - - Whether or not slaves of this connection should be automatically brought up + + Whether or not slaves of this connection should be automatically brought up when NetworkManager activates this connection. This only has a real effect for master connections. The properties #NMSettingConnection:autoconnect, #NMSettingConnection:autoconnect-priority and #NMSettingConnection:autoconnect-retries @@ -45605,30 +27244,14 @@ The permitted values are: 0: leave slave connections untouched, 1: activate all the slave connections with this connection, -1: default. If -1 (default) is set, global connection.autoconnect-slaves is read to determine the real value. If it is default as well, this fallbacks to 0. - - -Deprecated 1.46. Use #NMSettingConnection:autoconnect-ports instead, this is just an alias. - - Interface name of the controller device or UUID of the controller connection. + + Interface name of the controller device or UUID of the controller connection. - - Whether DNSOverTls (dns-over-tls) is enabled for the connection. + + Whether DNSOverTls (dns-over-tls) is enabled for the connection. DNSOverTls is a technology which uses TLS to encrypt dns traffic. The permitted values are: "yes" (2) use DNSOverTls and disabled fallback, @@ -45641,36 +27264,18 @@ This feature requires a plugin which supports DNSOverTls. Otherwise, the setting has no effect. One such plugin is dns-systemd-resolved. - - If greater than zero, delay success of IP addressing until either the + + If greater than zero, delay success of IP addressing until either the timeout is reached, or an IP gateway replies to a ping. - - A human readable unique identifier for the connection, like "Work Wi-Fi" + + A human readable unique identifier for the connection, like "Work Wi-Fi" or "T-Mobile 3G". - - The name of the network interface this connection is bound to. If not + + The name of the network interface this connection is bound to. If not set, then the connection can be attached to any interface of the appropriate type (subject to restrictions imposed by other settings). @@ -45683,26 +27288,12 @@ can be used with, and if interface names change or are reordered the connection may be applied to the wrong interface. - - Whether LLDP is enabled for the connection. + + Whether LLDP is enabled for the connection. - - Whether Link-Local Multicast Name Resolution (LLMNR) is enabled + + Whether Link-Local Multicast Name Resolution (LLMNR) is enabled for the connection. LLMNR is a protocol based on the Domain Name System (DNS) packet format that allows both IPv4 and IPv6 hosts to perform name resolution for hosts on the same local link. @@ -45717,27 +27308,14 @@ This feature requires a plugin which supports LLMNR. Otherwise, the setting has no effect. One such plugin is dns-systemd-resolved. - - Interface name of the master device or UUID of the master connection. + + Interface name of the master device or UUID of the master connection. Deprecated 1.46. Use #NMSettingConnection:controller instead, this is just an alias. - - Whether mDNS is enabled for the connection. + + Whether mDNS is enabled for the connection. The permitted values are: "yes" (2) register hostname and resolving for the connection, "no" (0) disable mDNS for the interface, "resolve" @@ -45750,29 +27328,15 @@ This feature requires a plugin which supports mDNS. Otherwise, the setting has no effect. One such plugin is dns-systemd-resolved. - - Whether the connection is metered. + + Whether the connection is metered. When updating this property on a currently activated connection, the change takes effect immediately. - - Whether to configure MPTCP endpoints and the address flags. + + Whether to configure MPTCP endpoints and the address flags. If MPTCP is enabled in NetworkManager, it will configure the addresses of the interface as MPTCP endpoints. Note that IPv4 loopback addresses (127.0.0.0/8), IPv4 link local @@ -45819,15 +27383,8 @@ MPTCP handling for IPv4 addresses on the interface is enabled, NetworkManager wo loosen the strict reverse path filtering (1) to the loose setting (2). - - If configured, set to a Manufacturer Usage Description (MUD) URL that points + + If configured, set to a Manufacturer Usage Description (MUD) URL that points to manufacturer-recommended network policies for IoT devices. It is transmitted as a DHCPv4 or DHCPv6 option. The value must be a valid URL starting with "https://". @@ -45837,22 +27394,13 @@ If the per-profile value is unspecified (the default), a global connection defau consulted. If still unspecified, the ultimate default is "none". - - Specifies whether the profile can be active multiple times at a particular + + Specifies whether the profile can be active multiple times at a particular moment. The value is of type #NMConnectionMultiConnect. - An array of strings defining what access a given user has to this + An array of strings defining what access a given user has to this connection. If this is %NULL or empty, all users are allowed to access this connection; otherwise users are allowed if and only if they are in this list. When this is not empty, the connection can be active only when @@ -45868,65 +27416,35 @@ use. All of [type], [id], and [reserved] must be valid UTF-8. - - Setting name of the device type of this port's controller connection (eg, + + Setting name of the device type of this port's controller connection (eg, %NM_SETTING_BOND_SETTING_NAME), or %NULL if this connection is not a port. - - This property is deprecated and has no meaning. + + This property is deprecated and has no meaning. This property is deprecated and has no meaning. - List of connection UUIDs that should be activated when the base + List of connection UUIDs that should be activated when the base connection itself is activated. Currently, only VPN connections are supported. - - Setting name of the device type of this slave's master connection (eg, + + Setting name of the device type of this slave's master connection (eg, %NM_SETTING_BOND_SETTING_NAME), or %NULL if this connection is not a slave. Deprecated 1.46. Use #NMSettingConnection:port-type instead, this is just an alias. - - This represents the identity of the connection used for various purposes. + + This represents the identity of the connection used for various purposes. It allows to configure multiple profiles to share the identity. Also, the stable-id can contain placeholders that are substituted dynamically and deterministically depending on the context. @@ -45966,14 +27484,8 @@ value is still unset, the default is "default${CONNECTION}" go generate an ID unique per connection profile. - - The time, in seconds since the Unix Epoch, that the connection was last + + The time, in seconds since the Unix Epoch, that the connection was last _successfully_ fully activated. NetworkManager updates the connection timestamp periodically when the @@ -45982,27 +27494,16 @@ timestamp. The property is only meant for reading (changes to this property will not be preserved). - - Base type of the connection. For hardware-dependent connections, should + + Base type of the connection. For hardware-dependent connections, should contain the setting name of the hardware-type specific setting (ie, "802-3-ethernet" or "802-11-wireless" or "bluetooth", etc), and for non-hardware dependent connections like VPN or otherwise, should contain the setting name of that setting type (ie, "vpn" or "bridge", etc). - - A universally unique identifier for the connection, for example generated + + A universally unique identifier for the connection, for example generated with libuuid. It should be assigned when the connection is created, and never changed as long as the connection still applies to the same network. For example, it should not be changed when the @@ -46016,30 +27517,16 @@ be generated by nm_utils_uuid_generate() or nm_uuid_generate_from_string_str(). - - Time in milliseconds to wait for connection to be considered activated. + + Time in milliseconds to wait for connection to be considered activated. The wait will start after the pre-up dispatcher event. The value 0 means no wait time. The default value is -1, which currently has the same meaning as no wait time. - - Timeout in milliseconds to wait for device at startup. + + Timeout in milliseconds to wait for device at startup. During boot, devices may take a while to be detected by the driver. This property will cause to delay NetworkManager-wait-online.service and nm-online to give the device a chance to appear. This works by @@ -46050,14 +27537,8 @@ The value 0 means no wait time. The default value is -1, which currently has the same meaning as no wait time. - - The trust level of a the connection. Free form case-insensitive string + + The trust level of a the connection. Free form case-insensitive string (for example "Home", "Work", "Public"). %NULL or unspecified zone means the connection will be placed in the default zone as defined by the firewall. @@ -46067,771 +27548,437 @@ the change takes effect immediately. - - #NMSettingConnectionAutoconnectSlaves values indicate whether slave connections + + #NMSettingConnectionAutoconnectSlaves values indicate whether slave connections should be activated when master is activated. - - default value - - - slaves are not brought up when + + default value + + + slaves are not brought up when master is activated - - slaves are brought up when + + slaves are brought up when master is activated - - + + - - #NMSettingConnectionDnsOverTls values indicate whether DNSOverTls should be enabled. - - default value - - - disable DNSOverTls - - - enable opportunistic mode - - - enable strict mode + + #NMSettingConnectionDnsOverTls values indicate whether DNSOverTls should be enabled. + + default value + + + disable DNSOverTls + + + enable opportunistic mode + + + enable strict mode - - #NMSettingConnectionLldp values indicate whether LLDP should be enabled. - - default value - - - disable LLDP - - - enable reception of LLDP frames + + #NMSettingConnectionLldp values indicate whether LLDP should be enabled. + + default value + + + disable LLDP + + + enable reception of LLDP frames - - #NMSettingConnectionLlmnr values indicate whether LLMNR should be enabled. - - default value - - - disable LLMNR - - - support only resolving, do not register hostname - - - enable LLMNR + + #NMSettingConnectionLlmnr values indicate whether LLMNR should be enabled. + + default value + + + disable LLMNR + + + support only resolving, do not register hostname + + + enable LLMNR - - #NMSettingConnectionMdns values indicate whether mDNS should be enabled. - - default value - - - disable mDNS - - - support only resolving, do not register hostname - - - enable mDNS + + #NMSettingConnectionMdns values indicate whether mDNS should be enabled. + + default value + + + disable mDNS + + + support only resolving, do not register hostname + + + enable mDNS - - Data Center Bridging Settings - + + Data Center Bridging Settings + - Creates a new #NMSettingDcb object with default values. - + Creates a new #NMSettingDcb object with default values. + - the new empty #NMSettingDcb object + the new empty #NMSettingDcb object - - - - the #NMSettingDcb:app-fcoe-flags property of the setting + + + + the #NMSettingDcb:app-fcoe-flags property of the setting - the #NMSettingDcb + the #NMSettingDcb - - + + - the #NMSettingDcb:app-fcoe-mode property of the setting + the #NMSettingDcb:app-fcoe-mode property of the setting - the #NMSettingDcb + the #NMSettingDcb - - + + - the #NMSettingDcb:app-fcoe-priority property of the setting + the #NMSettingDcb:app-fcoe-priority property of the setting - the #NMSettingDcb + the #NMSettingDcb - - + + - the #NMSettingDcb:app-fip-flags property of the setting + the #NMSettingDcb:app-fip-flags property of the setting - the #NMSettingDcb + the #NMSettingDcb - - + + - the #NMSettingDcb:app-fip-priority property of the setting + the #NMSettingDcb:app-fip-priority property of the setting - the #NMSettingDcb + the #NMSettingDcb - - + + - the #NMSettingDcb:app-iscsi-flags property of the setting + the #NMSettingDcb:app-iscsi-flags property of the setting - the #NMSettingDcb + the #NMSettingDcb - - + + - the #NMSettingDcb:app-iscsi-priority property of the setting + the #NMSettingDcb:app-iscsi-priority property of the setting - the #NMSettingDcb + the #NMSettingDcb - - + + - the allowed bandwidth percentage of @user_priority in its priority group. + the allowed bandwidth percentage of @user_priority in its priority group. These values are only valid when #NMSettingDcb:priority-group-flags includes the %NM_SETTING_DCB_FLAG_ENABLE flag. - the #NMSettingDcb + the #NMSettingDcb - the User Priority (0 - 7) to retrieve the group bandwidth percentage for + the User Priority (0 - 7) to retrieve the group bandwidth percentage for - - + + - %TRUE if flow control is enabled for the given @user_priority, + %TRUE if flow control is enabled for the given @user_priority, %FALSE if not enabled - the #NMSettingDcb + the #NMSettingDcb - the User Priority (0 - 7) to retrieve flow control for + the User Priority (0 - 7) to retrieve flow control for - - + + - the #NMSettingDcb:priority-flow-control-flags property of the setting + the #NMSettingDcb:priority-flow-control-flags property of the setting - the #NMSettingDcb + the #NMSettingDcb - - + + - the bandwidth percentage assigned to @group_id. These values are + the bandwidth percentage assigned to @group_id. These values are only valid when #NMSettingDcb:priority-group-flags includes the %NM_SETTING_DCB_FLAG_ENABLE flag. - the #NMSettingDcb + the #NMSettingDcb - the priority group (0 - 7) to retrieve the bandwidth percentage for + the priority group (0 - 7) to retrieve the bandwidth percentage for - - + + - the #NMSettingDcb:priority-group-flags property of the setting + the #NMSettingDcb:priority-group-flags property of the setting - the #NMSettingDcb + the #NMSettingDcb - - + + - the group number @user_priority is assigned to. These values are + the group number @user_priority is assigned to. These values are only valid when #NMSettingDcb:priority-group-flags includes the %NM_SETTING_DCB_FLAG_ENABLE flag. - the #NMSettingDcb + the #NMSettingDcb - the User Priority (0 - 7) to retrieve the group ID for + the User Priority (0 - 7) to retrieve the group ID for - - + + - %TRUE if @user_priority may use all of the bandwidth allocated to its + %TRUE if @user_priority may use all of the bandwidth allocated to its assigned group, or %FALSE if not. These values are only valid when #NMSettingDcb:priority-group-flags includes the %NM_SETTING_DCB_FLAG_ENABLE flag. - the #NMSettingDcb + the #NMSettingDcb - the User Priority (0 - 7) to retrieve strict bandwidth for + the User Priority (0 - 7) to retrieve strict bandwidth for - - + + - the traffic class assigned to @user_priority. These values are only + the traffic class assigned to @user_priority. These values are only valid when #NMSettingDcb:priority-group-flags includes the %NM_SETTING_DCB_FLAG_ENABLE flag. - the #NMSettingDcb + the #NMSettingDcb - the User Priority (0 - 7) to retrieve the traffic class for + the User Priority (0 - 7) to retrieve the traffic class for - - These values are only valid when #NMSettingDcb:priority-group-flags includes + + These values are only valid when #NMSettingDcb:priority-group-flags includes the %NM_SETTING_DCB_FLAG_ENABLE flag. - + - the #NMSettingDcb + the #NMSettingDcb - the User Priority (0 - 7) to set the bandwidth percentage for + the User Priority (0 - 7) to set the bandwidth percentage for - the bandwidth percentage (0 - 100) that @user_priority is + the bandwidth percentage (0 - 100) that @user_priority is allowed to use within its priority group - - These values are only valid when #NMSettingDcb:priority-flow-control includes + + These values are only valid when #NMSettingDcb:priority-flow-control includes the %NM_SETTING_DCB_FLAG_ENABLE flag. - + - the #NMSettingDcb + the #NMSettingDcb - the User Priority (0 - 7) to set flow control for + the User Priority (0 - 7) to set flow control for - %TRUE to enable flow control for this priority, %FALSE to disable it + %TRUE to enable flow control for this priority, %FALSE to disable it - - These values are only valid when #NMSettingDcb:priority-group-flags includes + + These values are only valid when #NMSettingDcb:priority-group-flags includes the %NM_SETTING_DCB_FLAG_ENABLE flag. - + - the #NMSettingDcb + the #NMSettingDcb - the priority group (0 - 7) to set the bandwidth percentage for + the priority group (0 - 7) to set the bandwidth percentage for - the bandwidth percentage (0 - 100) to assign to @group_id to + the bandwidth percentage (0 - 100) to assign to @group_id to - - These values are only valid when #NMSettingDcb:priority-group-flags includes + + These values are only valid when #NMSettingDcb:priority-group-flags includes the %NM_SETTING_DCB_FLAG_ENABLE flag. - + - the #NMSettingDcb + the #NMSettingDcb - the User Priority (0 - 7) to set flow control for + the User Priority (0 - 7) to set flow control for - the group (0 - 7) to assign @user_priority to, or 15 for the + the group (0 - 7) to assign @user_priority to, or 15 for the unrestricted group. - - These values are only valid when #NMSettingDcb:priority-group-flags includes + + These values are only valid when #NMSettingDcb:priority-group-flags includes the %NM_SETTING_DCB_FLAG_ENABLE flag. - + - the #NMSettingDcb + the #NMSettingDcb - the User Priority (0 - 7) to set strict bandwidth for + the User Priority (0 - 7) to set strict bandwidth for - %TRUE to allow @user_priority to use all the bandwidth allocated to + %TRUE to allow @user_priority to use all the bandwidth allocated to its priority group, or %FALSE if not - - + + @@ -46847,100 +27994,52 @@ its priority group, or %FALSE if not - - Specifies the #NMSettingDcbFlags for the DCB FCoE application. Flags may + + Specifies the #NMSettingDcbFlags for the DCB FCoE application. Flags may be any combination of %NM_SETTING_DCB_FLAG_ENABLE, %NM_SETTING_DCB_FLAG_ADVERTISE, and %NM_SETTING_DCB_FLAG_WILLING. - - The FCoE controller mode; either %NM_SETTING_DCB_FCOE_MODE_FABRIC + + The FCoE controller mode; either %NM_SETTING_DCB_FCOE_MODE_FABRIC or %NM_SETTING_DCB_FCOE_MODE_VN2VN. Since 1.34, %NULL is the default and means %NM_SETTING_DCB_FCOE_MODE_FABRIC. Before 1.34, %NULL was rejected as invalid and the default was %NM_SETTING_DCB_FCOE_MODE_FABRIC. - - The highest User Priority (0 - 7) which FCoE frames should use, or -1 for + + The highest User Priority (0 - 7) which FCoE frames should use, or -1 for default priority. Only used when the #NMSettingDcb:app-fcoe-flags property includes the %NM_SETTING_DCB_FLAG_ENABLE flag. - - Specifies the #NMSettingDcbFlags for the DCB FIP application. Flags may + + Specifies the #NMSettingDcbFlags for the DCB FIP application. Flags may be any combination of %NM_SETTING_DCB_FLAG_ENABLE, %NM_SETTING_DCB_FLAG_ADVERTISE, and %NM_SETTING_DCB_FLAG_WILLING. - - The highest User Priority (0 - 7) which FIP frames should use, or -1 for + + The highest User Priority (0 - 7) which FIP frames should use, or -1 for default priority. Only used when the #NMSettingDcb:app-fip-flags property includes the %NM_SETTING_DCB_FLAG_ENABLE flag. - - Specifies the #NMSettingDcbFlags for the DCB iSCSI application. Flags + + Specifies the #NMSettingDcbFlags for the DCB iSCSI application. Flags may be any combination of %NM_SETTING_DCB_FLAG_ENABLE, %NM_SETTING_DCB_FLAG_ADVERTISE, and %NM_SETTING_DCB_FLAG_WILLING. - - The highest User Priority (0 - 7) which iSCSI frames should use, or -1 + + The highest User Priority (0 - 7) which iSCSI frames should use, or -1 for default priority. Only used when the #NMSettingDcb:app-iscsi-flags property includes the %NM_SETTING_DCB_FLAG_ENABLE flag. - - An array of 8 uint values, where the array index corresponds to the User + + An array of 8 uint values, where the array index corresponds to the User Priority (0 - 7) and the value indicates the percentage of bandwidth of the priority's assigned group that the priority may use. The sum of all percentages for priorities which belong to the same group must total 100 @@ -46949,40 +28048,22 @@ percents. - - An array of 8 boolean values, where the array index corresponds to the User + + An array of 8 boolean values, where the array index corresponds to the User Priority (0 - 7) and the value indicates whether or not the corresponding priority should transmit priority pause. - - Specifies the #NMSettingDcbFlags for DCB Priority Flow Control (PFC). + + Specifies the #NMSettingDcbFlags for DCB Priority Flow Control (PFC). Flags may be any combination of %NM_SETTING_DCB_FLAG_ENABLE, %NM_SETTING_DCB_FLAG_ADVERTISE, and %NM_SETTING_DCB_FLAG_WILLING. - - An array of 8 uint values, where the array index corresponds to the + + An array of 8 uint values, where the array index corresponds to the Priority Group ID (0 - 7) and the value indicates the percentage of link bandwidth allocated to that group. Allowed values are 0 - 100, and the sum of all values must total 100 percents. @@ -46990,54 +28071,30 @@ sum of all values must total 100 percents. - - Specifies the #NMSettingDcbFlags for DCB Priority Groups. Flags may be + + Specifies the #NMSettingDcbFlags for DCB Priority Groups. Flags may be any combination of %NM_SETTING_DCB_FLAG_ENABLE, %NM_SETTING_DCB_FLAG_ADVERTISE, and %NM_SETTING_DCB_FLAG_WILLING. - - An array of 8 uint values, where the array index corresponds to the User + + An array of 8 uint values, where the array index corresponds to the User Priority (0 - 7) and the value indicates the Priority Group ID. Allowed Priority Group ID values are 0 - 7 or 15 for the unrestricted group. - - An array of 8 boolean values, where the array index corresponds to the User + + An array of 8 boolean values, where the array index corresponds to the User Priority (0 - 7) and the value indicates whether or not the priority may use all of the bandwidth allocated to its assigned group. - - An array of 8 uint values, where the array index corresponds to the User + + An array of 8 uint values, where the array index corresponds to the User Priority (0 - 7) and the value indicates the traffic class (0 - 7) to which the priority is mapped. @@ -47045,255 +28102,117 @@ which the priority is mapped. - - + + - - DCB feature flags. - - no flag - - - the feature is enabled - - - the feature is advertised - - - the feature is willing to change based on + + DCB feature flags. + + no flag + + + the feature is enabled + + + the feature is advertised + + + the feature is willing to change based on peer configuration advertisements - - These values indicate the result of a setting difference operation. - - unknown result - - - the property is present in setting A - - - the property is present in setting B - - - the property is present in + + These values indicate the result of a setting difference operation. + + unknown result + + + the property is present in setting A + + + the property is present in setting B + + + the property is present in setting A but is set to the default value. This flag is only set, if you specify @NM_SETTING_COMPARE_FLAG_DIFF_RESULT_WITH_DEFAULT. - - analog to @NM_SETTING_DIFF_RESULT_IN_A_DEFAULT. + + analog to @NM_SETTING_DIFF_RESULT_IN_A_DEFAULT. - - Dummy Link Settings - - - Creates a new #NMSettingDummy object with default values. - + + Dummy Link Settings + + + Creates a new #NMSettingDummy object with default values. + - the new empty #NMSettingDummy object + the new empty #NMSettingDummy object - - + + - - Ethtool Ethernet Settings - - - Creates a new #NMSettingEthtool object with default values. - + + Ethtool Ethernet Settings + + + Creates a new #NMSettingEthtool object with default values. + - the new empty #NMSettingEthtool object + the new empty #NMSettingEthtool object - - Clears all offload features settings + + Clears all offload features settings use nm_setting_option_clear_by_name() with nm_ethtool_optname_is_feature() predicate instead. - + - the #NMSettingEthtool + the #NMSettingEthtool - - Gets and offload feature setting. Returns %NM_TERNARY_DEFAULT if the + + Gets and offload feature setting. Returns %NM_TERNARY_DEFAULT if the feature is not set. Note that @optname must be a valid name for a feature, according to nm_ethtool_optname_is_feature(). use nm_setting_option_get_boolean() instead. - + - a #NMTernary value indicating whether the offload feature + a #NMTernary value indicating whether the offload feature is enabled, disabled, or left untouched. - the #NMSettingEthtool + the #NMSettingEthtool - option name of the offload feature to get + option name of the offload feature to get - - This returns all options names that are set. This includes the feature names + + This returns all options names that are set. This includes the feature names like %NM_ETHTOOL_OPTNAME_FEATURE_GRO. See nm_ethtool_optname_is_feature() to check whether the option name is valid for offload features. use nm_setting_option_get_all_names() instead. - + - list of set option + list of set option names or %NULL if no options are set. The option names are still owned by @setting and may get invalidated when @setting gets modified. @@ -47302,130 +28221,72 @@ check whether the option name is valid for offload features. - the #NMSettingEthtool instance. + the #NMSettingEthtool instance. - - return location for the number of keys returned, or %NULL + + return location for the number of keys returned, or %NULL - - Sets and offload feature setting. + + Sets and offload feature setting. Note that @optname must be a valid name for a feature, according to nm_ethtool_optname_is_feature(). use nm_setting_option_set() or nm_setting_option_set_boolean() instead. - + - the #NMSettingEthtool + the #NMSettingEthtool - option name of the offload feature to get + option name of the offload feature to get - the new value to set. The special value %NM_TERNARY_DEFAULT + the new value to set. The special value %NM_TERNARY_DEFAULT means to clear the offload feature setting. - - + + - - Generic Link Settings - + + Generic Link Settings + - Creates a new #NMSettingGeneric object with default values. - + Creates a new #NMSettingGeneric object with default values. + - the new empty #NMSettingGeneric object + the new empty #NMSettingGeneric object - - Returns the #NMSettingGeneric:device-handler property of the connection. - - - the device handler name, or %NULL if no device handler is set + + Returns the #NMSettingGeneric:device-handler property of the connection. + + + the device handler name, or %NULL if no device handler is set - the #NMSettingGeneric + the #NMSettingGeneric - - Name of the device handler that will be invoked to add and delete + + Name of the device handler that will be invoked to add and delete the device for this connection. The name can only contain ASCII alphanumeric characters and '-', '_', '.'. It cannot start with '.'. @@ -47439,375 +28300,231 @@ device-handler. - - + + - - GSM-based Mobile Broadband Settings - + + GSM-based Mobile Broadband Settings + - Creates a new #NMSettingGsm object with default values. - + Creates a new #NMSettingGsm object with default values. + - the new empty #NMSettingGsm object + the new empty #NMSettingGsm object - - - - the #NMSettingGsm:apn property of the setting + + + + the #NMSettingGsm:apn property of the setting - the #NMSettingGsm + the #NMSettingGsm - - + + - the #NMSettingGsm:auto-config property of the setting + the #NMSettingGsm:auto-config property of the setting - the #NMSettingGsm + the #NMSettingGsm - - + + - the #NMSettingGsm:device-id property of the setting + the #NMSettingGsm:device-id property of the setting - the #NMSettingGsm + the #NMSettingGsm - - + + - the #NMSettingGsm:home-only property of the setting + the #NMSettingGsm:home-only property of the setting - the #NMSettingGsm + the #NMSettingGsm - - + + - the #NMSettingGsm:initial-eps-bearer-apn property of the setting + the #NMSettingGsm:initial-eps-bearer-apn property of the setting - the #NMSettingGsm + the #NMSettingGsm - - + + - the #NMSettingGsm:initial-eps-bearer-configure property of the setting + the #NMSettingGsm:initial-eps-bearer-configure property of the setting - the #NMSettingGsm + the #NMSettingGsm - - + + - the #NMSettingGsm:mtu property of the setting + the #NMSettingGsm:mtu property of the setting - the #NMSettingGsm + the #NMSettingGsm - - + + - the #NMSettingGsm:network-id property of the setting + the #NMSettingGsm:network-id property of the setting - the #NMSettingGsm + the #NMSettingGsm - + User-provided values for this setting are no longer used. - + - the #NMSettingGsm:number property of the setting + the #NMSettingGsm:number property of the setting - the #NMSettingGsm + the #NMSettingGsm - - + + - the #NMSettingGsm:password property of the setting + the #NMSettingGsm:password property of the setting - the #NMSettingGsm + the #NMSettingGsm - - + + - the #NMSettingSecretFlags pertaining to the #NMSettingGsm:password + the #NMSettingSecretFlags pertaining to the #NMSettingGsm:password - the #NMSettingGsm + the #NMSettingGsm - - + + - the #NMSettingGsm:pin property of the setting + the #NMSettingGsm:pin property of the setting - the #NMSettingGsm + the #NMSettingGsm - - + + - the #NMSettingSecretFlags pertaining to the #NMSettingGsm:pin + the #NMSettingSecretFlags pertaining to the #NMSettingGsm:pin - the #NMSettingGsm + the #NMSettingGsm - - + + - the #NMSettingGsm:sim-id property of the setting + the #NMSettingGsm:sim-id property of the setting - the #NMSettingGsm + the #NMSettingGsm - - + + - the #NMSettingGsm:sim-operator-id property of the setting + the #NMSettingGsm:sim-operator-id property of the setting - the #NMSettingGsm + the #NMSettingGsm - - + + - the #NMSettingGsm:username property of the setting + the #NMSettingGsm:username property of the setting - the #NMSettingGsm + the #NMSettingGsm - - The GPRS Access Point Name specifying the APN used when establishing a + + The GPRS Access Point Name specifying the APN used when establishing a data session with the GSM-based network. The APN often determines how the user will be billed for their network usage and whether the user has access to the Internet or just a provider-specific walled-garden, so it @@ -47820,338 +28537,172 @@ If the APN is unset (the default) then it may be detected based on empty string to prevent that and use no APN. - - When %TRUE, the settings such as APN, username, or password will + + When %TRUE, the settings such as APN, username, or password will default to values that match the network the modem will register to in the Mobile Broadband Provider database. - - The device unique identifier (as given by the WWAN management service) + + The device unique identifier (as given by the WWAN management service) which this connection applies to. If given, the connection will only apply to the specified device. - - When %TRUE, only connections to the home network will be allowed. + + When %TRUE, only connections to the home network will be allowed. Connections to roaming networks will not be made. - - For LTE modems, this sets the APN for the initial EPS bearer that is set + + For LTE modems, this sets the APN for the initial EPS bearer that is set up when attaching to the network. Setting this parameter implies initial-eps-bearer-configure to be TRUE. - - For LTE modems, this setting determines whether the initial EPS bearer + + For LTE modems, this setting determines whether the initial EPS bearer shall be configured when bringing up the connection. It is inferred TRUE if initial-eps-bearer-apn is set. - - If non-zero, only transmit packets of the specified size or smaller, + + If non-zero, only transmit packets of the specified size or smaller, breaking larger packets up into multiple frames. - - The Network ID (GSM LAI format, ie MCC-MNC) to force specific network + + The Network ID (GSM LAI format, ie MCC-MNC) to force specific network registration. If the Network ID is specified, NetworkManager will attempt to force the device to register only on the specified network. This can be used to ensure that the device does not roam when direct roaming control of the device is not otherwise possible. - - Legacy setting that used to help establishing PPP data sessions for + + Legacy setting that used to help establishing PPP data sessions for GSM-based modems. User-provided values for this setting are no longer used. - - The password used to authenticate with the network, if required. Many + + The password used to authenticate with the network, if required. Many providers do not require a password, or accept any password. But if a password is required, it is specified here. - - Flags indicating how to handle the #NMSettingGsm:password property. + + Flags indicating how to handle the #NMSettingGsm:password property. - - If the SIM is locked with a PIN it must be unlocked before any other + + If the SIM is locked with a PIN it must be unlocked before any other operations are requested. Specify the PIN here to allow operation of the device. - - Flags indicating how to handle the #NMSettingGsm:pin property. + + Flags indicating how to handle the #NMSettingGsm:pin property. - - The SIM card unique identifier (as given by the WWAN management service) + + The SIM card unique identifier (as given by the WWAN management service) which this connection applies to. If given, the connection will apply to any device also allowed by #NMSettingGsm:device-id which contains a SIM card matching the given identifier. - - A MCC/MNC string like "310260" or "21601" identifying the specific + + A MCC/MNC string like "310260" or "21601" identifying the specific mobile network operator which this connection applies to. If given, the connection will apply to any device also allowed by #NMSettingGsm:device-id and #NMSettingGsm:sim-id which contains a SIM card provisioned by the given operator. - - The username used to authenticate with the network, if required. Many + + The username used to authenticate with the network, if required. Many providers do not require a username, or accept any username. But if a username is required, it is specified here. - - + + - - Hostname settings - - - Creates a new #NMSettingHostname object with default values. - + + Hostname settings + + + Creates a new #NMSettingHostname object with default values. + - the new empty #NMSettingHostname object + the new empty #NMSettingHostname object - - Returns the value contained in the #NMSettingHostname:from-dhcp + + Returns the value contained in the #NMSettingHostname:from-dhcp property. - + - the 'from-dhcp' property value + the 'from-dhcp' property value - the #NMSettingHostname + the #NMSettingHostname - - Returns the value contained in the #NMSettingHostname:from-dns-lookup + + Returns the value contained in the #NMSettingHostname:from-dns-lookup property. - + - the 'from-dns-lookup' property value + the 'from-dns-lookup' property value - the #NMSettingHostname + the #NMSettingHostname - - Returns the value contained in the #NMSettingHostname:only-from-default + + Returns the value contained in the #NMSettingHostname:only-from-default property. - + - the 'only-from-default' property value + the 'only-from-default' property value - the #NMSettingHostname + the #NMSettingHostname - - Returns the value contained in the #NMSettingHostname:priority + + Returns the value contained in the #NMSettingHostname:priority property. - + - the 'priority' property value + the 'priority' property value - the #NMSettingHostname + the #NMSettingHostname - - Whether the system hostname can be determined from DHCP on + + Whether the system hostname can be determined from DHCP on this connection. When set to %NM_TERNARY_DEFAULT, the value from global configuration @@ -48159,15 +28710,8 @@ is used. If the property doesn't have a value in the global configuration, NetworkManager assumes the value to be %NM_TERNARY_TRUE. - - Whether the system hostname can be determined from reverse + + Whether the system hostname can be determined from reverse DNS lookup of addresses on this device. When set to %NM_TERNARY_DEFAULT, the value from global configuration @@ -48175,15 +28719,8 @@ is used. If the property doesn't have a value in the global configuration, NetworkManager assumes the value to be %NM_TERNARY_TRUE. - - If set to %NM_TERNARY_TRUE, NetworkManager attempts to get + + If set to %NM_TERNARY_TRUE, NetworkManager attempts to get the hostname via DHCPv4/DHCPv6 or reverse DNS lookup on this device only when the device has the default route for the given address family (IPv4/IPv6). @@ -48196,15 +28733,8 @@ is used. If the property doesn't have a value in the global configuration, NetworkManager assumes the value to be %NM_TERNARY_FALSE. - - The relative priority of this connection to determine the + + The relative priority of this connection to determine the system hostname. A lower numerical value is better (higher priority). A connection with higher priority is considered before connections with lower priority. @@ -48222,309 +28752,166 @@ hostname. - - + + - - HSR/PRP Settings - + + HSR/PRP Settings + - Creates a new #NMSettingHsr object with default values. - + Creates a new #NMSettingHsr object with default values. + - the new empty #NMSettingHsr object + the new empty #NMSettingHsr object - - - - the #NMSettingHsr:multicast_spec property of the setting + + + + the #NMSettingHsr:multicast_spec property of the setting - the #NMSettingHsr + the #NMSettingHsr - - + + - the #NMSettingHsr:port1 property of the setting + the #NMSettingHsr:port1 property of the setting - the #NMSettingHsr + the #NMSettingHsr - - + + - the #NMSettingHsr:port2 property of the setting + the #NMSettingHsr:port2 property of the setting - the #NMSettingHsr + the #NMSettingHsr - - + + - the #NMSettingHsr:prp property of the setting + the #NMSettingHsr:prp property of the setting - the #NMSettingHsr + the #NMSettingHsr - - The last byte of supervision address. + + The last byte of supervision address. - - The port1 interface name of the HSR. This property is mandatory. + + The port1 interface name of the HSR. This property is mandatory. - - The port2 interface name of the HSR. This property is mandatory. + + The port2 interface name of the HSR. This property is mandatory. - - The protocol used by the interface, whether it is PRP or HSR. + + The protocol used by the interface, whether it is PRP or HSR. - - + + - - IPv4 Settings - + + IPv4 Settings + - Creates a new #NMSettingIP4Config object with default values. - + Creates a new #NMSettingIP4Config object with default values. + - the new empty #NMSettingIP4Config object + the new empty #NMSettingIP4Config object - - Returns the value contained in the #NMSettingIP4Config:dhcp-client-id + + Returns the value contained in the #NMSettingIP4Config:dhcp-client-id property. - + - the configured Client ID to send to the DHCP server when requesting + the configured Client ID to send to the DHCP server when requesting addresses via DHCP. - the #NMSettingIP4Config + the #NMSettingIP4Config - - Returns the value contained in the #NMSettingIP4Config:dhcp-fqdn + + Returns the value contained in the #NMSettingIP4Config:dhcp-fqdn property. - + - the configured FQDN to send to the DHCP server + the configured FQDN to send to the DHCP server - the #NMSettingIP4Config + the #NMSettingIP4Config - - Returns the value contained in the #NMSettingIP4Config:dhcp_vendor_class_identifier + + Returns the value contained in the #NMSettingIP4Config:dhcp_vendor_class_identifier property. - + - the vendor class identifier option to send to the DHCP server + the vendor class identifier option to send to the DHCP server - the #NMSettingIP4Config + the #NMSettingIP4Config - - Returns the value contained in the #NMSettingIP4Config:link_local + + Returns the value contained in the #NMSettingIP4Config:link_local property. - + - the link-local configuration + the link-local configuration - the #NMSettingIP4Config + the #NMSettingIP4Config - - A string sent to the DHCP server to identify the local machine which the + + A string sent to the DHCP server to identify the local machine which the DHCP server may use to customize the DHCP lease and options. When the property is a hex string ('aa:bb:cc') it is interpreted as a binary client ID, in which case the first byte is assumed to be the @@ -48561,29 +28948,15 @@ try to use one from its config file if present, or won't sent any client-id otherwise. - - If the #NMSettingIPConfig:dhcp-send-hostname property is %TRUE, then the + + If the #NMSettingIPConfig:dhcp-send-hostname property is %TRUE, then the specified FQDN will be sent to the DHCP server when acquiring a lease. This property and #NMSettingIPConfig:dhcp-hostname are mutually exclusive and cannot be set at the same time. - - The Vendor Class Identifier DHCP option (60). + + The Vendor Class Identifier DHCP option (60). Special characters in the data string may be escaped using C-style escapes, nevertheless this property cannot contain nul bytes. If the per-profile value is unspecified (the default), @@ -48591,15 +28964,8 @@ a global connection default gets consulted. If still unspecified, the DHCP option is not sent to the server. - - Enable and disable the IPv4 link-local configuration independently of the + + Enable and disable the IPv4 link-local configuration independently of the ipv4.method configuration. This allows a link-local address (169.254.x.y/16) to be obtained in addition to other addresses, such as those manually configured or obtained from a DHCP server. @@ -48611,269 +28977,146 @@ link local addressing is always disabled too. The default is "default". - - + + - - #NMSettingIP4LinkLocal values indicate whether IPv4 link-local address protocol should be enabled. - - Allow fallback to a globally configured default. If unspecified, + + #NMSettingIP4LinkLocal values indicate whether IPv4 link-local address protocol should be enabled. + + Allow fallback to a globally configured default. If unspecified, fallback to "auto". Note that if "ipv4.method" is "disabled", this always implies link-local addresses disabled too. - - Special value which enables LL if "ipv4.method" is set to + + Special value which enables LL if "ipv4.method" is set to "link-local". - - Disable IPv4 link-local protocol. - - - Enable the IPv4 link-local protocol regardless what other protocols + + Disable IPv4 link-local protocol. + + + Enable the IPv4 link-local protocol regardless what other protocols such as DHCP or manually assigned IP addresses might be active. - - IPv6 Settings - + + IPv6 Settings + - Creates a new #NMSettingIP6Config object with default values. - + Creates a new #NMSettingIP6Config object with default values. + - the new empty #NMSettingIP6Config object + the new empty #NMSettingIP6Config object - - Returns the value contained in the #NMSettingIP6Config:addr-gen-mode + + Returns the value contained in the #NMSettingIP6Config:addr-gen-mode property. - + - IPv6 Address Generation Mode. - + IPv6 Address Generation Mode. + - the #NMSettingIP6Config + the #NMSettingIP6Config - - Returns the value contained in the #NMSettingIP6Config:dhcp-duid + + Returns the value contained in the #NMSettingIP6Config:dhcp-duid property. - + - The configured DUID value to be included in the DHCPv6 requests + The configured DUID value to be included in the DHCPv6 requests sent to the DHCPv6 servers. - the #NMSettingIP6Config + the #NMSettingIP6Config - - Returns the value contained in the #NMSettingIP6Config:dhcp-pd-hint + + Returns the value contained in the #NMSettingIP6Config:dhcp-pd-hint property. - + - a string containing an address and prefix length to be used + a string containing an address and prefix length to be used as hint for DHCPv6 prefix delegation. - the #NMSettingIP6Config + the #NMSettingIP6Config - - Returns the value contained in the #NMSettingIP6Config:ip6-privacy + + Returns the value contained in the #NMSettingIP6Config:ip6-privacy property. - + - IPv6 Privacy Extensions configuration value (#NMSettingIP6ConfigPrivacy). - + IPv6 Privacy Extensions configuration value (#NMSettingIP6ConfigPrivacy). + - the #NMSettingIP6Config + the #NMSettingIP6Config - - + + - The configured %NM_SETTING_IP6_CONFIG_MTU value for the maximum + The configured %NM_SETTING_IP6_CONFIG_MTU value for the maximum transmission unit. - the #NMSettingIP6Config + the #NMSettingIP6Config - - + + - The configured %NM_SETTING_IP6_CONFIG_RA_TIMEOUT value with the + The configured %NM_SETTING_IP6_CONFIG_RA_TIMEOUT value with the timeout for router advertisements in seconds. - the #NMSettingIP6Config + the #NMSettingIP6Config - - Returns the value contained in the #NMSettingIP6Config:token + + Returns the value contained in the #NMSettingIP6Config:token property. - + - A string. + A string. - the #NMSettingIP6Config + the #NMSettingIP6Config - - Configure the method for creating the IPv6 interface identifier of + + Configure the method for creating the IPv6 interface identifier of addresses for RFC4862 IPv6 Stateless Address Autoconfiguration and IPv6 Link Local. @@ -48915,15 +29158,8 @@ configured by "ip6-privacy" property and it does not affect the temporary addresses configured with this option. - - A string containing the DHCPv6 Unique Identifier (DUID) used by the dhcp + + A string containing the DHCPv6 Unique Identifier (DUID) used by the dhcp client to identify itself to DHCPv6 servers (RFC 3315). The DUID is carried in the Client Identifier option. If the property is a hex string ('aa:bb:cc') it is interpreted as a binary @@ -48954,29 +29190,16 @@ When the property is unset, the global value provided for "ipv6.dhcp-duid" is used. If no global value is provided, the default "lease" value is assumed. - - A IPv6 address followed by a slash and a prefix length. If set, the value is + + A IPv6 address followed by a slash and a prefix length. If set, the value is sent to the DHCPv6 server as hint indicating the prefix delegation (IA_PD) we want to receive. To only hint a prefix length without prefix, set the address part to the zero address (for example "::/60"). - - Configure IPv6 Privacy Extensions for SLAAC, described in RFC4941. If + + Configure IPv6 Privacy Extensions for SLAAC, described in RFC4941. If enabled, it makes the kernel generate a temporary IPv6 address in addition to the public one generated from MAC address via modified EUI-64. This enhances privacy, but could cause problems in some @@ -48995,44 +29218,23 @@ that can be enabled with the "addr-gen-mode" property's "stable-privacy" setting as another way of avoiding host tracking with IPv6 addresses. - - Maximum transmission unit size, in bytes. If zero (the default), the MTU + + Maximum transmission unit size, in bytes. If zero (the default), the MTU is set automatically from router advertisements or is left equal to the link-layer MTU. If greater than the link-layer MTU, or greater than zero but less than the minimum IPv6 MTU of 1280, this value has no effect. - - A timeout for waiting Router Advertisements in seconds. If zero (the default), a + + A timeout for waiting Router Advertisements in seconds. If zero (the default), a globally configured default is used. If still unspecified, the timeout depends on the sysctl settings of the device. Set to 2147483647 (MAXINT32) for infinity. - - Configure the token for draft-chown-6man-tokenised-ipv6-identifiers-02 + + Configure the token for draft-chown-6man-tokenised-ipv6-identifiers-02 IPv6 tokenized interface identifiers. Useful with eui64 addr-gen-mode. When set, the token is used as IPv6 interface identifier instead of the @@ -49041,189 +29243,93 @@ autoconfiguration, not to IPv6 link local addresses. - - #NMSettingIP6ConfigAddrGenMode controls how the Interface Identifier for + + #NMSettingIP6ConfigAddrGenMode controls how the Interface Identifier for RFC4862 Stateless Address Autoconfiguration is created. - - The Interface Identifier is derived + + The Interface Identifier is derived from the interface hardware address. - - The Interface Identifier + + The Interface Identifier is created by using a cryptographically secure hash of a secret host-specific key along with the connection identification and the network address as specified by RFC7217. - - Fallback to the global + + Fallback to the global default, and if unspecified use "eui64". Since: 1.40. - - Fallback to the global + + Fallback to the global default, and if unspecified use "stable-privacy". Since: 1.40. - - + + - - #NMSettingIP6ConfigPrivacy values indicate if and how IPv6 Privacy + + #NMSettingIP6ConfigPrivacy values indicate if and how IPv6 Privacy Extensions are used (RFC4941). - - unknown or no value specified - - - IPv6 Privacy Extensions are disabled - - - IPv6 Privacy Extensions + + unknown or no value specified + + + IPv6 Privacy Extensions are disabled + + + IPv6 Privacy Extensions are enabled, but public addresses are preferred over temporary addresses - - IPv6 Privacy Extensions + + IPv6 Privacy Extensions are enabled and temporary addresses are preferred over public addresses - - - - Adds a new IP address and associated information to the setting. The + + + + Adds a new IP address and associated information to the setting. The given address is duplicated internally and is not changed by this function. - + - %TRUE if the address was added; %FALSE if the address was already + %TRUE if the address was added; %FALSE if the address was already known. - the #NMSettingIPConfig + the #NMSettingIPConfig - the new address to add + the new address to add - - Adds a new DHCP reject server to the setting. - + + Adds a new DHCP reject server to the setting. + - the #NMSettingIPConfig + the #NMSettingIPConfig - the DHCP reject server to add + the DHCP reject server to add - Adds a new DNS server to the setting. - - - %TRUE if the DNS server was added; %FALSE if the server was already + Adds a new DNS server to the setting. + + + %TRUE if the DNS server was added; %FALSE if the server was already known Before 1.42, setting @dns to an invalid string was treated as user-error. @@ -49233,81 +29339,54 @@ nm_connection_verify(). - the #NMSettingIPConfig + the #NMSettingIPConfig - the IP address of the DNS server to add + the IP address of the DNS server to add - - Adds a new DNS option to the setting. - + + Adds a new DNS option to the setting. + - %TRUE if the DNS option was added; %FALSE otherwise + %TRUE if the DNS option was added; %FALSE otherwise - the #NMSettingIPConfig + the #NMSettingIPConfig - the DNS option to add + the DNS option to add - - Adds a new DNS search domain to the setting. - + + Adds a new DNS search domain to the setting. + - %TRUE if the DNS search domain was added; %FALSE if the search + %TRUE if the DNS search domain was added; %FALSE if the search domain was already known - the #NMSettingIPConfig + the #NMSettingIPConfig - the search domain to add + the search domain to add - Appends a new route and associated information to the setting. The + Appends a new route and associated information to the setting. The given route is duplicated internally and is not changed by this function. If an identical route (considering attributes as well) already exists, the route is not added and the function returns %FALSE. @@ -49315,377 +29394,246 @@ route is not added and the function returns %FALSE. Note that before 1.10, this function would not consider route attributes and not add a route that has an existing route with same dest/prefix,next_hop,metric parameters. - + - %TRUE if the route was added; %FALSE if the route was already known. + %TRUE if the route was added; %FALSE if the route was already known. - the #NMSettingIPConfig + the #NMSettingIPConfig - the route to add + the route to add - - Appends a new routing-rule and associated information to the setting. The + + Appends a new routing-rule and associated information to the setting. The given routing rules gets sealed and the reference count is incremented. The function does not check whether an identical rule already exists and always appends the rule to the end of the list. - + - the #NMSettingIPConfig + the #NMSettingIPConfig - the #NMIPRoutingRule to add. The address family + the #NMIPRoutingRule to add. The address family of the added rule must be compatible with the setting. - - Removes all configured addresses. - + + Removes all configured addresses. + - the #NMSettingIPConfig + the #NMSettingIPConfig - - Removes all configured DHCP reject servers. - + + Removes all configured DHCP reject servers. + - the #NMSettingIPConfig + the #NMSettingIPConfig - Removes all configured DNS servers. - + Removes all configured DNS servers. + - the #NMSettingIPConfig + the #NMSettingIPConfig - - Removes all configured DNS options. - + + Removes all configured DNS options. + - the #NMSettingIPConfig + the #NMSettingIPConfig - the dns-options can be either empty or unset (default). + the dns-options can be either empty or unset (default). Specify how to clear the options. - - Removes all configured DNS search domains. - + + Removes all configured DNS search domains. + - the #NMSettingIPConfig + the #NMSettingIPConfig - - Removes all configured routes. - + + Removes all configured routes. + - the #NMSettingIPConfig + the #NMSettingIPConfig - - Removes all configured routing rules. - + + Removes all configured routing rules. + - the #NMSettingIPConfig + the #NMSettingIPConfig - - + + - the address at index @idx + the address at index @idx - the #NMSettingIPConfig + the #NMSettingIPConfig - index number of the address to return + index number of the address to return - - + + - the #NMSettingIPConfig:auto-route-ext-gw property of the setting + the #NMSettingIPConfig:auto-route-ext-gw property of the setting - the #NMSettingIPConfig + the #NMSettingIPConfig - - + + - the #NMSettingIPConfig:dad-timeout property. + the #NMSettingIPConfig:dad-timeout property. - the #NMSettingIPConfig + the #NMSettingIPConfig - - Returns the value contained in the #NMSettingIPConfig:dhcp-dscp + + Returns the value contained in the #NMSettingIPConfig:dhcp-dscp property. - + - the value for the DSCP field for DHCP + the value for the DSCP field for DHCP - the #NMSettingIPConfig + the #NMSettingIPConfig - - Returns the value contained in the #NMSettingIPConfig:dhcp-hostname + + Returns the value contained in the #NMSettingIPConfig:dhcp-hostname property. - + - the configured hostname to send to the DHCP server + the configured hostname to send to the DHCP server - the #NMSettingIPConfig + the #NMSettingIPConfig - - Returns the value contained in the #NMSettingIPConfig:dhcp-hostname-flags + + Returns the value contained in the #NMSettingIPConfig:dhcp-hostname-flags property. - + - flags for the DHCP hostname and FQDN + flags for the DHCP hostname and FQDN - the #NMSettingIPConfig + the #NMSettingIPConfig - - Returns the value contained in the #NMSettingIPConfig:dhcp-iaid + + Returns the value contained in the #NMSettingIPConfig:dhcp-iaid property. - + - the configured DHCP IAID (Identity Association Identifier) + the configured DHCP IAID (Identity Association Identifier) - the #NMSettingIPConfig + the #NMSettingIPConfig - - + + - + A %NULL terminated array of DHCP reject servers. Even if no reject servers are configured, this always returns a non %NULL value. @@ -49694,967 +29642,625 @@ property. - the #NMSettingIPConfig + the #NMSettingIPConfig - - the number of returned elements + + the number of returned elements - - Returns the value contained in the #NMSettingIPConfig:dhcp-send-hostname + + Returns the value contained in the #NMSettingIPConfig:dhcp-send-hostname property. - + - %TRUE if NetworkManager should send the machine hostname to the + %TRUE if NetworkManager should send the machine hostname to the DHCP server when requesting addresses to allow the server to automatically update DNS information for this machine. - the #NMSettingIPConfig + the #NMSettingIPConfig - - Returns the value contained in the #NMSettingIPConfig:dhcp-timeout + + Returns the value contained in the #NMSettingIPConfig:dhcp-timeout property. - + - the configured DHCP timeout in seconds. 0 = default for + the configured DHCP timeout in seconds. 0 = default for the particular kind of device. - the #NMSettingIPConfig + the #NMSettingIPConfig - - + + - the IP address of the DNS server at index @idx + the IP address of the DNS server at index @idx - the #NMSettingIPConfig + the #NMSettingIPConfig - index number of the DNS server to return + index number of the DNS server to return - - Since 1.46, access at index "len" is allowed and returns NULL. - + + Since 1.46, access at index "len" is allowed and returns NULL. + - the DNS option at index @idx + the DNS option at index @idx - the #NMSettingIPConfig + the #NMSettingIPConfig - index number of the DNS option + index number of the DNS option - - + + - the priority of DNS servers + the priority of DNS servers - the #NMSettingIPConfig + the #NMSettingIPConfig - - Since 1.46, access at index "len" is allowed and returns NULL. - + + Since 1.46, access at index "len" is allowed and returns NULL. + - the DNS search domain at index @idx + the DNS search domain at index @idx - the #NMSettingIPConfig + the #NMSettingIPConfig - index number of the DNS search domain to return + index number of the DNS search domain to return - - + + - the IP address of the gateway associated with this configuration, or + the IP address of the gateway associated with this configuration, or %NULL. - the #NMSettingIPConfig + the #NMSettingIPConfig - - Returns the value contained in the #NMSettingIPConfig:ignore-auto-dns + + Returns the value contained in the #NMSettingIPConfig:ignore-auto-dns property. - + - %TRUE if automatically configured (ie via DHCP) DNS information + %TRUE if automatically configured (ie via DHCP) DNS information should be ignored. - the #NMSettingIPConfig + the #NMSettingIPConfig - - Returns the value contained in the #NMSettingIPConfig:ignore-auto-routes + + Returns the value contained in the #NMSettingIPConfig:ignore-auto-routes property. - + - %TRUE if automatically configured (ie via DHCP) routes should be + %TRUE if automatically configured (ie via DHCP) routes should be ignored. - the #NMSettingIPConfig + the #NMSettingIPConfig - - Returns the value contained in the #NMSettingIPConfig:may-fail + + Returns the value contained in the #NMSettingIPConfig:may-fail property. - + - %TRUE if this connection doesn't require this type of IP + %TRUE if this connection doesn't require this type of IP addressing to complete for the connection to succeed. - the #NMSettingIPConfig + the #NMSettingIPConfig - - + + - the #NMSettingIPConfig:method property of the setting; see + the #NMSettingIPConfig:method property of the setting; see #NMSettingIP4Config and #NMSettingIP6Config for details of the methods available with each type. - the #NMSettingIPConfig + the #NMSettingIPConfig - - Returns the value contained in the #NMSettingIPConfig:never-default + + Returns the value contained in the #NMSettingIPConfig:never-default property. - + - %TRUE if this connection should never be the default + %TRUE if this connection should never be the default connection - the #NMSettingIPConfig + the #NMSettingIPConfig - - + + - the number of configured addresses + the number of configured addresses - the #NMSettingIPConfig + the #NMSettingIPConfig - - + + - the number of configured DNS servers + the number of configured DNS servers - the #NMSettingIPConfig + the #NMSettingIPConfig - - + + - the number of configured DNS options + the number of configured DNS options - the #NMSettingIPConfig + the #NMSettingIPConfig - - + + - the number of configured DNS search domains + the number of configured DNS search domains - the #NMSettingIPConfig + the #NMSettingIPConfig - - + + - the number of configured routes + the number of configured routes - the #NMSettingIPConfig + the #NMSettingIPConfig - - + + - the number of configured routing rules + the number of configured routing rules - the #NMSettingIPConfig + the #NMSettingIPConfig - - + + - the #NMSettingIPConfig:replace-local-rule property of the setting + the #NMSettingIPConfig:replace-local-rule property of the setting - the #NMSettingIPConfig + the #NMSettingIPConfig - - Returns the value contained in the #NMSettingIPConfig:required-timeout + + Returns the value contained in the #NMSettingIPConfig:required-timeout property. - + - the required timeout for the address family + the required timeout for the address family - the #NMSettingIPConfig + the #NMSettingIPConfig - + - the route at index @idx + the route at index @idx - the #NMSettingIPConfig + the #NMSettingIPConfig - index number of the route to return + index number of the route to return - - Returns the value contained in the #NMSettingIPConfig:route-metric + + Returns the value contained in the #NMSettingIPConfig:route-metric property. - + - the route metric that is used for routes that don't explicitly + the route metric that is used for routes that don't explicitly specify a metric. See #NMSettingIPConfig:route-metric for more details. - the #NMSettingIPConfig + the #NMSettingIPConfig - - Returns the value contained in the #NMSettingIPConfig:route-table + + Returns the value contained in the #NMSettingIPConfig:route-table property. - + - the configured route-table. + the configured route-table. - the #NMSettingIPConfig + the #NMSettingIPConfig - - + + - the routing rule at index @idx + the routing rule at index @idx - the #NMSettingIPConfig + the #NMSettingIPConfig - index number of the routing_rule to return + index number of the routing_rule to return - - NMSettingIPConfig can have a list of dns-options. If the list + + NMSettingIPConfig can have a list of dns-options. If the list is empty, there are two similar (but differentiated) states. Either the options are explicitly set to have no values, or the options are left undefined. The latter means to use a default configuration, while the former explicitly means "no-options". - + - whether DNS options are initialized or left unset (the default). + whether DNS options are initialized or left unset (the default). - the #NMSettingIPConfig + the #NMSettingIPConfig - - Removes the address at index @idx. - + + Removes the address at index @idx. + - the #NMSettingIPConfig + the #NMSettingIPConfig - index number of the address to remove + index number of the address to remove - - Removes the address @address. - + + Removes the address @address. + - %TRUE if the address was found and removed; %FALSE if it was not. + %TRUE if the address was found and removed; %FALSE if it was not. - the #NMSettingIPConfig + the #NMSettingIPConfig - the IP address to remove + the IP address to remove - - Removes the DHCP reject server at index @idx. - + + Removes the DHCP reject server at index @idx. + - the #NMSettingIPConfig + the #NMSettingIPConfig - index number of the DHCP reject server + index number of the DHCP reject server - Removes the DNS server at index @idx. - + Removes the DNS server at index @idx. + - the #NMSettingIPConfig + the #NMSettingIPConfig - index number of the DNS server to remove + index number of the DNS server to remove - - Removes the DNS server @dns. - + + Removes the DNS server @dns. + - %TRUE if the DNS server was found and removed; %FALSE if it was not. + %TRUE if the DNS server was found and removed; %FALSE if it was not. Before 1.42, setting @dns to an invalid string was treated as user-error. - the #NMSettingIPConfig + the #NMSettingIPConfig - the DNS server to remove + the DNS server to remove - - Removes the DNS option at index @idx. - + + Removes the DNS option at index @idx. + - the #NMSettingIPConfig + the #NMSettingIPConfig - index number of the DNS option + index number of the DNS option - - Removes the DNS option @dns_option. - + + Removes the DNS option @dns_option. + - %TRUE if the DNS option was found and removed; %FALSE if it was not. + %TRUE if the DNS option was found and removed; %FALSE if it was not. - the #NMSettingIPConfig + the #NMSettingIPConfig - the DNS option to remove + the DNS option to remove - - Removes the DNS search domain at index @idx. - + + Removes the DNS search domain at index @idx. + - the #NMSettingIPConfig + the #NMSettingIPConfig - index number of the DNS search domain + index number of the DNS search domain - - Removes the DNS search domain @dns_search. - + + Removes the DNS search domain @dns_search. + - %TRUE if the DNS search domain was found and removed; %FALSE if it was not. + %TRUE if the DNS search domain was found and removed; %FALSE if it was not. - the #NMSettingIPConfig + the #NMSettingIPConfig - the search domain to remove + the search domain to remove - - Removes the route at index @idx. - + + Removes the route at index @idx. + - the #NMSettingIPConfig + the #NMSettingIPConfig - index number of the route + index number of the route - - Removes the first matching route that matches @route. + + Removes the first matching route that matches @route. Note that before 1.10, this function would only compare dest/prefix,next_hop,metric and ignore route attributes. Now, @route must match exactly. - + - %TRUE if the route was found and removed; %FALSE if it was not. + %TRUE if the route was found and removed; %FALSE if it was not. - the #NMSettingIPConfig + the #NMSettingIPConfig - the route to remove + the route to remove - - Removes the routing_rule at index @idx. - + + Removes the routing_rule at index @idx. + - the #NMSettingIPConfig + the #NMSettingIPConfig - index number of the routing_rule + index number of the routing_rule - Array of IP addresses. + Array of IP addresses. - - VPN connections will default to add the route automatically unless this + + VPN connections will default to add the route automatically unless this setting is set to %FALSE. For other connection types, adding such an automatic route is currently not supported and setting this to %TRUE has no effect. - - Maximum timeout in milliseconds used to check for the presence of duplicate + + Maximum timeout in milliseconds used to check for the presence of duplicate IP addresses on the network. If an address conflict is detected, the activation will fail. The property is currently implemented only for IPv4. @@ -50666,15 +30272,8 @@ actual duration can be between half and the full time specified in this property. - - Specifies the value for the DSCP field (traffic class) of the IP header. When + + Specifies the value for the DSCP field (traffic class) of the IP header. When empty, the global default value is used; if no global default is specified, it is assumed to be "CS0". Allowed values are: "CS0", "CS4" and "CS6". @@ -50682,28 +30281,15 @@ The property is currently valid only for IPv4, and it is supported only by the "internal" DHCP plugin. - - If the #NMSettingIPConfig:dhcp-send-hostname property is %TRUE, then the + + If the #NMSettingIPConfig:dhcp-send-hostname property is %TRUE, then the specified name will be sent to the DHCP server when acquiring a lease. This property and #NMSettingIP4Config:dhcp-fqdn are mutually exclusive and cannot be set at the same time. - - Flags for the DHCP hostname and FQDN. + + Flags for the DHCP hostname and FQDN. Currently, this property only includes flags to control the FQDN flags set in the DHCP FQDN option. Supported FQDN flags are @@ -50724,15 +30310,8 @@ is unset or also %NM_DHCP_HOSTNAME_FLAG_NONE, then the standard FQDN flags described above are sent in the DHCP requests. - - A string containing the "Identity Association Identifier" (IAID) used by + + A string containing the "Identity Association Identifier" (IAID) used by the DHCP client. The string can be a 32-bit number (either decimal, hexadecimal or as colon separated hexadecimal numbers). Alternatively it can be set to the special values "mac", "perm-mac", "ifname" or @@ -50756,14 +30335,8 @@ The actually used DHCPv6 IAID for a currently activated interface is exposed in the lease information of the device. - - Array of servers from which DHCP offers must be rejected. This property + + Array of servers from which DHCP offers must be rejected. This property is useful to avoid getting a lease from misconfigured or rogue servers. For DHCPv4, each element must be an IPv4 address, optionally @@ -50774,41 +30347,24 @@ This property is currently not implemented for DHCPv6. - - If %TRUE, a hostname is sent to the DHCP server when acquiring a lease. + + If %TRUE, a hostname is sent to the DHCP server when acquiring a lease. Some DHCP servers use this hostname to update DNS databases, essentially providing a static hostname for the computer. If the #NMSettingIPConfig:dhcp-hostname property is %NULL and this property is %TRUE, the current persistent hostname of the computer is sent. - - A timeout for a DHCP transaction in seconds. If zero (the default), a + + A timeout for a DHCP transaction in seconds. If zero (the default), a globally configured default is used. If still unspecified, a device specific timeout is used (usually 45 seconds). Set to 2147483647 (MAXINT32) for infinity. - - Array of IP addresses of DNS servers. + + Array of IP addresses of DNS servers. For DoT (DNS over TLS), the SNI server name can be specified by appending "#example.com" to the IP address of the DNS server. This currently only has @@ -50817,13 +30373,8 @@ effect when using systemd-resolved. - - Array of DNS options to be added to resolv.conf. + + Array of DNS options to be added to resolv.conf. %NULL means that the options are unset and left at the default. In this case NetworkManager will use default options. This is @@ -50853,15 +30404,8 @@ added, unless "_no-add-edns0" and "_no-add-trust-ad" are present. - - DNS servers priority. + + DNS servers priority. The relative priority for DNS servers specified by this setting. A lower numerical value is better (higher priority). @@ -50910,13 +30454,8 @@ DNS priorities and the search domains, so that only name servers of the desired interface are configured. - - List of DNS search domains. Domains starting with a tilde ('~') + + List of DNS search domains. Domains starting with a tilde ('~') are considered 'routing' domains and are used only to decide the interface over which a query must be forwarded; they are not used to complete unqualified host names. @@ -50935,14 +30474,8 @@ fallback will be derived from the domain from DHCP (option 15). - - The gateway associated with this configuration. This is only meaningful + + The gateway associated with this configuration. This is only meaningful if #NMSettingIPConfig:addresses is also set. Setting the gateway causes NetworkManager to configure a standard default route @@ -50955,40 +30488,22 @@ for WireGuard interfaces, so usually it should not be set in that case. See #NMSettingWireGuard:ip4-auto-default-route. - - When #NMSettingIPConfig:method is set to "auto" and this property to + + When #NMSettingIPConfig:method is set to "auto" and this property to %TRUE, automatically configured name servers and search domains are ignored and only name servers and search domains specified in the #NMSettingIPConfig:dns and #NMSettingIPConfig:dns-search properties, if any, are used. - - When #NMSettingIPConfig:method is set to "auto" and this property to + + When #NMSettingIPConfig:method is set to "auto" and this property to %TRUE, automatically configured routes are ignored and only routes specified in the #NMSettingIPConfig:routes property, if any, are used. - - If %TRUE, allow overall network configuration to proceed even if the + + If %TRUE, allow overall network configuration to proceed even if the configuration specified by this property times out. Note that at least one IP configuration must succeed or overall network configuration will still fail. For example, in IPv6-only networks, setting this property to @@ -50997,14 +30512,8 @@ to succeed if IPv4 configuration fails but IPv6 configuration completes successfully. - - IP configuration method. + + IP configuration method. #NMSettingIP4Config and #NMSettingIP6Config both support "disabled", "auto", "manual", and "link-local". See the subclass-specific @@ -51025,39 +30534,19 @@ shared method must be configured on the interface which shares the internet to a subnet, not on the uplink which is shared. - - If %TRUE, this connection will never be the default connection for this + + If %TRUE, this connection will never be the default connection for this IP type, meaning it will never be assigned the default route by NetworkManager. - - Connections will default to keep the autogenerated priority 0 local rule + + Connections will default to keep the autogenerated priority 0 local rule unless this setting is set to %TRUE. - - The minimum time interval in milliseconds for which dynamic IP configuration + + The minimum time interval in milliseconds for which dynamic IP configuration should be tried before the connection succeeds. This property is useful for example if both IPv4 and IPv6 are enabled and @@ -51076,14 +30565,8 @@ default value (either configuration ipvx.required-timeout override or zero). - - The default metric for routes that don't explicitly specify a metric. + + The default metric for routes that don't explicitly specify a metric. The default value -1 means that the metric is chosen automatically based on the device type. The metric applies to dynamic routes, manual (static) routes that @@ -51095,15 +30578,8 @@ mean setting it to 1024. For IPv4, zero is a regular value for the metric. - - Enable policy routing (source routing) and set the routing table used when adding routes. + + Enable policy routing (source routing) and set the routing table used when adding routes. This affects all routes, including device-routes, IPv4LL, DHCP, SLAAC, default-routes and static routes. But note that static routes can individually overwrite the setting @@ -51121,761 +30597,414 @@ of NetworkManager. - Array of IP routes. + Array of IP routes. - - + + - - IP Tunneling Settings - - - Creates a new #NMSettingIPTunnel object with default values. - + + IP Tunneling Settings + + + Creates a new #NMSettingIPTunnel object with default values. + - the new empty #NMSettingIPTunnel object + the new empty #NMSettingIPTunnel object - - Returns the #NMSettingIPTunnel:encapsulation-limit property of the setting. - - - the encapsulation limit value + + Returns the #NMSettingIPTunnel:encapsulation-limit property of the setting. + + + the encapsulation limit value - the #NMSettingIPTunnel + the #NMSettingIPTunnel - - Returns the #NMSettingIPTunnel:flags property of the setting. - + + Returns the #NMSettingIPTunnel:flags property of the setting. + - the tunnel flags + the tunnel flags - the #NMSettingIPTunnel + the #NMSettingIPTunnel - - Returns the #NMSettingIPTunnel:flow-label property of the setting. - + + Returns the #NMSettingIPTunnel:flow-label property of the setting. + - the flow label value + the flow label value - the #NMSettingIPTunnel + the #NMSettingIPTunnel - - Returns the #NMSettingIPTunnel:fwmark property of the setting. - + + Returns the #NMSettingIPTunnel:fwmark property of the setting. + - the fwmark value + the fwmark value - the #NMSettingIPTunnel + the #NMSettingIPTunnel - - Returns the #NMSettingIPTunnel:input-key property of the setting. - + + Returns the #NMSettingIPTunnel:input-key property of the setting. + - the input key + the input key - the #NMSettingIPTunnel + the #NMSettingIPTunnel - - Returns the #NMSettingIPTunnel:local property of the setting. - + + Returns the #NMSettingIPTunnel:local property of the setting. + - the local endpoint + the local endpoint - the #NMSettingIPTunnel + the #NMSettingIPTunnel - - Returns the #NMSettingIPTunnel:mode property of the setting. - + + Returns the #NMSettingIPTunnel:mode property of the setting. + - the tunnel mode + the tunnel mode - the #NMSettingIPTunnel + the #NMSettingIPTunnel - - Returns the #NMSettingIPTunnel:mtu property of the setting. - + + Returns the #NMSettingIPTunnel:mtu property of the setting. + - the MTU + the MTU - the #NMSettingIPTunnel + the #NMSettingIPTunnel - - Returns the #NMSettingIPTunnel:output-key property of the setting. - + + Returns the #NMSettingIPTunnel:output-key property of the setting. + - the output key + the output key - the #NMSettingIPTunnel + the #NMSettingIPTunnel - - Returns the #NMSettingIPTunnel:parent property of the setting - + + Returns the #NMSettingIPTunnel:parent property of the setting + - the parent device + the parent device - the #NMSettingIPTunnel + the #NMSettingIPTunnel - - Returns the #NMSettingIPTunnel:path-mtu-discovery property of the setting. - + + Returns the #NMSettingIPTunnel:path-mtu-discovery property of the setting. + - whether path MTU discovery is enabled + whether path MTU discovery is enabled - the #NMSettingIPTunnel + the #NMSettingIPTunnel - - Returns the #NMSettingIPTunnel:remote property of the setting. - + + Returns the #NMSettingIPTunnel:remote property of the setting. + - the remote endpoint + the remote endpoint - the #NMSettingIPTunnel + the #NMSettingIPTunnel - - Returns the #NMSettingIPTunnel:tos property of the setting. - + + Returns the #NMSettingIPTunnel:tos property of the setting. + - the TOS value + the TOS value - the #NMSettingIPTunnel + the #NMSettingIPTunnel - - Returns the #NMSettingIPTunnel:ttl property of the setting. - + + Returns the #NMSettingIPTunnel:ttl property of the setting. + - the Time-to-live value + the Time-to-live value - the #NMSettingIPTunnel + the #NMSettingIPTunnel - - How many additional levels of encapsulation are permitted to be prepended + + How many additional levels of encapsulation are permitted to be prepended to packets. This property applies only to IPv6 tunnels. To disable this option, add %NM_IP_TUNNEL_FLAG_IP6_IGN_ENCAP_LIMIT to ip-tunnel flags. - - Tunnel flags. Currently, the following values are supported: + + Tunnel flags. Currently, the following values are supported: %NM_IP_TUNNEL_FLAG_IP6_IGN_ENCAP_LIMIT, %NM_IP_TUNNEL_FLAG_IP6_USE_ORIG_TCLASS, %NM_IP_TUNNEL_FLAG_IP6_USE_ORIG_FLOWLABEL, %NM_IP_TUNNEL_FLAG_IP6_MIP6_DEV, %NM_IP_TUNNEL_FLAG_IP6_RCV_DSCP_COPY, %NM_IP_TUNNEL_FLAG_IP6_USE_ORIG_FWMARK. They are valid only for IPv6 tunnels. - - The flow label to assign to tunnel packets. This property applies only to + + The flow label to assign to tunnel packets. This property applies only to IPv6 tunnels. - - The fwmark value to assign to tunnel packets. This property can be set + + The fwmark value to assign to tunnel packets. This property can be set to a non zero value only on VTI and VTI6 tunnels. - - The key used for tunnel input packets; the property is valid only for + + The key used for tunnel input packets; the property is valid only for certain tunnel modes (GRE, IP6GRE). If empty, no key is used. - - The local endpoint of the tunnel; the value can be empty, otherwise it + + The local endpoint of the tunnel; the value can be empty, otherwise it must contain an IPv4 or IPv6 address. - - The tunneling mode. Valid values: %NM_IP_TUNNEL_MODE_IPIP, + + The tunneling mode. Valid values: %NM_IP_TUNNEL_MODE_IPIP, %NM_IP_TUNNEL_MODE_GRE, %NM_IP_TUNNEL_MODE_SIT, %NM_IP_TUNNEL_MODE_ISATAP, %NM_IP_TUNNEL_MODE_VTI, %NM_IP_TUNNEL_MODE_IP6IP6, %NM_IP_TUNNEL_MODE_IPIP6, %NM_IP_TUNNEL_MODE_IP6GRE, %NM_IP_TUNNEL_MODE_VTI6, %NM_IP_TUNNEL_MODE_GRETAP and %NM_IP_TUNNEL_MODE_IP6GRETAP - - If non-zero, only transmit packets of the specified size or smaller, + + If non-zero, only transmit packets of the specified size or smaller, breaking larger packets up into multiple fragments. - - The key used for tunnel output packets; the property is valid only for + + The key used for tunnel output packets; the property is valid only for certain tunnel modes (GRE, IP6GRE). If empty, no key is used. - - If given, specifies the parent interface name or parent connection UUID + + If given, specifies the parent interface name or parent connection UUID the new device will be bound to so that tunneled packets will only be routed via that interface. - - Whether to enable Path MTU Discovery on this tunnel. + + Whether to enable Path MTU Discovery on this tunnel. - - The remote endpoint of the tunnel; the value must contain an IPv4 or IPv6 + + The remote endpoint of the tunnel; the value must contain an IPv4 or IPv6 address. - - The type of service (IPv4) or traffic class (IPv6) field to be set on + + The type of service (IPv4) or traffic class (IPv6) field to be set on tunneled packets. - - The TTL to assign to tunneled packets. 0 is a special value meaning that + + The TTL to assign to tunneled packets. 0 is a special value meaning that packets inherit the TTL value. - - + + - - Infiniband Settings - + + Infiniband Settings + - Creates a new #NMSettingInfiniband object with default values. - + Creates a new #NMSettingInfiniband object with default values. + - the new empty #NMSettingInfiniband object + the new empty #NMSettingInfiniband object - - - - the #NMSettingInfiniband:mac-address property of the setting + + + + the #NMSettingInfiniband:mac-address property of the setting - the #NMSettingInfiniband + the #NMSettingInfiniband - - + + - the #NMSettingInfiniband:mtu property of the setting + the #NMSettingInfiniband:mtu property of the setting - the #NMSettingInfiniband + the #NMSettingInfiniband - - Returns the P_Key to use for this device. A value of -1 means to + + Returns the P_Key to use for this device. A value of -1 means to use the default P_Key (aka "the P_Key at index 0"). Otherwise, it is a 16-bit unsigned integer. - + - the IPoIB P_Key + the IPoIB P_Key - the #NMSettingInfiniband + the #NMSettingInfiniband - - Returns the parent interface name for this device, if set. - + + Returns the parent interface name for this device, if set. + - the parent interface name + the parent interface name - the #NMSettingInfiniband + the #NMSettingInfiniband - - Returns the transport mode for this device. Either 'datagram' or + + Returns the transport mode for this device. Either 'datagram' or 'connected'. - + - the IPoIB transport mode + the IPoIB transport mode - the #NMSettingInfiniband + the #NMSettingInfiniband - - Returns the interface name created by combining #NMSettingInfiniband:parent + + Returns the interface name created by combining #NMSettingInfiniband:parent and #NMSettingInfiniband:p-key. (If either property is unset, this will return %NULL.) - + - the interface name, or %NULL + the interface name, or %NULL - the #NMSettingInfiniband + the #NMSettingInfiniband - - If specified, this connection will only apply to the IPoIB device whose + + If specified, this connection will only apply to the IPoIB device whose permanent MAC address matches. This property does not change the MAC address of the device (i.e. MAC spoofing). - - If non-zero, only transmit packets of the specified size or smaller, + + If non-zero, only transmit packets of the specified size or smaller, breaking larger packets up into multiple frames. - - The InfiniBand p-key to use for this device. A value of -1 means to use + + The InfiniBand p-key to use for this device. A value of -1 means to use the default p-key (aka "the p-key at index 0"). Otherwise, it is a 16-bit unsigned integer, whose high bit 0x8000 is set if it is a "full membership" p-key. The values 0 and 0x8000 are not allowed. @@ -51888,641 +31017,334 @@ although the interface name does not reflect that. Usually the user would want to configure a full membership p-key with 0x8000 flag set. - - The interface name of the parent device of this device. Normally %NULL, + + The interface name of the parent device of this device. Normally %NULL, but if the #NMSettingInfiniband:p_key property is set, then you must specify the base device by setting either this property or #NMSettingInfiniband:mac-address. - - The IP-over-InfiniBand transport mode. Either "datagram" or + + The IP-over-InfiniBand transport mode. Either "datagram" or "connected". - - + + - - Link settings - - - Creates a new #NMSettingLink object with default values. - + + Link settings + + + Creates a new #NMSettingLink object with default values. + - the new empty #NMSettingLink object + the new empty #NMSettingLink object - - Returns the value contained in the #NMSettingLink:gro-max-size + + Returns the value contained in the #NMSettingLink:gro-max-size property. - + - the 'gro-max-size' property value + the 'gro-max-size' property value - the #NMSettingLink + the #NMSettingLink - - Returns the value contained in the #NMSettingLink:gso-max-segments + + Returns the value contained in the #NMSettingLink:gso-max-segments property. - + - the 'gso-max-segments' property value + the 'gso-max-segments' property value - the #NMSettingLink + the #NMSettingLink - - Returns the value contained in the #NMSettingLink:gso-max-size + + Returns the value contained in the #NMSettingLink:gso-max-size property. - + - the 'gso-max-size' property value + the 'gso-max-size' property value - the #NMSettingLink + the #NMSettingLink - - Returns the value contained in the #NMSettingLink:tx-queue-length + + Returns the value contained in the #NMSettingLink:tx-queue-length property. - + - the 'tx-queue-length' property value + the 'tx-queue-length' property value - the #NMSettingLink + the #NMSettingLink - - The maximum size of a packet built by the Generic Receive Offload stack for + + The maximum size of a packet built by the Generic Receive Offload stack for this device. The value must be between 0 and 4294967295. When set to -1, the existing value is preserved. - - The maximum segments of a Generic Segment Offload packet the device should accept. + + The maximum segments of a Generic Segment Offload packet the device should accept. The value must be between 0 and 4294967295. When set to -1, the existing value is preserved. - - The maximum size of a Generic Segment Offload packet the device should accept. + + The maximum size of a Generic Segment Offload packet the device should accept. The value must be between 0 and 4294967295. When set to -1, the existing value is preserved. - - The size of the transmit queue for the device, in number of packets. The value + + The size of the transmit queue for the device, in number of packets. The value must be between 0 and 4294967295. When set to -1, the existing value is preserved. - - + + - - Loopback Link Settings - - - Creates a new #NMSettingLoopback object with default values. - + + Loopback Link Settings + + + Creates a new #NMSettingLoopback object with default values. + - the new empty #NMSettingLoopback object + the new empty #NMSettingLoopback object - - - - the #NMSettingLoopback:mtu property of the setting + + + + the #NMSettingLoopback:mtu property of the setting - the #NMSettingLoopback + the #NMSettingLoopback - - If non-zero, only transmit packets of the specified size or smaller, + + If non-zero, only transmit packets of the specified size or smaller, breaking larger packets up into multiple Ethernet frames. - - + + - - Controls if and how the MAC address of a device is randomzied. - - the default value, which unless + + Controls if and how the MAC address of a device is randomzied. + + the default value, which unless overridden by user-controlled defaults configuration, is "never". - - the device's MAC address is always used. - - - a random MAC address is used. + + the device's MAC address is always used. + + + a random MAC address is used. - - MACSec Settings - - - Creates a new #NMSettingMacsec object with default values. - + + MACSec Settings + + + Creates a new #NMSettingMacsec object with default values. + - the new empty #NMSettingMacsec object + the new empty #NMSettingMacsec object - - - - the #NMSettingMacsec:encrypt property of the setting + + + + the #NMSettingMacsec:encrypt property of the setting - the #NMSettingMacsec + the #NMSettingMacsec - - + + - the #NMSettingMacsec:mka-cak property of the setting + the #NMSettingMacsec:mka-cak property of the setting - the #NMSettingMacsec + the #NMSettingMacsec - - + + - the #NMSettingSecretFlags pertaining to the #NMSettingMacsec:mka-cak + the #NMSettingSecretFlags pertaining to the #NMSettingMacsec:mka-cak - the #NMSettingMacsec + the #NMSettingMacsec - - + + - the #NMSettingMacsec:mka-ckn property of the setting + the #NMSettingMacsec:mka-ckn property of the setting - the #NMSettingMacsec + the #NMSettingMacsec - - + + - the #NMSettingMacsec:mode property of the setting + the #NMSettingMacsec:mode property of the setting - the #NMSettingMacsec + the #NMSettingMacsec - - + + - the #NMSettingMacsec:offload property of the setting + the #NMSettingMacsec:offload property of the setting - the #NMSettingMacsec + the #NMSettingMacsec - - + + - the #NMSettingMacsec:parent property of the setting + the #NMSettingMacsec:parent property of the setting - the #NMSettingMacsec + the #NMSettingMacsec - - + + - the #NMSettingMacsec:port property of the setting + the #NMSettingMacsec:port property of the setting - the #NMSettingMacsec + the #NMSettingMacsec - - + + - the #NMSettingMacsec:send-sci property of the setting + the #NMSettingMacsec:send-sci property of the setting - the #NMSettingMacsec + the #NMSettingMacsec - - + + - the #NMSettingMacsec:validation property of the setting - + the #NMSettingMacsec:validation property of the setting + - the #NMSettingMacsec + the #NMSettingMacsec - - Whether the transmitted traffic must be encrypted. + + Whether the transmitted traffic must be encrypted. - - The pre-shared CAK (Connectivity Association Key) for MACsec + + The pre-shared CAK (Connectivity Association Key) for MACsec Key Agreement. Must be a string of 32 hexadecimal characters. - - Flags indicating how to handle the #NMSettingMacsec:mka-cak + + Flags indicating how to handle the #NMSettingMacsec:mka-cak property. - - The pre-shared CKN (Connectivity-association Key Name) for + + The pre-shared CKN (Connectivity-association Key Name) for MACsec Key Agreement. Must be a string of hexadecimal characters with a even length between 2 and 64. - - Specifies how the CAK (Connectivity Association Key) for MKA (MACsec Key + + Specifies how the CAK (Connectivity Association Key) for MKA (MACsec Key Agreement) is obtained. - - Specifies the MACsec offload mode. + + Specifies the MACsec offload mode. %NM_SETTING_MACSEC_OFFLOAD_OFF disables MACsec offload. @@ -52535,428 +31357,185 @@ NetworkManager configuration; if no global default is defined, the built-in default is %NM_SETTING_MACSEC_OFFLOAD_OFF. - - If given, specifies the parent interface name or parent connection UUID + + If given, specifies the parent interface name or parent connection UUID from which this MACSEC interface should be created. If this property is not specified, the connection must contain an #NMSettingWired setting with a #NMSettingWired:mac-address property. - - The port component of the SCI (Secure Channel Identifier), between 1 and 65534. + + The port component of the SCI (Secure Channel Identifier), between 1 and 65534. - - Specifies whether the SCI (Secure Channel Identifier) is included + + Specifies whether the SCI (Secure Channel Identifier) is included in every packet. - - Specifies the validation mode for incoming frames. + + Specifies the validation mode for incoming frames. - - + + - - #NMSettingMacsecMode controls how the CAK (Connectivity Association Key) used + + #NMSettingMacsecMode controls how the CAK (Connectivity Association Key) used in MKA (MACsec Key Agreement) is obtained. - - The CAK is pre-shared - - - The CAK is the result of participation in EAP + + The CAK is pre-shared + + + The CAK is the result of participation in EAP - - These flags control the MACsec offload mode. - - use the global default; disable if not defined - - - disable offload - - - request offload to the PHY - - - request offload to the MAC + + These flags control the MACsec offload mode. + + use the global default; disable if not defined + + + disable offload + + + request offload to the PHY + + + request offload to the MAC - - #NMSettingMacsecValidation specifies a validation mode for incoming frames. - - All incoming frames are accepted if + + #NMSettingMacsecValidation specifies a validation mode for incoming frames. + + All incoming frames are accepted if possible - - Non protected, invalid, or impossible to + + Non protected, invalid, or impossible to verify frames are accepted and counted as "invalid" - - Non protected, invalid, or impossible to + + Non protected, invalid, or impossible to verify frames are dropped - - MAC VLAN Settings - - - Creates a new #NMSettingMacvlan object with default values. - + + MAC VLAN Settings + + + Creates a new #NMSettingMacvlan object with default values. + - the new empty #NMSettingMacvlan object + the new empty #NMSettingMacvlan object - - - - the #NMSettingMacvlan:mode property of the setting + + + + the #NMSettingMacvlan:mode property of the setting - the #NMSettingMacvlan + the #NMSettingMacvlan - - + + - the #NMSettingMacvlan:parent property of the setting + the #NMSettingMacvlan:parent property of the setting - the #NMSettingMacvlan + the #NMSettingMacvlan - - + + - the #NMSettingMacvlan:promiscuous property of the setting + the #NMSettingMacvlan:promiscuous property of the setting - the #NMSettingMacvlan + the #NMSettingMacvlan - - + + - the #NMSettingMacvlan:tap property of the setting + the #NMSettingMacvlan:tap property of the setting - the #NMSettingMacvlan + the #NMSettingMacvlan - - The macvlan mode, which specifies the communication mechanism between multiple + + The macvlan mode, which specifies the communication mechanism between multiple macvlans on the same lower device. - - If given, specifies the parent interface name or parent connection UUID + + If given, specifies the parent interface name or parent connection UUID from which this MAC-VLAN interface should be created. If this property is not specified, the connection must contain an #NMSettingWired setting with a #NMSettingWired:mac-address property. - - Whether the interface should be put in promiscuous mode. + + Whether the interface should be put in promiscuous mode. - - Whether the interface should be a MACVTAP. + + Whether the interface should be a MACVTAP. - - + + - - - unknown/unset mode - - - Virtual Ethernet Port Aggregator mode - - - bridge mode - - - private mode - - - passthru mode - - - source mode + + + unknown/unset mode + + + Virtual Ethernet Port Aggregator mode + + + bridge mode + + + private mode + + + passthru mode + + + source mode - - Match settings - - - Creates a new #NMSettingMatch object with default values. - + + Match settings + + + Creates a new #NMSettingMatch object with default values. + - the new empty #NMSettingMatch object + the new empty #NMSettingMatch object Note that this function was present in header files since version 1.14. But due to a bug the symbol is only exposed and usable since version 1.32. @@ -52965,298 +31544,187 @@ versions since 1.14. - - Adds a new driver to the setting. - + + Adds a new driver to the setting. + - the #NMSettingMatch + the #NMSettingMatch - the driver to add + the driver to add - - Adds a new interface name to the setting. - + + Adds a new interface name to the setting. + - the #NMSettingMatch + the #NMSettingMatch - the interface name to add + the interface name to add - - Adds a new kernel command line argument to the setting. - + + Adds a new kernel command line argument to the setting. + - the #NMSettingMatch + the #NMSettingMatch - the kernel command line argument to add + the kernel command line argument to add - - Adds a new path to the setting. - + + Adds a new path to the setting. + - the #NMSettingMatch + the #NMSettingMatch - the path to add + the path to add - - Removes all configured drivers. - + + Removes all configured drivers. + - the #NMSettingMatch + the #NMSettingMatch - - Removes all configured interface names. - + + Removes all configured interface names. + - the #NMSettingMatch + the #NMSettingMatch - - Removes all configured kernel command line arguments. - + + Removes all configured kernel command line arguments. + - the #NMSettingMatch + the #NMSettingMatch - - Removes all configured paths. - + + Removes all configured paths. + - the #NMSettingMatch + the #NMSettingMatch - - Since 1.46, access at index "len" is allowed and returns NULL. - + + Since 1.46, access at index "len" is allowed and returns NULL. + - the driver at index @idx + the driver at index @idx - the #NMSettingMatch + the #NMSettingMatch - index number of the DNS search domain to return + index number of the DNS search domain to return - - Returns all the drivers. - + + Returns all the drivers. + - the configured drivers. + the configured drivers. - the #NMSettingMatch + the #NMSettingMatch - - the length of the returned interface names array. + + the length of the returned interface names array. - - Since 1.46, access at index "len" is allowed and returns NULL. - + + Since 1.46, access at index "len" is allowed and returns NULL. + - the interface name at index @idx + the interface name at index @idx - the #NMSettingMatch + the #NMSettingMatch - index number of the DNS search domain to return + index number of the DNS search domain to return - - Returns all the interface names. - + + Returns all the interface names. + - the NULL terminated list of + the NULL terminated list of configured interface names. Before 1.26, the returned array was not %NULL terminated and you MUST provide a length. @@ -53266,464 +31734,285 @@ Before 1.26, the returned array was not %NULL terminated and you MUST provide a - the #NMSettingMatch + the #NMSettingMatch - - the length of the returned interface names array. + + the length of the returned interface names array. - - Since 1.46, access at index "len" is allowed and returns NULL. - + + Since 1.46, access at index "len" is allowed and returns NULL. + - the kernel command line argument at index @idx + the kernel command line argument at index @idx - the #NMSettingMatch + the #NMSettingMatch - index number of the kernel command line argument to return + index number of the kernel command line argument to return - - Returns all the interface names. - + + Returns all the interface names. + - the configured interface names. + the configured interface names. - the #NMSettingMatch + the #NMSettingMatch - - the length of the returned interface names array. + + the length of the returned interface names array. - - + + - the number of configured drivers + the number of configured drivers - the #NMSettingMatch + the #NMSettingMatch - - + + - the number of configured interface names + the number of configured interface names - the #NMSettingMatch + the #NMSettingMatch - - + + - the number of configured kernel command line arguments + the number of configured kernel command line arguments - the #NMSettingMatch + the #NMSettingMatch - - + + - the number of configured paths + the number of configured paths - the #NMSettingMatch + the #NMSettingMatch - - Since 1.46, access at index "len" is allowed and returns NULL. - + + Since 1.46, access at index "len" is allowed and returns NULL. + - the path at index @idx + the path at index @idx - the #NMSettingMatch + the #NMSettingMatch - index number of the path to return + index number of the path to return - - Returns all the paths. - + + Returns all the paths. + - the configured paths. + the configured paths. - the #NMSettingMatch + the #NMSettingMatch - - the length of the returned paths array. + + the length of the returned paths array. - - Removes the driver at index @idx. - + + Removes the driver at index @idx. + - the #NMSettingMatch + the #NMSettingMatch - index number of the driver + index number of the driver - - Removes @driver. - + + Removes @driver. + - %TRUE if the driver was found and removed; %FALSE if it was not. + %TRUE if the driver was found and removed; %FALSE if it was not. - the #NMSettingMatch + the #NMSettingMatch - the driver to remove + the driver to remove - - Removes the interface name at index @idx. - + + Removes the interface name at index @idx. + - the #NMSettingMatch + the #NMSettingMatch - index number of the interface name + index number of the interface name - - Removes @interface_name. - + + Removes @interface_name. + - %TRUE if the interface name was found and removed; %FALSE if it was not. + %TRUE if the interface name was found and removed; %FALSE if it was not. - the #NMSettingMatch + the #NMSettingMatch - the interface name to remove + the interface name to remove - - Removes the kernel command line argument at index @idx. - + + Removes the kernel command line argument at index @idx. + - the #NMSettingMatch + the #NMSettingMatch - index number of the kernel command line argument + index number of the kernel command line argument - - Removes @kernel_command_line. - + + Removes @kernel_command_line. + - %TRUE if the kernel command line argument was found and removed; %FALSE if it was not. + %TRUE if the kernel command line argument was found and removed; %FALSE if it was not. - the #NMSettingMatch + the #NMSettingMatch - the kernel command line argument name to remove + the kernel command line argument name to remove - - Removes the path at index @idx. - + + Removes the path at index @idx. + - the #NMSettingMatch + the #NMSettingMatch - index number of the path + index number of the path - - Removes @path. - + + Removes @path. + - %TRUE if the path was found and removed; %FALSE if it was not. + %TRUE if the path was found and removed; %FALSE if it was not. - the #NMSettingMatch + the #NMSettingMatch - the path to remove + the path to remove - - A list of driver names to match. Each element is a shell wildcard pattern. + + A list of driver names to match. Each element is a shell wildcard pattern. See NMSettingMatch:interface-name for how special characters '|', '&', '!' and '\\' are used for optional and mandatory matches and inverting the @@ -53732,14 +32021,8 @@ pattern. - - A list of interface names to match. Each element is a shell wildcard + + A list of interface names to match. Each element is a shell wildcard pattern. An element can be prefixed with a pipe symbol (|) or an ampersand (&). @@ -53757,14 +32040,8 @@ to escape the start of the pattern. For example, "&\\!a" is an mandatory mat - - A list of kernel command line arguments to match. This may be used to check + + A list of kernel command line arguments to match. This may be used to check whether a specific kernel command line option is set (or unset, if prefixed with the exclamation mark). The argument must either be a single word, or an assignment (i.e. two words, joined by "="). In the former case the kernel @@ -53779,14 +32056,8 @@ match. - - A list of paths to match against the ID_PATH udev property of + + A list of paths to match against the ID_PATH udev property of devices. ID_PATH represents the topological persistent path of a device. It typically contains a subsystem string (pci, usb, platform, etc.) and a subsystem-specific identifier. @@ -53810,44 +32081,22 @@ pattern. - - + + - - OLPC Wireless Mesh Settings - + + OLPC Wireless Mesh Settings + - Creates a new #NMSettingOlpcMesh object with default values. - + Creates a new #NMSettingOlpcMesh object with default values. + - the new empty #NMSettingOlpcMesh object + the new empty #NMSettingOlpcMesh object - - + + @@ -53857,11 +32106,8 @@ pattern. - - + + @@ -53871,420 +32117,221 @@ pattern. - - + + - the #NMSettingOlpcMesh + the #NMSettingOlpcMesh - - Channel on which the mesh network to join is located. + + Channel on which the mesh network to join is located. - - Anycast DHCP MAC address used when requesting an IP address via DHCP. + + Anycast DHCP MAC address used when requesting an IP address via DHCP. The specific anycast address used determines which DHCP server class answers the request. This is currently only implemented by dhclient DHCP plugin. - - SSID of the mesh network to join. + + SSID of the mesh network to join. - - + + - - OvsBridge Link Settings - - - Creates a new #NMSettingOvsBridge object with default values. - + + OvsBridge Link Settings + + + Creates a new #NMSettingOvsBridge object with default values. + - the new empty #NMSettingOvsBridge object + the new empty #NMSettingOvsBridge object - - - - the #NMSettingOvsBridge:datapath_type property of the setting + + + + the #NMSettingOvsBridge:datapath_type property of the setting - the #NMSettingOvsBridge + the #NMSettingOvsBridge - - + + - the #NMSettingOvsBridge:fail_mode property of the setting + the #NMSettingOvsBridge:fail_mode property of the setting - the #NMSettingOvsBridge + the #NMSettingOvsBridge - - + + - the #NMSettingOvsBridge:mcast_snooping_enable property of the setting + the #NMSettingOvsBridge:mcast_snooping_enable property of the setting - the #NMSettingOvsBridge + the #NMSettingOvsBridge - - + + - the #NMSettingOvsBridge:rstp_enable property of the setting + the #NMSettingOvsBridge:rstp_enable property of the setting - the #NMSettingOvsBridge + the #NMSettingOvsBridge - - + + - the #NMSettingOvsBridge:stp_enable property of the setting + the #NMSettingOvsBridge:stp_enable property of the setting - the #NMSettingOvsBridge + the #NMSettingOvsBridge - - The data path type. One of "system", "netdev" or empty. + + The data path type. One of "system", "netdev" or empty. - - The bridge failure mode. One of "secure", "standalone" or empty. + + The bridge failure mode. One of "secure", "standalone" or empty. - - Enable or disable multicast snooping. + + Enable or disable multicast snooping. - - Enable or disable RSTP. + + Enable or disable RSTP. - - Enable or disable STP. + + Enable or disable STP. - - + + - - OvsDpdk Link Settings - - - Creates a new #NMSettingOvsDpdk object with default values. - + + OvsDpdk Link Settings + + + Creates a new #NMSettingOvsDpdk object with default values. + - the new empty #NMSettingOvsDpdk object + the new empty #NMSettingOvsDpdk object - - - - the #NMSettingOvsDpdk:devargs property of the setting + + + + the #NMSettingOvsDpdk:devargs property of the setting - the #NMSettingOvsDpdk + the #NMSettingOvsDpdk - - + + - the #NMSettingOvsDpdk:n-rxq property of the setting + the #NMSettingOvsDpdk:n-rxq property of the setting - the #NMSettingOvsDpdk + the #NMSettingOvsDpdk - - + + - the #NMSettingOvsDpdk:n-rxq-desc property of the setting + the #NMSettingOvsDpdk:n-rxq-desc property of the setting - the #NMSettingOvsDpdk + the #NMSettingOvsDpdk - - + + - the #NMSettingOvsDpdk:n-txq-desc property of the setting + the #NMSettingOvsDpdk:n-txq-desc property of the setting - the #NMSettingOvsDpdk + the #NMSettingOvsDpdk - - Open vSwitch DPDK device arguments. + + Open vSwitch DPDK device arguments. - - Open vSwitch DPDK number of rx queues. + + Open vSwitch DPDK number of rx queues. Defaults to zero which means to leave the parameter in OVS unspecified and effectively configures one queue. - - The rx queue size (number of rx descriptors) for DPDK ports. + + The rx queue size (number of rx descriptors) for DPDK ports. Must be zero or a power of 2 between 1 and 4096, and supported by the hardware. Defaults to zero which means to leave the parameter in OVS unspecified and effectively configures 2048 descriptors. - - The tx queue size (number of tx descriptors) for DPDK ports. + + The tx queue size (number of tx descriptors) for DPDK ports. Must be zero or a power of 2 between 1 and 4096, and supported by the hardware. Defaults to zero which means to leave the parameter in OVS unspecified and effectively configures 2048 @@ -54292,138 +32339,75 @@ descriptors. - - + + - - OVS External IDs Settings - - - Creates a new #NMSettingOvsExternalIDs object with default values. - + + OVS External IDs Settings + + + Creates a new #NMSettingOvsExternalIDs object with default values. + - the new empty + the new empty #NMSettingOvsExternalIDs object - - Checks whether @key is a valid key for OVS' external-ids. + + Checks whether @key is a valid key for OVS' external-ids. This means, the key cannot be %NULL, not too large and valid ASCII. Also, only digits and numbers are allowed with a few special characters. They key must also not start with "NM.". - + - %TRUE if @key is a valid user data key. + %TRUE if @key is a valid user data key. - - the key to check + + the key to check - - Checks whether @val is a valid user data value. This means, + + Checks whether @val is a valid user data value. This means, value is not %NULL, not too large and valid UTF-8. - + - %TRUE if @val is a valid user data value. + %TRUE if @val is a valid user data value. - - the value to check + + the value to check - - - - the value associated with @key or %NULL if no such + + + + the value associated with @key or %NULL if no such value exists. - the #NMSettingOvsExternalIDs instance - + the #NMSettingOvsExternalIDs instance + - the external-id to lookup + the external-id to lookup - - + + - a + a %NULL-terminated array containing each key from the table. @@ -54431,249 +32415,133 @@ value is not %NULL, not too large and valid UTF-8. - the #NMSettingOvsExternalIDs - + the #NMSettingOvsExternalIDs + - - the length of the returned array + + the length of the returned array - - + + - the #NMSettingOvsExternalIDs instance - + the #NMSettingOvsExternalIDs instance + - the key to set + the key to set - - the value to set or %NULL to clear a key. + + the value to set or %NULL to clear a key. - - A dictionary of key/value pairs with external-ids for OVS. + + A dictionary of key/value pairs with external-ids for OVS. - - + + - - Open vSwitch Interface Settings - - - Creates a new #NMSettingOvsInterface object with default values. - + + Open vSwitch Interface Settings + + + Creates a new #NMSettingOvsInterface object with default values. + - the new empty #NMSettingOvsInterface object + the new empty #NMSettingOvsInterface object - - - - the #NMSettingOvsInterface:type property of the setting + + + + the #NMSettingOvsInterface:type property of the setting - the #NMSettingOvsInterface + the #NMSettingOvsInterface - - + + - id of the preassigned ovs port + id of the preassigned ovs port - the #NMSettingOvsInterface + the #NMSettingOvsInterface - - Open vSwitch openflow port number. + + Open vSwitch openflow port number. Defaults to zero which means that port number will not be specified and it will be chosen randomly by ovs. OpenFlow ports are the network interfaces for passing packets between OpenFlow processing and the rest of the network. OpenFlow switches connect logically to each other via their OpenFlow ports. - - The interface type. Either "internal", "system", "patch", "dpdk", or empty. + + The interface type. Either "internal", "system", "patch", "dpdk", or empty. - - + + - - OVS Other Config Settings - - - Creates a new #NMSettingOvsOtherConfig object with default values. - + + OVS Other Config Settings + + + Creates a new #NMSettingOvsOtherConfig object with default values. + - the new empty + the new empty #NMSettingOvsOtherConfig object - - - - the value associated with @key or %NULL if no such + + + + the value associated with @key or %NULL if no such value exists. - the #NMSettingOvsOtherConfig instance - + the #NMSettingOvsOtherConfig instance + - the other-config to lookup + the other-config to lookup - - + + - a + a %NULL-terminated array containing each key from the table. @@ -54681,66 +32549,37 @@ OpenFlow switches connect logically to each other via their OpenFlow ports. - the #NMSettingOvsOtherConfig - + the #NMSettingOvsOtherConfig + - - the length of the returned array + + the length of the returned array - - + + - the #NMSettingOvsOtherConfig instance - + the #NMSettingOvsOtherConfig instance + - the key to set + the key to set - - the value to set or %NULL to clear a key. + + the value to set or %NULL to clear a key. - - A dictionary of key/value pairs with other_config settings for OVS. + + A dictionary of key/value pairs with other_config settings for OVS. See also "other_config" in the "ovs-vswitchd.conf.db" manual for the keys that OVS supports. @@ -54749,452 +32588,253 @@ that OVS supports. - - + + - - OvsPatch Link Settings - - - Creates a new #NMSettingOvsPatch object with default values. - + + OvsPatch Link Settings + + + Creates a new #NMSettingOvsPatch object with default values. + - the new empty #NMSettingOvsPatch object + the new empty #NMSettingOvsPatch object - - - - the #NMSettingOvsPatch:peer property of the setting + + + + the #NMSettingOvsPatch:peer property of the setting - the #NMSettingOvsPatch + the #NMSettingOvsPatch - - Specifies the name of the interface for the other side of the patch. + + Specifies the name of the interface for the other side of the patch. The patch on the other side must also set this interface as peer. - - + + - - OvsPort Link Settings - - - Creates a new #NMSettingOvsPort object with default values. - + + OvsPort Link Settings + + + Creates a new #NMSettingOvsPort object with default values. + - the new empty #NMSettingOvsPort object + the new empty #NMSettingOvsPort object - - Appends a new trunk range to the setting. + + Appends a new trunk range to the setting. This takes a reference to @trunk. - + - the #NMSettingOvsPort + the #NMSettingOvsPort - the trunk to add + the trunk to add - - Removes all configured trunk ranges. - + + Removes all configured trunk ranges. + - the #NMSettingOvsPort + the #NMSettingOvsPort - - + + - the #NMSettingOvsPort:bond-downdelay property of the setting + the #NMSettingOvsPort:bond-downdelay property of the setting - the #NMSettingOvsPort + the #NMSettingOvsPort - - + + - the #NMSettingOvsPort:bond-mode property of the setting + the #NMSettingOvsPort:bond-mode property of the setting - the #NMSettingOvsPort + the #NMSettingOvsPort - - + + - the #NMSettingOvsPort:bond-updelay property of the setting + the #NMSettingOvsPort:bond-updelay property of the setting - the #NMSettingOvsPort + the #NMSettingOvsPort - - + + - the #NMSettingOvsPort:lacp property of the setting + the #NMSettingOvsPort:lacp property of the setting - the #NMSettingOvsPort + the #NMSettingOvsPort - - + + - the number of trunk ranges + the number of trunk ranges - the #NMSettingOvsPort + the #NMSettingOvsPort - - + + - the #NMSettingOvsPort:tag property of the setting + the #NMSettingOvsPort:tag property of the setting - the #NMSettingOvsPort + the #NMSettingOvsPort - - + + - the trunk range at index @idx + the trunk range at index @idx - the #NMSettingOvsPort + the #NMSettingOvsPort - index number of the trunk range to return + index number of the trunk range to return - - + + - the #NMSettingOvsPort:vlan-mode property of the setting + the #NMSettingOvsPort:vlan-mode property of the setting - the #NMSettingOvsPort + the #NMSettingOvsPort - - Removes the trunk range at index @idx. - + + Removes the trunk range at index @idx. + - the #NMSettingOvsPort + the #NMSettingOvsPort - index number of the trunk range. + index number of the trunk range. - - Remove the trunk range with range @start to @end. - + + Remove the trunk range with range @start to @end. + - %TRUE if the trunk range was found and removed; %FALSE otherwise + %TRUE if the trunk range was found and removed; %FALSE otherwise - the #NMSettingOvsPort + the #NMSettingOvsPort - the trunk range start index + the trunk range start index - the trunk range end index + the trunk range end index - - The time port must be inactive in order to be considered down. + + The time port must be inactive in order to be considered down. - - Bonding mode. One of "active-backup", "balance-slb", or "balance-tcp". + + Bonding mode. One of "active-backup", "balance-slb", or "balance-tcp". - - The time port must be active before it starts forwarding traffic. + + The time port must be active before it starts forwarding traffic. - - LACP mode. One of "active", "off", or "passive". + + LACP mode. One of "active", "off", or "passive". - - The VLAN tag in the range 0-4095. + + The VLAN tag in the range 0-4095. - - A list of VLAN ranges that this port trunks. + + A list of VLAN ranges that this port trunks. The property is valid only for ports with mode "trunk", "native-tagged", or "native-untagged port". @@ -55203,1586 +32843,877 @@ If it is empty, the port trunks all VLANs. - - The VLAN mode. One of "access", "native-tagged", "native-untagged", + + The VLAN mode. One of "access", "native-tagged", "native-untagged", "trunk", "dot1q-tunnel" or unset. - - + + - - Point-to-Point Protocol Settings - + + Point-to-Point Protocol Settings + - Creates a new #NMSettingPpp object with default values. - + Creates a new #NMSettingPpp object with default values. + - the new empty #NMSettingPpp object + the new empty #NMSettingPpp object - - - - the #NMSettingPpp:baud property of the setting + + + + the #NMSettingPpp:baud property of the setting - the #NMSettingPpp + the #NMSettingPpp - - + + - the #NMSettingPpp:crtscts property of the setting + the #NMSettingPpp:crtscts property of the setting - the #NMSettingPpp + the #NMSettingPpp - - + + - the #NMSettingPpp:lcp-echo-failure property of the setting + the #NMSettingPpp:lcp-echo-failure property of the setting - the #NMSettingPpp + the #NMSettingPpp - - + + - the #NMSettingPpp:lcp-echo-interval property of the setting + the #NMSettingPpp:lcp-echo-interval property of the setting - the #NMSettingPpp + the #NMSettingPpp - - + + - the #NMSettingPpp:mppe-stateful property of the setting + the #NMSettingPpp:mppe-stateful property of the setting - the #NMSettingPpp + the #NMSettingPpp - - + + - the #NMSettingPpp:mru property of the setting + the #NMSettingPpp:mru property of the setting - the #NMSettingPpp + the #NMSettingPpp - - + + - the #NMSettingPpp:mtu property of the setting + the #NMSettingPpp:mtu property of the setting - the #NMSettingPpp + the #NMSettingPpp - - + + - the #NMSettingPpp:no-vj-comp property of the setting + the #NMSettingPpp:no-vj-comp property of the setting - the #NMSettingPpp + the #NMSettingPpp - - + + - the #NMSettingPpp:noauth property of the setting + the #NMSettingPpp:noauth property of the setting - the #NMSettingPpp + the #NMSettingPpp - - + + - the #NMSettingPpp:nobsdcomp property of the setting + the #NMSettingPpp:nobsdcomp property of the setting - the #NMSettingPpp + the #NMSettingPpp - - + + - the #NMSettingPpp:nodeflate property of the setting + the #NMSettingPpp:nodeflate property of the setting - the #NMSettingPpp + the #NMSettingPpp - - + + - the #NMSettingPpp:refuse-chap property of the setting + the #NMSettingPpp:refuse-chap property of the setting - the #NMSettingPpp + the #NMSettingPpp - - + + - the #NMSettingPpp:refuse-eap property of the setting + the #NMSettingPpp:refuse-eap property of the setting - the #NMSettingPpp + the #NMSettingPpp - - + + - the #NMSettingPpp:refuse-mschap property of the setting + the #NMSettingPpp:refuse-mschap property of the setting - the #NMSettingPpp + the #NMSettingPpp - - + + - the #NMSettingPpp:refuse-mschapv2 property of the setting + the #NMSettingPpp:refuse-mschapv2 property of the setting - the #NMSettingPpp + the #NMSettingPpp - - + + - the #NMSettingPpp:refuse-pap property of the setting + the #NMSettingPpp:refuse-pap property of the setting - the #NMSettingPpp + the #NMSettingPpp - - + + - the #NMSettingPpp:require-mppe property of the setting + the #NMSettingPpp:require-mppe property of the setting - the #NMSettingPpp + the #NMSettingPpp - - + + - the #NMSettingPpp:require-mppe-128 property of the setting + the #NMSettingPpp:require-mppe-128 property of the setting - the #NMSettingPpp + the #NMSettingPpp - - If non-zero, instruct pppd to set the serial port to the specified + + If non-zero, instruct pppd to set the serial port to the specified baudrate. This value should normally be left as 0 to automatically choose the speed. - - If %TRUE, specify that pppd should set the serial port to use hardware + + If %TRUE, specify that pppd should set the serial port to use hardware flow control with RTS and CTS signals. This value should normally be set to %FALSE. - - If non-zero, instruct pppd to presume the connection to the peer has + + If non-zero, instruct pppd to presume the connection to the peer has failed if the specified number of LCP echo-requests go unanswered by the peer. The "lcp-echo-interval" property must also be set to a non-zero value if this property is used. - - If non-zero, instruct pppd to send an LCP echo-request frame to the peer + + If non-zero, instruct pppd to send an LCP echo-request frame to the peer every n seconds (where n is the specified value). Note that some PPP peers will respond to echo requests and some will not, and it is not possible to autodetect this. - - If %TRUE, stateful MPPE is used. See pppd documentation for more + + If %TRUE, stateful MPPE is used. See pppd documentation for more information on stateful MPPE. - - If non-zero, instruct pppd to request that the peer send packets no + + If non-zero, instruct pppd to request that the peer send packets no larger than the specified size. If non-zero, the MRU should be between 128 and 16384. - - If non-zero, instruct pppd to send packets no larger than the specified + + If non-zero, instruct pppd to send packets no larger than the specified size. - - If %TRUE, Van Jacobsen TCP header compression will not be requested. + + If %TRUE, Van Jacobsen TCP header compression will not be requested. - - If %TRUE, do not require the other side (usually the PPP server) to + + If %TRUE, do not require the other side (usually the PPP server) to authenticate itself to the client. If %FALSE, require authentication from the remote side. In almost all cases, this should be %TRUE. - - If %TRUE, BSD compression will not be requested. + + If %TRUE, BSD compression will not be requested. - - If %TRUE, "deflate" compression will not be requested. + + If %TRUE, "deflate" compression will not be requested. - - If %TRUE, the CHAP authentication method will not be used. + + If %TRUE, the CHAP authentication method will not be used. - - If %TRUE, the EAP authentication method will not be used. + + If %TRUE, the EAP authentication method will not be used. - - If %TRUE, the MSCHAP authentication method will not be used. + + If %TRUE, the MSCHAP authentication method will not be used. - - If %TRUE, the MSCHAPv2 authentication method will not be used. + + If %TRUE, the MSCHAPv2 authentication method will not be used. - - If %TRUE, the PAP authentication method will not be used. + + If %TRUE, the PAP authentication method will not be used. - - If %TRUE, MPPE (Microsoft Point-to-Point Encryption) will be required for + + If %TRUE, MPPE (Microsoft Point-to-Point Encryption) will be required for the PPP session. If either 64-bit or 128-bit MPPE is not available the session will fail. Note that MPPE is not used on mobile broadband connections. - - If %TRUE, 128-bit MPPE (Microsoft Point-to-Point Encryption) will be + + If %TRUE, 128-bit MPPE (Microsoft Point-to-Point Encryption) will be required for the PPP session, and the "require-mppe" property must also be set to %TRUE. If 128-bit MPPE is not available the session will fail. - - + + - - PPP-over-Ethernet Settings - + + PPP-over-Ethernet Settings + - Creates a new #NMSettingPppoe object with default values. - + Creates a new #NMSettingPppoe object with default values. + - the new empty #NMSettingPppoe object + the new empty #NMSettingPppoe object - - - - the #NMSettingPppoe:parent property of the setting + + + + the #NMSettingPppoe:parent property of the setting - the #NMSettingPppoe + the #NMSettingPppoe - - + + - the #NMSettingPppoe:password property of the setting + the #NMSettingPppoe:password property of the setting - the #NMSettingPppoe + the #NMSettingPppoe - - + + - the #NMSettingSecretFlags pertaining to the #NMSettingPppoe:password + the #NMSettingSecretFlags pertaining to the #NMSettingPppoe:password - the #NMSettingPppoe + the #NMSettingPppoe - - + + - the #NMSettingPppoe:service property of the setting + the #NMSettingPppoe:service property of the setting - the #NMSettingPppoe + the #NMSettingPppoe - - + + - the #NMSettingPppoe:username property of the setting + the #NMSettingPppoe:username property of the setting - the #NMSettingPppoe + the #NMSettingPppoe - - If given, specifies the parent interface name on which this PPPoE + + If given, specifies the parent interface name on which this PPPoE connection should be created. If this property is not specified, the connection is activated on the interface specified in #NMSettingConnection:interface-name of #NMSettingConnection. - - Password used to authenticate with the PPPoE service. + + Password used to authenticate with the PPPoE service. - - Flags indicating how to handle the #NMSettingPppoe:password property. + + Flags indicating how to handle the #NMSettingPppoe:password property. - - If specified, instruct PPPoE to only initiate sessions with access + + If specified, instruct PPPoE to only initiate sessions with access concentrators that provide the specified service. For most providers, this should be left blank. It is only required if there are multiple access concentrators or a specific service is known to be required. - - Username used to authenticate with the PPPoE service. + + Username used to authenticate with the PPPoE service. - - + + - - WWW Proxy Settings - - - Creates a new #NMSettingProxy object. - + + WWW Proxy Settings + + + Creates a new #NMSettingProxy object. + - the new empty #NMSettingProxy object + the new empty #NMSettingProxy object - - - - %TRUE if this proxy configuration is only for browser + + + + %TRUE if this proxy configuration is only for browser clients/schemes, %FALSE otherwise. - the #NMSettingProxy + the #NMSettingProxy - - Returns the proxy configuration method. By default the value is %NM_SETTING_PROXY_METHOD_NONE. + + Returns the proxy configuration method. By default the value is %NM_SETTING_PROXY_METHOD_NONE. %NM_SETTING_PROXY_METHOD_NONE should be selected for a connection intended for direct network access. - + - the proxy configuration method + the proxy configuration method - the #NMSettingProxy + the #NMSettingProxy - - + + - the PAC script. + the PAC script. - the #NMSettingProxy + the #NMSettingProxy - - + + - the PAC URL for obtaining PAC file + the PAC URL for obtaining PAC file - the #NMSettingProxy + the #NMSettingProxy - - Whether the proxy configuration is for browser only. + + Whether the proxy configuration is for browser only. - - Method for proxy configuration, Default is %NM_SETTING_PROXY_METHOD_NONE + + Method for proxy configuration, Default is %NM_SETTING_PROXY_METHOD_NONE - - PAC script for the connection. This is an UTF-8 encoded javascript code + + PAC script for the connection. This is an UTF-8 encoded javascript code that defines a FindProxyForURL() function. - - PAC URL for obtaining PAC file. + + PAC URL for obtaining PAC file. - - + + - - The Proxy method. - - No Proxy for the Connection - - - DHCP obtained Proxy/ Manual override + + The Proxy method. + + No Proxy for the Connection + + + DHCP obtained Proxy/ Manual override - - These flags indicate specific behavior related to handling of a secret. Each + + These flags indicate specific behavior related to handling of a secret. Each secret has a corresponding set of these flags which indicate how the secret is to be stored and/or requested when it is needed. - - the system is responsible for providing and + + the system is responsible for providing and storing this secret (default) - - a user secret agent is responsible + + a user secret agent is responsible for providing and storing this secret; when it is required agents will be asked to retrieve it - - this secret should not be saved, but + + this secret should not be saved, but should be requested from the user each time it is needed - - in situations where it cannot be + + in situations where it cannot be automatically determined that the secret is required (some VPNs and PPP providers don't require all secrets) this flag indicates that the specific secret is not required - - Serial Link Settings - + + Serial Link Settings + - Creates a new #NMSettingSerial object with default values. - + Creates a new #NMSettingSerial object with default values. + - the new empty #NMSettingSerial object + the new empty #NMSettingSerial object - - - - the #NMSettingSerial:baud property of the setting + + + + the #NMSettingSerial:baud property of the setting - the #NMSettingSerial + the #NMSettingSerial - - + + - the #NMSettingSerial:bits property of the setting + the #NMSettingSerial:bits property of the setting - the #NMSettingSerial + the #NMSettingSerial - - + + - the #NMSettingSerial:parity property of the setting + the #NMSettingSerial:parity property of the setting - the #NMSettingSerial + the #NMSettingSerial - - + + - the #NMSettingSerial:send-delay property of the setting + the #NMSettingSerial:send-delay property of the setting - the #NMSettingSerial + the #NMSettingSerial - - + + - the #NMSettingSerial:stopbits property of the setting + the #NMSettingSerial:stopbits property of the setting - the #NMSettingSerial + the #NMSettingSerial - - Speed to use for communication over the serial port. Note that this + + Speed to use for communication over the serial port. Note that this value usually has no effect for mobile broadband modems as they generally ignore speed settings and use the highest available speed. - - Byte-width of the serial communication. The 8 in "8n1" for example. + + Byte-width of the serial communication. The 8 in "8n1" for example. - - Parity setting of the serial port. + + Parity setting of the serial port. - - Time to delay between each byte sent to the modem, in microseconds. + + Time to delay between each byte sent to the modem, in microseconds. - - Number of stop bits for communication on the serial port. Either 1 or 2. + + Number of stop bits for communication on the serial port. Either 1 or 2. The 1 in "8n1" for example. - - + + - - The parity setting of a serial port. - - No parity bits (default) - - - Even parity - - - Odd parity + + The parity setting of a serial port. + + No parity bits (default) + + + Even parity + + + Odd parity - - SR-IOV settings - - - Creates a new #NMSettingSriov object with default values. - + + SR-IOV settings + + + Creates a new #NMSettingSriov object with default values. + - the new empty #NMSettingSriov object + the new empty #NMSettingSriov object - - Appends a new VF and associated information to the setting. The + + Appends a new VF and associated information to the setting. The given VF is duplicated internally and is not changed by this function. - + - the #NMSettingSriov + the #NMSettingSriov - the VF to add + the VF to add - - Removes all configured VFs. - + + Removes all configured VFs. + - the #NMSettingSriov + the #NMSettingSriov - - Returns the value contained in the #NMSettingSriov:autoprobe-drivers + + Returns the value contained in the #NMSettingSriov:autoprobe-drivers property. - + - the autoprobe-drivers property value + the autoprobe-drivers property value - the #NMSettingSriov + the #NMSettingSriov - - + + - the value contained in the #NMSettingSriov:eswitch-encap-mode property. + the value contained in the #NMSettingSriov:eswitch-encap-mode property. - the #NMSettingSriov + the #NMSettingSriov - - + + - the value contained in the #NMSettingSriov:eswitch-inline-mode property. - + the value contained in the #NMSettingSriov:eswitch-inline-mode property. + - the #NMSettingSriov + the #NMSettingSriov - - + + - the value contained in the #NMSettingSriov:eswitch-mode property. + the value contained in the #NMSettingSriov:eswitch-mode property. - the #NMSettingSriov + the #NMSettingSriov - - + + - the number of configured VFs + the number of configured VFs - the #NMSettingSriov + the #NMSettingSriov - - Returns the value contained in the #NMSettingSriov:total-vfs + + Returns the value contained in the #NMSettingSriov:total-vfs property. - + - the total number of SR-IOV virtual functions to create + the total number of SR-IOV virtual functions to create - the #NMSettingSriov + the #NMSettingSriov - - + + - the VF at index @idx + the VF at index @idx - the #NMSettingSriov + the #NMSettingSriov - index number of the VF to return + index number of the VF to return - - Removes the VF at index @idx. - + + Removes the VF at index @idx. + - the #NMSettingSriov + the #NMSettingSriov - index number of the VF + index number of the VF - - Removes the VF with VF index @index. - + + Removes the VF with VF index @index. + - %TRUE if the VF was found and removed; %FALSE if it was not + %TRUE if the VF was found and removed; %FALSE if it was not - the #NMSettingSriov + the #NMSettingSriov - the VF index of the VF to remove + the VF index of the VF to remove - - Whether to autoprobe virtual functions by a compatible driver. + + Whether to autoprobe virtual functions by a compatible driver. If set to %NM_TERNARY_TRUE, the kernel will try to bind VFs to a compatible driver and if this succeeds a new network @@ -56796,15 +33727,8 @@ case the global default is unspecified it is assumed to be %NM_TERNARY_TRUE. - - Select the eswitch encapsulation support. + + Select the eswitch encapsulation support. Currently it's only supported for PCI PF devices, and only if the eswitch device is managed from the same PCI address than the PF. @@ -56813,15 +33737,8 @@ If set to %NM_SRIOV_ESWITCH_ENCAP_MODE_PRESERVE (default) the eswitch encap-mode won't be modified by NetworkManager. - - Select the eswitch inline-mode of the device. Some HWs need the VF driver to put + + Select the eswitch inline-mode of the device. Some HWs need the VF driver to put part of the packet headers on the TX descriptor so the e-switch can do proper matching and steering. @@ -56832,15 +33749,8 @@ If set to %NM_SRIOV_ESWITCH_INLINE_MODE_PRESERVE (default) the eswitch inline-mo won't be modified by NetworkManager. - - Select the eswitch mode of the device. Currently it's only supported for + + Select the eswitch mode of the device. Currently it's only supported for PCI PF devices, and only if the eswitch device is managed from the same PCI address than the PF. @@ -56848,15 +33758,8 @@ If set to %NM_SRIOV_ESWITCH_MODE_PRESERVE (default) the eswitch mode won't be modified by NetworkManager. - - The total number of virtual functions to create. + + The total number of virtual functions to create. Note that when the sriov setting is present NetworkManager enforces the number of virtual functions on the interface @@ -56865,13 +33768,8 @@ upon deactivation. To prevent any changes to SR-IOV parameters don't add a sriov setting to the connection. - - Array of virtual function descriptors. + + Array of virtual function descriptors. Each VF descriptor is a dictionary mapping attribute names to GVariant values. The 'index' entry is mandatory for @@ -56901,352 +33799,220 @@ PROTO can be either 'q' for 802.1Q (the default) or 'ad' for - - + + - - Linux Traffic Control Settings - - - Creates a new #NMSettingTCConfig object with default values. - + + Linux Traffic Control Settings + + + Creates a new #NMSettingTCConfig object with default values. + - the new empty #NMSettingTCConfig object + the new empty #NMSettingTCConfig object - - Appends a new qdisc and associated information to the setting. The + + Appends a new qdisc and associated information to the setting. The given qdisc is duplicated internally and is not changed by this function. If an identical qdisc (considering attributes as well) already exists, the qdisc is not added and the function returns %FALSE. - + - %TRUE if the qdisc was added; %FALSE if the qdisc was already known. + %TRUE if the qdisc was added; %FALSE if the qdisc was already known. - the #NMSettingTCConfig + the #NMSettingTCConfig - the qdisc to add + the qdisc to add - - Appends a new tfilter and associated information to the setting. The + + Appends a new tfilter and associated information to the setting. The given tfilter is duplicated internally and is not changed by this function. If an identical tfilter (considering attributes as well) already exists, the tfilter is not added and the function returns %FALSE. - + - %TRUE if the tfilter was added; %FALSE if the tfilter was already known. + %TRUE if the tfilter was added; %FALSE if the tfilter was already known. - the #NMSettingTCConfig + the #NMSettingTCConfig - the tfilter to add + the tfilter to add - - Removes all configured queueing disciplines. - + + Removes all configured queueing disciplines. + - the #NMSettingTCConfig + the #NMSettingTCConfig - - Removes all configured queueing disciplines. - + + Removes all configured queueing disciplines. + - the #NMSettingTCConfig + the #NMSettingTCConfig - - + + - the number of configured queueing disciplines + the number of configured queueing disciplines - the #NMSettingTCConfig + the #NMSettingTCConfig - - + + - the number of configured queueing disciplines + the number of configured queueing disciplines - the #NMSettingTCConfig + the #NMSettingTCConfig - - + + - the qdisc at index @idx + the qdisc at index @idx - the #NMSettingTCConfig + the #NMSettingTCConfig - index number of the qdisc to return + index number of the qdisc to return - - + + - the tfilter at index @idx + the tfilter at index @idx - the #NMSettingTCConfig + the #NMSettingTCConfig - index number of the tfilter to return + index number of the tfilter to return - - Removes the qdisc at index @idx. - + + Removes the qdisc at index @idx. + - the #NMSettingTCConfig + the #NMSettingTCConfig - index number of the qdisc + index number of the qdisc - - Removes the first matching qdisc that matches @qdisc. - + + Removes the first matching qdisc that matches @qdisc. + - %TRUE if the qdisc was found and removed; %FALSE if it was not. + %TRUE if the qdisc was found and removed; %FALSE if it was not. - the #NMSettingTCConfig + the #NMSettingTCConfig - the qdisc to remove + the qdisc to remove - - Removes the tfilter at index @idx. - + + Removes the tfilter at index @idx. + - the #NMSettingTCConfig + the #NMSettingTCConfig - index number of the tfilter + index number of the tfilter - - Removes the first matching tfilter that matches @tfilter. - + + Removes the first matching tfilter that matches @tfilter. + - %TRUE if the tfilter was found and removed; %FALSE if it was not. + %TRUE if the tfilter was found and removed; %FALSE if it was not. - the #NMSettingTCConfig + the #NMSettingTCConfig - the tfilter to remove + the tfilter to remove - Array of TC queueing disciplines. + Array of TC queueing disciplines. When the #NMSettingTCConfig setting is present, qdiscs from this property are applied upon activation. If the property is empty, @@ -57261,9 +34027,7 @@ doesn't touch the qdiscs present on the interface. - Array of TC traffic filters. + Array of TC traffic filters. When the #NMSettingTCConfig setting is present, filters from this property are applied upon activation. If the property is empty, @@ -57276,635 +34040,392 @@ doesn't touch the filters present on the interface. - - + + - - Teaming Settings - + + Teaming Settings + - Creates a new #NMSettingTeam object with default values. - + Creates a new #NMSettingTeam object with default values. + - the new empty #NMSettingTeam object + the new empty #NMSettingTeam object - - Appends a new link watcher to the setting. - - - %TRUE if the link watcher is added; %FALSE if an identical link + + Appends a new link watcher to the setting. + + + %TRUE if the link watcher is added; %FALSE if an identical link watcher was already there. - the #NMSettingTeam + the #NMSettingTeam - the link watcher to add + the link watcher to add - - Adds a new txhash element to the setting. - + + Adds a new txhash element to the setting. + - %TRUE if the txhash element was added; %FALSE if the element + %TRUE if the txhash element was added; %FALSE if the element was already knnown. - the #NMSettingTeam + the #NMSettingTeam - the element to add to txhash + the element to add to txhash - - Removes all configured link watchers. - + + Removes all configured link watchers. + - the #NMSettingTeam + the #NMSettingTeam - - + + - the #NMSettingTeam:config property of the setting + the #NMSettingTeam:config property of the setting - the #NMSettingTeam + the #NMSettingTeam - - + + - the link watcher at index @idx. + the link watcher at index @idx. - the #NMSettingTeam + the #NMSettingTeam - index number of the link watcher to return + index number of the link watcher to return - - + + - the ##NMSettingTeam:mcast-rejoin-count property of the setting + the ##NMSettingTeam:mcast-rejoin-count property of the setting - the #NMSettingTeam + the #NMSettingTeam - - + + - the ##NMSettingTeam:mcast-rejoin-interval property of the setting + the ##NMSettingTeam:mcast-rejoin-interval property of the setting - the #NMSettingTeam + the #NMSettingTeam - - + + - the ##NMSettingTeam:notify-peers-count property of the setting + the ##NMSettingTeam:notify-peers-count property of the setting - the #NMSettingTeam + the #NMSettingTeam - - + + - the ##NMSettingTeam:notify-peers-interval property of the setting + the ##NMSettingTeam:notify-peers-interval property of the setting - the #NMSettingTeam + the #NMSettingTeam - - + + - the number of configured link watchers + the number of configured link watchers - the #NMSettingTeam + the #NMSettingTeam - - + + - the number of elements in txhash + the number of elements in txhash - the #NMSettingTeam + the #NMSettingTeam - - + + - the ##NMSettingTeam:runner property of the setting + the ##NMSettingTeam:runner property of the setting - the #NMSettingTeam + the #NMSettingTeam - - + + - the ##NMSettingTeam:runner_active property of the setting + the ##NMSettingTeam:runner_active property of the setting - the #NMSettingTeam + the #NMSettingTeam - - + + - the ##NMSettingTeam:runner-agg-select-policy property of the setting + the ##NMSettingTeam:runner-agg-select-policy property of the setting - the #NMSettingTeam + the #NMSettingTeam - - + + - the ##NMSettingTeam:runner-fast-rate property of the setting + the ##NMSettingTeam:runner-fast-rate property of the setting - the #NMSettingTeam + the #NMSettingTeam - - + + - the ##NMSettingTeam:runner-hwaddr-policy property of the setting + the ##NMSettingTeam:runner-hwaddr-policy property of the setting - the #NMSettingTeam + the #NMSettingTeam - - + + - the ##NMSettingTeam:runner-min-ports property of the setting + the ##NMSettingTeam:runner-min-ports property of the setting - the #NMSettingTeam + the #NMSettingTeam - - + + - the ##NMSettingTeam:runner-sys-prio property of the setting + the ##NMSettingTeam:runner-sys-prio property of the setting - the #NMSettingTeam + the #NMSettingTeam - - + + - the ##NMSettingTeam:runner-tx-balancer property of the setting + the ##NMSettingTeam:runner-tx-balancer property of the setting - the #NMSettingTeam + the #NMSettingTeam - - + + - the ##NMSettingTeam:runner-tx-balancer_interval property of the setting + the ##NMSettingTeam:runner-tx-balancer_interval property of the setting - the #NMSettingTeam + the #NMSettingTeam - - + + - the txhash element at index @idx + the txhash element at index @idx - the #NMSettingTeam + the #NMSettingTeam - index number of the txhash element to return + index number of the txhash element to return - - Removes the link watcher at index #idx. - + + Removes the link watcher at index #idx. + - the #NMSettingTeam + the #NMSettingTeam - index number of the link watcher to remove + index number of the link watcher to remove - - Removes the link watcher entry matching link_watcher. - + + Removes the link watcher entry matching link_watcher. + - %TRUE if the link watcher was found and removed, %FALSE otherwise. + %TRUE if the link watcher was found and removed, %FALSE otherwise. - the #NMSettingTeam + the #NMSettingTeam - the link watcher to remove + the link watcher to remove - - Removes the txhash element at index @idx. - + + Removes the txhash element at index @idx. + - the #NMSettingTeam + the #NMSettingTeam - index number of the element to remove from txhash + index number of the element to remove from txhash - - Removes the txhash element #txhash - + + Removes the txhash element #txhash + - %TRUE if the txhash element was found and removed; %FALSE if it was not. + %TRUE if the txhash element was found and removed; %FALSE if it was not. - the #NMSetetingTeam + the #NMSetetingTeam - the txhash element to remove + the txhash element to remove - - The JSON configuration for the team network interface. The property + + The JSON configuration for the team network interface. The property should contain raw JSON configuration data suitable for teamd, because the value is passed directly to teamd. If not specified, the default configuration is used. See man teamd.conf for the format details. - - Link watchers configuration for the connection: each link watcher is + + Link watchers configuration for the connection: each link watcher is defined by a dictionary, whose keys depend upon the selected link watcher. Available link watchers are 'ethtool', 'nsna_ping' and 'arp_ping' and it is specified in the dictionary with the key 'name'. @@ -57916,515 +34437,273 @@ arp_ping: all the ones in nsna_ping and 'source-host', 'validate-active', - - Corresponds to the teamd mcast_rejoin.count. + + Corresponds to the teamd mcast_rejoin.count. - - Corresponds to the teamd mcast_rejoin.interval. + + Corresponds to the teamd mcast_rejoin.interval. - - Corresponds to the teamd notify_peers.count. + + Corresponds to the teamd notify_peers.count. - - Corresponds to the teamd notify_peers.interval. + + Corresponds to the teamd notify_peers.interval. - - Corresponds to the teamd runner.name. + + Corresponds to the teamd runner.name. Permitted values are: "roundrobin", "broadcast", "activebackup", "loadbalance", "lacp", "random". - - Corresponds to the teamd runner.active. + + Corresponds to the teamd runner.active. - - Corresponds to the teamd runner.agg_select_policy. + + Corresponds to the teamd runner.agg_select_policy. - - Corresponds to the teamd runner.fast_rate. + + Corresponds to the teamd runner.fast_rate. - - Corresponds to the teamd runner.hwaddr_policy. + + Corresponds to the teamd runner.hwaddr_policy. - - Corresponds to the teamd runner.min_ports. + + Corresponds to the teamd runner.min_ports. - - Corresponds to the teamd runner.sys_prio. + + Corresponds to the teamd runner.sys_prio. - - Corresponds to the teamd runner.tx_balancer.name. + + Corresponds to the teamd runner.tx_balancer.name. - - Corresponds to the teamd runner.tx_balancer.interval. + + Corresponds to the teamd runner.tx_balancer.interval. - - Corresponds to the teamd runner.tx_hash. + + Corresponds to the teamd runner.tx_hash. - - + + - - Team Port Settings - + + Team Port Settings + - Creates a new #NMSettingTeamPort object with default values. - + Creates a new #NMSettingTeamPort object with default values. + - the new empty #NMSettingTeamPort object + the new empty #NMSettingTeamPort object - - Appends a new link watcher to the setting. - - - %TRUE if the link watcher is added; %FALSE if an identical link + + Appends a new link watcher to the setting. + + + %TRUE if the link watcher is added; %FALSE if an identical link watcher was already there. - the #NMSettingTeamPort + the #NMSettingTeamPort - the link watcher to add + the link watcher to add - - Removes all configured link watchers. - + + Removes all configured link watchers. + - the #NMSettingTeamPort + the #NMSettingTeamPort - - + + - the #NMSettingTeamPort:config property of the setting + the #NMSettingTeamPort:config property of the setting - the #NMSettingTeamPort + the #NMSettingTeamPort - - + + - the #NMSettingTeamPort:lacp-key property of the setting + the #NMSettingTeamPort:lacp-key property of the setting - the #NMSettingTeamPort + the #NMSettingTeamPort - - + + - the #NMSettingTeamPort:lacp-prio property of the setting + the #NMSettingTeamPort:lacp-prio property of the setting - the #NMSettingTeamPort + the #NMSettingTeamPort - - + + - the link watcher at index @idx. + the link watcher at index @idx. - the #NMSettingTeamPort + the #NMSettingTeamPort - index number of the link watcher to return + index number of the link watcher to return - - + + - the number of configured link watchers + the number of configured link watchers - the #NMSettingTeamPort + the #NMSettingTeamPort - - + + - the #NMSettingTeamPort:prio property of the setting + the #NMSettingTeamPort:prio property of the setting - the #NMSettingTeamPort + the #NMSettingTeamPort - - + + - the #NMSettingTeamPort:queue_id property of the setting + the #NMSettingTeamPort:queue_id property of the setting - the #NMSettingTeamPort + the #NMSettingTeamPort - - + + - the #NMSettingTeamPort:sticky property of the setting + the #NMSettingTeamPort:sticky property of the setting - the #NMSettingTeamPort + the #NMSettingTeamPort - - Removes the link watcher at index #idx. - + + Removes the link watcher at index #idx. + - the #NMSettingTeamPort + the #NMSettingTeamPort - index number of the link watcher to remove + index number of the link watcher to remove - - Removes the link watcher entry matching link_watcher. - + + Removes the link watcher entry matching link_watcher. + - %TRUE if the link watcher was found and removed, %FALSE otherwise. + %TRUE if the link watcher was found and removed, %FALSE otherwise. - the #NMSettingTeamPort + the #NMSettingTeamPort - the link watcher to remove + the link watcher to remove - - The JSON configuration for the team port. The property should contain raw + + The JSON configuration for the team port. The property should contain raw JSON configuration data suitable for teamd, because the value is passed directly to teamd. If not specified, the default configuration is used. See man teamd.conf for the format details. - - Corresponds to the teamd ports.PORTIFNAME.lacp_key. + + Corresponds to the teamd ports.PORTIFNAME.lacp_key. - - Corresponds to the teamd ports.PORTIFNAME.lacp_prio. + + Corresponds to the teamd ports.PORTIFNAME.lacp_prio. - - Link watchers configuration for the connection: each link watcher is + + Link watchers configuration for the connection: each link watcher is defined by a dictionary, whose keys depend upon the selected link watcher. Available link watchers are 'ethtool', 'nsna_ping' and 'arp_ping' and it is specified in the dictionary with the key 'name'. @@ -58436,437 +34715,228 @@ arp_ping: all the ones in nsna_ping and 'source-host', 'validate-active', - - Corresponds to the teamd ports.PORTIFNAME.prio. + + Corresponds to the teamd ports.PORTIFNAME.prio. - - Corresponds to the teamd ports.PORTIFNAME.queue_id. + + Corresponds to the teamd ports.PORTIFNAME.queue_id. When set to -1 means the parameter is skipped from the json config. - - Corresponds to the teamd ports.PORTIFNAME.sticky. + + Corresponds to the teamd ports.PORTIFNAME.sticky. - - + + - - Tunnel Settings - + + Tunnel Settings + - Creates a new #NMSettingTun object with default values. - + Creates a new #NMSettingTun object with default values. + - the new empty #NMSettingTun object + the new empty #NMSettingTun object - - - - the #NMSettingTun:group property of the setting + + + + the #NMSettingTun:group property of the setting - the #NMSettingTun + the #NMSettingTun - - + + - the #NMSettingTun:mode property of the setting + the #NMSettingTun:mode property of the setting - the #NMSettingTun + the #NMSettingTun - - + + - the #NMSettingTun:multi-queue property of the setting + the #NMSettingTun:multi-queue property of the setting - the #NMSettingTun + the #NMSettingTun - - + + - the #NMSettingTun:owner property of the setting + the #NMSettingTun:owner property of the setting - the #NMSettingTun + the #NMSettingTun - - + + - the #NMSettingTun:pi property of the setting + the #NMSettingTun:pi property of the setting - the #NMSettingTun + the #NMSettingTun - - + + - the #NMSettingTun:vnet_hdr property of the setting + the #NMSettingTun:vnet_hdr property of the setting - the #NMSettingTun + the #NMSettingTun - - The group ID which will own the device. If set to %NULL everyone + + The group ID which will own the device. If set to %NULL everyone will be able to use the device. - - The operating mode of the virtual device. Allowed values are + + The operating mode of the virtual device. Allowed values are %NM_SETTING_TUN_MODE_TUN to create a layer 3 device and %NM_SETTING_TUN_MODE_TAP to create an Ethernet-like layer 2 one. - - If the property is set to %TRUE, the interface will support + + If the property is set to %TRUE, the interface will support multiple file descriptors (queues) to parallelize packet sending or receiving. Otherwise, the interface will only support a single queue. - - The user ID which will own the device. If set to %NULL everyone + + The user ID which will own the device. If set to %NULL everyone will be able to use the device. - - If %TRUE the interface will prepend a 4 byte header describing the + + If %TRUE the interface will prepend a 4 byte header describing the physical interface to the packets. - - If %TRUE the IFF_VNET_HDR the tunnel packets will include a virtio + + If %TRUE the IFF_VNET_HDR the tunnel packets will include a virtio network header. - - + + - - #NMSettingTunMode values indicate the device type (TUN/TAP) - - an unknown device type - - - a TUN device - - - a TAP device + + #NMSettingTunMode values indicate the device type (TUN/TAP) + + an unknown device type + + + a TUN device + + + a TAP device - - General User Profile Settings - + + General User Profile Settings + - Creates a new #NMSettingUser object with default values. - + Creates a new #NMSettingUser object with default values. + - the new empty #NMSettingUser object + the new empty #NMSettingUser object - - Checks whether @key is a valid user data key. This means, + + Checks whether @key is a valid user data key. This means, key is not %NULL, not too large and valid ASCII. Also, only digits and numbers are allowed with a few special characters. The key must contain at least one '.' and look like a fully qualified DNS name. - + - %TRUE if @key is a valid user data key. + %TRUE if @key is a valid user data key. - the key to check + the key to check - - Checks whether @val is a valid user data value. This means, + + Checks whether @val is a valid user data value. This means, value is not %NULL, not too large and valid UTF-8. - + - %TRUE if @val is a valid user data value. + %TRUE if @val is a valid user data value. - the value to check + the value to check - - - - the value associated with @key or %NULL if no such + + + + the value associated with @key or %NULL if no such value exists. - the #NMSettingUser instance + the #NMSettingUser instance - the key to lookup + the key to lookup - - + + - a + a %NULL-terminated array containing each key from the table. @@ -58874,70 +34944,40 @@ value is not %NULL, not too large and valid UTF-8. - the #NMSettingUser + the #NMSettingUser - - the length of the returned array + + the length of the returned array - - + + - %TRUE if the operation was successful. The operation + %TRUE if the operation was successful. The operation can fail if @key or @val are not valid strings according to nm_setting_user_check_key() and nm_setting_user_check_val(). - the #NMSettingUser instance + the #NMSettingUser instance - the key to set + the key to set - - the value to set or %NULL to clear a key. + + the value to set or %NULL to clear a key. - - A dictionary of key/value pairs with user data. This data is ignored by NetworkManager + + A dictionary of key/value pairs with user data. This data is ignored by NetworkManager and can be used at the users discretion. The keys only support a strict ascii format, but the values can be arbitrary UTF8 strings up to a certain length. @@ -58946,13 +34986,8 @@ but the values can be arbitrary UTF8 strings up to a certain length. - - + + @@ -58961,140 +34996,74 @@ but the values can be arbitrary UTF8 strings up to a certain length. - The setting for which properties are being iterated, given to + The setting for which properties are being iterated, given to nm_setting_enumerate_values() - The value/property name + The value/property name - The property's value + The property's value - The property's flags, like %NM_SETTING_PARAM_SECRET + The property's flags, like %NM_SETTING_PARAM_SECRET - - User data passed to nm_setting_enumerate_values() + + User data passed to nm_setting_enumerate_values() - - Veth Settings - - - Creates a new #NMSettingVeth object with default values. - + + Veth Settings + + + Creates a new #NMSettingVeth object with default values. + - the new empty #NMSettingVeth object + the new empty #NMSettingVeth object - - - - the #NMSettingVeth:peer property of the setting + + + + the #NMSettingVeth:peer property of the setting - the #NMSettingVeth + the #NMSettingVeth - - This property specifies the peer interface name of the veth. This + + This property specifies the peer interface name of the veth. This property is mandatory. - - + + - - VLAN Settings - + + VLAN Settings + - Creates a new #NMSettingVlan object with default values. - + Creates a new #NMSettingVlan object with default values. + - the new empty #NMSettingVlan object + the new empty #NMSettingVlan object - Adds a priority mapping to the #NMSettingVlan:ingress_priority_map or + Adds a priority mapping to the #NMSettingVlan:ingress_priority_map or #NMSettingVlan:egress_priority_map properties of the setting. If @from is already in the given priority map, this function will overwrite the existing entry with the new @to. @@ -59104,402 +35073,261 @@ Priority Code Point (PCP) value, and @to is the Linux SKB priority value. If @map is #NM_VLAN_EGRESS_MAP then @from is the Linux SKB priority value and @to is the outgoing 802.1q VLAN Priority Code Point (PCP) value. - + - %TRUE. + %TRUE. - the #NMSettingVlan + the #NMSettingVlan - the type of priority map + the type of priority map - the priority to map to @to + the priority to map to @to - the priority to map @from to + the priority to map @from to - - Adds a priority map entry into either the #NMSettingVlan:ingress_priority_map + + Adds a priority map entry into either the #NMSettingVlan:ingress_priority_map or the #NMSettingVlan:egress_priority_map properties. The priority map maps the Linux SKB priorities to 802.1p priorities. - + - %TRUE if the entry was successfully added to the list, or it + %TRUE if the entry was successfully added to the list, or it overwrote the old value, %FALSE if @str is not a valid mapping. - the #NMSettingVlan + the #NMSettingVlan - the type of priority map + the type of priority map - the string which contains a priority map, like "3:7" + the string which contains a priority map, like "3:7" - - Clear all the entries from #NMSettingVlan:ingress_priority_map or + + Clear all the entries from #NMSettingVlan:ingress_priority_map or #NMSettingVlan:egress_priority_map properties. - + - the #NMSettingVlan + the #NMSettingVlan - the type of priority map + the type of priority map - - + + - the #NMSettingVlan:flags property of the setting + the #NMSettingVlan:flags property of the setting - the #NMSettingVlan + the #NMSettingVlan - - + + - the #NMSettingVlan:id property of the setting + the #NMSettingVlan:id property of the setting - the #NMSettingVlan + the #NMSettingVlan - - Returns the number of entries in the + + Returns the number of entries in the #NMSettingVlan:ingress_priority_map or #NMSettingVlan:egress_priority_map properties of this setting. - + - return the number of ingress/egress priority entries. + return the number of ingress/egress priority entries. - the #NMSettingVlan + the #NMSettingVlan - the type of priority map + the type of priority map - - + + - the #NMSettingVlan:parent property of the setting + the #NMSettingVlan:parent property of the setting - the #NMSettingVlan + the #NMSettingVlan - Retrieve one of the entries of the #NMSettingVlan:ingress_priority_map + Retrieve one of the entries of the #NMSettingVlan:ingress_priority_map or #NMSettingVlan:egress_priority_map properties of this setting. - + - returns %TRUE if @idx is in range. Otherwise, %FALSE. + returns %TRUE if @idx is in range. Otherwise, %FALSE. - the #NMSettingVlan + the #NMSettingVlan - the type of priority map + the type of priority map - the zero-based index of the ingress/egress priority map entry + the zero-based index of the ingress/egress priority map entry - - on return the value of the priority map's 'from' item + + on return the value of the priority map's 'from' item - - on return the value of priority map's 'to' item + + on return the value of priority map's 'to' item - - + + - the #NMSettingVlan:protocol property of the setting + the #NMSettingVlan:protocol property of the setting - the #NMSettingVlan + the #NMSettingVlan - - Removes the priority map at index @idx from the + + Removes the priority map at index @idx from the #NMSettingVlan:ingress_priority_map or #NMSettingVlan:egress_priority_map properties. - + - the #NMSettingVlan + the #NMSettingVlan - the type of priority map + the type of priority map - the zero-based index of the priority map to remove + the zero-based index of the priority map to remove - - Removes the priority map @form:@to from the #NMSettingVlan:ingress_priority_map + + Removes the priority map @form:@to from the #NMSettingVlan:ingress_priority_map or #NMSettingVlan:egress_priority_map (according to @map argument) properties. - + - %TRUE if the priority mapping was found and removed; %FALSE if it was not. + %TRUE if the priority mapping was found and removed; %FALSE if it was not. - the #NMSettingVlan + the #NMSettingVlan - the type of priority map + the type of priority map - the priority to map to @to + the priority to map to @to - the priority to map @from to + the priority to map @from to - - Removes the priority map @str from the #NMSettingVlan:ingress_priority_map + + Removes the priority map @str from the #NMSettingVlan:ingress_priority_map or #NMSettingVlan:egress_priority_map (according to @map argument) properties. - + - %TRUE if the priority mapping was found and removed; %FALSE if it was not. + %TRUE if the priority mapping was found and removed; %FALSE if it was not. - the #NMSettingVlan + the #NMSettingVlan - the type of priority map + the type of priority map - the string which contains a priority map, like "3:7" + the string which contains a priority map, like "3:7" - - For outgoing packets, a list of mappings from Linux SKB priorities to + + For outgoing packets, a list of mappings from Linux SKB priorities to 802.1p priorities. The mapping is given in the format "from:to" where both "from" and "to" are unsigned integers, ie "7:3". - - One or more flags which control the behavior and features of the VLAN + + One or more flags which control the behavior and features of the VLAN interface. Flags include %NM_VLAN_FLAG_REORDER_HEADERS (reordering of output packet headers), %NM_VLAN_FLAG_GVRP (use of the GVRP protocol), and %NM_VLAN_FLAG_LOOSE_BINDING (loose binding of the interface to its @@ -59512,285 +35340,171 @@ in the D-Bus API continues to be 0 and a missing property on D-Bus is still considered as 0. - - The VLAN identifier that the interface created by this connection should + + The VLAN identifier that the interface created by this connection should be assigned. The valid range is from 0 to 4094, without the reserved id 4095. - - For incoming packets, a list of mappings from 802.1p priorities to Linux + + For incoming packets, a list of mappings from 802.1p priorities to Linux SKB priorities. The mapping is given in the format "from:to" where both "from" and "to" are unsigned integers, ie "7:3". - - If given, specifies the parent interface name or parent connection UUID + + If given, specifies the parent interface name or parent connection UUID from which this VLAN interface should be created. If this property is not specified, the connection must contain an #NMSettingWired setting with a #NMSettingWired:mac-address property. - - Specifies the VLAN protocol to use for encapsulation. + + Specifies the VLAN protocol to use for encapsulation. Supported values are: '802.1Q', '802.1ad'. If not specified the default value is '802.1Q'. - - + + - - VPN Settings - + + VPN Settings + - Creates a new #NMSettingVpn object with default values. - + Creates a new #NMSettingVpn object with default values. + - the new empty #NMSettingVpn object + the new empty #NMSettingVpn object - Establishes a relationship between @key and @item internally in the + Establishes a relationship between @key and @item internally in the setting which may be retrieved later. Should not be used to store passwords or other secrets, which is what nm_setting_vpn_add_secret() is for. Before 1.24, @item must not be %NULL and not an empty string. Since 1.24, @item can be set to an empty string. It can also be set to %NULL to unset the key. In that case, the behavior is as if calling nm_setting_vpn_remove_data_item(). - + - the #NMSettingVpn + the #NMSettingVpn - a name that uniquely identifies the given value @item + a name that uniquely identifies the given value @item - - the value to be referenced by @key + + the value to be referenced by @key - Establishes a relationship between @key and @secret internally in the + Establishes a relationship between @key and @secret internally in the setting which may be retrieved later. Before 1.24, @secret must not be %NULL and not an empty string. Since 1.24, @secret can be set to an empty string. It can also be set to %NULL to unset the key. In that case, the behavior is as if calling nm_setting_vpn_remove_secret(). - + - the #NMSettingVpn + the #NMSettingVpn - a name that uniquely identifies the given secret @secret + a name that uniquely identifies the given secret @secret - - the secret to be referenced by @key + + the secret to be referenced by @key - - Iterates all data items stored in this setting. It is safe to add, remove, + + Iterates all data items stored in this setting. It is safe to add, remove, and modify data items inside @func, though any additions or removals made during iteration will not be part of the iteration. - + - a #NMSettingVpn + a #NMSettingVpn - - an user provided function + + an user provided function - - data to be passed to @func + + data to be passed to @func - - Iterates all secrets stored in this setting. It is safe to add, remove, + + Iterates all secrets stored in this setting. It is safe to add, remove, and modify secrets inside @func, though any additions or removals made during iteration will not be part of the iteration. - + - a #NMSettingVpn + a #NMSettingVpn - - an user provided function + + an user provided function - - data to be passed to @func + + data to be passed to @func - Retrieves the data item of a key/value relationship previously established + Retrieves the data item of a key/value relationship previously established by nm_setting_vpn_add_data_item(). - + - the data item, if any + the data item, if any - the #NMSettingVpn + the #NMSettingVpn - the name of the data item to retrieve + the name of the data item to retrieve - - Retrieves every data key inside @setting, as an array. - + + Retrieves every data key inside @setting, as an array. + - a + a %NULL-terminated array containing each data key or %NULL if there are no data items. @@ -59799,129 +35513,80 @@ by nm_setting_vpn_add_data_item(). - the #NMSettingVpn + the #NMSettingVpn - - the length of the returned array + + the length of the returned array - - Gets number of key/value pairs of VPN configuration data. - + + Gets number of key/value pairs of VPN configuration data. + - the number of VPN plugin specific configuration data items + the number of VPN plugin specific configuration data items - the #NMSettingVpn + the #NMSettingVpn - - Gets number of VPN plugin specific secrets in the setting. - + + Gets number of VPN plugin specific secrets in the setting. + - the number of VPN plugin specific secrets + the number of VPN plugin specific secrets - the #NMSettingVpn + the #NMSettingVpn - - + + - the #NMSettingVpn:persistent property of the setting + the #NMSettingVpn:persistent property of the setting - the #NMSettingVpn + the #NMSettingVpn - Retrieves the secret of a key/value relationship previously established + Retrieves the secret of a key/value relationship previously established by nm_setting_vpn_add_secret(). - + - the secret, if any + the secret, if any - the #NMSettingVpn + the #NMSettingVpn - the name of the secret to retrieve + the name of the secret to retrieve - - Retrieves every secret key inside @setting, as an array. - + + Retrieves every secret key inside @setting, as an array. + - a + a %NULL-terminated array containing each secret key or %NULL if there are no secrets. @@ -59930,215 +35595,134 @@ by nm_setting_vpn_add_secret(). - the #NMSettingVpn + the #NMSettingVpn - - the length of the returned array + + the length of the returned array - - Returns the service name of the VPN, which identifies the specific VPN + + Returns the service name of the VPN, which identifies the specific VPN plugin that should be used to connect to this VPN. - + - the VPN plugin's service name + the VPN plugin's service name - the #NMSettingVpn + the #NMSettingVpn - - + + - the #NMSettingVpn:timeout property of the setting + the #NMSettingVpn:timeout property of the setting - the #NMSettingVpn + the #NMSettingVpn - - + + - the #NMSettingVpn:user-name property of the setting + the #NMSettingVpn:user-name property of the setting - the #NMSettingVpn + the #NMSettingVpn - - Deletes a key/value relationship previously established by + + Deletes a key/value relationship previously established by nm_setting_vpn_add_data_item(). - + - %TRUE if the data item was found and removed from the internal list, + %TRUE if the data item was found and removed from the internal list, %FALSE if it was not. - the #NMSettingVpn + the #NMSettingVpn - the name of the data item to remove + the name of the data item to remove - Deletes a key/value relationship previously established by + Deletes a key/value relationship previously established by nm_setting_vpn_add_secret(). - + - %TRUE if the secret was found and removed from the internal list, + %TRUE if the secret was found and removed from the internal list, %FALSE if it was not. - the #NMSettingVpn + the #NMSettingVpn - the name of the secret to remove + the name of the secret to remove - Dictionary of key/value pairs of VPN plugin specific data. Both keys and + Dictionary of key/value pairs of VPN plugin specific data. Both keys and values must be strings. - - If the VPN service supports persistence, and this property is %TRUE, + + If the VPN service supports persistence, and this property is %TRUE, the VPN will attempt to stay connected across link changes and outages, until explicitly disconnected. - Dictionary of key/value pairs of VPN plugin specific secrets like + Dictionary of key/value pairs of VPN plugin specific secrets like passwords or private keys. Both keys and values must be strings. - - D-Bus service name of the VPN plugin that this setting uses to connect to + + D-Bus service name of the VPN plugin that this setting uses to connect to its network. i.e. org.freedesktop.NetworkManager.vpnc for the vpnc plugin. - - Timeout for the VPN service to establish the connection. Some services + + Timeout for the VPN service to establish the connection. Some services may take quite a long time to connect. Value of 0 means a default timeout, which is 60 seconds (unless overridden by vpn.timeout in configuration file). Values greater than zero mean timeout in seconds. - - If the VPN connection requires a user name for authentication, that name + + If the VPN connection requires a user name for authentication, that name should be provided here. If the connection is available to more than one user, and the VPN requires each user to supply a different name, then leave this property empty. If this property is empty, NetworkManager @@ -60147,749 +35731,393 @@ VPN connection. - - + + - - VRF settings - + + VRF settings + - Creates a new #NMSettingVrf object with default values. - + Creates a new #NMSettingVrf object with default values. + - the new empty #NMSettingVrf object + the new empty #NMSettingVrf object - - - - the routing table for the VRF + + + + the routing table for the VRF - the #NMSettingVrf + the #NMSettingVrf - - The routing table for this VRF. + + The routing table for this VRF. - - + + - - VXLAN Settings - - - Creates a new #NMSettingVxlan object with default values. - + + VXLAN Settings + + + Creates a new #NMSettingVxlan object with default values. + - the new empty #NMSettingVxlan object + the new empty #NMSettingVxlan object - - - - the #NMSettingVxlan:ageing property of the setting + + + + the #NMSettingVxlan:ageing property of the setting - the #NMSettingVxlan + the #NMSettingVxlan - - + + - the #NMSettingVxlan:destination-port property of the setting + the #NMSettingVxlan:destination-port property of the setting - the #NMSettingVxlan + the #NMSettingVxlan - - + + - the #NMSettingVxlan:id property of the setting + the #NMSettingVxlan:id property of the setting - the #NMSettingVxlan + the #NMSettingVxlan - - + + - the #NMSettingVxlan:l2_miss property of the setting + the #NMSettingVxlan:l2_miss property of the setting - the #NMSettingVxlan + the #NMSettingVxlan - - + + - the #NMSettingVxlan:l3_miss property of the setting + the #NMSettingVxlan:l3_miss property of the setting - the #NMSettingVxlan + the #NMSettingVxlan - - + + - the #NMSettingVxlan:learning property of the setting + the #NMSettingVxlan:learning property of the setting - the #NMSettingVxlan + the #NMSettingVxlan - - + + - the #NMSettingVxlan:limit property of the setting + the #NMSettingVxlan:limit property of the setting - the #NMSettingVxlan + the #NMSettingVxlan - - + + - the #NMSettingVxlan:local property of the setting + the #NMSettingVxlan:local property of the setting - the #NMSettingVxlan + the #NMSettingVxlan - - + + - the #NMSettingVxlan:parent property of the setting + the #NMSettingVxlan:parent property of the setting - the #NMSettingVxlan + the #NMSettingVxlan - - + + - the #NMSettingVxlan:proxy property of the setting + the #NMSettingVxlan:proxy property of the setting - the #NMSettingVxlan + the #NMSettingVxlan - - + + - the #NMSettingVxlan:remote property of the setting + the #NMSettingVxlan:remote property of the setting - the #NMSettingVxlan + the #NMSettingVxlan - - + + - the #NMSettingVxlan:rsc property of the setting + the #NMSettingVxlan:rsc property of the setting - the #NMSettingVxlan + the #NMSettingVxlan - - + + - the #NMSettingVxlan:source-port-max property of the setting + the #NMSettingVxlan:source-port-max property of the setting - the #NMSettingVxlan + the #NMSettingVxlan - - + + - the #NMSettingVxlan:source-port-min property of the setting + the #NMSettingVxlan:source-port-min property of the setting - the #NMSettingVxlan + the #NMSettingVxlan - - + + - the #NMSettingVxlan:tos property of the setting + the #NMSettingVxlan:tos property of the setting - the #NMSettingVxlan + the #NMSettingVxlan - - + + - the #NMSettingVxlan:ttl property of the setting + the #NMSettingVxlan:ttl property of the setting - the #NMSettingVxlan + the #NMSettingVxlan - - Specifies the lifetime in seconds of FDB entries learnt by the kernel. + + Specifies the lifetime in seconds of FDB entries learnt by the kernel. - - Specifies the UDP destination port to communicate to the remote VXLAN + + Specifies the UDP destination port to communicate to the remote VXLAN tunnel endpoint. - - Specifies the VXLAN Network Identifier (or VXLAN Segment Identifier) to + + Specifies the VXLAN Network Identifier (or VXLAN Segment Identifier) to use. - - Specifies whether netlink LL ADDR miss notifications are generated. + + Specifies whether netlink LL ADDR miss notifications are generated. - - Specifies whether netlink IP ADDR miss notifications are generated. + + Specifies whether netlink IP ADDR miss notifications are generated. - - Specifies whether unknown source link layer addresses and IP addresses + + Specifies whether unknown source link layer addresses and IP addresses are entered into the VXLAN device forwarding database. - - Specifies the maximum number of FDB entries. A value of zero means that + + Specifies the maximum number of FDB entries. A value of zero means that the kernel will store unlimited entries. - - If given, specifies the source IP address to use in outgoing packets. + + If given, specifies the source IP address to use in outgoing packets. - - If given, specifies the parent interface name or parent connection UUID. + + If given, specifies the parent interface name or parent connection UUID. - - Specifies whether ARP proxy is turned on. + + Specifies whether ARP proxy is turned on. - - Specifies the unicast destination IP address to use in outgoing packets + + Specifies the unicast destination IP address to use in outgoing packets when the destination link layer address is not known in the VXLAN device forwarding database, or the multicast IP address to join. - - Specifies whether route short circuit is turned on. + + Specifies whether route short circuit is turned on. - - Specifies the maximum UDP source port to communicate to the remote VXLAN + + Specifies the maximum UDP source port to communicate to the remote VXLAN tunnel endpoint. - - Specifies the minimum UDP source port to communicate to the remote VXLAN + + Specifies the minimum UDP source port to communicate to the remote VXLAN tunnel endpoint. - - Specifies the TOS value to use in outgoing packets. + + Specifies the TOS value to use in outgoing packets. - - Specifies the time-to-live value to use in outgoing packets. + + Specifies the time-to-live value to use in outgoing packets. - - + + - - Wi-Fi P2P Settings - - - Creates a new #NMSettingWifiP2P object with default values. - + + Wi-Fi P2P Settings + + + Creates a new #NMSettingWifiP2P object with default values. + - the new empty #NMSettingWifiP2P object + the new empty #NMSettingWifiP2P object - - - - the #NMSettingWifiP2P:peer property of the setting + + + + the #NMSettingWifiP2P:peer property of the setting - the #NMSettingWifiP2P + the #NMSettingWifiP2P - - + + - the #NMSettingWiFiP2P:wfd-ies property of the setting + the #NMSettingWiFiP2P:wfd-ies property of the setting - the #NMSettingWiFiP2P + the #NMSettingWiFiP2P - - + + - the #NMSettingWifiP2P:wps-method property of the setting - + the #NMSettingWifiP2P:wps-method property of the setting + - the #NMSettingWifiP2P + the #NMSettingWifiP2P - - The P2P device that should be connected to. Currently, this is the only + + The P2P device that should be connected to. Currently, this is the only way to create or join a group. - - The Wi-Fi Display (WFD) Information Elements (IEs) to set. + + The Wi-Fi Display (WFD) Information Elements (IEs) to set. Wi-Fi Display requires a protocol specific information element to be set in certain Wi-Fi frames. These can be specified here for the @@ -60897,518 +36125,304 @@ purpose of establishing a connection. This setting is only useful when implementing a Wi-Fi Display client. - - Flags indicating which mode of WPS is to be used. + + Flags indicating which mode of WPS is to be used. There's little point in changing the default setting as NetworkManager will automatically determine the best method to use. - - + + - - WiMax Settings - - - Creates a new #NMSettingWimax object with default values. + + WiMax Settings + + + Creates a new #NMSettingWimax object with default values. WiMAX is no longer supported. - + - the new empty #NMSettingWimax object + the new empty #NMSettingWimax object - - Returns the MAC address of a WiMAX device which this connection is locked + + Returns the MAC address of a WiMAX device which this connection is locked to. WiMAX is no longer supported. - + - the MAC address + the MAC address - the #NMSettingWimax + the #NMSettingWimax - - Returns the WiMAX NSP name (ex "Sprint" or "CLEAR") which identifies the + + Returns the WiMAX NSP name (ex "Sprint" or "CLEAR") which identifies the specific WiMAX network this setting describes a connection to. WiMAX is no longer supported. - + - the WiMAX NSP name + the WiMAX NSP name - the #NMSettingWimax + the #NMSettingWimax - - If specified, this connection will only apply to the WiMAX device whose + + If specified, this connection will only apply to the WiMAX device whose MAC address matches. This property does not change the MAC address of the device (known as MAC spoofing). WiMAX is no longer supported. - - Network Service Provider (NSP) name of the WiMAX network this connection + + Network Service Provider (NSP) name of the WiMAX network this connection should use. WiMAX is no longer supported. - - + + - - WireGuard Settings - - - Creates a new #NMSettingWireGuard object with default values. - + + WireGuard Settings + + + Creates a new #NMSettingWireGuard object with default values. + - the new empty #NMSettingWireGuard object + the new empty #NMSettingWireGuard object - - If a peer with the same public-key already exists, that + + If a peer with the same public-key already exists, that one is replaced by @peer. The new @peer is always appended (or moved to) the end, so in case a peer is replaced, the indexes are shifted and the number of peers stays unchanged. - + - the #NMSettingWireGuard instance + the #NMSettingWireGuard instance - the #NMWireGuardPeer instance to append. + the #NMWireGuardPeer instance to append. This seals @peer and keeps a reference on the instance. - - + + - the number of cleared peers. + the number of cleared peers. - the #NMSettingWireGuard instance + the #NMSettingWireGuard instance - - + + - the set firewall mark. + the set firewall mark. - the #NMSettingWireGuard instance + the #NMSettingWireGuard instance - - + + - the "ip4-auto-default-route" property of the setting. + the "ip4-auto-default-route" property of the setting. - the #NMSettingWireGuard setting. + the #NMSettingWireGuard setting. - - + + - the "ip6-auto-default-route" property of the setting. + the "ip6-auto-default-route" property of the setting. - the #NMSettingWireGuard setting. + the #NMSettingWireGuard setting. - - + + - the set UDP listen port. + the set UDP listen port. - the #NMSettingWireGuard instance + the #NMSettingWireGuard instance - - + + - the MTU of the setting. + the MTU of the setting. - the #NMSettingWireGuard instance + the #NMSettingWireGuard instance - - + + - the #NMWireGuardPeer entry at + the #NMWireGuardPeer entry at index @idx. If the index is out of range, %NULL is returned. - the #NMSettingWireGuard instance + the #NMSettingWireGuard instance - the index to lookup. + the index to lookup. - - + + - the #NMWireGuardPeer instance with a + the #NMWireGuardPeer instance with a matching public key. If no such peer exists, %NULL is returned. - the #NMSettingWireGuard instance + the #NMSettingWireGuard instance - the public key for looking up the + the public key for looking up the peer. - - optional output argument + + optional output argument for the index of the found peer. If no index is found, this is set to the nm_setting_wireguard_get_peers_len(). - - + + - whether automatically add peer routes. + whether automatically add peer routes. - the #NMSettingWireGuard instance + the #NMSettingWireGuard instance - - + + - the number of registered peers. + the number of registered peers. - the #NMSettingWireGuard instance + the #NMSettingWireGuard instance - - + + - the set private-key or %NULL. + the set private-key or %NULL. - the #NMSettingWireGuard instance + the #NMSettingWireGuard instance - - + + - the secret-flags for #NMSettingWireGuard:private-key. + the secret-flags for #NMSettingWireGuard:private-key. - the #NMSettingWireGuard instance + the #NMSettingWireGuard instance - - + + - %TRUE if @idx was in range and a peer + %TRUE if @idx was in range and a peer was removed. Otherwise, @self is unchanged. - the #NMSettingWireGuard instance + the #NMSettingWireGuard instance - the index to remove. + the index to remove. - - If @idx is one past the last peer, the behavior is the same + + If @idx is one past the last peer, the behavior is the same as nm_setting_wireguard_append_peer(). Otherwise, the peer will be at @idx and replace the peer instance at that index. Note that if a peer with the same @@ -61418,30 +36432,23 @@ by one (because the one at @idx got replace and then one with the same public-key got removed). This also means, that the resulting index afterwards may be one less than @idx (if another peer with a lower index was dropped). - + - the #NMSettingWireGuard instance + the #NMSettingWireGuard instance - the #NMWireGuardPeer instance to set. + the #NMWireGuardPeer instance to set. This seals @peer and keeps a reference on the instance. - the index, in the range of 0 to the number of + the index, in the range of 0 to the number of peers (including). That means, if @idx is one past the end of the number of peers, this is the same as nm_setting_wireguard_append_peer(). Otherwise, the @@ -61450,30 +36457,16 @@ that the resulting index afterwards may be one less than - - The use of fwmark is optional and is by default off. Setting it to 0 + + The use of fwmark is optional and is by default off. Setting it to 0 disables it. Otherwise, it is a 32-bit fwmark for outgoing packets. Note that "ip4-auto-default-route" or "ip6-auto-default-route" enabled, implies to automatically choose a fwmark. - - Whether to enable special handling of the IPv4 default route. + + Whether to enable special handling of the IPv4 default route. If enabled, the IPv4 default route from wireguard.peer-routes will be placed to a dedicated routing-table and two policy routing rules will be added. The fwmark number is also used as routing-table for the default-route, @@ -61492,38 +36485,17 @@ not necessary to enable this explicitly. However, you can disable it if you want to configure your own routing and rules. - - Like ip4-auto-default-route, but for the IPv6 default route. + + Like ip4-auto-default-route, but for the IPv6 default route. - - The listen-port. If listen-port is not specified, the port will be chosen + + The listen-port. If listen-port is not specified, the port will be chosen randomly when the interface comes up. - - If non-zero, only transmit packets of the specified size or smaller, + + If non-zero, only transmit packets of the specified size or smaller, breaking larger packets up into multiple fragments. If zero a default MTU is used. Note that contrary to wg-quick's MTU @@ -61531,15 +36503,8 @@ setting, this does not take into account the current routes at the time of activation. - - Whether to automatically add routes for the AllowedIPs ranges + + Whether to automatically add routes for the AllowedIPs ranges of the peers. If %TRUE (the default), NetworkManager will automatically add routes in the routing tables according to ipv4.route-table and ipv6.route-table. Usually you want this automatism enabled. @@ -61552,536 +36517,334 @@ ipv4.never-default or ipv6.never-default setting is enabled, the peer route for this peer won't be added automatically. - - The 256 bit private-key in base64 encoding. + + The 256 bit private-key in base64 encoding. - - Flags indicating how to handle the #NMSettingWirelessSecurity:private-key + + Flags indicating how to handle the #NMSettingWirelessSecurity:private-key property. - - + + - - Wired Ethernet Settings - + + Wired Ethernet Settings + - Creates a new #NMSettingWired object with default values. - + Creates a new #NMSettingWired object with default values. + - the new empty #NMSettingWired object + the new empty #NMSettingWired object - - Adds a new MAC address to the #NMSettingWired:mac-address-blacklist property. - - - %TRUE if the MAC address was added; %FALSE if the MAC address + + Adds a new MAC address to the #NMSettingWired:mac-address-blacklist property. + + + %TRUE if the MAC address was added; %FALSE if the MAC address is invalid or was already present - the #NMSettingWired + the #NMSettingWired - the MAC address string (hex-digits-and-colons notation) to blacklist + the MAC address string (hex-digits-and-colons notation) to blacklist - - Add an option to the table. If the key already exists, the value gets + + Add an option to the table. If the key already exists, the value gets replaced. Before 1.32, the function would assert that the key is valid. Since then, an invalid key gets silently added but renders the profile as invalid. - + - since 1.32 this always returns %TRUE. + since 1.32 this always returns %TRUE. - the #NMSettingWired + the #NMSettingWired - key name for the option + key name for the option - value for the option + value for the option - - Removes all blacklisted MAC addresses. - + + Removes all blacklisted MAC addresses. + - the #NMSettingWired + the #NMSettingWired - - + + - the #NMSettingWired:accept-all-mac-addresses property of the setting + the #NMSettingWired:accept-all-mac-addresses property of the setting - the #NMSettingWired + the #NMSettingWired - - + + - the #NMSettingWired:auto-negotiate property of the setting + the #NMSettingWired:auto-negotiate property of the setting - the #NMSettingWired + the #NMSettingWired - - + + - the #NMSettingWired:cloned-mac-address property of the setting + the #NMSettingWired:cloned-mac-address property of the setting - the #NMSettingWired + the #NMSettingWired - - + + - the #NMSettingWired:duplex property of the setting + the #NMSettingWired:duplex property of the setting - the #NMSettingWired + the #NMSettingWired - - + + - the #NMSettingWired:generate-mac-address-mask property of the setting + the #NMSettingWired:generate-mac-address-mask property of the setting - the #NMSettingWired + the #NMSettingWired - - + + - the #NMSettingWired:mac-address property of the setting + the #NMSettingWired:mac-address property of the setting - the #NMSettingWired + the #NMSettingWired - - + + - the #NMSettingWired:mac-address-blacklist property of the setting + the #NMSettingWired:mac-address-blacklist property of the setting - the #NMSettingWired + the #NMSettingWired - - Since 1.46, access at index "len" is allowed and returns NULL. - + + Since 1.46, access at index "len" is allowed and returns NULL. + - the blacklisted MAC address string (hex-digits-and-colons notation) + the blacklisted MAC address string (hex-digits-and-colons notation) at index @idx - the #NMSettingWired + the #NMSettingWired - the zero-based index of the MAC address entry + the zero-based index of the MAC address entry - - + + - the #NMSettingWired:mtu property of the setting + the #NMSettingWired:mtu property of the setting - the #NMSettingWired + the #NMSettingWired - - + + - the number of blacklisted MAC addresses + the number of blacklisted MAC addresses - the #NMSettingWired + the #NMSettingWired - - Returns the number of s390-specific options that should be set for this + + Returns the number of s390-specific options that should be set for this device when it is activated. This can be used to retrieve each s390 option individually using nm_setting_wired_get_s390_option(). - + - the number of s390-specific device options + the number of s390-specific device options - the #NMSettingWired + the #NMSettingWired - - + + - the #NMSettingWired:port property of the setting + the #NMSettingWired:port property of the setting - the #NMSettingWired + the #NMSettingWired - - Returns the s390 device type this connection should apply to. Will be one + + Returns the s390 device type this connection should apply to. Will be one of 'qeth', 'lcs', or 'ctc'. - + - the s390 device type + the s390 device type - the #NMSettingWired + the #NMSettingWired - - Given an index, return the value of the s390 option at that index. indexes + + Given an index, return the value of the s390 option at that index. indexes are *not* guaranteed to be static across modifications to options done by nm_setting_wired_add_s390_option() and nm_setting_wired_remove_s390_option(), and should not be used to refer to options except for short periods of time such as during option iteration. - + - %TRUE on success if the index was valid and an option was found, + %TRUE on success if the index was valid and an option was found, %FALSE if the index was invalid (ie, greater than the number of options currently held by the setting) - the #NMSettingWired + the #NMSettingWired - index of the desired option, from 0 to + index of the desired option, from 0 to nm_setting_wired_get_num_s390_options() - 1 - - on return, the key + + on return, the key name of the s390 specific option; this value is owned by the setting and should not be modified - - on return, the value + + on return, the value of the key of the s390 specific option; this value is owned by the setting and should not be modified - - Returns the value associated with the s390-specific option specified by + + Returns the value associated with the s390-specific option specified by @key, if it exists. - + - the value, or %NULL if the key/value pair was never added to the + the value, or %NULL if the key/value pair was never added to the setting; the value is owned by the setting and must not be modified - the #NMSettingWired + the #NMSettingWired - the key for which to retrieve the value + the key for which to retrieve the value - - Return the list of s390 subchannels that identify the device that this + + Return the list of s390 subchannels that identify the device that this connection is applicable to. The connection should only be used in conjunction with that device. - + - array of strings, each specifying + array of strings, each specifying one subchannel the s390 device uses to communicate to the host. @@ -62089,218 +36852,137 @@ conjunction with that device. - the #NMSettingWired + the #NMSettingWired - - + + - the #NMSettingWired:speed property of the setting + the #NMSettingWired:speed property of the setting - the #NMSettingWired + the #NMSettingWired - - Returns a list of valid s390 options. + + Returns a list of valid s390 options. The @setting argument is unused and %NULL may be passed instead. - + - a %NULL-terminated array of strings of valid s390 options. + a %NULL-terminated array of strings of valid s390 options. - - the #NMSettingWired. This argument is unused + + the #NMSettingWired. This argument is unused and you may pass %NULL. - - Returns the Wake-on-LAN options enabled for the connection - + + Returns the Wake-on-LAN options enabled for the connection + - the Wake-on-LAN options + the Wake-on-LAN options - the #NMSettingWired + the #NMSettingWired - - Returns the Wake-on-LAN password. This only applies to + + Returns the Wake-on-LAN password. This only applies to %NM_SETTING_WIRED_WAKE_ON_LAN_MAGIC. - + - the Wake-on-LAN setting password, or %NULL if there is no password. + the Wake-on-LAN setting password, or %NULL if there is no password. - the #NMSettingWired + the #NMSettingWired - - Removes the MAC address at index @idx from the blacklist. - + + Removes the MAC address at index @idx from the blacklist. + - the #NMSettingWired + the #NMSettingWired - index number of the MAC address + index number of the MAC address - - Removes the MAC address @mac from the blacklist. - + + Removes the MAC address @mac from the blacklist. + - %TRUE if the MAC address was found and removed; %FALSE if it was not. + %TRUE if the MAC address was found and removed; %FALSE if it was not. - the #NMSettingWired + the #NMSettingWired - the MAC address string (hex-digits-and-colons notation) to remove from + the MAC address string (hex-digits-and-colons notation) to remove from the blacklist - - Remove the s390-specific option referenced by @key from the internal option + + Remove the s390-specific option referenced by @key from the internal option list. - + - %TRUE if the option was found and removed from the internal option + %TRUE if the option was found and removed from the internal option list, %FALSE if it was not. - the #NMSettingWired + the #NMSettingWired - key name for the option to remove + key name for the option to remove - - When %TRUE, setup the interface to accept packets for all MAC addresses. + + When %TRUE, setup the interface to accept packets for all MAC addresses. This is enabling the kernel interface flag IFF_PROMISC. When %FALSE, the interface will only accept the packets with the interface destination mac address or broadcast. - - When %TRUE, enforce auto-negotiation of speed and duplex mode. + + When %TRUE, enforce auto-negotiation of speed and duplex mode. If "speed" and "duplex" properties are both specified, only that single mode will be advertised and accepted during the link auto-negotiation process: this works only for BASE-T 802.3 specifications @@ -62310,14 +36992,8 @@ When %FALSE, "speed" and "duplex" properties should be both set or link configuration will be skipped. - - If specified, request that the device use this MAC address instead. + + If specified, request that the device use this MAC address instead. This is known as MAC cloning or spoofing. Beside explicitly specifying a MAC address, the special values "preserve", "permanent", @@ -62337,14 +37013,8 @@ On D-Bus, this field is expressed as "assigned-mac-address" or the deprecated "cloned-mac-address". - - When a value is set, either "half" or "full", configures the device + + When a value is set, either "half" or "full", configures the device to use the specified duplex mode. If "auto-negotiate" is "yes" the specified duplex mode will be the only one advertised during link negotiation: this works only for BASE-T 802.3 specifications and is @@ -62358,14 +37028,8 @@ Must be set together with the "speed" property if specified. Before specifying a duplex mode be sure your device supports it. - - With #NMSettingWired:cloned-mac-address setting "random" or "stable", + + With #NMSettingWired:cloned-mac-address setting "random" or "stable", by default all bits of the MAC address are scrambled and a locally-administered, unicast MAC address is created. This property allows to specify that certain bits are fixed. Note that the least significant bit of the first MAC address will @@ -62395,25 +37059,14 @@ will create a fully scrambled MAC address, randomly locally or globally administered. - - If specified, this connection will only apply to the Ethernet device + + If specified, this connection will only apply to the Ethernet device whose permanent MAC address matches. This property does not change the MAC address of the device (i.e. MAC spoofing). - - If specified, this connection will never apply to the Ethernet device + + If specified, this connection will never apply to the Ethernet device whose permanent MAC address matches an address in the list. Each MAC address is in the standard hex-digits-and-colons notation (00:11:22:33:44:55). @@ -62421,45 +37074,25 @@ address is in the standard hex-digits-and-colons notation - - If non-zero, only transmit packets of the specified size or smaller, + + If non-zero, only transmit packets of the specified size or smaller, breaking larger packets up into multiple Ethernet frames. - - Specific port type to use if the device supports multiple + + Specific port type to use if the device supports multiple attachment methods. One of "tp" (Twisted Pair), "aui" (Attachment Unit Interface), "bnc" (Thin Ethernet) or "mii" (Media Independent Interface). If the device supports only one port type, this setting is ignored. - - s390 network device type; one of "qeth", "lcs", or "ctc", representing + + s390 network device type; one of "qeth", "lcs", or "ctc", representing the different types of virtual network devices available on s390 systems. - Dictionary of key/value pairs of s390-specific device options. Both keys + Dictionary of key/value pairs of s390-specific device options. Both keys and values must be strings. Allowed keys include "portno", "layer2", "portname", "protocol", among others. Key names must contain only alphanumeric characters (ie, [a-zA-Z0-9]). @@ -62472,13 +37105,8 @@ and applies it to the interface. - - Identifies specific subchannels that this network device uses for + + Identifies specific subchannels that this network device uses for communication with z/VM or s390 host. Like the #NMSettingWired:mac-address property for non-z/VM devices, this property can be used to ensure this connection only applies to the network device @@ -62489,14 +37117,8 @@ period (.) character. - - When a value greater than 0 is set, configures the device to use + + When a value greater than 0 is set, configures the device to use the specified speed. If "auto-negotiate" is "yes" the specified speed will be the only one advertised during link negotiation: this works only for BASE-T 802.3 specifications and is useful for @@ -62511,15 +37133,8 @@ Must be set together with the "duplex" property when non-zero. Before specifying a speed value be sure your device supports it. - - The #NMSettingWiredWakeOnLan options to enable. Not all devices support all options. + + The #NMSettingWiredWakeOnLan options to enable. Not all devices support all options. May be any combination of %NM_SETTING_WIRED_WAKE_ON_LAN_PHY, %NM_SETTING_WIRED_WAKE_ON_LAN_UNICAST, %NM_SETTING_WIRED_WAKE_ON_LAN_MULTICAST, %NM_SETTING_WIRED_WAKE_ON_LAN_BROADCAST, %NM_SETTING_WIRED_WAKE_ON_LAN_ARP, @@ -62529,789 +37144,477 @@ May be any combination of %NM_SETTING_WIRED_WAKE_ON_LAN_PHY, NetworkManager). - - If specified, the password used with magic-packet-based + + If specified, the password used with magic-packet-based Wake-on-LAN, represented as an Ethernet MAC address. If %NULL, no password will be required. - - + + - - Options for #NMSettingWired:wake-on-lan. Note that not all options + + Options for #NMSettingWired:wake-on-lan. Note that not all options are supported by all devices. - - Wake on PHY activity - - - Wake on unicast messages - - - Wake on multicast messages - - - Wake on broadcast messages - - - Wake on ARP - - - Wake on magic packet - - - Use the default value - - - Don't change configured settings + + Wake on PHY activity + + + Wake on unicast messages + + + Wake on multicast messages + + + Wake on broadcast messages + + + Wake on ARP + + + Wake on magic packet + + + Use the default value + + + Don't change configured settings - - Wi-Fi Settings - + + Wi-Fi Settings + - Creates a new #NMSettingWireless object with default values. - + Creates a new #NMSettingWireless object with default values. + - the new empty #NMSettingWireless object + the new empty #NMSettingWireless object - - Adds a new MAC address to the #NMSettingWireless:mac-address-blacklist property. - - - %TRUE if the MAC address was added; %FALSE if the MAC address + + Adds a new MAC address to the #NMSettingWireless:mac-address-blacklist property. + + + %TRUE if the MAC address was added; %FALSE if the MAC address is invalid or was already present - the #NMSettingWireless + the #NMSettingWireless - the MAC address string (hex-digits-and-colons notation) to blacklist + the MAC address string (hex-digits-and-colons notation) to blacklist - - Adds a new Wi-Fi AP's BSSID to the previously seen BSSID list of the setting. + + Adds a new Wi-Fi AP's BSSID to the previously seen BSSID list of the setting. NetworkManager now tracks previously seen BSSIDs internally so this function no longer has much use. Actually, changes you make using this function will not be preserved. - + - %TRUE if @bssid was already known, %FALSE if not + %TRUE if @bssid was already known, %FALSE if not - the #NMSettingWireless + the #NMSettingWireless - the new BSSID to add to the list + the new BSSID to add to the list - - Given a #NMSettingWireless and an optional #NMSettingWirelessSecurity, + + Given a #NMSettingWireless and an optional #NMSettingWirelessSecurity, determine if the configuration given by the settings is compatible with the security of an access point using that access point's capability flags and mode. Useful for clients that wish to filter a set of connections against a set of access points and determine which connections are compatible with which access points. - + - %TRUE if the given settings are compatible with the access point's + %TRUE if the given settings are compatible with the access point's security flags and mode, %FALSE if they are not. - a #NMSettingWireless + a #NMSettingWireless - a #NMSettingWirelessSecurity or %NULL - + a #NMSettingWirelessSecurity or %NULL + - the %NM80211ApFlags of the given access point + the %NM80211ApFlags of the given access point - the %NM80211ApSecurityFlags of the given access point's WPA + the %NM80211ApSecurityFlags of the given access point's WPA capabilities - the %NM80211ApSecurityFlags of the given access point's WPA2/RSN + the %NM80211ApSecurityFlags of the given access point's WPA2/RSN capabilities - the 802.11 mode of the AP, either Ad-Hoc or Infrastructure + the 802.11 mode of the AP, either Ad-Hoc or Infrastructure - - Removes all blacklisted MAC addresses. - + + Removes all blacklisted MAC addresses. + - the #NMSettingWireless + the #NMSettingWireless - - + + - the #NMSettingWireless:ap-isolation property of the setting + the #NMSettingWireless:ap-isolation property of the setting - the #NMSettingWireless + the #NMSettingWireless - - + + - the #NMSettingWireless:band property of the setting + the #NMSettingWireless:band property of the setting - the #NMSettingWireless + the #NMSettingWireless - - + + - the #NMSettingWireless:bssid property of the setting + the #NMSettingWireless:bssid property of the setting - the #NMSettingWireless + the #NMSettingWireless - - + + - the #NMSettingWireless:channel property of the setting + the #NMSettingWireless:channel property of the setting - the #NMSettingWireless + the #NMSettingWireless - - + + - the #NMSettingWireless:cloned-mac-address property of the setting + the #NMSettingWireless:cloned-mac-address property of the setting - the #NMSettingWireless + the #NMSettingWireless - - + + - the #NMSettingWireless:generate-mac-address-mask property of the setting + the #NMSettingWireless:generate-mac-address-mask property of the setting - the #NMSettingWireless + the #NMSettingWireless - - + + - the #NMSettingWireless:hidden property of the setting + the #NMSettingWireless:hidden property of the setting - the #NMSettingWireless + the #NMSettingWireless - - + + - the #NMSettingWireless:mac-address property of the setting + the #NMSettingWireless:mac-address property of the setting - the #NMSettingWireless + the #NMSettingWireless - - + + - the #NMSettingWireless:mac-address-blacklist property of the setting + the #NMSettingWireless:mac-address-blacklist property of the setting - the #NMSettingWireless + the #NMSettingWireless - - + + - the #NMSettingWireless:mac-address-randomization property of the + the #NMSettingWireless:mac-address-randomization property of the setting - + - the #NMSettingWireless + the #NMSettingWireless - - Since 1.46, access at index "len" is allowed and returns NULL. - + + Since 1.46, access at index "len" is allowed and returns NULL. + - the blacklisted MAC address string (hex-digits-and-colons notation) + the blacklisted MAC address string (hex-digits-and-colons notation) at index @idx - the #NMSettingWireless + the #NMSettingWireless - the zero-based index of the MAC address entry + the zero-based index of the MAC address entry - - + + - the #NMSettingWireless:mode property of the setting + the #NMSettingWireless:mode property of the setting - the #NMSettingWireless + the #NMSettingWireless - - + + - the #NMSettingWireless:mtu property of the setting + the #NMSettingWireless:mtu property of the setting - the #NMSettingWireless + the #NMSettingWireless - - + + - the number of blacklisted MAC addresses + the number of blacklisted MAC addresses - the #NMSettingWireless + the #NMSettingWireless - - + + - the number of BSSIDs in the previously seen BSSID list + the number of BSSIDs in the previously seen BSSID list - the #NMSettingWireless + the #NMSettingWireless - - + + - the #NMSettingWireless:powersave property of the setting + the #NMSettingWireless:powersave property of the setting - the #NMSettingWireless + the #NMSettingWireless - + This setting is not implemented and has no effect. - + - the #NMSettingWireless:rate property of the setting + the #NMSettingWireless:rate property of the setting - the #NMSettingWireless + the #NMSettingWireless - - + + - the BSSID at index @i + the BSSID at index @i - the #NMSettingWireless + the #NMSettingWireless - index of a BSSID in the previously seen BSSID list + index of a BSSID in the previously seen BSSID list - - + + - the #NMSettingWireless:ssid property of the setting + the #NMSettingWireless:ssid property of the setting - the #NMSettingWireless + the #NMSettingWireless - + This setting is not implemented and has no effect. - + - the #NMSettingWireless:tx-power property of the setting + the #NMSettingWireless:tx-power property of the setting - the #NMSettingWireless + the #NMSettingWireless - - Returns the Wake-on-WLAN options enabled for the connection - + + Returns the Wake-on-WLAN options enabled for the connection + - the Wake-on-WLAN options - + the Wake-on-WLAN options + - the #NMSettingWireless + the #NMSettingWireless - - Removes the MAC address at index @idx from the blacklist. - + + Removes the MAC address at index @idx from the blacklist. + - the #NMSettingWireless + the #NMSettingWireless - index number of the MAC address + index number of the MAC address - - Removes the MAC address @mac from the blacklist. - + + Removes the MAC address @mac from the blacklist. + - %TRUE if the MAC address was found and removed; %FALSE if it was not. + %TRUE if the MAC address was found and removed; %FALSE if it was not. - the #NMSettingWireless + the #NMSettingWireless - the MAC address string (hex-digits-and-colons notation) to remove from + the MAC address string (hex-digits-and-colons notation) to remove from the blacklist - - Configures AP isolation, which prevents communication between + + Configures AP isolation, which prevents communication between wireless devices connected to this AP. This property can be set to a value different from %NM_TERNARY_DEFAULT only when the interface is configured in AP mode. @@ -63329,14 +37632,8 @@ case the global default is unspecified it is assumed to be %NM_TERNARY_FALSE. - - 802.11 frequency band of the network. One of "a" for 5GHz 802.11a or + + 802.11 frequency band of the network. One of "a" for 5GHz 802.11a or "bg" for 2.4GHz 802.11. This will lock associations to the Wi-Fi network to the specific band, i.e. if "a" is specified, the device will not associate with the same network in the 2.4GHz band even if the network's @@ -63344,14 +37641,8 @@ settings are compatible. This setting depends on specific driver capability and may not work with all drivers. - - If specified, directs the device to only associate with the given access + + If specified, directs the device to only associate with the given access point. This capability is highly driver dependent and not supported by all devices. Note: this property does not control the BSSID used when creating an Ad-Hoc network and is unlikely to in the future. @@ -63361,27 +37652,15 @@ disable background scanning. That can be useful, if there is only one access point for the SSID. - - Wireless channel to use for the Wi-Fi connection. The device will only + + Wireless channel to use for the Wi-Fi connection. The device will only join (or create for Ad-Hoc networks) a Wi-Fi network on the specified channel. Because channel numbers overlap between bands, this property also requires the "band" property to be set. - - If specified, request that the device use this MAC address instead. + + If specified, request that the device use this MAC address instead. This is known as MAC cloning or spoofing. Beside explicitly specifying a MAC address, the special values "preserve", "permanent", @@ -63402,14 +37681,8 @@ On D-Bus, this field is expressed as "assigned-mac-address" or the deprecated "cloned-mac-address". - - With #NMSettingWireless:cloned-mac-address setting "random" or "stable", + + With #NMSettingWireless:cloned-mac-address setting "random" or "stable", by default all bits of the MAC address are scrambled and a locally-administered, unicast MAC address is created. This property allows to specify that certain bits are fixed. Note that the least significant bit of the first MAC address will @@ -63439,14 +37712,8 @@ will create a fully scrambled MAC address, randomly locally or globally administered. - - If %TRUE, indicates that the network is a non-broadcasting network that + + If %TRUE, indicates that the network is a non-broadcasting network that hides its SSID. This works both in infrastructure and AP mode. In infrastructure mode, various workarounds are used for a more reliable @@ -63461,42 +37728,22 @@ Note that marking the network as hidden may be a privacy issue for you probe-scans are distinctly recognizable on the air. - - If specified, this connection will only apply to the Wi-Fi device whose + + If specified, this connection will only apply to the Wi-Fi device whose permanent MAC address matches. This property does not change the MAC address of the device (i.e. MAC spoofing). - - A list of permanent MAC addresses of Wi-Fi devices to which this + + A list of permanent MAC addresses of Wi-Fi devices to which this connection should never apply. Each MAC address should be given in the standard hex-digits-and-colons notation (eg "00:11:22:33:44:55"). - - One of %NM_SETTING_MAC_RANDOMIZATION_DEFAULT (never randomize unless + + One of %NM_SETTING_MAC_RANDOMIZATION_DEFAULT (never randomize unless the user has set a global default to randomize and the supplicant supports randomization), %NM_SETTING_MAC_RANDOMIZATION_NEVER (never randomize the MAC address), or %NM_SETTING_MAC_RANDOMIZATION_ALWAYS @@ -63504,60 +37751,31 @@ randomize the MAC address), or %NM_SETTING_MAC_RANDOMIZATION_ALWAYS Use the #NMSettingWireless:cloned-mac-address property instead. - - Wi-Fi network mode; one of "infrastructure", "mesh", "adhoc" or "ap". If blank, + + Wi-Fi network mode; one of "infrastructure", "mesh", "adhoc" or "ap". If blank, infrastructure is assumed. - - If non-zero, only transmit packets of the specified size or smaller, + + If non-zero, only transmit packets of the specified size or smaller, breaking larger packets up into multiple Ethernet frames. - - One of %NM_SETTING_WIRELESS_POWERSAVE_DISABLE (disable Wi-Fi power + + One of %NM_SETTING_WIRELESS_POWERSAVE_DISABLE (disable Wi-Fi power saving), %NM_SETTING_WIRELESS_POWERSAVE_ENABLE (enable Wi-Fi power saving), %NM_SETTING_WIRELESS_POWERSAVE_IGNORE (don't touch currently configure setting) or %NM_SETTING_WIRELESS_POWERSAVE_DEFAULT (use the globally configured value). All other values are reserved. - - This property is not implemented and has no effect. + + This property is not implemented and has no effect. This property is not implemented and has no effect. - A list of BSSIDs (each BSSID formatted as a MAC address like + A list of BSSIDs (each BSSID formatted as a MAC address like "00:11:22:33:44:55") that have been detected as part of the Wi-Fi network. NetworkManager internally tracks previously seen BSSIDs. The property is only meant for reading and reflects the BSSID list of @@ -63571,37 +37789,17 @@ in "/var/lib/NetworkManager/seen-bssids" file. - - SSID of the Wi-Fi network. Must be specified. + + SSID of the Wi-Fi network. Must be specified. - - This property is not implemented and has no effect. + + This property is not implemented and has no effect. This property is not implemented and has no effect. - - The #NMSettingWirelessWakeOnWLan options to enable. Not all devices support all options. + + The #NMSettingWirelessWakeOnWLan options to enable. Not all devices support all options. May be any combination of %NM_SETTING_WIRELESS_WAKE_ON_WLAN_ANY, %NM_SETTING_WIRELESS_WAKE_ON_WLAN_DISCONNECT, %NM_SETTING_WIRELESS_WAKE_ON_WLAN_MAGIC, @@ -63616,933 +37814,572 @@ NetworkManager). - - + + - - These flags indicate whether wireless powersave must be enabled. - - use the default value - - - don't touch existing setting - - - disable powersave - - - enable powersave + + These flags indicate whether wireless powersave must be enabled. + + use the default value + + + don't touch existing setting + + + disable powersave + + + enable powersave - - Wi-Fi Security Settings - + + Wi-Fi Security Settings + - Creates a new #NMSettingWirelessSecurity object with default values. - + Creates a new #NMSettingWirelessSecurity object with default values. + - the new empty #NMSettingWirelessSecurity object + the new empty #NMSettingWirelessSecurity object - - Adds an encryption algorithm to the list of allowed groupwise encryption + + Adds an encryption algorithm to the list of allowed groupwise encryption algorithms. If the list is not empty, then only access points that support one or more of the encryption algorithms in the list will be considered compatible with this connection. - + - %TRUE if the algorithm was added to the list, %FALSE if it was + %TRUE if the algorithm was added to the list, %FALSE if it was already in the list - the #NMSettingWirelessSecurity - + the #NMSettingWirelessSecurity + - the encryption algorithm to add, one of "wep40", "wep104", + the encryption algorithm to add, one of "wep40", "wep104", "tkip", or "ccmp" - - Adds an encryption algorithm to the list of allowed pairwise encryption + + Adds an encryption algorithm to the list of allowed pairwise encryption algorithms. If the list is not empty, then only access points that support one or more of the encryption algorithms in the list will be considered compatible with this connection. - + - %TRUE if the algorithm was added to the list, %FALSE if it was + %TRUE if the algorithm was added to the list, %FALSE if it was already in the list - the #NMSettingWirelessSecurity - + the #NMSettingWirelessSecurity + - the encryption algorithm to add, one of "tkip" or "ccmp" + the encryption algorithm to add, one of "tkip" or "ccmp" - - Adds a Wi-Fi security protocol (one of "wpa" or "rsn") to the allowed list; + + Adds a Wi-Fi security protocol (one of "wpa" or "rsn") to the allowed list; only protocols in this list will be used when finding and connecting to the Wi-Fi network specified by this connection. For example, if the protocol list contains only "wpa" but the access point for the SSID specified by this connection only supports WPA2/RSN, the connection cannot be used with the access point. - + - %TRUE if the protocol was new and was added to the allowed + %TRUE if the protocol was new and was added to the allowed protocol list, or %FALSE if it was already in the list - the #NMSettingWirelessSecurity - + the #NMSettingWirelessSecurity + - the protocol to add, one of "wpa" or "rsn" + the protocol to add, one of "wpa" or "rsn" - - Removes all algorithms from the allowed list. If there are no algorithms + + Removes all algorithms from the allowed list. If there are no algorithms specified then all groupwise encryption algorithms are allowed. - + - the #NMSettingWirelessSecurity - + the #NMSettingWirelessSecurity + - - Removes all algorithms from the allowed list. If there are no algorithms + + Removes all algorithms from the allowed list. If there are no algorithms specified then all pairwise encryption algorithms are allowed. - + - the #NMSettingWirelessSecurity - + the #NMSettingWirelessSecurity + - - Removes all protocols from the allowed list. If there are no protocols + + Removes all protocols from the allowed list. If there are no protocols specified then all protocols are allowed. - + - the #NMSettingWirelessSecurity - + the #NMSettingWirelessSecurity + - - + + - the #NMSettingWirelessSecurity:auth-alg property of the setting + the #NMSettingWirelessSecurity:auth-alg property of the setting - the #NMSettingWirelessSecurity - + the #NMSettingWirelessSecurity + - - + + - the #NMSettingWirelessSecurity:fils property of the setting - + the #NMSettingWirelessSecurity:fils property of the setting + - the #NMSettingWirelessSecurity - + the #NMSettingWirelessSecurity + - - Returns the allowed groupwise encryption algorithm from allowed algorithm + + Returns the allowed groupwise encryption algorithm from allowed algorithm list. - + - the groupwise encryption algorithm at index @i + the groupwise encryption algorithm at index @i - the #NMSettingWirelessSecurity - + the #NMSettingWirelessSecurity + - index of an item in the allowed groupwise encryption algorithm list + index of an item in the allowed groupwise encryption algorithm list - - + + - the #NMSettingWirelessSecurity:key-mgmt property of the setting + the #NMSettingWirelessSecurity:key-mgmt property of the setting - the #NMSettingWirelessSecurity - + the #NMSettingWirelessSecurity + - - + + - the #NMSettingWirelessSecurity:leap-password property of the setting + the #NMSettingWirelessSecurity:leap-password property of the setting - the #NMSettingWirelessSecurity - + the #NMSettingWirelessSecurity + - - + + - the #NMSettingSecretFlags pertaining to the + the #NMSettingSecretFlags pertaining to the #NMSettingWirelessSecurity:leap-password - the #NMSettingWirelessSecurity - + the #NMSettingWirelessSecurity + - - + + - the #NMSettingWirelessSecurity:leap-username property of the setting + the #NMSettingWirelessSecurity:leap-username property of the setting - the #NMSettingWirelessSecurity - + the #NMSettingWirelessSecurity + - - + + - the number of groupwise encryption algorithms in the allowed list + the number of groupwise encryption algorithms in the allowed list - the #NMSettingWirelessSecurity - + the #NMSettingWirelessSecurity + - - + + - the number of pairwise encryption algorithms in the allowed list + the number of pairwise encryption algorithms in the allowed list - the #NMSettingWirelessSecurity - + the #NMSettingWirelessSecurity + - - + + - the number of security protocols this connection allows when + the number of security protocols this connection allows when connecting to secure Wi-Fi networks - the #NMSettingWirelessSecurity - + the #NMSettingWirelessSecurity + - - Returns the allowed pairwise encryption algorithm from allowed algorithm + + Returns the allowed pairwise encryption algorithm from allowed algorithm list. - + - the pairwise encryption algorithm at index @i + the pairwise encryption algorithm at index @i - the #NMSettingWirelessSecurity - + the #NMSettingWirelessSecurity + - index of an item in the allowed pairwise encryption algorithm list + index of an item in the allowed pairwise encryption algorithm list - - + + - the #NMSettingWirelessSecurity:pmf property of the setting - + the #NMSettingWirelessSecurity:pmf property of the setting + - the #NMSettingWirelessSecurity - + the #NMSettingWirelessSecurity + - - + + - the protocol at index @i + the protocol at index @i - the #NMSettingWirelessSecurity - + the #NMSettingWirelessSecurity + - an index into the protocol list + an index into the protocol list - - + + - the #NMSettingWirelessSecurity:psk property of the setting + the #NMSettingWirelessSecurity:psk property of the setting - the #NMSettingWirelessSecurity - + the #NMSettingWirelessSecurity + - - + + - the #NMSettingSecretFlags pertaining to the + the #NMSettingSecretFlags pertaining to the #NMSettingWirelessSecurity:psk - the #NMSettingWirelessSecurity - + the #NMSettingWirelessSecurity + - - + + - the WEP key at the given index + the WEP key at the given index - the #NMSettingWirelessSecurity - + the #NMSettingWirelessSecurity + - the WEP key index (0..3 inclusive) + the WEP key index (0..3 inclusive) - - + + - the #NMSettingSecretFlags pertaining to the all WEP keys + the #NMSettingSecretFlags pertaining to the all WEP keys - the #NMSettingWirelessSecurity - + the #NMSettingWirelessSecurity + - - + + - the #NMSettingWirelessSecurity:wep-key-type property of the setting + the #NMSettingWirelessSecurity:wep-key-type property of the setting - the #NMSettingWirelessSecurity - + the #NMSettingWirelessSecurity + - - + + - the #NMSettingWirelessSecurity:wep-tx-keyidx property of the setting + the #NMSettingWirelessSecurity:wep-tx-keyidx property of the setting - the #NMSettingWirelessSecurity - + the #NMSettingWirelessSecurity + - - + + - the #NMSettingWirelessSecurity:wps-method property of the setting - + the #NMSettingWirelessSecurity:wps-method property of the setting + - the #NMSettingWirelessSecurity - + the #NMSettingWirelessSecurity + - - Removes an encryption algorithm from the allowed groupwise encryption + + Removes an encryption algorithm from the allowed groupwise encryption algorithm list. - + - the #NMSettingWirelessSecurity - + the #NMSettingWirelessSecurity + - the index of an item in the allowed groupwise encryption algorithm list + the index of an item in the allowed groupwise encryption algorithm list - - Removes an encryption algorithm from the allowed groupwise encryption + + Removes an encryption algorithm from the allowed groupwise encryption algorithm list. - + - %TRUE if the algorithm was found and removed; %FALSE if it was not. + %TRUE if the algorithm was found and removed; %FALSE if it was not. - the #NMSettingWirelessSecurity - + the #NMSettingWirelessSecurity + - the encryption algorithm to remove, one of "wep40", "wep104", + the encryption algorithm to remove, one of "wep40", "wep104", "tkip", or "ccmp" - - Removes an encryption algorithm from the allowed pairwise encryption + + Removes an encryption algorithm from the allowed pairwise encryption algorithm list. - + - the #NMSettingWirelessSecurity - + the #NMSettingWirelessSecurity + - the index of an item in the allowed pairwise encryption algorithm list + the index of an item in the allowed pairwise encryption algorithm list - - Removes an encryption algorithm from the allowed pairwise encryption + + Removes an encryption algorithm from the allowed pairwise encryption algorithm list. - + - %TRUE if the encryption algorithm was found and removed; %FALSE if it was not. + %TRUE if the encryption algorithm was found and removed; %FALSE if it was not. - the #NMSettingWirelessSecurity - + the #NMSettingWirelessSecurity + - the encryption algorithm to remove, one of "tkip" or "ccmp" + the encryption algorithm to remove, one of "tkip" or "ccmp" - - Removes a protocol from the allowed protocol list. - + + Removes a protocol from the allowed protocol list. + - the #NMSettingWirelessSecurity - + the #NMSettingWirelessSecurity + - index of the protocol to remove + index of the protocol to remove - - Removes a protocol from the allowed protocol list. - + + Removes a protocol from the allowed protocol list. + - %TRUE if the protocol was found and removed; %FALSE if it was not. + %TRUE if the protocol was found and removed; %FALSE if it was not. - the #NMSettingWirelessSecurity - + the #NMSettingWirelessSecurity + - the protocol to remove, one of "wpa" or "rsn" + the protocol to remove, one of "wpa" or "rsn" - - Sets a WEP key in the given index. - + + Sets a WEP key in the given index. + - the #NMSettingWirelessSecurity - + the #NMSettingWirelessSecurity + - the index of the key (0..3 inclusive) + the index of the key (0..3 inclusive) - the WEP key as a string, in either hexadecimal, ASCII, or passphrase + the WEP key as a string, in either hexadecimal, ASCII, or passphrase form as determined by the value of the #NMSettingWirelessSecurity:wep-key-type property. - - When WEP is used (ie, key-mgmt = "none" or "ieee8021x") indicate the + + When WEP is used (ie, key-mgmt = "none" or "ieee8021x") indicate the 802.11 authentication algorithm required by the AP here. One of "open" for Open System, "shared" for Shared Key, or "leap" for Cisco LEAP. When using Cisco LEAP (ie, key-mgmt = "ieee8021x" and auth-alg = "leap") the "leap-username" and "leap-password" properties must be specified. - - Indicates whether Fast Initial Link Setup (802.11ai) must be enabled for + + Indicates whether Fast Initial Link Setup (802.11ai) must be enabled for the connection. One of %NM_SETTING_WIRELESS_SECURITY_FILS_DEFAULT (use global default value), %NM_SETTING_WIRELESS_SECURITY_FILS_DISABLE (disable FILS), %NM_SETTING_WIRELESS_SECURITY_FILS_OPTIONAL (enable FILS @@ -64552,13 +38389,8 @@ supported). When set to %NM_SETTING_WIRELESS_SECURITY_FILS_DEFAULT and no global default is set, FILS will be optionally enabled. - - A list of group/broadcast encryption algorithms which prevents + + A list of group/broadcast encryption algorithms which prevents connections to Wi-Fi networks that do not utilize one of the algorithms in the list. For maximum compatibility leave this property empty. Each list element may be one of "wep40", "wep104", "tkip", or "ccmp". @@ -64566,14 +38398,8 @@ list element may be one of "wep40", "wep104", "tkip", or "ccmp". - - Key management used for the connection. One of "none" (WEP or no + + Key management used for the connection. One of "none" (WEP or no password protection), "ieee8021x" (Dynamic WEP), "owe" (Opportunistic Wireless Encryption), "wpa-psk" (WPA2 + WPA3 personal), "sae" (WPA3 personal only), "wpa-eap" (WPA2 + WPA3 enterprise) or @@ -64582,46 +38408,23 @@ personal only), "wpa-eap" (WPA2 + WPA3 enterprise) or This property must be set for any Wi-Fi connection that uses security. - - The login password for legacy LEAP connections (ie, key-mgmt = + + The login password for legacy LEAP connections (ie, key-mgmt = "ieee8021x" and auth-alg = "leap"). - - Flags indicating how to handle the + + Flags indicating how to handle the #NMSettingWirelessSecurity:leap-password property. - - The login username for legacy LEAP connections (ie, key-mgmt = + + The login username for legacy LEAP connections (ie, key-mgmt = "ieee8021x" and auth-alg = "leap"). - - A list of pairwise encryption algorithms which prevents connections to + + A list of pairwise encryption algorithms which prevents connections to Wi-Fi networks that do not utilize one of the algorithms in the list. For maximum compatibility leave this property empty. Each list element may be one of "tkip" or "ccmp". @@ -64629,15 +38432,8 @@ may be one of "tkip" or "ccmp". - - Indicates whether Protected Management Frames (802.11w) must be enabled + + Indicates whether Protected Management Frames (802.11w) must be enabled for the connection. One of %NM_SETTING_WIRELESS_SECURITY_PMF_DEFAULT (use global default value), %NM_SETTING_WIRELESS_SECURITY_PMF_DISABLE (disable PMF), %NM_SETTING_WIRELESS_SECURITY_PMF_OPTIONAL (enable PMF if @@ -64647,64 +38443,35 @@ supported). When set to %NM_SETTING_WIRELESS_SECURITY_PMF_DEFAULT and no global default is set, PMF will be optionally enabled. - - List of strings specifying the allowed WPA protocol versions to use. + + List of strings specifying the allowed WPA protocol versions to use. Each element may be one "wpa" (allow WPA) or "rsn" (allow WPA2/RSN). If not specified, both WPA and RSN connections are allowed. - - Pre-Shared-Key for WPA networks. For WPA-PSK, it's either an ASCII + + Pre-Shared-Key for WPA networks. For WPA-PSK, it's either an ASCII passphrase of 8 to 63 characters that is (as specified in the 802.11i standard) hashed to derive the actual key, or the key in form of 64 hexadecimal character. The WPA3-Personal networks use a passphrase of any length for SAE authentication. - - Flags indicating how to handle the #NMSettingWirelessSecurity:psk + + Flags indicating how to handle the #NMSettingWirelessSecurity:psk property. - - Flags indicating how to handle the #NMSettingWirelessSecurity:wep-key0, + + Flags indicating how to handle the #NMSettingWirelessSecurity:wep-key0, #NMSettingWirelessSecurity:wep-key1, #NMSettingWirelessSecurity:wep-key2, and #NMSettingWirelessSecurity:wep-key3 properties. - - Controls the interpretation of WEP keys. Allowed values are + + Controls the interpretation of WEP keys. Allowed values are %NM_WEP_KEY_TYPE_KEY, in which case the key is either a 10- or 26-character hexadecimal string, or a 5- or 13-character ASCII password; or %NM_WEP_KEY_TYPE_PASSPHRASE, in which case the passphrase is provided @@ -64712,68 +38479,35 @@ as a string and will be hashed using the de-facto MD5 method to derive the actual WEP key. - - Index 0 WEP key. This is the WEP key used in most networks. See the + + Index 0 WEP key. This is the WEP key used in most networks. See the "wep-key-type" property for a description of how this key is interpreted. - - Index 1 WEP key. This WEP index is not used by most networks. See the + + Index 1 WEP key. This WEP index is not used by most networks. See the "wep-key-type" property for a description of how this key is interpreted. - - Index 2 WEP key. This WEP index is not used by most networks. See the + + Index 2 WEP key. This WEP index is not used by most networks. See the "wep-key-type" property for a description of how this key is interpreted. - - Index 3 WEP key. This WEP index is not used by most networks. See the + + Index 3 WEP key. This WEP index is not used by most networks. See the "wep-key-type" property for a description of how this key is interpreted. - - When static WEP is used (ie, key-mgmt = "none") and a non-default WEP key + + When static WEP is used (ie, key-mgmt = "none") and a non-default WEP key index is used by the AP, put that WEP key index here. Valid values are 0 (default key) through 3. Note that some consumer access points (like the Linksys WRT54G) number the keys 1 - 4. - - Flags indicating which mode of WPS is to be used if any. + + Flags indicating which mode of WPS is to be used if any. There's little point in changing the default setting as NetworkManager will automatically determine whether it's feasible to start WPS enrollment from @@ -64783,684 +38517,287 @@ WPS can be disabled by setting this property to a value of 1. - - + + - - These flags indicate whether FILS must be enabled. - - use the default value - - - disable FILS - - - enable FILS if the supplicant and the AP support it - - - require FILS and fail if not available + + These flags indicate whether FILS must be enabled. + + use the default value + + + disable FILS + + + enable FILS if the supplicant and the AP support it + + + require FILS and fail if not available - - These flags indicate whether PMF must be enabled. - - use the default value - - - disable PMF - - - enable PMF if the supplicant and the AP support it - - - require PMF and fail if not available + + These flags indicate whether PMF must be enabled. + + use the default value + + + disable PMF + + + enable PMF if the supplicant and the AP support it + + + require PMF and fail if not available - - Configure the use of WPS by a connection while it activates. + + Configure the use of WPS by a connection while it activates. Note: prior to 1.16, this was a GEnum type instead of a GFlags type although, with the same numeric values. - - Attempt whichever method AP supports - - - WPS can not be used. - - - Use WPS, any method - - - use WPS push-button method - - - use PIN method + + Attempt whichever method AP supports + + + WPS can not be used. + + + Use WPS, any method + + + use WPS push-button method + + + use PIN method - - Options for #NMSettingWireless:wake-on-wlan. Note that not all options + + Options for #NMSettingWireless:wake-on-wlan. Note that not all options are supported by all devices. - - Wake on any activity - - - Wake on disconnect - - - Wake on magic packet - - - Wake on GTK rekey failure - - - Wake on EAP identity request - - - Wake on 4way handshake - - - Wake on rfkill release - - - - - Wake on all events. This does not + + Wake on any activity + + + Wake on disconnect + + + Wake on magic packet + + + Wake on GTK rekey failure + + + Wake on EAP identity request + + + Wake on 4way handshake + + + Wake on rfkill release + + + + + Wake on all events. This does not include the exclusive flags @NM_SETTING_WIRELESS_WAKE_ON_WLAN_DEFAULT or @NM_SETTING_WIRELESS_WAKE_ON_WLAN_IGNORE. - - Use the default value - - - Don't change configured settings + + Use the default value + + + Don't change configured settings - - IEEE 802.15.4 (WPAN) MAC Settings - - - Creates a new #NMSettingWpan object with default values. - + + IEEE 802.15.4 (WPAN) MAC Settings + + + Creates a new #NMSettingWpan object with default values. + - the new empty #NMSettingWpan object + the new empty #NMSettingWpan object - - - - the #NMSettingWpan:channel property of the setting + + + + the #NMSettingWpan:channel property of the setting - the #NMSettingWpan + the #NMSettingWpan - - + + - the #NMSettingWpan:mac-address property of the setting + the #NMSettingWpan:mac-address property of the setting - the #NMSettingWpan + the #NMSettingWpan - - + + - the #NMSettingWpan:page property of the setting + the #NMSettingWpan:page property of the setting - the #NMSettingWpan + the #NMSettingWpan - - + + - the #NMSettingWpan:pan-id property of the setting + the #NMSettingWpan:pan-id property of the setting - the #NMSettingWpan + the #NMSettingWpan - - + + - the #NMSettingWpan:short-address property of the setting + the #NMSettingWpan:short-address property of the setting - the #NMSettingWpan + the #NMSettingWpan - - IEEE 802.15.4 channel. A positive integer or -1, meaning "do not + + IEEE 802.15.4 channel. A positive integer or -1, meaning "do not set, use whatever the device is already set to". - - If specified, this connection will only apply to the IEEE 802.15.4 (WPAN) + + If specified, this connection will only apply to the IEEE 802.15.4 (WPAN) MAC layer device whose permanent MAC address matches. - - IEEE 802.15.4 channel page. A positive integer or -1, meaning "do not + + IEEE 802.15.4 channel page. A positive integer or -1, meaning "do not set, use whatever the device is already set to". - - IEEE 802.15.4 Personal Area Network (PAN) identifier. + + IEEE 802.15.4 Personal Area Network (PAN) identifier. - - Short IEEE 802.15.4 address to be used within a restricted environment. + + Short IEEE 802.15.4 address to be used within a restricted environment. - - + + - - Numeric flags for the "flags" argument of AddConnection2() D-Bus API. - - an alias for numeric zero, no flags set. - - - to persist the connection to disk. - - - to make the connection in-memory only. - - - usually, when the connection + + Numeric flags for the "flags" argument of AddConnection2() D-Bus API. + + an alias for numeric zero, no flags set. + + + to persist the connection to disk. + + + to make the connection in-memory only. + + + usually, when the connection has autoconnect enabled and gets added, it becomes eligible to autoconnect right away. Setting this flag, disables autoconnect until the connection is manually activated. - - Flags describing the current activation state. - - an alias for numeric zero, no flags set. - - - the connection is not saved to disk. + + Flags describing the current activation state. + + an alias for numeric zero, no flags set. + + + the connection is not saved to disk. That either means, that the connection is in-memory only and currently is not backed by a file. Or, that the connection is backed by a file, but has modifications in-memory that were not persisted to disk. - - A connection is "nm-generated" if + + A connection is "nm-generated" if it was generated by NetworkManger. If the connection gets modified or saved by the user, the flag gets cleared. A nm-generated is also unsaved and has no backing file as it is in-memory only. - - The connection will be deleted + + The connection will be deleted when it disconnects. That is for in-memory connections (unsaved), which are currently active but deleted on disconnect. Volatile connections are always unsaved, but they are also no backing file on disk and are entirely in-memory only. - - the profile was generated to represent + + the profile was generated to represent an external configuration of a networking device. Since: 1.26. - - Errors related to the settings/persistent configuration interface of + + Errors related to the settings/persistent configuration interface of NetworkManager. These may be returned from #NMClient methods that invoke D-Bus operations on the "org.freedesktop.NetworkManager.Settings" interface, and correspond to D-Bus errors in that namespace. - - unknown or unclassified error - - - permission denied - - - the requested operation is not supported by any + + unknown or unclassified error + + + permission denied + + + the requested operation is not supported by any active settings backend - - the connection was invalid - - - attempted to modify a read-only connection - - - a connection with that UUID already exists - - - attempted to set an invalid hostname - - - invalid arguments - - - The profile's VersionId mismatched + + the connection was invalid + + + attempted to modify a read-only connection + + + a connection with that UUID already exists + + + attempted to set an invalid hostname + + + invalid arguments + + + The profile's VersionId mismatched and the update is rejected. See the "version-id" argument to Update2() method. Since 1.44. - - the requested operation is not + + the requested operation is not supported by the settings plugin currently in use for the specified object. Since: 1.44. @@ -65470,37 +38807,15 @@ D-Bus errors in that namespace. - - - an alias for numeric zero, no flags set. - - - to persist the connection to disk. - - - makes the profile in-memory. + + + an alias for numeric zero, no flags set. + + + to persist the connection to disk. + + + makes the profile in-memory. Note that such profiles are stored in keyfile format under /run. If the file is already in-memory, the file in /run is updated in-place. Otherwise, the previous storage for the profile is left unchanged @@ -65512,14 +38827,8 @@ D-Bus errors in that namespace. and persistent storage are deleted (or if the persistent storage does not allow deletion, and nmmeta file is written to mark the UUID as deleted). - - this is almost the same + + this is almost the same as %NM_SETTINGS_UPDATE2_FLAG_IN_MEMORY, with one difference: when later deleting the profile, the original profile will not be deleted. Instead a nmmeta file is written to /run to indicate that the profile is gone. @@ -65527,26 +38836,14 @@ D-Bus errors in that namespace. storage, then when re-adding the profile with the same UUID, then the original storage is taken over again. - - this is like %NM_SETTINGS_UPDATE2_FLAG_IN_MEMORY, + + this is like %NM_SETTINGS_UPDATE2_FLAG_IN_MEMORY, but if the connection has a corresponding file on persistent storage, the file will be deleted right away. If the profile is later again persisted to disk, a new, unused filename will be chosen. - - This can be specified with either + + This can be specified with either %NM_SETTINGS_UPDATE2_FLAG_IN_MEMORY, %NM_SETTINGS_UPDATE2_FLAG_IN_MEMORY_DETACHED or %NM_SETTINGS_UPDATE2_FLAG_IN_MEMORY_ONLY. After making the connection in-memory only, the connection is marked @@ -65556,26 +38853,14 @@ D-Bus errors in that namespace. again (because it's about to be deleted), but a manual activation will clear the volatile flag. - - usually, when the connection + + usually, when the connection has autoconnect enabled and is modified, it becomes eligible to autoconnect right away. Setting this flag, disables autoconnect until the connection is manually activated. - - when a profile gets modified that is + + when a profile gets modified that is currently active, then these changes don't take effect for the active device unless the profile gets reactivated or the configuration reapplied. There are two exceptions: by default "connection.zone" and "connection.metered" @@ -65584,1174 +38869,676 @@ D-Bus errors in that namespace. the profile. Since: 1.20. - - + + - Creates a new #NMSimpleConnection object with no #NMSetting objects. - + Creates a new #NMSimpleConnection object with no #NMSetting objects. + - the new empty #NMConnection object + the new empty #NMConnection object - Clones an #NMConnection as an #NMSimpleConnection. - + Clones an #NMConnection as an #NMSimpleConnection. + - a new #NMConnection containing the same settings + a new #NMConnection containing the same settings and properties as the source #NMConnection - the #NMConnection to clone + the #NMConnection to clone - - Creates a new #NMSimpleConnection from a hash table describing the + + Creates a new #NMSimpleConnection from a hash table describing the connection and normalize the connection. See nm_connection_to_dbus() for a description of the expected hash table. - + - the new #NMSimpleConnection object, populated with + the new #NMSimpleConnection object, populated with settings created from the values in the hash table, or %NULL if the connection failed to normalize. - a #GVariant of type %NM_VARIANT_TYPE_CONNECTION describing the connection + a #GVariant of type %NM_VARIANT_TYPE_CONNECTION describing the connection - - + + - - - don't modify current encap-mode - - - disable encapsulation mode - - - enable encapsulation mode + + + don't modify current encap-mode + + + disable encapsulation mode + + + enable encapsulation mode - - - don't modify current inline-mode - - - don't use inline mode - - - L2 mode - - - L3 mode - - - L4 mode + + + don't modify current inline-mode + + + don't use inline mode + + + L2 mode + + + L3 mode + + + L4 mode - - - don't modify current eswitch mode - - - use legacy SRIOV - - - use switchdev mode + + + don't modify current eswitch mode + + + use legacy SRIOV + + + use switchdev mode - - + + - Creates a new #NMSriovVF object. - + Creates a new #NMSriovVF object. + - the new #NMSriovVF object. + the new #NMSriovVF object. - the VF index + the VF index - - Adds a VLAN to the VF. Currently kernel only supports one VLAN per VF. - - - %TRUE if the VLAN was added; %FALSE if it already existed + + Adds a VLAN to the VF. Currently kernel only supports one VLAN per VF. + + + %TRUE if the VLAN was added; %FALSE if it already existed - the #NMSriovVF + the #NMSriovVF - the VLAN id + the VLAN id - Creates a copy of @vf. - + Creates a copy of @vf. + - a copy of @vf + a copy of @vf - the #NMSriovVF + the #NMSriovVF - Determines if two #NMSriovVF objects have the same index, + Determines if two #NMSriovVF objects have the same index, attributes and VLANs. - + - %TRUE if the objects contain the same values, %FALSE + %TRUE if the objects contain the same values, %FALSE if they do not. - the #NMSriovVF + the #NMSriovVF - the #NMSriovVF to compare @vf to. + the #NMSriovVF to compare @vf to. - - Gets the value of the attribute with name @name on @vf - + + Gets the value of the attribute with name @name on @vf + - the value of the attribute with name @name on + the value of the attribute with name @name on @vf, or %NULL if @vf has no such attribute. - the #NMSriovVF + the #NMSriovVF - the name of a VF attribute + the name of a VF attribute - - Gets an array of attribute names defined on @vf. - + + Gets an array of attribute names defined on @vf. + - a %NULL-terminated array of attribute names + a %NULL-terminated array of attribute names - the #NMSriovVF + the #NMSriovVF - - Gets the index property of this VF object. - + + Gets the index property of this VF object. + - the VF index + the VF index - the #NMSriovVF + the #NMSriovVF - - Returns the VLANs currently configured on the VF. Currently kernel only + + Returns the VLANs currently configured on the VF. Currently kernel only supports one VLAN per VF. - + - a list of VLAN ids configured on the VF. + a list of VLAN ids configured on the VF. - the #NMSriovVF + the #NMSriovVF - - on return, the number of VLANs configured + + on return, the number of VLANs configured - - Returns the configured protocol for the given VLAN. - + + Returns the configured protocol for the given VLAN. + - the configured protocol + the configured protocol - the #NMSriovVF + the #NMSriovVF - the VLAN id + the VLAN id - - Returns the QoS value for the given VLAN. - + + Returns the QoS value for the given VLAN. + - the QoS value + the QoS value - the #NMSriovVF + the #NMSriovVF - the VLAN id + the VLAN id - Increases the reference count of the object. - + Increases the reference count of the object. + - the #NMSriovVF + the #NMSriovVF - - Removes a VLAN from a VF. - + + Removes a VLAN from a VF. + - %TRUE if the VLAN was removed, %FALSE if the VLAN @vlan_id + %TRUE if the VLAN was removed, %FALSE if the VLAN @vlan_id did not belong to the VF. - the #NMSriovVF + the #NMSriovVF - the VLAN id + the VLAN id - - Sets the named attribute on @vf to the given value. - + + Sets the named attribute on @vf to the given value. + - the #NMSriovVF + the #NMSriovVF - the name of a route attribute + the name of a route attribute - - the value + + the value - - Sets the protocol for the given VLAN. - + + Sets the protocol for the given VLAN. + - the #NMSriovVF + the #NMSriovVF - the VLAN id + the VLAN id - the VLAN protocol + the VLAN protocol - - Sets a QoS value for the given VLAN. - + + Sets a QoS value for the given VLAN. + - the #NMSriovVF + the #NMSriovVF - the VLAN id + the VLAN id - a QoS (priority) value + a QoS (priority) value - Decreases the reference count of the object. If the reference count + Decreases the reference count of the object. If the reference count reaches zero, the object will be destroyed. - + - the #NMSriovVF + the #NMSriovVF - - Validates a VF attribute, i.e. checks that the attribute is a known one, + + Validates a VF attribute, i.e. checks that the attribute is a known one, the value is of the correct type and well-formed. - + - %TRUE if the attribute is valid, %FALSE otherwise + %TRUE if the attribute is valid, %FALSE otherwise - the attribute name + the attribute name - the attribute value + the attribute value - - on return, whether the attribute name is a known one + + on return, whether the attribute name is a known one - - #NMSriovVFVlanProtocol indicates the VLAN protocol to use. - - use 802.1Q - - - use 802.1ad + + #NMSriovVFVlanProtocol indicates the VLAN protocol to use. + + use 802.1Q + + + use 802.1ad - - #NMState values indicate the current overall networking state. - - Networking state is unknown. This indicates a daemon error + + #NMState values indicate the current overall networking state. + + Networking state is unknown. This indicates a daemon error that makes it unable to reasonably assess the state. In such event the applications are expected to assume Internet connectivity might be present and not disable controls that require network access. The graphical shells may hide the network accessibility indicator altogether since no meaningful status indication can be provided. - - Networking is not enabled, the system is being suspended or + + Networking is not enabled, the system is being suspended or resumed from suspend. - - There is no active network connection. + + There is no active network connection. The graphical shell should indicate no network connectivity and the applications should not attempt to access the network. - - Network connections are being cleaned up. + + Network connections are being cleaned up. The applications should tear down their network sessions. - - A network connection is being started + + A network connection is being started The graphical shell should indicate the network is being connected while the applications should still make no attempts to connect the network. - - There is only local IPv4 and/or IPv6 connectivity, + + There is only local IPv4 and/or IPv6 connectivity, but no default route to access the Internet. The graphical shell should indicate no network connectivity. - - There is only site-wide IPv4 and/or IPv6 connectivity. + + There is only site-wide IPv4 and/or IPv6 connectivity. This means a default route is available, but the Internet connectivity check (see "Connectivity" property) did not succeed. The graphical shell should indicate limited network connectivity. - - There is global IPv4 and/or IPv6 Internet connectivity + + There is global IPv4 and/or IPv6 Internet connectivity This means the Internet connectivity check succeeded, the graphical shell should indicate full network connectivity. - - - - Creates a new #NMTCAction object. - + + + + Creates a new #NMTCAction object. + - the new #NMTCAction object, or %NULL on error + the new #NMTCAction object, or %NULL on error - name of the queueing discipline + name of the queueing discipline - Creates a copy of @action - + Creates a copy of @action + - a copy of @action + a copy of @action - the #NMTCAction + the #NMTCAction - Determines if two #NMTCAction objects contain the same kind, family, + Determines if two #NMTCAction objects contain the same kind, family, handle, parent and info. - + - %TRUE if the objects contain the same values, %FALSE if they do not. + %TRUE if the objects contain the same values, %FALSE if they do not. - the #NMTCAction + the #NMTCAction - the #NMTCAction to compare @action to. + the #NMTCAction to compare @action to. - - Gets the value of the attribute with name @name on @action - + + Gets the value of the attribute with name @name on @action + - the value of the attribute with name @name on + the value of the attribute with name @name on @action, or %NULL if @action has no such attribute. - the #NMTCAction + the #NMTCAction - the name of an action attribute + the name of an action attribute - - Gets an array of attribute names defined on @action. - + + Gets an array of attribute names defined on @action. + - a %NULL-terminated array of attribute names, + a %NULL-terminated array of attribute names, - the #NMTCAction + the #NMTCAction - - + + - the #NMTCAction + the #NMTCAction - Increases the reference count of the object. - + Increases the reference count of the object. + - the #NMTCAction + the #NMTCAction - - Sets or clears the named attribute on @action to the given value. - + + Sets or clears the named attribute on @action to the given value. + - the #NMTCAction + the #NMTCAction - the name of an action attribute + the name of an action attribute - - the value + + the value - Decreases the reference count of the object. If the reference count + Decreases the reference count of the object. If the reference count reaches zero, the object will be destroyed. - + - the #NMTCAction + the #NMTCAction - - - - Creates a new #NMTCQdisc object. - + + + + Creates a new #NMTCQdisc object. + - the new #NMTCQdisc object, or %NULL on error + the new #NMTCQdisc object, or %NULL on error - name of the queueing discipline + name of the queueing discipline - the parent queueing discipline + the parent queueing discipline - Creates a copy of @qdisc - + Creates a copy of @qdisc + - a copy of @qdisc + a copy of @qdisc - the #NMTCQdisc + the #NMTCQdisc - Determines if two #NMTCQdisc objects contain the same kind, * handle + Determines if two #NMTCQdisc objects contain the same kind, * handle and parent. - + - %TRUE if the objects contain the same values, %FALSE if they do not. + %TRUE if the objects contain the same values, %FALSE if they do not. - the #NMTCQdisc + the #NMTCQdisc - the #NMTCQdisc to compare @qdisc to. + the #NMTCQdisc to compare @qdisc to. - - Gets the value of the attribute with name @name on @qdisc - + + Gets the value of the attribute with name @name on @qdisc + - the value of the attribute with name @name on + the value of the attribute with name @name on @qdisc, or %NULL if @qdisc has no such attribute. - the #NMTCQdisc + the #NMTCQdisc - the name of an qdisc attribute + the name of an qdisc attribute - - Gets an array of attribute names defined on @qdisc. - + + Gets an array of attribute names defined on @qdisc. + - a %NULL-terminated array of attribute names + a %NULL-terminated array of attribute names or %NULL if no attributes are set. @@ -66759,1035 +39546,649 @@ and parent. - the #NMTCQdisc + the #NMTCQdisc - - + + - the queueing discipline handle + the queueing discipline handle - the #NMTCQdisc + the #NMTCQdisc - - + + - the #NMTCQdisc + the #NMTCQdisc - - + + - the parent class + the parent class - the #NMTCQdisc + the #NMTCQdisc - Increases the reference count of the object. - + Increases the reference count of the object. + - the #NMTCQdisc + the #NMTCQdisc - - Sets or clears the named attribute on @qdisc to the given value. - + + Sets or clears the named attribute on @qdisc to the given value. + - the #NMTCQdisc + the #NMTCQdisc - the name of an qdisc attribute + the name of an qdisc attribute - - the value + + the value - - Sets the queueing discipline handle. - + + Sets the queueing discipline handle. + - the #NMTCQdisc + the #NMTCQdisc - the queueing discipline handle + the queueing discipline handle - Decreases the reference count of the object. If the reference count + Decreases the reference count of the object. If the reference count reaches zero, the object will be destroyed. - + - the #NMTCQdisc + the #NMTCQdisc - - - - Creates a new #NMTCTfilter object. - + + + + Creates a new #NMTCTfilter object. + - the new #NMTCTfilter object, or %NULL on error + the new #NMTCTfilter object, or %NULL on error - name of the queueing discipline + name of the queueing discipline - the parent queueing discipline + the parent queueing discipline - Creates a copy of @tfilter - + Creates a copy of @tfilter + - a copy of @tfilter + a copy of @tfilter - the #NMTCTfilter + the #NMTCTfilter - Determines if two #NMTCTfilter objects contain the same kind, family, + Determines if two #NMTCTfilter objects contain the same kind, family, handle, parent and info. - + - %TRUE if the objects contain the same values, %FALSE if they do not. + %TRUE if the objects contain the same values, %FALSE if they do not. - the #NMTCTfilter + the #NMTCTfilter - the #NMTCTfilter to compare @tfilter to. + the #NMTCTfilter to compare @tfilter to. - - + + - the action associated with a traffic filter. + the action associated with a traffic filter. - the #NMTCTfilter + the #NMTCTfilter - - + + - the queueing discipline handle + the queueing discipline handle - the #NMTCTfilter + the #NMTCTfilter - - + + - the #NMTCTfilter + the #NMTCTfilter - - + + - the parent class + the parent class - the #NMTCTfilter + the #NMTCTfilter - Increases the reference count of the object. - + Increases the reference count of the object. + - the #NMTCTfilter + the #NMTCTfilter - - Sets the action associated with a traffic filter. - + + Sets the action associated with a traffic filter. + - the #NMTCTfilter + the #NMTCTfilter - the action object + the action object - - Sets the queueing discipline handle. - + + Sets the queueing discipline handle. + - the #NMTCTfilter + the #NMTCTfilter - the queueing discipline handle + the queueing discipline handle - Decreases the reference count of the object. If the reference count + Decreases the reference count of the object. If the reference count reaches zero, the object will be destroyed. - + - the #NMTCTfilter + the #NMTCTfilter - - - - - - - - - - - - - - - - Creates a new arp_ping #NMTeamLinkWatcher object - + + + + + + + + + + + + + + + + Creates a new arp_ping #NMTeamLinkWatcher object + - the new #NMTeamLinkWatcher object, or %NULL on error + the new #NMTeamLinkWatcher object, or %NULL on error - init_wait value + init_wait value - interval value + interval value - missed_max value + missed_max value - the host name or the ip address that will be used as destination + the host name or the ip address that will be used as destination address in the arp request - the host name or the ip address that will be used as source + the host name or the ip address that will be used as source address in the arp request - the watcher #NMTeamLinkWatcherArpPingFlags - + the watcher #NMTeamLinkWatcherArpPingFlags + - - Creates a new arp_ping #NMTeamLinkWatcher object - + + Creates a new arp_ping #NMTeamLinkWatcher object + - the new #NMTeamLinkWatcher object, or %NULL on error + the new #NMTeamLinkWatcher object, or %NULL on error - init_wait value + init_wait value - interval value + interval value - missed_max value + missed_max value - vlanid value + vlanid value - the host name or the ip address that will be used as destination + the host name or the ip address that will be used as destination address in the arp request - the host name or the ip address that will be used as source + the host name or the ip address that will be used as source address in the arp request - the watcher #NMTeamLinkWatcherArpPingFlags - + the watcher #NMTeamLinkWatcherArpPingFlags + - - Creates a new ethtool #NMTeamLinkWatcher object - + + Creates a new ethtool #NMTeamLinkWatcher object + - the new #NMTeamLinkWatcher object + the new #NMTeamLinkWatcher object - delay_up value + delay_up value - delay_down value + delay_down value - - Creates a new nsna_ping #NMTeamLinkWatcher object - + + Creates a new nsna_ping #NMTeamLinkWatcher object + - the new #NMTeamLinkWatcher object, or %NULL on error + the new #NMTeamLinkWatcher object, or %NULL on error - init_wait value + init_wait value - interval value + interval value - missed_max value + missed_max value - the host name or the ipv6 address that will be used as + the host name or the ipv6 address that will be used as target address in the NS packet - - Creates a copy of @watcher - + + Creates a copy of @watcher + - a copy of @watcher + a copy of @watcher - the #NMTeamLinkWatcher + the #NMTeamLinkWatcher - - Determines if two #NMTeamLinkWatcher objects contain the same values + + Determines if two #NMTeamLinkWatcher objects contain the same values in all the properties. - + - %TRUE if the objects contain the same values, %FALSE if they do not. + %TRUE if the objects contain the same values, %FALSE if they do not. - the #NMTeamLinkWatcher + the #NMTeamLinkWatcher - the #NMTeamLinkWatcher to compare @watcher to. + the #NMTeamLinkWatcher to compare @watcher to. - - Gets the delay_down interval (in milliseconds) that elapses between the link + + Gets the delay_down interval (in milliseconds) that elapses between the link going down and the runner being notified about it. - + - the #NMTeamLinkWatcher + the #NMTeamLinkWatcher - - Gets the delay_up interval (in milliseconds) that elapses between the link + + Gets the delay_up interval (in milliseconds) that elapses between the link coming up and the runner being notified about it. - + - the #NMTeamLinkWatcher + the #NMTeamLinkWatcher - - Gets the arp ping watcher flags. - + + Gets the arp ping watcher flags. + - + - the #NMTeamLinkWatcher + the #NMTeamLinkWatcher - - Gets the init_wait interval (in milliseconds) that the team slave should + + Gets the init_wait interval (in milliseconds) that the team slave should wait before sending the first packet to the target host. - + - the #NMTeamLinkWatcher + the #NMTeamLinkWatcher - - Gets the interval (in milliseconds) that the team slave should wait between + + Gets the interval (in milliseconds) that the team slave should wait between sending two check packets to the target host. - + - the #NMTeamLinkWatcher + the #NMTeamLinkWatcher - - Gets the number of missed replies after which the link is considered down. - + + Gets the number of missed replies after which the link is considered down. + - the #NMTeamLinkWatcher + the #NMTeamLinkWatcher - - Gets the name of the link watcher to be used. - + + Gets the name of the link watcher to be used. + - the #NMTeamLinkWatcher + the #NMTeamLinkWatcher - - Gets the ip address to be used as source for the link probing packets. - + + Gets the ip address to be used as source for the link probing packets. + - the #NMTeamLinkWatcher + the #NMTeamLinkWatcher - - Gets the host name/ip address to be used as destination for the link probing + + Gets the host name/ip address to be used as destination for the link probing packets. - + - the #NMTeamLinkWatcher + the #NMTeamLinkWatcher - - Gets the VLAN tag ID to be used to outgoing link probes - + + Gets the VLAN tag ID to be used to outgoing link probes + - the #NMTeamLinkWatcher + the #NMTeamLinkWatcher - - Increases the reference count of the object. + + Increases the reference count of the object. Since 1.20, ref-counting of #NMTeamLinkWatcher is thread-safe. - + - the #NMTeamLinkWatcher + the #NMTeamLinkWatcher - - Decreases the reference count of the object. If the reference count + + Decreases the reference count of the object. If the reference count reaches zero, the object will be destroyed. Since 1.20, ref-counting of #NMTeamLinkWatcher is thread-safe. - + - the #NMTeamLinkWatcher + the #NMTeamLinkWatcher - - - the arp_ping link watcher + + + the arp_ping link watcher option 'validate_active' is enabled (set to true). - - the arp_ping link watcher + + the arp_ping link watcher option 'validate_inactive' is enabled (set to true). - - the arp_ping link watcher option + + the arp_ping link watcher option 'send_always' is enabled (set to true). - - An boolean value that can be overridden by a default. - - use the globally-configured default value. - - - the option is disabled. - - - the option is enabled. + + An boolean value that can be overridden by a default. + + use the globally-configured default value. + + + the option is disabled. + + + the option is enabled. - - The maximum length of hardware addresses handled by NetworkManager itself, + + The maximum length of hardware addresses handled by NetworkManager itself, nm_utils_hwaddr_len(), and nm_utils_hwaddr_aton(). - + @@ -67796,23 +40197,15 @@ nm_utils_hwaddr_len(), and nm_utils_hwaddr_aton(). - + - + - + @@ -67821,838 +40214,459 @@ nm_utils_hwaddr_len(), and nm_utils_hwaddr_aton(). - + - - This function takes a string argument and returns either %TRUE or %FALSE. + + This function takes a string argument and returns either %TRUE or %FALSE. It is a general purpose predicate, for example used by nm_setting_option_clear_by_name(). - %TRUE if the predicate function matches. + %TRUE if the predicate function matches. - the name to check. + the name to check. - - Describes generic security mechanisms that 802.11 access points may offer. + + Describes generic security mechanisms that 802.11 access points may offer. Used with nm_utils_security_valid() for checking whether a given access point is compatible with a network device. - - unknown or invalid security, placeholder and not used - - - unencrypted and open - - - static WEP keys are used for encryption - - - Cisco LEAP is used for authentication and for generating the + + unknown or invalid security, placeholder and not used + + + unencrypted and open + + + static WEP keys are used for encryption + + + Cisco LEAP is used for authentication and for generating the dynamic WEP keys automatically - - standard 802.1x is used for authentication and + + standard 802.1x is used for authentication and generating the dynamic WEP keys automatically - - WPA1 is used with Pre-Shared Keys (PSK) - - - WPA1 is used with 802.1x authentication - - - WPA2/RSN is used with Pre-Shared Keys (PSK) - - - WPA2 is used with 802.1x authentication - - - is used with WPA3 Enterprise - - - is used with Enhanced Open - - - is used with WPA3 Enterprise Suite-B 192 bit mode. Since: 1.30. + + WPA1 is used with Pre-Shared Keys (PSK) + + + WPA1 is used with 802.1x authentication + + + WPA2/RSN is used with Pre-Shared Keys (PSK) + + + WPA2 is used with 802.1x authentication + + + is used with WPA3 Enterprise + + + is used with Enhanced Open + + + is used with WPA3 Enterprise Suite-B 192 bit mode. Since: 1.30. - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - %_NM_VERSION_INFO_CAPABILITY_UNUSED: a dummy capability. It has no meaning, + + %_NM_VERSION_INFO_CAPABILITY_UNUSED: a dummy capability. It has no meaning, don't use it. Currently no enum values are defined. These capabilities are exposed on D-Bus in the "VersionInfo" bit field. - + - - #NMVlanFlags values control the behavior of the VLAN interface. - - indicates that this interface should reorder + + #NMVlanFlags values control the behavior of the VLAN interface. + + indicates that this interface should reorder outgoing packet headers to look more like a non-VLAN Ethernet interface - - indicates that this interface should use GVRP to register + + indicates that this interface should use GVRP to register itself with its switch - - indicates that this interface's operating + + indicates that this interface's operating state is tied to the underlying network interface but other details (like routing) are not. - - indicates that this interface should use MVRP to register + + indicates that this interface should use MVRP to register itself with its switch - - A selector for traffic priority maps; these map Linux SKB priorities + + A selector for traffic priority maps; these map Linux SKB priorities to 802.1p priorities used in VLANs. - - map for incoming data - - - map for outgoing data + + map for incoming data + + + map for outgoing data - - - - Gets the VPN login banner of the active #NMVpnConnection. - - - the VPN login banner of the VPN connection. This is the internal + + + + Gets the VPN login banner of the active #NMVpnConnection. + + + the VPN login banner of the VPN connection. This is the internal string used by the connection, and must not be modified. - a #NMVpnConnection + a #NMVpnConnection - - Gets the current #NMVpnConnection state. - + + Gets the current #NMVpnConnection state. + - the VPN state of the active VPN connection. + the VPN state of the active VPN connection. - a #NMVpnConnection + a #NMVpnConnection - - The VPN login banner of the active VPN connection. + + The VPN login banner of the active VPN connection. - - The VPN state of the active VPN connection. + + The VPN state of the active VPN connection. @@ -68669,237 +40683,95 @@ string used by the connection, and must not be modified. - - + + - - VPN connection states - - The state of the VPN connection is + + VPN connection states + + The state of the VPN connection is unknown. - - The VPN connection is preparing to + + The VPN connection is preparing to connect. - - The VPN connection needs authorization + + The VPN connection needs authorization credentials. - - The VPN connection is being established. - - - The VPN connection is getting an IP + + The VPN connection is being established. + + + The VPN connection is getting an IP address. - - The VPN connection is active. - - - The VPN connection failed. - - - The VPN connection is disconnected. + + The VPN connection is active. + + + The VPN connection failed. + + + The VPN connection is disconnected. - - VPN connection state reasons - - The reason for the VPN connection + + VPN connection state reasons + + The reason for the VPN connection state change is unknown. - - No reason was given for the VPN + + No reason was given for the VPN connection state change. - - The VPN connection changed + + The VPN connection changed state because the user disconnected it. - - The VPN connection + + The VPN connection changed state because the device it was using was disconnected. - - The service providing the + + The service providing the VPN connection was stopped. - - The IP config of the VPN + + The IP config of the VPN connection was invalid. - - The connection attempt to + + The connection attempt to the VPN service timed out. - - A timeout occurred + + A timeout occurred while starting the service providing the VPN connection. - - Starting the service + + Starting the service starting the service providing the VPN connection failed. - - Necessary secrets for the VPN + + Necessary secrets for the VPN connection were not provided. - - Authentication to the VPN + + Authentication to the VPN server failed. - - The connection was + + The connection was deleted from settings. - - + + - + @@ -68910,25 +40782,19 @@ string used by the connection, and must not be modified. - + - the #NMVpnEditor + the #NMVpnEditor - - + + @@ -68942,25 +40808,19 @@ string used by the connection, and must not be modified. - + - the #NMVpnEditor + the #NMVpnEditor - - + + @@ -68979,32 +40839,22 @@ string used by the connection, and must not be modified. - - Interface for editing a specific #NMConnection - + + Interface for editing a specific #NMConnection + - the parent interface + the parent interface - + - the #NMVpnEditor + the #NMVpnEditor @@ -69012,8 +40862,7 @@ string used by the connection, and must not be modified. - + @@ -69021,8 +40870,7 @@ string used by the connection, and must not be modified. - + @@ -69038,8 +40886,7 @@ string used by the connection, and must not be modified. - + @@ -69051,21 +40898,10 @@ string used by the connection, and must not be modified. - - - - Load the shared library @plugin_name and create a new + + + + Load the shared library @plugin_name and create a new #NMVpnEditorPlugin instance via the #NMVpnEditorPluginFactory function. @@ -69073,39 +40909,27 @@ This is similar to nm_vpn_editor_plugin_load_from_file(), but it does no validation of the plugin name, instead passes it directly to dlopen(). If you have the full path to a plugin file, nm_vpn_editor_plugin_load_from_file() is preferred. - + - a new plugin instance or %NULL on error. + a new plugin instance or %NULL on error. - The name of the shared library to load. + The name of the shared library to load. This path will be directly passed to dlopen() without further checks. - if not-null, check that the loaded plugin advertises + if not-null, check that the loaded plugin advertises the given service. - - Load the shared library @plugin_name and create a new + + Load the shared library @plugin_name and create a new #NMVpnEditorPlugin instance via the #NMVpnEditorPluginFactory function. @@ -69114,64 +40938,43 @@ is in the plugin directory of NetworkManager. In any case, the call will do certain checks on the file before passing it to dlopen. A consequence for that is, that you cannot omit the ".so" suffix as you could for nm_vpn_editor_plugin_load(). - + - a new plugin instance or %NULL on error. + a new plugin instance or %NULL on error. - The path or name of the shared library to load. + The path or name of the shared library to load. The path must either be an absolute filename to an existing file. Alternatively, it can be the name (without path) of a library in the plugin directory of NetworkManager. - if not-null, check that the loaded plugin advertises + if not-null, check that the loaded plugin advertises the given service. - if non-negative, check whether the file is owned + if non-negative, check whether the file is owned by UID @check_owner or by root. In this case also check that the file is not writable by anybody else. - - optional callback to validate the file prior to + + optional callback to validate the file prior to loading the shared library. - - - - user data for @check_file + + + + user data for @check_file - + @@ -69188,11 +40991,9 @@ as you could for nm_vpn_editor_plugin_load(). - + - + @@ -69201,33 +41002,24 @@ as you could for nm_vpn_editor_plugin_load(). - + - a new #NMVpnEditor or %NULL on error + a new #NMVpnEditor or %NULL on error - the #NMVpnEditorPlugin + the #NMVpnEditorPlugin - the #NMConnection to be edited + the #NMConnection to be edited - - + + @@ -69241,8 +41033,7 @@ as you could for nm_vpn_editor_plugin_load(). - + @@ -69256,8 +41047,7 @@ as you could for nm_vpn_editor_plugin_load(). - + @@ -69271,8 +41061,7 @@ as you could for nm_vpn_editor_plugin_load(). - + @@ -69285,11 +41074,8 @@ as you could for nm_vpn_editor_plugin_load(). - - + + @@ -69305,13 +41091,10 @@ as you could for nm_vpn_editor_plugin_load(). - - + + - + @@ -69319,56 +41102,38 @@ as you could for nm_vpn_editor_plugin_load(). - - + + - a new #NMVpnEditor or %NULL on error + a new #NMVpnEditor or %NULL on error - the #NMVpnEditorPlugin + the #NMVpnEditorPlugin - the #NMConnection to be edited + the #NMConnection to be edited - - + + - if set, return the #NMVpnPluginInfo instance. + if set, return the #NMVpnPluginInfo instance. - the #NMVpnEditorPlugin instance + the #NMVpnEditorPlugin instance - - + + @@ -69381,207 +41146,119 @@ as you could for nm_vpn_editor_plugin_load(). - - Returns an opaque VT function table for the plugin to extend + + Returns an opaque VT function table for the plugin to extend functionality. The actual meaning of NMVpnEditorPluginVT is not defined in public API of libnm, instead it must be agreed by both the plugin and the caller. See the header-only file 'nm-vpn-editor-plugin-call.h' which defines the meaning. - + - the actual size of the @plugin's virtual function table. + the actual size of the @plugin's virtual function table. - the #NMVpnEditorPlugin + the #NMVpnEditorPlugin - - buffer to be filled with the VT table of the plugin + + buffer to be filled with the VT table of the plugin - the size of the buffer. Can be 0 to only query the + the size of the buffer. Can be 0 to only query the size of plugin's VT. - - + + - a new #NMConnection imported from @path, or %NULL + a new #NMConnection imported from @path, or %NULL on error or if the file at @path was not recognized by this plugin - the #NMVpnEditorPlugin + the #NMVpnEditorPlugin - full path to the file to attempt to read into a new #NMConnection + full path to the file to attempt to read into a new #NMConnection - - Set or clear the plugin-info instance. + + Set or clear the plugin-info instance. This takes a weak reference on @plugin_info, to avoid circular reference as the plugin-info might also reference the editor-plugin. - + - the #NMVpnEditorPlugin instance + the #NMVpnEditorPlugin instance - - a #NMVpnPluginInfo instance or %NULL + + a #NMVpnPluginInfo instance or %NULL - - Longer description of the VPN plugin. + + Longer description of the VPN plugin. - Short display name of the VPN plugin. + Short display name of the VPN plugin. - D-Bus service name of the plugin's VPN service. + D-Bus service name of the plugin's VPN service. - - Flags that indicate certain capabilities of the plugin to editor programs. - - unknown or no capability - - - the plugin can import new connections - - - the plugin can export connections - - - the plugin supports IPv6 addressing + + Flags that indicate certain capabilities of the plugin to editor programs. + + unknown or no capability + + + the plugin can import new connections + + + the plugin can export connections + + + the plugin supports IPv6 addressing - - Interface for VPN editor plugins. - + + Interface for VPN editor plugins. + - the parent interface + the parent interface - + - a new #NMVpnEditor or %NULL on error + a new #NMVpnEditor or %NULL on error - the #NMVpnEditorPlugin + the #NMVpnEditorPlugin - the #NMConnection to be edited + the #NMConnection to be edited @@ -69589,11 +41266,9 @@ reference as the plugin-info might also reference the editor-plugin. - + - + @@ -69604,8 +41279,7 @@ reference as the plugin-info might also reference the editor-plugin. - + @@ -69621,8 +41295,7 @@ reference as the plugin-info might also reference the editor-plugin. - + @@ -69641,8 +41314,7 @@ reference as the plugin-info might also reference the editor-plugin. - + @@ -69658,8 +41330,7 @@ reference as the plugin-info might also reference the editor-plugin. - + @@ -69675,11 +41346,9 @@ reference as the plugin-info might also reference the editor-plugin. - + - + @@ -69692,153 +41361,72 @@ reference as the plugin-info might also reference the editor-plugin. - - + + - + - the name of the data or secret item + the name of the data or secret item - the value of the data or secret item + the value of the data or secret item - - User data passed to nm_setting_vpn_foreach_data_item() or + + User data passed to nm_setting_vpn_foreach_data_item() or nm_setting_vpn_foreach_secret() - - Returned by the VPN service plugin to indicate errors. These codes correspond + + Returned by the VPN service plugin to indicate errors. These codes correspond to errors in the "org.freedesktop.NetworkManager.VPN.Error" namespace. - - unknown or unclassified error - - - the plugin is already starting, + + unknown or unclassified error + + + the plugin is already starting, and another connect request was received - - the plugin is already connected, and + + the plugin is already connected, and another connect request was received - - the plugin is already stopping, + + the plugin is already stopping, and another stop request was received - - the plugin is already stopped, and + + the plugin is already stopped, and another disconnect request was received - - the operation could not be performed in + + the operation could not be performed in this state - - the operation could not be performed as + + the operation could not be performed as the request contained malformed arguments, or arguments of unexpected type. Usually means that one of the VPN setting data items or secrets was not of the expected type (ie int, string, bool, etc). - - a child process failed to launch - - - the operation could not be performed + + a child process failed to launch + + + the operation could not be performed because the connection was invalid. Usually means that the connection's VPN setting was missing some required data item or secret. - - the operation could not be + + the operation could not be performed as the plugin does not support interactive operations, such as ConnectInteractive() or NewSecrets() @@ -69848,271 +41436,161 @@ to errors in the "org.freedesktop.NetworkManager.VPN.Error" namespace. - - VPN plugin failure reasons - - Login failed. - - - Connect failed. - - - Invalid IP configuration returned from + + VPN plugin failure reasons + + Login failed. + + + Connect failed. + + + Invalid IP configuration returned from the VPN plugin. - - + + - - Read the plugin info from file @filename. Does not do + + Read the plugin info from file @filename. Does not do any further verification on the file. You might want to check file permissions and ownership of the file. - + - %NULL if there is any error or a newly created + %NULL if there is any error or a newly created #NMVpnPluginInfo instance. - filename to read. + filename to read. - - This has the same effect as doing a full nm_vpn_plugin_info_list_load() + + This has the same effect as doing a full nm_vpn_plugin_info_list_load() followed by a search for the first matching VPN plugin info that has the given @name and/or @service. - + - a newly created instance of plugin info + a newly created instance of plugin info or %NULL if no matching value was found. - - the name to search for. Either @name or @service + + the name to search for. Either @name or @service must be present. - - the service to search for. Either @name or + + the service to search for. Either @name or @service must be present. - - This constructor does not read any data from file but + + This constructor does not read any data from file but takes instead a @keyfile argument. - + - new plugin info instance. + new plugin info instance. - optional filename. + optional filename. - inject data for the plugin info instance. + inject data for the plugin info instance. - - - - %TRUE if the plugin was added to @list. This will fail + + + + %TRUE if the plugin was added to @list. This will fail to add duplicate plugins. - list of plugins + list of plugins - instance to add + instance to add - - - - the first plugin with a matching @filename (or %NULL). + + + + the first plugin with a matching @filename (or %NULL). - list of plugins + list of plugins - filename to search + filename to search - - - - the first plugin with a matching @name (or %NULL). + + + + the first plugin with a matching @name (or %NULL). - list of plugins + list of plugins - name to search + name to search - - - - the first plugin with a matching @service (or %NULL). + + + + the first plugin with a matching @service (or %NULL). - list of plugins + list of plugins - service to search. This can be the main service-type + service to search. This can be the main service-type or one of the provided aliases. - - A VPN plugin provides one or several service-types, like org.freedesktop.NetworkManager.libreswan + + A VPN plugin provides one or several service-types, like org.freedesktop.NetworkManager.libreswan Certain plugins provide more then one service type, via aliases (org.freedesktop.NetworkManager.openswan). This function looks up a service-type (or an alias) based on a name. @@ -70123,40 +41601,28 @@ one of several well known short-names (which is a hard-coded list of types in libnm). On success, this returns a full qualified service-type (or an alias). It doesn't say, that such an plugin is actually available, but it could be retrieved via nm_vpn_plugin_info_list_find_by_service(). - + - the resolved service-type or %NULL on failure. + the resolved service-type or %NULL on failure. - a possibly empty #GSList of #NMVpnPluginInfo instances + a possibly empty #GSList of #NMVpnPluginInfo instances - a name to lookup the service-type. + a name to lookup the service-type. - - + + - a %NULL terminated strv list of strings. + a %NULL terminated strv list of strings. The list itself and the values must be freed with g_strfreev(). @@ -70164,108 +41630,74 @@ but it could be retrieved via nm_vpn_plugin_info_list_find_by_service(). - a possibly empty #GSList of #NMVpnPluginInfo + a possibly empty #GSList of #NMVpnPluginInfo - only include results that are actually in @list. + only include results that are actually in @list. Otherwise, the result is extended with a hard-code list or well-known plugins - if %FALSE, only full service types are returned. + if %FALSE, only full service types are returned. Otherwise, this also includes abbreviated names that can be used with nm_vpn_plugin_info_list_find_service_type(). - - + + - list of plugins + list of plugins loaded from the default directories rejecting duplicates. - - Remove @plugin_info from @list. - - - %TRUE if @plugin_info was in @list and successfully removed. + + Remove @plugin_info from @list. + + + %TRUE if @plugin_info was in @list and successfully removed. - list of plugins + list of plugins - instance + instance - - Regular name files have a certain pattern. That basically means + + Regular name files have a certain pattern. That basically means they have the file extension "name". Check if @filename is valid according to that pattern. - + - the filename to check + the filename to check - - - - + + + + the aliases from the name-file. @@ -70273,165 +41705,106 @@ is valid according to that pattern. - plugin info instance + plugin info instance - - + + - the absolute path to the auth-dialog helper or %NULL. + the absolute path to the auth-dialog helper or %NULL. - plugin info instance + plugin info instance - - + + - the cached #NMVpnEditorPlugin instance. + the cached #NMVpnEditorPlugin instance. - plugin info instance + plugin info instance - - + + - the filename. Can be %NULL. + the filename. Can be %NULL. - plugin info instance + plugin info instance - - + + - the name. Cannot be %NULL. + the name. Cannot be %NULL. - plugin info instance + plugin info instance - - + + - the plugin. Can be %NULL. + the plugin. Can be %NULL. - plugin info instance + plugin info instance - - + + - the program. Can be %NULL. + the program. Can be %NULL. - plugin info instance + plugin info instance - - + + - the service. Cannot be %NULL. + the service. Cannot be %NULL. - plugin info instance + plugin info instance - - + + - loads the plugin and returns the newly created + loads the plugin and returns the newly created instance. The plugin is owned by @self and can be later retrieved again via nm_vpn_plugin_info_get_editor_plugin(). You can load the plugin only once, unless you reset the state via @@ -70440,263 +41813,153 @@ is valid according to that pattern. - plugin info instance + plugin info instance - - + + - #NMVpnPluginInfo is internally a #GKeyFile. Returns the matching + #NMVpnPluginInfo is internally a #GKeyFile. Returns the matching property. - plugin info instance + plugin info instance - group name + group name - name of the property + name of the property - - Set the internal plugin instance. If %NULL, only clear the previous instance. - + + Set the internal plugin instance. If %NULL, only clear the previous instance. + - plugin info instance + plugin info instance - - plugin instance + + plugin instance - - + + - %TRUE if the supports hints for secret requests, otherwise %FALSE + %TRUE if the supports hints for secret requests, otherwise %FALSE - plugin info instance + plugin info instance - - + + - %TRUE if the service supports multiple instances with different bus names, otherwise %FALSE + %TRUE if the service supports multiple instances with different bus names, otherwise %FALSE - plugin info instance + plugin info instance - - The filename from which the info was loaded. + + The filename from which the info was loaded. Can be %NULL if the instance was not loaded from a file (i.e. the keyfile instance was passed to the constructor). - - Initialize the instance with a different keyfile instance. + + Initialize the instance with a different keyfile instance. When passing a keyfile instance, the constructor will not try to read from filename. - - The name of the VPN plugin. + + The name of the VPN plugin. - - + + - - + + - - Given a VPN secret key name, attempts to find the corresponding flags data + + Given a VPN secret key name, attempts to find the corresponding flags data item in @data. If found, converts the flags data item to #NMSettingSecretFlags and returns it. Replaced by NMVpnServicePlugin. - + - %TRUE if the flag data item was found and successfully converted + %TRUE if the flag data item was found and successfully converted to flags, %FALSE if not - hash table containing VPN key/value pair data items + hash table containing VPN key/value pair data items - VPN secret key name for which to retrieve flags for + VPN secret key name for which to retrieve flags for - - on success, the flags associated with @secret_name + + on success, the flags associated with @secret_name - - Parses key/value pairs from a file descriptor (normally stdin) passed by + + Parses key/value pairs from a file descriptor (normally stdin) passed by an applet when the applet calls the authentication dialog of the VPN plugin. Replaced by NMVpnServicePlugin. - + - %TRUE if reading values was successful, %FALSE if not + %TRUE if reading values was successful, %FALSE if not - file descriptor to read from, usually stdin (0) + file descriptor to read from, usually stdin (0) - - on successful return, a hash table + + on successful return, a hash table (mapping char*:char*) containing the key/value pairs of VPN data items - - on successful return, a hash table + + on successful return, a hash table (mapping char*:char*) containing the key/value pairsof VPN secrets @@ -70706,8 +41969,7 @@ an applet when the applet calls the authentication dialog of the VPN plugin. - + @@ -70721,8 +41983,7 @@ an applet when the applet calls the authentication dialog of the VPN plugin. - + @@ -70736,8 +41997,7 @@ an applet when the applet calls the authentication dialog of the VPN plugin. - + @@ -70753,14 +42013,9 @@ an applet when the applet calls the authentication dialog of the VPN plugin. - + Replaced by NMVpnServicePlugin. - + @@ -70770,13 +42025,9 @@ an applet when the applet calls the authentication dialog of the VPN plugin. - + Replaced by NMVpnServicePlugin. - + @@ -70790,8 +42041,7 @@ an applet when the applet calls the authentication dialog of the VPN plugin. - + @@ -70805,8 +42055,7 @@ an applet when the applet calls the authentication dialog of the VPN plugin. - + @@ -70820,8 +42069,7 @@ an applet when the applet calls the authentication dialog of the VPN plugin. - + @@ -70835,8 +42083,7 @@ an applet when the applet calls the authentication dialog of the VPN plugin. - + @@ -70853,8 +42100,7 @@ an applet when the applet calls the authentication dialog of the VPN plugin. - + @@ -70868,8 +42114,7 @@ an applet when the applet calls the authentication dialog of the VPN plugin. - + @@ -70880,8 +42125,7 @@ an applet when the applet calls the authentication dialog of the VPN plugin. - + @@ -70894,14 +42138,9 @@ an applet when the applet calls the authentication dialog of the VPN plugin. - + Replaced by NMVpnServicePlugin. - + @@ -70911,13 +42150,9 @@ an applet when the applet calls the authentication dialog of the VPN plugin. - + Replaced by NMVpnServicePlugin. - + @@ -70930,13 +42165,9 @@ an applet when the applet calls the authentication dialog of the VPN plugin. - + Replaced by NMVpnServicePlugin. - + @@ -70946,14 +42177,9 @@ an applet when the applet calls the authentication dialog of the VPN plugin. - + Replaced by NMVpnServicePlugin. - + @@ -70963,51 +42189,35 @@ an applet when the applet calls the authentication dialog of the VPN plugin. - - Called by VPN plugin implementations to signal to NetworkManager that secrets + + Called by VPN plugin implementations to signal to NetworkManager that secrets are required during the connection process. This signal may be used to request new secrets when the secrets originally provided by NetworkManager are insufficient, or the VPN process indicates that it needs additional information to complete the request. Replaced by NMVpnServicePlugin. - + - the #NMVpnPluginOld + the #NMVpnPluginOld - an information message about why secrets are required, if any + an information message about why secrets are required, if any - VPN specific secret names for required new secrets + VPN specific secret names for required new secrets - + Replaced by NMVpnServicePlugin. - + @@ -71020,13 +42230,9 @@ information to complete the request. - + Replaced by NMVpnServicePlugin. - + @@ -71039,14 +42245,9 @@ information to complete the request. - + Replaced by NMVpnServicePlugin. - + @@ -71059,30 +42260,13 @@ information to complete the request. - - The D-Bus service name of this plugin. + + The D-Bus service name of this plugin. Replaced by NMVpnServicePlugin. - - The state of the plugin. + + The state of the plugin. Replaced by NMVpnServicePlugin. @@ -71170,18 +42354,14 @@ information to complete the request. - - + + - + @@ -71197,8 +42377,7 @@ information to complete the request. - + @@ -71214,8 +42393,7 @@ information to complete the request. - + @@ -71231,8 +42409,7 @@ information to complete the request. - + @@ -71248,8 +42425,7 @@ information to complete the request. - + @@ -71262,8 +42438,7 @@ information to complete the request. - + @@ -71279,8 +42454,7 @@ information to complete the request. - + @@ -71296,8 +42470,7 @@ information to complete the request. - + @@ -71313,8 +42486,7 @@ information to complete the request. - + @@ -71333,8 +42505,7 @@ information to complete the request. - + @@ -71347,8 +42518,7 @@ information to complete the request. - + @@ -71364,8 +42534,7 @@ information to complete the request. - + @@ -71388,104 +42557,60 @@ information to complete the request. - - + + - - Given a VPN secret key name, attempts to find the corresponding flags data + + Given a VPN secret key name, attempts to find the corresponding flags data item in @data. If found, converts the flags data item to #NMSettingSecretFlags and returns it. - + - %TRUE if the flag data item was found and successfully converted + %TRUE if the flag data item was found and successfully converted to flags, %FALSE if not - hash table containing VPN key/value pair data items + hash table containing VPN key/value pair data items - VPN secret key name for which to retrieve flags for + VPN secret key name for which to retrieve flags for - - on success, the flags associated with @secret_name + + on success, the flags associated with @secret_name - - Parses key/value pairs from a file descriptor (normally stdin) passed by + + Parses key/value pairs from a file descriptor (normally stdin) passed by an applet when the applet calls the authentication dialog of the VPN plugin. - + - %TRUE if reading values was successful, %FALSE if not + %TRUE if reading values was successful, %FALSE if not - file descriptor to read from, usually stdin (0) + file descriptor to read from, usually stdin (0) - - on successful return, a hash table + + on successful return, a hash table (mapping char*:char*) containing the key/value pairs of VPN data items - - on successful return, a hash table + + on successful return, a hash table (mapping char*:char*) containing the key/value pairsof VPN secrets @@ -71495,8 +42620,7 @@ an applet when the applet calls the authentication dialog of the VPN plugin. - + @@ -71510,8 +42634,7 @@ an applet when the applet calls the authentication dialog of the VPN plugin. - + @@ -71525,8 +42648,7 @@ an applet when the applet calls the authentication dialog of the VPN plugin. - + @@ -71542,12 +42664,8 @@ an applet when the applet calls the authentication dialog of the VPN plugin. - - + + @@ -71558,8 +42676,7 @@ an applet when the applet calls the authentication dialog of the VPN plugin. - + @@ -71573,8 +42690,7 @@ an applet when the applet calls the authentication dialog of the VPN plugin. - + @@ -71588,8 +42704,7 @@ an applet when the applet calls the authentication dialog of the VPN plugin. - + @@ -71603,8 +42718,7 @@ an applet when the applet calls the authentication dialog of the VPN plugin. - + @@ -71618,8 +42732,7 @@ an applet when the applet calls the authentication dialog of the VPN plugin. - + @@ -71636,8 +42749,7 @@ an applet when the applet calls the authentication dialog of the VPN plugin. - + @@ -71651,8 +42763,7 @@ an applet when the applet calls the authentication dialog of the VPN plugin. - + @@ -71663,8 +42774,7 @@ an applet when the applet calls the authentication dialog of the VPN plugin. - + @@ -71677,12 +42787,8 @@ an applet when the applet calls the authentication dialog of the VPN plugin. - - + + @@ -71692,11 +42798,8 @@ an applet when the applet calls the authentication dialog of the VPN plugin. - - + + @@ -71709,11 +42812,8 @@ an applet when the applet calls the authentication dialog of the VPN plugin. - - + + @@ -71723,47 +42823,33 @@ an applet when the applet calls the authentication dialog of the VPN plugin. - - Called by VPN plugin implementations to signal to NetworkManager that secrets + + Called by VPN plugin implementations to signal to NetworkManager that secrets are required during the connection process. This signal may be used to request new secrets when the secrets originally provided by NetworkManager are insufficient, or the VPN process indicates that it needs additional information to complete the request. - + - the #NMVpnServicePlugin + the #NMVpnServicePlugin - an information message about why secrets are required, if any + an information message about why secrets are required, if any - VPN specific secret names for required new secrets + VPN specific secret names for required new secrets - - + + @@ -71776,11 +42862,8 @@ information to complete the request. - - + + @@ -71793,11 +42876,8 @@ information to complete the request. - - + + @@ -71810,11 +42890,8 @@ information to complete the request. - - + + @@ -71827,61 +42904,34 @@ information to complete the request. - - Shutdown the @plugin and disconnect from D-Bus. After this, + + Shutdown the @plugin and disconnect from D-Bus. After this, the plugin instance is dead and should no longer be used. It ensures to get no more requests from D-Bus. In principle, you don't need to shutdown the plugin, disposing the instance has the same effect. However, this gives a way to deactivate the plugin before giving up the last reference. - + - the #NMVpnServicePlugin instance + the #NMVpnServicePlugin instance - - The D-Bus service name of this plugin. + + The D-Bus service name of this plugin. - - The state of the plugin. + + The state of the plugin. - - Whether to watch for D-Bus peer's changes. + + Whether to watch for D-Bus peer's changes. @@ -71968,18 +43018,14 @@ the plugin before giving up the last reference. - - + + - + @@ -71995,8 +43041,7 @@ the plugin before giving up the last reference. - + @@ -72012,8 +43057,7 @@ the plugin before giving up the last reference. - + @@ -72029,8 +43073,7 @@ the plugin before giving up the last reference. - + @@ -72046,8 +43089,7 @@ the plugin before giving up the last reference. - + @@ -72060,8 +43102,7 @@ the plugin before giving up the last reference. - + @@ -72077,8 +43118,7 @@ the plugin before giving up the last reference. - + @@ -72094,8 +43134,7 @@ the plugin before giving up the last reference. - + @@ -72111,8 +43150,7 @@ the plugin before giving up the last reference. - + @@ -72131,8 +43169,7 @@ the plugin before giving up the last reference. - + @@ -72145,8 +43182,7 @@ the plugin before giving up the last reference. - + @@ -72162,8 +43198,7 @@ the plugin before giving up the last reference. - + @@ -72186,289 +43221,158 @@ the plugin before giving up the last reference. - - VPN daemon states - - The state of the VPN plugin is unknown. - - - The VPN plugin is initialized. - - - Not used. - - - The plugin is attempting to connect to a VPN server. - - - The plugin has connected to a VPN server. - - - The plugin is disconnecting from the VPN server. - - - The plugin has disconnected from the VPN server. + + VPN daemon states + + The state of the VPN plugin is unknown. + + + The VPN plugin is initialized. + + + Not used. + + + The plugin is attempting to connect to a VPN server. + + + The plugin has connected to a VPN server. + + + The plugin is disconnecting from the VPN server. + + + The plugin has disconnected from the VPN server. - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - The #NMWepKeyType values specify how any WEP keys present in the setting + + The #NMWepKeyType values specify how any WEP keys present in the setting are interpreted. There are no standards governing how to hash the various WEP key/passphrase formats into the actual WEP key. Unfortunately some WEP keys can be interpreted in multiple ways, requiring the setting to specify how to @@ -72477,88 +43381,47 @@ is both a valid Hexadecimal WEP key and a WEP passphrase. Further, many ASCII keys are also valid WEP passphrases, but since passphrases and ASCII keys are hashed differently to determine the actual WEP key the type must be specified. - - unknown WEP key type - - - indicates a hexadecimal or ASCII formatted WEP key. + + unknown WEP key type + + + indicates a hexadecimal or ASCII formatted WEP key. Hex keys are either 10 or 26 hexadecimal characters (ie "5f782f2f5f" or "732f2d712e4a394a375d366931"), while ASCII keys are either 5 or 13 ASCII characters (ie "abcde" or "blahblah99$*1"). - - indicates a WEP passphrase (ex "I bought a duck + + indicates a WEP passphrase (ex "I bought a duck on my way back from the market 235Q&^%^*%") instead of a hexadecimal or ASCII key. Passphrases are between 8 and 64 characters inclusive and are hashed the actual WEP key using the MD5 hash algorithm. - - - - Validates a given connection against a given Wi-Fi P2P peer to ensure that + + + + Validates a given connection against a given Wi-Fi P2P peer to ensure that the connection may be activated with that peer. The connection must match the @peer's address and in the future possibly other attributes. - + - %TRUE if the connection may be activated with this Wi-Fi P2P Peer, + %TRUE if the connection may be activated with this Wi-Fi P2P Peer, %FALSE if it cannot be. - an #NMWifiP2PPeer to validate @connection against + an #NMWifiP2PPeer to validate @connection against - an #NMConnection to validate against @peer + an #NMConnection to validate against @peer - - Filters a given array of connections for a given #NMWifiP2PPeer object and + + Filters a given array of connections for a given #NMWifiP2PPeer object and returns connections which may be activated with the P2P peer. Any returned connections will match the @peers's HW address and in the future possibly other attributes. @@ -72567,12 +43430,9 @@ To obtain the list of connections that are compatible with this P2P peer, use nm_client_get_connections() and then filter the returned list for a given #NMDevice using nm_device_filter_connections() and finally filter that list with this function. - + - an array of + an array of #NMConnections that could be activated with the given @peer. The array should be freed with g_ptr_array_unref() when it is no longer required. @@ -72581,15 +43441,11 @@ be freed with g_ptr_array_unref() when it is no longer required. - an #NMWifiP2PPeer to filter connections for + an #NMWifiP2PPeer to filter connections for - an array of #NMConnections to + an array of #NMConnections to filter @@ -72597,418 +43453,225 @@ filter - - Gets the flags of the P2P peer. - + + Gets the flags of the P2P peer. + - the flags + the flags - a #NMWifiP2PPeer + a #NMWifiP2PPeer - - Gets the hardware address of the P2P peer. - + + Gets the hardware address of the P2P peer. + - the hardware address + the hardware address - a #NMWifiP2PPeer + a #NMWifiP2PPeer - - Returns the timestamp (in CLOCK_BOOTTIME seconds) for the last time the + + Returns the timestamp (in CLOCK_BOOTTIME seconds) for the last time the P2P peer was seen. A value of -1 means the P2P peer has never been seen. - + - the last seen time in seconds + the last seen time in seconds - a #NMWifiP2PPeer + a #NMWifiP2PPeer - - Gets the manufacturer of the P2P peer. - + + Gets the manufacturer of the P2P peer. + - the manufacturer + the manufacturer - a #NMWifiP2PPeer + a #NMWifiP2PPeer - - Gets the model of the P2P peer. - + + Gets the model of the P2P peer. + - the model + the model - a #NMWifiP2PPeer + a #NMWifiP2PPeer - - Gets the model number of the P2P peer. - + + Gets the model number of the P2P peer. + - the model number + the model number - a #NMWifiP2PPeer + a #NMWifiP2PPeer - - Gets the name of the P2P peer. - + + Gets the name of the P2P peer. + - the name + the name - a #NMWifiP2PPeer + a #NMWifiP2PPeer - - Gets the serial number of the P2P peer. - + + Gets the serial number of the P2P peer. + - the serial number + the serial number - a #NMWifiP2PPeer + a #NMWifiP2PPeer - - Gets the current signal strength of the P2P peer as a percentage. - + + Gets the current signal strength of the P2P peer as a percentage. + - the signal strength (0 to 100) + the signal strength (0 to 100) - a #NMWifiP2PPeer + a #NMWifiP2PPeer - - Gets the WFD information elements of the P2P peer. - + + Gets the WFD information elements of the P2P peer. + - the #GBytes containing the WFD IEs, or %NULL. + the #GBytes containing the WFD IEs, or %NULL. - a #NMWifiP2PPeer + a #NMWifiP2PPeer - - The flags of the P2P peer. + + The flags of the P2P peer. - - The hardware address of the P2P peer. + + The hardware address of the P2P peer. - - The timestamp (in CLOCK_BOOTTIME seconds) for the last time the + + The timestamp (in CLOCK_BOOTTIME seconds) for the last time the P2P peer was found. A value of -1 means the peer has never been seen. - - The manufacturer of the P2P peer. + + The manufacturer of the P2P peer. - - The model of the P2P peer. + + The model of the P2P peer. - - The hardware address of the P2P peer. + + The hardware address of the P2P peer. - - The name of the P2P peer. + + The name of the P2P peer. - - The serial number of the P2P peer. + + The serial number of the P2P peer. - - The current signal strength of the P2P peer. + + The current signal strength of the P2P peer. - - The WFD information elements of the P2P peer. + + The WFD information elements of the P2P peer. - - + + - + WiMAX is no longer supported by NetworkManager since 1.2.0. - - - Validates a given connection against a given WiMAX NSP to ensure that the + + + Validates a given connection against a given WiMAX NSP to ensure that the connection may be activated with that NSP. The connection must match the @nsp's network name and other attributes. WiMAX is no longer supported by NetworkManager since 1.2.0. - + - %TRUE if the connection may be activated with this WiMAX NSP, + %TRUE if the connection may be activated with this WiMAX NSP, %FALSE if it cannot be. - an #NMWimaxNsp to validate @connection against + an #NMWimaxNsp to validate @connection against - an #NMConnection to validate against @nsp + an #NMConnection to validate against @nsp - - Filters a given array of connections for a given #NMWimaxNsp object and + + Filters a given array of connections for a given #NMWimaxNsp object and return connections which may be activated with the NSP. Any returned connections will match the @nsp's network name and other attributes. WiMAX is no longer supported by NetworkManager since 1.2.0. - + - an array of + an array of #NMConnections that could be activated with the given @nsp. The array should be freed with g_ptr_array_unref() when it is no longer required. @@ -73017,15 +43680,11 @@ be freed with g_ptr_array_unref() when it is no longer required. - an #NMWimaxNsp to filter connections for + an #NMWimaxNsp to filter connections for - an array of #NMConnections to + an array of #NMConnections to filter @@ -73033,335 +43692,184 @@ filter - - Gets the name of the wimax NSP + + Gets the name of the wimax NSP WiMAX is no longer supported by NetworkManager since 1.2.0. - + - the name + the name - a #NMWimaxNsp + a #NMWimaxNsp - - Gets the network type of the wimax NSP. + + Gets the network type of the wimax NSP. WiMAX is no longer supported by NetworkManager since 1.2.0. - + - the network type + the network type - a #NMWimaxNsp + a #NMWimaxNsp - - Gets the WPA signal quality of the wimax NSP. + + Gets the WPA signal quality of the wimax NSP. WiMAX is no longer supported by NetworkManager since 1.2.0. - + - the signal quality + the signal quality - a #NMWimaxNsp + a #NMWimaxNsp - - The name of the WiMAX NSP. + + The name of the WiMAX NSP. WiMAX is no longer supported by NetworkManager since 1.2.0. - - The network type of the WiMAX NSP. + + The network type of the WiMAX NSP. WiMAX is no longer supported by NetworkManager since 1.2.0. - - The signal quality of the WiMAX NSP. + + The signal quality of the WiMAX NSP. WiMAX is no longer supported by NetworkManager since 1.2.0. - - + + - - WiMAX network type. - - unknown network type - - - home network - - - partner network - - - roaming partner network + + WiMAX network type. + + unknown network type + + + home network + + + partner network + + + roaming partner network - - The settings of one WireGuard peer. - - - + + The settings of one WireGuard peer. + + + - a new, default, unsealed #NMWireGuardPeer instance. + a new, default, unsealed #NMWireGuardPeer instance. - - Appends @allowed_ip setting to the list. This does not check + + Appends @allowed_ip setting to the list. This does not check for duplicates and always appends @allowed_ip to the end of the list. If @allowed_ip is valid, it will be normalized and a modified for might be appended. If @allowed_ip is invalid, it will still be appended, but later verification will fail. It is a bug trying to modify a sealed #NMWireGuardPeer instance. - + - %TRUE if the value is a valid allowed-ips value, %FALSE otherwise. + %TRUE if the value is a valid allowed-ips value, %FALSE otherwise. Depending on @accept_invalid, also invalid values are added. - the unsealed #NMWireGuardPeer instance + the unsealed #NMWireGuardPeer instance - the allowed-ip entry to set. + the allowed-ip entry to set. - if %TRUE, also invalid @allowed_ip value + if %TRUE, also invalid @allowed_ip value will be appended. Otherwise, the function does nothing in face of invalid values and returns %FALSE. - - Removes all allowed-ip entries. + + Removes all allowed-ip entries. It is a bug trying to modify a sealed #NMWireGuardPeer instance. - + - the unsealed #NMWireGuardPeer instance + the unsealed #NMWireGuardPeer instance - + - zero of the two instances are equivalent or + zero of the two instances are equivalent or a non-zero integer otherwise. This defines a total ordering over the peers. Whether a peer is sealed or not, does not affect the comparison. - - the #NMWireGuardPeer to compare. + + the #NMWireGuardPeer to compare. - - the other #NMWireGuardPeer to compare. + + the other #NMWireGuardPeer to compare. - #NMSettingCompareFlags to affect the comparison. + #NMSettingCompareFlags to affect the comparison. - - + + - the allowed-ip setting at index @idx. + the allowed-ip setting at index @idx. If @idx is out of range, %NULL will be returned. - the #NMWireGuardPeer instance + the #NMWireGuardPeer instance - the index from zero to (allowed-ips-len - 1) to + the index from zero to (allowed-ips-len - 1) to retrieve. - - %TRUE if the returned value is a valid allowed-ip + + %TRUE if the returned value is a valid allowed-ip setting. This parameter is wrongly not marked as (out) argument, it is thus not accessible via introspection. This cannot be fixed without @@ -73370,264 +43878,175 @@ It is a bug trying to modify a sealed #NMWireGuardPeer instance. - - + + - the number of allowed-ips entries. + the number of allowed-ips entries. - the #NMWireGuardPeer instance + the #NMWireGuardPeer instance - - + + - the endpoint or %NULL if none was set. + the endpoint or %NULL if none was set. - the #NMWireGuardPeer instance + the #NMWireGuardPeer instance - - + + - get the persistent-keepalive setting in seconds. Set to zero to disable + get the persistent-keepalive setting in seconds. Set to zero to disable keep-alive. - the #NMWireGuardPeer instance + the #NMWireGuardPeer instance - - + + - the preshared key or %NULL if unset. + the preshared key or %NULL if unset. - the #NMWireGuardPeer instance + the #NMWireGuardPeer instance - - + + - get the secret flags for the preshared-key. + get the secret flags for the preshared-key. - the #NMWireGuardPeer instance + the #NMWireGuardPeer instance - - + + - the public key or %NULL if unset. + the public key or %NULL if unset. - the #NMWireGuardPeer instance + the #NMWireGuardPeer instance - - + + - whether @self is sealed or not. + whether @self is sealed or not. - the #NMWireGuardPeer instance + the #NMWireGuardPeer instance - - + + - %TRUE if the peer is valid or fails with an error + %TRUE if the peer is valid or fails with an error reason. - the #NMWireGuardPeer instance + the #NMWireGuardPeer instance - if %TRUE, secret properties are validated. + if %TRUE, secret properties are validated. Otherwise, they are ignored for this purpose. - if %TRUE, non-secret properties are validated. + if %TRUE, non-secret properties are validated. Otherwise, they are ignored for this purpose. - - + + - a clone of @self. This instance + a clone of @self. This instance is always unsealed. - the #NMWireGuardPeer instance to copy. + the #NMWireGuardPeer instance to copy. - if %TRUE, the preshared-key secrets are copied + if %TRUE, the preshared-key secrets are copied as well. Otherwise, they will be removed. - + - returns the input argument @self after incrementing + returns the input argument @self after incrementing the reference count. Since 1.42, ref-counting of #NMWireGuardPeer is thread-safe. - - the #NMWireGuardPeer instance + + the #NMWireGuardPeer instance - - Removes the allowed-ip at the given @idx. This shifts all + + Removes the allowed-ip at the given @idx. This shifts all following entries one index down. It is a bug trying to modify a sealed #NMWireGuardPeer instance. - + - %TRUE if @idx was valid and the allowed-ip was removed. + %TRUE if @idx was valid and the allowed-ip was removed. %FALSE otherwise, and the peer will not be changed. - the unsealed #NMWireGuardPeer instance + the unsealed #NMWireGuardPeer instance - the index from zero to (allowed-ips-len - 1) to + the index from zero to (allowed-ips-len - 1) to retrieve. If the index is out of range, %FALSE is returned and nothing is done. @@ -73635,99 +44054,68 @@ It is a bug trying to modify a sealed #NMWireGuardPeer instance. - Seal the #NMWireGuardPeer instance. Afterwards, it is a bug + Seal the #NMWireGuardPeer instance. Afterwards, it is a bug to call all functions that modify the instance (except ref/unref). A sealed instance cannot be unsealed again, but you can create an unsealed copy with nm_wireguard_peer_new_clone(). - + - the #NMWireGuardPeer instance + the #NMWireGuardPeer instance - - Sets or clears the endpoint of @self. + + Sets or clears the endpoint of @self. It is a bug trying to modify a sealed #NMWireGuardPeer instance. - + - %TRUE if the endpoint is %NULL or valid. For an + %TRUE if the endpoint is %NULL or valid. For an invalid @endpoint argument, %FALSE is returned. Depending on @allow_invalid, the instance will be modified. - the unsealed #NMWireGuardPeer instance + the unsealed #NMWireGuardPeer instance - the socket address endpoint to set or %NULL. + the socket address endpoint to set or %NULL. - if %TRUE, also invalid values are set. + if %TRUE, also invalid values are set. If %FALSE, the function does nothing for invalid @endpoint arguments. - - It is a bug trying to modify a sealed #NMWireGuardPeer instance. - + + It is a bug trying to modify a sealed #NMWireGuardPeer instance. + - the unsealed #NMWireGuardPeer instance + the unsealed #NMWireGuardPeer instance - the keep-alive value to set. + the keep-alive value to set. - - Reset the preshared key. Note that if the preshared key is valid, it + + Reset the preshared key. Note that if the preshared key is valid, it will be normalized (which may or may not modify the set value). Note that the preshared-key is a secret and consequently has corresponding @@ -73737,12 +44125,9 @@ may optionally cause nm_wireguard_peer_is_valid() to fail or it may be accepted. It is a bug trying to modify a sealed #NMWireGuardPeer instance. - + - %TRUE if the preshared-key is valid, otherwise %FALSE. + %TRUE if the preshared-key is valid, otherwise %FALSE. %NULL is considered a valid value. If the key is invalid, it depends on @accept_invalid whether the previous value was reset. @@ -73750,308 +44135,188 @@ It is a bug trying to modify a sealed #NMWireGuardPeer instance. - the unsealed #NMWireGuardPeer instance + the unsealed #NMWireGuardPeer instance - - the new preshared + + the new preshared key or %NULL to clear the preshared key. - whether to allow setting the key to an invalid + whether to allow setting the key to an invalid value. If %FALSE, @self is unchanged if the key is invalid and if %FALSE is returned. - - It is a bug trying to modify a sealed #NMWireGuardPeer instance. - + + It is a bug trying to modify a sealed #NMWireGuardPeer instance. + - the unsealed #NMWireGuardPeer instance + the unsealed #NMWireGuardPeer instance - the secret flags to set. + the secret flags to set. - - Reset the public key. Note that if the public key is valid, it + + Reset the public key. Note that if the public key is valid, it will be normalized (which may or may not modify the set value). It is a bug trying to modify a sealed #NMWireGuardPeer instance. - + - %TRUE if the key was valid or %NULL. Returns + %TRUE if the key was valid or %NULL. Returns %FALSE for invalid keys. Depending on @accept_invalid will an invalid key be set or not. - the unsealed #NMWireGuardPeer instance + the unsealed #NMWireGuardPeer instance - - the new public + + the new public key or %NULL to clear the public key. - if %TRUE and @public_key is not %NULL and + if %TRUE and @public_key is not %NULL and invalid, then do not modify the instance. - - Drop a reference to @self. If the last reference is dropped, + + Drop a reference to @self. If the last reference is dropped, the instance is freed and all associate data released. Since 1.42, ref-counting of #NMWireGuardPeer is thread-safe. - + - - the #NMWireGuardPeer instance + + the #NMWireGuardPeer instance - + - - Parses the string representation of the queueing + + Parses the string representation of the queueing discipline to a %NMBridgeVlan instance. - + - the %NMBridgeVlan or %NULL + the %NMBridgeVlan or %NULL - the string representation of a bridge VLAN + the string representation of a bridge VLAN - - Registers an error quark for #NMClient if necessary. + + Registers an error quark for #NMClient if necessary. - the error quark used for #NMClient errors. + the error quark used for #NMClient errors. - - + + - a new #NMConnection imported from @path, or %NULL + a new #NMConnection imported from @path, or %NULL on error or if the file with @filename was not recognized as a WireGuard config - name of the file to attempt to read into a new #NMConnection + name of the file to attempt to read into a new #NMConnection - + - + - + - - Checks whether @optname is a valid option name for a channels setting. - + + Checks whether @optname is a valid option name for a channels setting. + - %TRUE, if @optname is valid + %TRUE, if @optname is valid - - the option name to check + + the option name to check - - Checks whether @optname is a valid option name for a coalesce setting. - + + Checks whether @optname is a valid option name for a coalesce setting. + - %TRUE, if @optname is valid + %TRUE, if @optname is valid - - the option name to check + + the option name to check - - Checks whether @optname is a valid option name for an eee setting. - + + Checks whether @optname is a valid option name for an eee setting. + - %TRUE, if @optname is valid + %TRUE, if @optname is valid - - the option name to check + + the option name to check - - Checks whether @optname is a valid option name for an offload feature. - + + Checks whether @optname is a valid option name for an offload feature. + - %TRUE, if @optname is valid + %TRUE, if @optname is valid Note that nm_ethtool_optname_is_feature() was first added to the libnm header files in 1.14.0 but forgot to actually add to the library. This happened belatedly in 1.20.0 and @@ -74059,165 +44324,92 @@ the stable versions 1.18.2, 1.16.4 and 1.14.8 (with linker version "libnm_1_14_8 - - the option name to check + + the option name to check - - Checks whether @optname is a valid option name for a pause setting. - + + Checks whether @optname is a valid option name for a pause setting. + - %TRUE, if @optname is valid + %TRUE, if @optname is valid - - the option name to check + + the option name to check - - Checks whether @optname is a valid option name for a ring setting. - + + Checks whether @optname is a valid option name for a ring setting. + - %TRUE, if @optname is valid + %TRUE, if @optname is valid - - the option name to check + + the option name to check - - Validates a route attribute, i.e. checks that the attribute is a known one + + Validates a route attribute, i.e. checks that the attribute is a known one and the value is of the correct type and well-formed. - + - %TRUE if the attribute is valid, %FALSE otherwise + %TRUE if the attribute is valid, %FALSE otherwise - the attribute name + the attribute name - the attribute value + the attribute value - IP address family of the route + IP address family of the route - - on return, whether the attribute name is a known one + + on return, whether the attribute name is a known one - - + + - the specifiers for route attributes - + the specifiers for route attributes + - - + + - the new #NMIPRoutingRule or %NULL on error. + the new #NMIPRoutingRule or %NULL on error. - the string representation to convert to an #NMIPRoutingRule + the string representation to convert to an #NMIPRoutingRule - #NMIPRoutingRuleAsStringFlags for controlling the + #NMIPRoutingRuleAsStringFlags for controlling the string conversion. - - - - extra arguments for controlling the string + + + + extra arguments for controlling the string conversion. Currently, not extra arguments are supported. @@ -74226,133 +44418,79 @@ and the value is of the correct type and well-formed. - - Tries to create a NMConnection from a keyfile. The resulting keyfile is + + Tries to create a NMConnection from a keyfile. The resulting keyfile is not normalized and might not even verify. - on success, returns the created connection. + on success, returns the created connection. - the keyfile from which to create the connection + the keyfile from which to create the connection - when reading certificates from files with relative name, + when reading certificates from files with relative name, the relative path is made absolute using @base_dir. This must be an absolute path. - the #NMKeyfileHandlerFlags. + the #NMKeyfileHandlerFlags. - - read handler + + read handler - - user data for read handler + + user data for read handler - - @connection should verify as a valid profile according to + + @connection should verify as a valid profile according to nm_connection_verify(). If it does not verify, the keyfile may be incomplete and the parser may not be able to fully recreate the original profile. - a new #GKeyFile or %NULL on error. + a new #GKeyFile or %NULL on error. - the #NMConnection to persist to keyfile. + the #NMConnection to persist to keyfile. - the #NMKeyfileHandlerFlags. + the #NMKeyfileHandlerFlags. - - optional handler for events and + + optional handler for events and to override the default behavior. - - argument for @handler. + + argument for @handler. - + - Extra connection functionality. + Extra connection functionality. - An #NMConnection describes all the settings and configuration values that + An #NMConnection describes all the settings and configuration values that are necessary to configure network devices for operation on a specific network. Connections are the fundamental operating object for NetworkManager; no device is connected without a #NMConnection, or @@ -74366,15 +44504,11 @@ parameters (MTU, SSID, APN, channel, rate, etc) and IP-level parameters (addresses, routes, addressing methods, etc). - A #NMRemoteConnection represents a connection that is exported via + A #NMRemoteConnection represents a connection that is exported via NetworkManager D-Bus interface. - Each #NMSetting contains properties that describe configuration that applies + Each #NMSetting contains properties that describe configuration that applies to a specific network layer (like IPv4 or IPv6 configuration) or device type (like Ethernet, or Wi-Fi). A collection of individual settings together make up an #NMConnection. Each property is strongly typed and usually has @@ -74382,15 +44516,11 @@ a number of allowed values. See each #NMSetting subclass for a description of properties and allowed values. - The #NMSetting6Lowpan object is a #NMSetting subclass that describes properties + The #NMSetting6Lowpan object is a #NMSetting subclass that describes properties necessary for connection to 6LoWPAN interfaces. - The #NMSetting8021x object is a #NMSetting subclass that describes + The #NMSetting8021x object is a #NMSetting subclass that describes properties necessary for connection to 802.1x-authenticated networks, such as WPA and WPA2 Enterprise Wi-Fi networks and wired 802.1x networks. 802.1x connections typically use certificates and/or EAP authentication methods to @@ -74414,83 +44544,59 @@ following books. ISBN: 978-1587051548 - The #NMSettingAdsl object is a #NMSetting subclass that describes + The #NMSettingAdsl object is a #NMSetting subclass that describes properties of ADSL connections. - The #NMSettingBluetooth object is a #NMSetting subclass that describes + The #NMSettingBluetooth object is a #NMSetting subclass that describes properties necessary for connection to devices that provide network connections via the Bluetooth Dial-Up Networking (DUN) and Network Access Point (NAP) profiles. - The #NMSettingBond object is a #NMSetting subclass that describes properties + The #NMSettingBond object is a #NMSetting subclass that describes properties necessary for bond connections. - The #NMSettingBondPort object is a #NMSetting subclass that describes + The #NMSettingBondPort object is a #NMSetting subclass that describes optional properties that apply to bond ports. - The #NMSettingBridge object is a #NMSetting subclass that describes properties + The #NMSettingBridge object is a #NMSetting subclass that describes properties necessary for bridging connections. - The #NMSettingBridgePort object is a #NMSetting subclass that describes + The #NMSettingBridgePort object is a #NMSetting subclass that describes optional properties that apply to bridge ports. - The #NMSettingCdma object is a #NMSetting subclass that describes + The #NMSettingCdma object is a #NMSetting subclass that describes properties that allow connections to IS-95-based mobile broadband networks, including those using CDMA2000/EVDO technology. - The #NMSettingConnection object is a #NMSetting subclass that describes + The #NMSettingConnection object is a #NMSetting subclass that describes properties that apply to all #NMConnection objects, regardless of what type of network connection they describe. Each #NMConnection object must contain a #NMSettingConnection setting. - The #NMSettingDcb object is a #NMSetting subclass that describes properties + The #NMSettingDcb object is a #NMSetting subclass that describes properties for enabling and using Data Center Bridging (DCB) on Ethernet networks. DCB is a set of protocols (including 802.1Qbb, 802.1Qaz, 802.1Qau, and 802.1AB) to eliminate packet loss in Ethernet networks and support the use of storage technologies like Fibre Channel over Ethernet (FCoE) and iSCSI. - The #NMSettingDummy object is a #NMSetting subclass that describes properties + The #NMSettingDummy object is a #NMSetting subclass that describes properties necessary for connection to dummy devices - The #NMSettingEthtool object is a #NMSetting subclass that describes properties + The #NMSettingEthtool object is a #NMSetting subclass that describes properties to control network driver and hardware settings. - The #NMSettingGeneric object is a #NMSetting subclass that describes + The #NMSettingGeneric object is a #NMSetting subclass that describes optional properties that apply to "generic" devices (ie, devices that NetworkManager does not specifically recognize). @@ -74498,35 +44604,25 @@ There are currently no properties on this object; it exists only to be the "connection type" setting on #NMConnections for generic devices. - The #NMSettingGsm object is a #NMSetting subclass that describes + The #NMSettingGsm object is a #NMSetting subclass that describes properties that allow connections to 3GPP-based mobile broadband networks, including those using GPRS/EDGE and UMTS/HSPA technology. - The #NMSettingHsr object is a #NMSetting subclass that describes properties + The #NMSettingHsr object is a #NMSetting subclass that describes properties necessary for HSR/PRP connections. - The #NMSettingInfiniband object is a #NMSetting subclass that describes properties + The #NMSettingInfiniband object is a #NMSetting subclass that describes properties necessary for connection to IP-over-InfiniBand networks. - #NMSettingIPConfig is the abstract base class of + #NMSettingIPConfig is the abstract base class of #NMSettingIP4Config and #NMSettingIP6Config, providing properties related to IP addressing, routing, and Domain Name Service. - The #NMSettingIP4Config object is a #NMSetting subclass that describes + The #NMSettingIP4Config object is a #NMSetting subclass that describes properties related to IPv4 addressing, routing, and Domain Name Service. #NMSettingIP4Config has few properties or methods of its own; it inherits @@ -74546,9 +44642,7 @@ default network connection. "disabled" means IPv4 will not be used on this connection. - The #NMSettingIP6Config object is a #NMSetting subclass that describes + The #NMSettingIP6Config object is a #NMSetting subclass that describes properties related to IPv6 addressing, routing, and Domain Name Service #NMSettingIP6Config has few properties or methods of its own; it inherits @@ -74567,90 +44661,62 @@ supported. If "disabled" is specified, IPv6 is disabled completely for the interface. - The #NMSettingLoopback object is a #NMSetting subclass that describes properties + The #NMSettingLoopback object is a #NMSetting subclass that describes properties necessary for connection to loopback devices - The #NMSettingMacsec object is a #NMSetting subclass that describes properties + The #NMSettingMacsec object is a #NMSetting subclass that describes properties necessary for connection to MACsec (IEEE 802.1AE) interfaces. - The #NMSettingMacvlan object is a #NMSetting subclass that describes properties + The #NMSettingMacvlan object is a #NMSetting subclass that describes properties necessary for connection to macvlan interfaces. - The #NMSettingOlpcMesh object is a #NMSetting subclass that describes properties + The #NMSettingOlpcMesh object is a #NMSetting subclass that describes properties necessary for connection to OLPC-Mesh devices. - The #NMSettingOvsBridge object is a #NMSetting subclass that describes properties + The #NMSettingOvsBridge object is a #NMSetting subclass that describes properties necessary for Open vSwitch bridges. - The #NMSettingOvsDpdk object is a #NMSetting subclass that describes properties + The #NMSettingOvsDpdk object is a #NMSetting subclass that describes properties necessary for Open vSwitch interfaces of type "dpdk". - The #NMSettingOvsExternalIDs object is a #NMSetting subclass that allow to + The #NMSettingOvsExternalIDs object is a #NMSetting subclass that allow to configure external ids for OVS. - The #NMSettingOvsInterface object is a #NMSetting subclass that describes properties + The #NMSettingOvsInterface object is a #NMSetting subclass that describes properties necessary for Open vSwitch interfaces. - The #NMSettingOvsOtherConfig object is a #NMSetting subclass that allows to + The #NMSettingOvsOtherConfig object is a #NMSetting subclass that allows to configure other_config settings for OVS. See also "other_config" in the "ovs-vswitchd.conf.db" manual for the keys that OVS supports. - The #NMSettingOvsPatch object is a #NMSetting subclass that describes properties + The #NMSettingOvsPatch object is a #NMSetting subclass that describes properties necessary for Open vSwitch interfaces of type "patch". - The #NMSettingOvsPort object is a #NMSetting subclass that describes properties + The #NMSettingOvsPort object is a #NMSetting subclass that describes properties necessary for Open vSwitch ports. - The #NMSettingPpp object is a #NMSetting subclass that describes properties + The #NMSettingPpp object is a #NMSetting subclass that describes properties necessary for connection to networks that require PPP transport, like PPPoE cable and DSL modems and some mobile broadband devices. - The #NMSettingPppoe object is a #NMSetting subclass that describes + The #NMSettingPppoe object is a #NMSetting subclass that describes properties necessary for connection to networks that require PPPoE connections to provide IP transport, for example cable or DSL modems. - The #NMSettingProxy object is a #NMSetting subclass that describes properties + The #NMSettingProxy object is a #NMSetting subclass that describes properties related to Proxy settings like PAC URL, PAC script etc. NetworkManager support 2 values for the #NMSettingProxy:method property for @@ -74660,52 +44726,36 @@ PAC script. If "none" is selected then no proxy configuration is given to PacRun to fulfill client queries. - The #NMSettingSerial object is a #NMSetting subclass that describes + The #NMSettingSerial object is a #NMSetting subclass that describes properties necessary for connections that may use serial communications, such as mobile broadband or analog telephone connections. - The #NMSettingTeam object is a #NMSetting subclass that describes properties + The #NMSettingTeam object is a #NMSetting subclass that describes properties necessary for team connections. - The #NMSettingTeamPort object is a #NMSetting subclass that describes + The #NMSettingTeamPort object is a #NMSetting subclass that describes optional properties that apply to team ports. - The #NMSettingTun object is a #NMSetting subclass that describes properties + The #NMSettingTun object is a #NMSetting subclass that describes properties necessary for connection to TUN/TAP interfaces. - The #NMSettingUser object is a #NMSetting subclass that allow to attach + The #NMSettingUser object is a #NMSetting subclass that allow to attach arbitrary user data to #NMConnection objects. - The #NMSettingVeth object is a #NMSetting subclass that describes properties + The #NMSettingVeth object is a #NMSetting subclass that describes properties necessary for connection to veth interfaces. - The #NMSettingVlan object is a #NMSetting subclass that describes properties + The #NMSettingVlan object is a #NMSetting subclass that describes properties necessary for connection to VLAN interfaces. - The #NMSettingVpn object is a #NMSetting subclass that describes properties + The #NMSettingVpn object is a #NMSetting subclass that describes properties necessary for connection to Virtual Private Networks. NetworkManager uses a plugin architecture to allow easier use of new VPN types, and this setting abstracts the configuration for those plugins. Since the configuration @@ -74714,27 +44764,19 @@ options are stored as key/value pairs of strings rather than GObject properties. - The #NMSettingVrf object is a #NMSetting subclass that describes properties + The #NMSettingVrf object is a #NMSetting subclass that describes properties necessary for connection to vrf devices - The #NMSettingVxlan object is a #NMSetting subclass that describes properties + The #NMSettingVxlan object is a #NMSetting subclass that describes properties necessary for connection to VXLAN interfaces. - The #NMSettingWifiP2P object is a #NMSetting subclass that describes properties + The #NMSettingWifiP2P object is a #NMSetting subclass that describes properties necessary for connection to 802.11 Wi-Fi P2P networks (aka Wi-Fi Direct). - The #NMSettingWimax object is a #NMSetting subclass that describes properties + The #NMSettingWimax object is a #NMSetting subclass that describes properties necessary for connection to 802.16e Mobile WiMAX networks. NetworkManager no longer supports WiMAX; while this API remains available for @@ -74742,27 +44784,19 @@ backward-compatibility reasons, it serves no real purpose, since WiMAX connections cannot be activated. - The #NMSettingWired object is a #NMSetting subclass that describes properties + The #NMSettingWired object is a #NMSetting subclass that describes properties necessary for connection to Ethernet networks. - The #NMSettingWireGuard object is a #NMSetting subclass that contains settings + The #NMSettingWireGuard object is a #NMSetting subclass that contains settings for configuring WireGuard. - The #NMSettingWireless object is a #NMSetting subclass that describes properties + The #NMSettingWireless object is a #NMSetting subclass that describes properties necessary for connection to 802.11 Wi-Fi networks. - The #NMSettingWirelessSecurity object is a #NMSetting subclass that describes + The #NMSettingWirelessSecurity object is a #NMSetting subclass that describes properties necessary for connection to encrypted Wi-Fi networks. It's a good idea to read up on wpa_supplicant configuration before using this @@ -74779,172 +44813,107 @@ of how Wi-Fi security works, you may want to get copies of the following books. ISBN: 978-1587051548 - The #NMSettingWpan object is a #NMSetting subclass that describes properties + The #NMSettingWpan object is a #NMSetting subclass that describes properties necessary for configuring IEEE 802.15.4 (WPAN) MAC layer devices. - An #NMSimpleConnection does not directly represent a D-Bus-exported connection, + An #NMSimpleConnection does not directly represent a D-Bus-exported connection, but might be used in the process of creating a new one. - A collection of utility functions for working with SSIDs, IP addresses, Wi-Fi + A collection of utility functions for working with SSIDs, IP addresses, Wi-Fi access points and devices, among other things. - - Parses the string representation of the range to create a %NMRange + + Parses the string representation of the range to create a %NMRange instance. - the %NMRange or %NULL + the %NMRange or %NULL - the string representation of a range + the string representation of a range - + - + - - Validates a VF attribute, i.e. checks that the attribute is a known one, + + Validates a VF attribute, i.e. checks that the attribute is a known one, the value is of the correct type and well-formed. - + - %TRUE if the attribute is valid, %FALSE otherwise + %TRUE if the attribute is valid, %FALSE otherwise - the attribute name + the attribute name - the attribute value + the attribute value - - on return, whether the attribute name is a known one + + on return, whether the attribute name is a known one - - Given a set of device capabilities, and a desired security type to check + + Given a set of device capabilities, and a desired security type to check against, determines whether the combination of device capabilities and desired security type are valid for AP/Hotspot connections. - %TRUE if the device capabilities are compatible with the desired + %TRUE if the device capabilities are compatible with the desired @type, %FALSE if they are not. - the security type to check device capabilities against, + the security type to check device capabilities against, e.g. #NMU_SEC_STATIC_WEP - bitfield of the capabilities of the specific Wi-Fi device, e.g. + bitfield of the capabilities of the specific Wi-Fi device, e.g. #NM_WIFI_DEVICE_CAP_CIPHER_WEP40 - + - + - %TRUE if the input key is a valid base64 encoded key + %TRUE if the input key is a valid base64 encoded key with @required_key_len bytes. - the (possibly invalid) base64 encode key. + the (possibly invalid) base64 encode key. - the expected (binary) length of the key after + the expected (binary) length of the key after decoding. If the length does not match, the validation fails. - - an optional output buffer for the binary + + an optional output buffer for the binary key. If given, it will be filled with exactly @required_key_len bytes. @@ -74952,95 +44921,66 @@ e.g. #NMU_SEC_STATIC_WEP - Converts the byte array @src into a hexadecimal string. If @final_len is + Converts the byte array @src into a hexadecimal string. If @final_len is greater than -1, the returned string is terminated at that index (returned_string[final_len] == '\0'), - the textual form of @bytes + the textual form of @bytes - an array of bytes + an array of bytes - the length of the @src array + the length of the @src array - an index where to cut off the returned string, or -1 + an index where to cut off the returned string, or -1 - - Convert bonding mode from integer value to descriptive name. + + Convert bonding mode from integer value to descriptive name. See https://www.kernel.org/doc/Documentation/networking/bonding.txt for available modes. - bonding mode string, or NULL on error + bonding mode string, or NULL on error - bonding mode as a numeric value + bonding mode as a numeric value - - Convert bonding mode from string representation to numeric value. + + Convert bonding mode from string representation to numeric value. See https://www.kernel.org/doc/Documentation/networking/bonding.txt for available modes. The @mode string can be either a descriptive name or a number (as string). - numeric bond mode, or -1 on error + numeric bond mode, or -1 on error - bonding mode as string + bonding mode as string - - Determines if a connection of type @virtual_type can (in the + + Determines if a connection of type @virtual_type can (in the general case) work with connections of type @other_type. If @virtual_type is %NM_TYPE_SETTING_VLAN, then this checks if @@ -75057,32 +44997,22 @@ configuration of the two connections, or on the capabilities of an underlying device driver. - %TRUE or %FALSE + %TRUE or %FALSE - a virtual connection type + a virtual connection type - a connection type to test against @virtual_type + a connection type to test against @virtual_type - - This ensures that all NMSetting GTypes are created. For example, + + This ensures that all NMSetting GTypes are created. For example, after this call, g_type_from_name("NMSettingConnection") will work. This cannot fail and does nothing if the type already exists. @@ -75091,12 +45021,8 @@ This cannot fail and does nothing if the type already exists. - - Converts a string to the matching enum value. + + Converts a string to the matching enum value. If the enum is a %G_TYPE_FLAGS the function returns the logical OR of values matching the comma-separated tokens in the string; if an unknown token is found @@ -75104,61 +45030,34 @@ the function returns %FALSE and stores a pointer to a newly allocated string containing the unrecognized token in @err_token. - %TRUE if the conversion was successful, %FALSE otherwise + %TRUE if the conversion was successful, %FALSE otherwise - the %GType of the enum + the %GType of the enum - the input string + the input string - - the output value + + the output value - - location to store + + location to store the first unrecognized token - - Returns the list of possible values for a given enum. + + Returns the list of possible values for a given enum. - a NULL-terminated dynamically-allocated array of static strings + a NULL-terminated dynamically-allocated array of static strings or %NULL on error @@ -75166,64 +45065,43 @@ or %NULL on error - the %GType of the enum + the %GType of the enum - the first element to be returned + the first element to be returned - the last element to be returned + the last element to be returned - - Converts an enum value to its string representation. If the enum is a + + Converts an enum value to its string representation. If the enum is a %G_TYPE_FLAGS the function returns a comma-separated list of matching values. If the value has no corresponding string representation, it is converted to a number. For enums it is converted to a decimal number, for flags to an (unsigned) hex number. - a newly allocated string or %NULL + a newly allocated string or %NULL - the %GType of the enum + the %GType of the enum - the value to be translated + the value to be translated - - This function does a quick printable character conversion of the SSID, simply + + This function does a quick printable character conversion of the SSID, simply replacing embedded NULLs and non-printable characters with the hexadecimal representation of that character. Intended for debugging only, should not be used for display of SSIDs. @@ -75233,263 +45111,172 @@ Warning: this function uses a static buffer. It is not thread-safe. Don't use nm_utils_ssid_to_utf8() or nm_utils_bin2hexstr(). - pointer to the escaped SSID, which uses an internal static buffer + pointer to the escaped SSID, which uses an internal static buffer and will be overwritten by subsequent calls to this function - pointer to a buffer containing the SSID data + pointer to a buffer containing the SSID data - length of the SSID data in @ssid + length of the SSID data in @ssid - - Tests if @filename has a valid extension for an X.509 certificate file + + Tests if @filename has a valid extension for an X.509 certificate file (".cer", ".crt", ".der", or ".pem"), and contains a certificate in a format recognized by NetworkManager. - %TRUE if the file is a certificate, %FALSE if it is not + %TRUE if the file is a certificate, %FALSE if it is not - name of the file to test + name of the file to test - - Tests if @filename is a PKCS#<!-- -->12 file. + + Tests if @filename is a PKCS#<!-- -->12 file. - %TRUE if the file is PKCS#<!-- -->12, %FALSE if it is not + %TRUE if the file is PKCS#<!-- -->12, %FALSE if it is not - name of the file to test + name of the file to test - - Tests if @filename has a valid extension for an X.509 private key file + + Tests if @filename has a valid extension for an X.509 private key file (".der", ".key", ".pem", or ".p12"), and contains a private key in a format recognized by NetworkManager. - %TRUE if the file is a private key, %FALSE if it is not + %TRUE if the file is a private key, %FALSE if it is not - name of the file to test + name of the file to test - - on return, whether the file is encrypted + + on return, whether the file is encrypted - - Searches for a @progname file in a list of search @paths. + + Searches for a @progname file in a list of search @paths. - the full path to the helper, if found, or %NULL if not found. + the full path to the helper, if found, or %NULL if not found. The returned string is not owned by the caller, but later invocations of the function might overwrite it. - the helper program name, like "iptables" + the helper program name, like "iptables" Must be a non-empty string, without path separator (/). - - a custom path to try first before searching. + + a custom path to try first before searching. It is silently ignored if it is empty or not an absolute path. - - a %NULL terminated list of search paths. + + a %NULL terminated list of search paths. Can be empty or %NULL, in which case only @try_first is checked. - the flags passed to g_file_test() when searching + the flags passed to g_file_test() when searching for @progname. Set it to 0 to skip the g_file_test(). - - if given, pass the file name to this function + + if given, pass the file name to this function for additional checks. This check is performed after the check for @file_test_flags. You cannot omit both @file_test_flags and @predicate. - - - - user data for @predicate function. + + + + user data for @predicate function. - - Format attributes to a string. + + Format attributes to a string. - the string representing attributes, or %NULL + the string representing attributes, or %NULL in case there are no attributes - a #GHashTable mapping attribute names to #GVariant values + a #GHashTable mapping attribute names to #GVariant values - the attribute separator character + the attribute separator character - character separating key and values + character separating key and values - - Gets current time in milliseconds of CLOCK_BOOTTIME. + + Gets current time in milliseconds of CLOCK_BOOTTIME. - time in milliseconds + time in milliseconds - Converts a hexadecimal string @hex into an array of bytes. The optional + Converts a hexadecimal string @hex into an array of bytes. The optional separator ':' may be used between single or pairs of hexadecimal characters, eg "00:11" or "0:1". Any "0x" at the beginning of @hex is ignored. @hex may not start or end with ':'. - the converted bytes, or %NULL on error + the converted bytes, or %NULL on error - a string of hexadecimal characters with optional ':' separators + a string of hexadecimal characters with optional ':' separators - Parses @asc and converts it to binary form in a #GByteArray. See + Parses @asc and converts it to binary form in a #GByteArray. See nm_utils_hwaddr_aton() if you don't want a #GByteArray. - a new #GByteArray, or %NULL if @asc couldn't + a new #GByteArray, or %NULL if @asc couldn't be parsed @@ -75497,116 +45284,84 @@ be parsed - the ASCII representation of a hardware address + the ASCII representation of a hardware address - the expected length in bytes of the result + the expected length in bytes of the result - Parses @asc and converts it to binary form in @buffer. + Parses @asc and converts it to binary form in @buffer. Bytes in @asc can be separated by colons (:), or hyphens (-), but not mixed. - @buffer, or %NULL if @asc couldn't be parsed + @buffer, or %NULL if @asc couldn't be parsed or would be shorter or longer than @length. - the ASCII representation of a hardware address + the ASCII representation of a hardware address - buffer to store the result into + buffer to store the result into - the expected length in bytes of the result and + the expected length in bytes of the result and the size of the buffer in bytes. - - Parses @asc to see if it is a valid hardware address of the given + + Parses @asc to see if it is a valid hardware address of the given length, and if so, returns it in canonical form (uppercase, with leading 0s as needed, and with colons rather than hyphens). - the canonicalized address if @asc appears to + the canonicalized address if @asc appears to be a valid hardware address of the indicated length, %NULL if not. - the ASCII representation of a hardware address + the ASCII representation of a hardware address - the length of address that @asc is expected to convert to + the length of address that @asc is expected to convert to (or -1 to accept any length up to %NM_UTILS_HWADDR_LEN_MAX) - Returns the length in octets of a hardware address of type @type. + Returns the length in octets of a hardware address of type @type. Before 1.28, it was an error to call this function with any value other than <literal>ARPHRD_ETHER</literal> or <literal>ARPHRD_INFINIBAND</literal>. - the length or zero if the type is unrecognized. + the length or zero if the type is unrecognized. - the type of address; either <literal>ARPHRD_ETHER</literal> or + the type of address; either <literal>ARPHRD_ETHER</literal> or <literal>ARPHRD_INFINIBAND</literal> - - Generalized hardware address comparison function. Tests if @hwaddr1 and + + Generalized hardware address comparison function. Tests if @hwaddr1 and @hwaddr2 "equal" (or more precisely, "equivalent"), with several advantages over a simple memcmp(): @@ -75631,157 +45386,103 @@ sanity-checked before comparing them against known good addresses; they are guaranteed to not match if they are invalid.) - %TRUE if @hwaddr1 and @hwaddr2 are equivalent, %FALSE if they are + %TRUE if @hwaddr1 and @hwaddr2 are equivalent, %FALSE if they are different (or either of them is invalid). - - pointer to a binary or ASCII hardware address, or %NULL + + pointer to a binary or ASCII hardware address, or %NULL - size of @hwaddr1, or -1 if @hwaddr1 is ASCII + size of @hwaddr1, or -1 if @hwaddr1 is ASCII - - pointer to a binary or ASCII hardware address, or %NULL + + pointer to a binary or ASCII hardware address, or %NULL - size of @hwaddr2, or -1 if @hwaddr2 is ASCII + size of @hwaddr2, or -1 if @hwaddr2 is ASCII - Converts @addr to textual form. + Converts @addr to textual form. - the textual form of @addr + the textual form of @addr - a binary hardware address + a binary hardware address - the length of @addr + the length of @addr - Parses @asc to see if it is a valid hardware address of the given + Parses @asc to see if it is a valid hardware address of the given length. - %TRUE if @asc appears to be a valid hardware address + %TRUE if @asc appears to be a valid hardware address of the indicated length, %FALSE if not. - the ASCII representation of a hardware address + the ASCII representation of a hardware address - the length of address that @asc is expected to convert to + the length of address that @asc is expected to convert to (or -1 to accept any length up to %NM_UTILS_HWADDR_LEN_MAX) - - Validate the network interface name. + + Validate the network interface name. Use nm_utils_is_valid_iface_name() instead, with better error reporting. - %TRUE if interface name is valid, otherwise %FALSE is returned. + %TRUE if interface name is valid, otherwise %FALSE is returned. Before 1.20, this function did not accept %NULL as @name argument. If you want to run against older versions of libnm, don't pass %NULL. - - Name of interface + + Name of interface - - Wrapper for inet_ntop. + + Wrapper for inet_ntop. - the input buffer @dst, or a pointer to an + the input buffer @dst, or a pointer to an internal, static buffer. This function cannot fail. - the address that should be converted to string. + the address that should be converted to string. - the destination buffer, it must contain at least + the destination buffer, it must contain at least <literal>INET_ADDRSTRLEN</literal> or %NM_INET_ADDRSTRLEN characters. If set to %NULL, it will return a pointer to an internal, static buffer (shared with nm_utils_inet6_ntop()). Beware, that the internal @@ -75794,35 +45495,22 @@ Before 1.20, this function did not accept %NULL as @name argument. If you - - Wrapper for inet_ntop. + + Wrapper for inet_ntop. - the input buffer @dst, or a pointer to an + the input buffer @dst, or a pointer to an internal, static buffer. %NULL is not allowed as @in6addr, otherwise, this function cannot fail. - - the address that should be converted to string. + + the address that should be converted to string. - the destination buffer, it must contain at least + the destination buffer, it must contain at least <literal>INET6_ADDRSTRLEN</literal> or %NM_INET_ADDRSTRLEN characters. If set to %NULL, it will return a pointer to an internal, static buffer (shared with nm_utils_inet4_ntop()). Beware, that the internal @@ -75835,11 +45523,8 @@ Before 1.20, this function did not accept %NULL as @name argument. If you - - Utility function to convert a #GVariant of type 'aau' representing a list of + + Utility function to convert a #GVariant of type 'aau' representing a list of NetworkManager IPv4 addresses (which are tuples of address, prefix, and gateway) into a #GPtrArray of #NMIPAddress objects. The "gateway" field of the first address (if set) will be returned in @out_gateway; the "gateway" fields @@ -75850,9 +45535,7 @@ Since 1.46, an empty list is returned if the variant type is not valid (before it was checked as assertion) - a newly allocated + a newly allocated #GPtrArray of #NMIPAddress objects @@ -75860,147 +45543,99 @@ Since 1.46, an empty list is returned if the variant type is not valid - a #GVariant of type 'aau' + a #GVariant of type 'aau' - - on return, will + + on return, will contain the IP gateway - - Utility function to convert a #GPtrArray of #NMIPAddress objects representing + + Utility function to convert a #GPtrArray of #NMIPAddress objects representing IPv4 addresses into a #GVariant of type 'aau' representing an array of NetworkManager IPv4 addresses (which are tuples of address, prefix, and gateway). The "gateway" field of the first address will get the value of @gateway (if non-%NULL). In all of the other addresses, that field will be 0. - a new floating #GVariant representing @addresses. + a new floating #GVariant representing @addresses. - an array of #NMIPAddress objects + an array of #NMIPAddress objects - - the gateway IP address + + the gateway IP address - - Utility function to convert a #GVariant of type 'au' representing a list of + + Utility function to convert a #GVariant of type 'au' representing a list of IPv4 addresses into an array of IP address strings. Since 1.46, an empty list is returned if the variant type is not valid (before it was checked as assertion) - a %NULL-terminated array of IP address strings. + a %NULL-terminated array of IP address strings. - a #GVariant of type 'au' + a #GVariant of type 'au' - - Utility function to convert an array of IP address strings int a #GVariant of + + Utility function to convert an array of IP address strings int a #GVariant of type 'au' representing an array of IPv4 addresses. - a new floating #GVariant representing @dns. + a new floating #GVariant representing @dns. - an array of IP address strings + an array of IP address strings - - When the Internet was originally set up, various ranges of IP addresses were + + When the Internet was originally set up, various ranges of IP addresses were segmented into three network classes: A, B, and C. This function will return a prefix that is associated with the IP address specified defining where it falls in the predefined classes. - the default class prefix for the given IP + the default class prefix for the given IP - an IPv4 address (in network byte order) + an IPv4 address (in network byte order) - + - the CIDR prefix represented by the netmask + the CIDR prefix represented by the netmask - an IPv4 netmask in network byte order. + an IPv4 netmask in network byte order. Usually the netmask has all leading bits up to the prefix set so that the netmask is identical to having the first prefix bits of the address set. @@ -76011,29 +45646,21 @@ falls in the predefined classes. - + - the netmask represented by the prefix, in network byte order + the netmask represented by the prefix, in network byte order - a CIDR prefix, must be not larger than 32. + a CIDR prefix, must be not larger than 32. - - Utility function to convert a #GVariant of type 'aau' representing an array + + Utility function to convert a #GVariant of type 'aau' representing an array of NetworkManager IPv4 routes (which are tuples of route, prefix, next hop, and metric) into a #GPtrArray of #NMIPRoute objects. Note that invalid routes are discarded but the valid routes are still returned. @@ -76042,9 +45669,7 @@ Since 1.46, an empty list is returned if the variant type is not valid (before it was checked as assertion) - a newly allocated + a newly allocated #GPtrArray of #NMIPRoute objects @@ -76052,44 +45677,32 @@ Since 1.46, an empty list is returned if the variant type is not valid - #GVariant of type 'aau' + #GVariant of type 'aau' - - Utility function to convert a #GPtrArray of #NMIPRoute objects representing + + Utility function to convert a #GPtrArray of #NMIPRoute objects representing IPv4 routes into a #GVariant of type 'aau' representing an array of NetworkManager IPv4 routes (which are tuples of route, prefix, next hop, and metric). - a new floating #GVariant representing @routes. + a new floating #GVariant representing @routes. - an array of #NMIP4Route objects + an array of #NMIP4Route objects - - Utility function to convert a #GVariant of type 'a(ayuay)' representing a + + Utility function to convert a #GVariant of type 'a(ayuay)' representing a list of NetworkManager IPv6 addresses (which are tuples of address, prefix, and gateway) into a #GPtrArray of #NMIPAddress objects. The "gateway" field of the first address (if set) will be returned in @out_gateway; the "gateway" @@ -76100,9 +45713,7 @@ Since 1.46, an empty list is returned if the variant type is not valid (before it was checked as assertion) - a newly allocated + a newly allocated #GPtrArray of #NMIPAddress objects @@ -76110,31 +45721,18 @@ Since 1.46, an empty list is returned if the variant type is not valid - a #GVariant of type 'a(ayuay)' + a #GVariant of type 'a(ayuay)' - - on return, will + + on return, will contain the IP gateway - - Utility function to convert a #GPtrArray of #NMIPAddress objects representing + + Utility function to convert a #GPtrArray of #NMIPAddress objects representing IPv6 addresses into a #GVariant of type 'a(ayuay)' representing an array of NetworkManager IPv6 addresses (which are tuples of address, prefix, and gateway). The "gateway" field of the first address will get the value of @@ -76142,36 +45740,24 @@ gateway). The "gateway" field of the first address will get the value of all 0s. - a new floating #GVariant representing @addresses. + a new floating #GVariant representing @addresses. - an array of #NMIPAddress objects + an array of #NMIPAddress objects - - the gateway IP address + + the gateway IP address - - Utility function to convert a #GVariant of type 'aay' representing a list of + + Utility function to convert a #GVariant of type 'aay' representing a list of IPv6 addresses into an array of IP address strings. Each "ay" entry must be a IPv6 address in binary form (16 bytes long). Invalid entries are silently ignored. @@ -76180,49 +45766,35 @@ Since 1.46, an empty list is returned if the variant type is not valid (before it was checked as assertion) - a %NULL-terminated array of IP address strings. + a %NULL-terminated array of IP address strings. - a #GVariant of type 'aay' + a #GVariant of type 'aay' - - Utility function to convert an array of IP address strings int a #GVariant of + + Utility function to convert an array of IP address strings int a #GVariant of type 'aay' representing an array of IPv6 addresses. If a string cannot be parsed, it will be silently ignored. - a new floating #GVariant representing @dns. + a new floating #GVariant representing @dns. - an array of IP address strings + an array of IP address strings - - Utility function to convert a #GVariant of type 'a(ayuayu)' representing an + + Utility function to convert a #GVariant of type 'a(ayuayu)' representing an array of NetworkManager IPv6 routes (which are tuples of route, prefix, next hop, and metric) into a #GPtrArray of #NMIPRoute objects. Note that invalid routes are ignored but the valid ones are still returned. @@ -76231,9 +45803,7 @@ Since 1.46, an empty list is returned if the variant type is not valid (before it was checked as assertion) - a newly allocated + a newly allocated #GPtrArray of #NMIPRoute objects @@ -76241,45 +45811,32 @@ Since 1.46, an empty list is returned if the variant type is not valid - #GVariant of type 'a(ayuayu)' + #GVariant of type 'a(ayuayu)' - - Utility function to convert a #GPtrArray of #NMIPRoute objects representing + + Utility function to convert a #GPtrArray of #NMIPRoute objects representing IPv6 routes into a #GVariant of type 'a(ayuayu)' representing an array of NetworkManager IPv6 routes (which are tuples of route, prefix, next hop, and metric). - a new floating #GVariant representing @routes. + a new floating #GVariant representing @routes. - an array of #NMIPRoute objects + an array of #NMIPRoute objects - - Utility function to convert a #GVariant representing a list of new-style + + Utility function to convert a #GVariant representing a list of new-style NetworkManager IPv4 or IPv6 addresses (as described in the documentation for nm_utils_ip_addresses_to_variant()) into a #GPtrArray of #NMIPAddress objects. Note that invalid addresses are discarded but the valid addresses @@ -76289,9 +45846,7 @@ Since 1.46, an empty list is returned if the variant type is not valid (before it was checked as assertion) - a newly allocated + a newly allocated #GPtrArray of #NMIPAddress objects @@ -76299,53 +45854,37 @@ Since 1.46, an empty list is returned if the variant type is not valid - a #GVariant of type 'aa{sv}' + a #GVariant of type 'aa{sv}' - an IP address family + an IP address family - - Utility function to convert a #GPtrArray of #NMIPAddress objects representing + + Utility function to convert a #GPtrArray of #NMIPAddress objects representing IPv4 or IPv6 addresses into a #GVariant of type 'aa{sv}' representing an array of new-style NetworkManager IP addresses. All addresses will include "address" (an IP address string), and "prefix" (a uint). Some addresses may include additional attributes. - a new floating #GVariant representing @addresses. + a new floating #GVariant representing @addresses. - an array of #NMIPAddress objects + an array of #NMIPAddress objects - - Utility function to convert a #GVariant representing a list of new-style + + Utility function to convert a #GVariant representing a list of new-style NetworkManager IPv4 or IPv6 addresses (as described in the documentation for nm_utils_ip_routes_to_variant()) into a #GPtrArray of #NMIPRoute objects. Invalid routes are discarded but the valid routes are still returned. @@ -76354,9 +45893,7 @@ Since 1.46, an empty list is returned if the variant type is not valid (before it was checked as assertion) - a newly allocated + a newly allocated #GPtrArray of #NMIPRoute objects @@ -76364,25 +45901,17 @@ Since 1.46, an empty list is returned if the variant type is not valid - a #GVariant of type 'aa{sv}' + a #GVariant of type 'aa{sv}' - an IP address family + an IP address family - - Utility function to convert a #GPtrArray of #NMIPRoute objects representing + + Utility function to convert a #GPtrArray of #NMIPRoute objects representing IPv4 or IPv6 routes into a #GVariant of type 'aa{sv}' representing an array of new-style NetworkManager IP routes. All routes will include "dest" (an IP address string), "prefix" (an uint) and optionally "next-hop" (an IP address @@ -76391,16 +45920,12 @@ Note that invalid routes are discarded and only a warning is emitted, but the valid routes are still returned. - a new floating #GVariant representing @routes. + a new floating #GVariant representing @routes. - an array of #NMIPRoute objects + an array of #NMIPRoute objects @@ -76408,71 +45933,50 @@ valid routes are still returned. - Checks if @ip contains a valid IP address of the given family. + Checks if @ip contains a valid IP address of the given family. - %TRUE or %FALSE + %TRUE or %FALSE - <literal>AF_INET</literal> or <literal>AF_INET6</literal>, or + <literal>AF_INET</literal> or <literal>AF_INET6</literal>, or <literal>AF_UNSPEC</literal> to accept either - an IP address + an IP address - Different manufacturers use different mechanisms for not broadcasting the + Different manufacturers use different mechanisms for not broadcasting the AP's SSID. This function attempts to detect blank/empty SSIDs using a number of known SSID-cloaking methods. - %TRUE if the SSID is "empty", %FALSE if it is not + %TRUE if the SSID is "empty", %FALSE if it is not - pointer to a buffer containing the SSID data + pointer to a buffer containing the SSID data - length of the SSID data in @ssid + length of the SSID data in @ssid - + - whether the passed string is valid JSON. + whether the passed string is valid JSON. If libnm is not compiled with libjansson support, this check will also return %TRUE for possibly invalid inputs. If that is a problem for you, you must validate the JSON yourself. @@ -76480,89 +45984,56 @@ number of known SSID-cloaking methods. - the JSON string to test + the JSON string to test - - Checks if @str is a UUID + + Checks if @str is a UUID older versions of NetworkManager had a wrong understanding of what makes a valid UUID. This function can thus accept some inputs as valid, which in fact are not valid UUIDs. - %TRUE if @str is a UUID, %FALSE if not + %TRUE if @str is a UUID, %FALSE if not In older versions, nm_utils_is_uuid() did not accept %NULL as @str argument. Don't pass %NULL if you run against older versions of libnm. - - a string that might be a UUID + + a string that might be a UUID - - Validate the network interface name. + + Validate the network interface name. This function is a 1:1 copy of the kernel's interface validation function in net/core/dev.c. - %TRUE if interface name is valid, otherwise %FALSE is returned. + %TRUE if interface name is valid, otherwise %FALSE is returned. Before 1.20, this function did not accept %NULL as @name argument. If you want to run against older versions of libnm, don't pass %NULL. - - Name of interface + + Name of interface - - Parse attributes from a string. + + Parse attributes from a string. - a #GHashTable mapping + a #GHashTable mapping attribute names to #GVariant values. Warning: the variant are still floating references, owned by the hash table. If you take a reference, ensure to sink the one of the hash table first. @@ -76573,42 +46044,29 @@ the one of the hash table first. - the input string + the input string - the attribute separator character + the attribute separator character - character separating key and values + character separating key and values - whether unknown attributes should be ignored + whether unknown attributes should be ignored - the attribute format specifiers - + the attribute format specifiers + - The only purpose of this function is to give access to g_print() + The only purpose of this function is to give access to g_print() or g_printerr() from pygobject. libnm can do debug logging by setting LIBNM_CLIENT_DEBUG and uses thereby g_printerr() or g_print(). A plain "print()" function in python is not in sync @@ -76641,9 +46099,7 @@ are supported since 1.46. - if 1 it uses g_print(). If 2, it uses g_printerr(). + if 1 it uses g_print(). If 2, it uses g_printerr(). If 0, it uses the same output as internal libnm debug logging does. That is, depending on LIBNM_CLIENT_DEBUG's "stdout" flag it uses g_print() or g_printerr() and if LIBNM_CLIENT_DEBUG_FILE is @@ -76651,18 +46107,14 @@ are supported since 1.46. - the message to print. The function does not append + the message to print. The function does not append a trailing newline. - Earlier versions of the Linux kernel added a NULL byte to the end of the + Earlier versions of the Linux kernel added a NULL byte to the end of the SSID to enable easy printing of the SSID on the console or in a terminal, but this behavior was problematic (SSIDs are simply byte arrays, not strings) and thus was changed. This function compensates for that behavior at the @@ -76670,53 +46122,38 @@ cost of some compatibility with odd SSIDs that may legitimately have trailing NULLs, even though that is functionally pointless. - %TRUE if the SSIDs are the same, %FALSE if they are not + %TRUE if the SSIDs are the same, %FALSE if they are not - the first SSID to compare + the first SSID to compare - length of the SSID data in @ssid1 + length of the SSID data in @ssid1 - the second SSID to compare + the second SSID to compare - length of the SSID data in @ssid2 + length of the SSID data in @ssid2 - %TRUE to ignore one trailing NULL byte + %TRUE to ignore one trailing NULL byte - - Given a set of device capabilities, and a desired security type to check + + Given a set of device capabilities, and a desired security type to check against, determines whether the combination of device, desired security type, and AP capabilities intersect. @@ -76724,118 +46161,79 @@ NOTE: this function cannot handle checking security for AP/Hotspot mode; use nm_utils_ap_mode_security_valid() instead. - %TRUE if the device capabilities and AP capabilities intersect and are + %TRUE if the device capabilities and AP capabilities intersect and are compatible with the desired @type, %FALSE if they are not - the security type to check AP flags and device capabilities against, + the security type to check AP flags and device capabilities against, e.g. #NMU_SEC_STATIC_WEP - bitfield of the capabilities of the specific Wi-Fi device, e.g. + bitfield of the capabilities of the specific Wi-Fi device, e.g. #NM_WIFI_DEVICE_CAP_CIPHER_WEP40 - + - whether the @ap_flags, @ap_wpa, and @ap_rsn arguments are valid + whether the @ap_flags, @ap_wpa, and @ap_rsn arguments are valid - whether the capabilities being tested are from an Ad-Hoc AP (IBSS) + whether the capabilities being tested are from an Ad-Hoc AP (IBSS) - bitfield of AP capabilities, e.g. #NM_802_11_AP_FLAGS_PRIVACY + bitfield of AP capabilities, e.g. #NM_802_11_AP_FLAGS_PRIVACY - bitfield of AP capabilities derived from the AP's WPA beacon, + bitfield of AP capabilities derived from the AP's WPA beacon, e.g. (#NM_802_11_AP_SEC_PAIR_TKIP | #NM_802_11_AP_SEC_KEY_MGMT_PSK) - bitfield of AP capabilities derived from the AP's RSN/WPA2 beacon, + bitfield of AP capabilities derived from the AP's RSN/WPA2 beacon, e.g. (#NM_802_11_AP_SEC_PAIR_CCMP | #NM_802_11_AP_SEC_PAIR_TKIP) - - Converts a string to a SR-IOV virtual function object. + + Converts a string to a SR-IOV virtual function object. - the virtual function object + the virtual function object - the input string + the input string - - Converts a SR-IOV virtual function object to its string representation. + + Converts a SR-IOV virtual function object to its string representation. - a newly allocated string or %NULL on error + a newly allocated string or %NULL on error - the %NMSriovVF + the %NMSriovVF - if %TRUE, the VF index will be omitted from output string + if %TRUE, the VF index will be omitted from output string - Wi-Fi SSIDs are byte arrays, they are _not_ strings. Thus, an SSID may + Wi-Fi SSIDs are byte arrays, they are _not_ strings. Thus, an SSID may contain embedded NULLs and other unprintable characters. Often it is useful to print the SSID out for debugging purposes, but that should be the _only_ use of this function. Do not use this function for any persistent @@ -76859,170 +46257,110 @@ Again, this function should be used for debugging and display purposes _only_. - an allocated string containing a UTF-8 + an allocated string containing a UTF-8 representation of the SSID, which must be freed by the caller using g_free(). Returns %NULL on errors. - pointer to a buffer containing the SSID data + pointer to a buffer containing the SSID data - length of the SSID data in @ssid + length of the SSID data in @ssid - - Parses the tc style string action representation of the queueing + + Parses the tc style string action representation of the queueing discipline to a %NMTCAction instance. Supports a subset of the tc language. - the %NMTCAction or %NULL + the %NMTCAction or %NULL - the string representation of a action + the string representation of a action - - Turns the %NMTCAction into a tc style string representation of the queueing + + Turns the %NMTCAction into a tc style string representation of the queueing discipline. - formatted string or %NULL + formatted string or %NULL - the %NMTCAction + the %NMTCAction - - Parses the tc style string qdisc representation of the queueing + + Parses the tc style string qdisc representation of the queueing discipline to a %NMTCQdisc instance. Supports a subset of the tc language. - the %NMTCQdisc or %NULL + the %NMTCQdisc or %NULL - the string representation of a qdisc + the string representation of a qdisc - - Turns the %NMTCQdisc into a tc style string representation of the queueing + + Turns the %NMTCQdisc into a tc style string representation of the queueing discipline. - formatted string or %NULL + formatted string or %NULL - the %NMTCQdisc + the %NMTCQdisc - - Parses the tc style string tfilter representation of the queueing + + Parses the tc style string tfilter representation of the queueing discipline to a %NMTCTfilter instance. Supports a subset of the tc language. - the %NMTCTfilter or %NULL + the %NMTCTfilter or %NULL - the string representation of a tfilter + the string representation of a tfilter - - Turns the %NMTCTfilter into a tc style string representation of the queueing + + Turns the %NMTCTfilter into a tc style string representation of the queueing discipline. - formatted string or %NULL + formatted string or %NULL - the %NMTCTfilter + the %NMTCTfilter @@ -77030,194 +46368,129 @@ discipline. - a newly allocated UUID suitable for use as the #NMSettingConnection + a newly allocated UUID suitable for use as the #NMSettingConnection object's #NMSettingConnection:id: property. Should be freed with g_free() - + - the version ID of the libnm version. That is, the %NM_VERSION + the version ID of the libnm version. That is, the %NM_VERSION at runtime. - Checks if @key is a valid WEP key + Checks if @key is a valid WEP key - %TRUE if @key is a WEP key, %FALSE if not + %TRUE if @key is a WEP key, %FALSE if not - a string that might be a WEP key + a string that might be a WEP key - the #NMWepKeyType type of the WEP key + the #NMWepKeyType type of the WEP key - - Utility function to return 2.4 GHz Wi-Fi frequencies (802.11bg band). + + Utility function to return 2.4 GHz Wi-Fi frequencies (802.11bg band). - zero-terminated array of frequencies numbers (in MHz) + zero-terminated array of frequencies numbers (in MHz) - - Utility function to return 5 GHz Wi-Fi frequencies (802.11a band). + + Utility function to return 5 GHz Wi-Fi frequencies (802.11a band). - zero-terminated array of frequencies numbers (in MHz) + zero-terminated array of frequencies numbers (in MHz) - - Utility function to translate a Wi-Fi channel to its corresponding frequency. + + Utility function to translate a Wi-Fi channel to its corresponding frequency. - the frequency represented by the channel of the band, + the frequency represented by the channel of the band, or -1 when the freq is invalid, or 0 when the band is invalid - channel + channel - frequency band for wireless ("a" or "bg") + frequency band for wireless ("a" or "bg") - - Utility function to find out next/previous Wi-Fi channel for a channel. + + Utility function to find out next/previous Wi-Fi channel for a channel. - the next channel in the specified direction or 0 + the next channel in the specified direction or 0 - current channel + current channel - whether going downward (0 or less) or upward (1 or more) + whether going downward (0 or less) or upward (1 or more) - frequency band for wireless ("a" or "bg") + frequency band for wireless ("a" or "bg") - - Utility function to translate a Wi-Fi frequency to its corresponding channel. + + Utility function to translate a Wi-Fi frequency to its corresponding channel. - the channel represented by the frequency or 0 + the channel represented by the frequency or 0 - frequency + frequency - - Utility function to verify Wi-Fi channel validity. + + Utility function to verify Wi-Fi channel validity. - %TRUE or %FALSE + %TRUE or %FALSE - channel + channel - frequency band for wireless ("a" or "bg") + frequency band for wireless ("a" or "bg") - - Converts @strength into a 4-character-wide graphical representation of + + Converts @strength into a 4-character-wide graphical representation of strength suitable for printing to stdout. Previous versions used to take a guess at the terminal type and possibly @@ -77226,48 +46499,32 @@ clean strings of one to 0 to 4 asterisks. Users that actually need the functionality are encouraged to make their implementations instead. - the graphical representation of the access point strength + the graphical representation of the access point strength - the access point strength, from 0 to 100 + the access point strength, from 0 to 100 - Checks if @psk is a valid WPA PSK + Checks if @psk is a valid WPA PSK - %TRUE if @psk is a WPA PSK, %FALSE if not + %TRUE if @psk is a WPA PSK, %FALSE if not - a string that might be a WPA PSK + a string that might be a WPA PSK - - Load the shared library @plugin_name and create a new + + Load the shared library @plugin_name and create a new #NMVpnEditorPlugin instance via the #NMVpnEditorPluginFactory function. @@ -77275,40 +46532,27 @@ This is similar to nm_vpn_editor_plugin_load_from_file(), but it does no validation of the plugin name, instead passes it directly to dlopen(). If you have the full path to a plugin file, nm_vpn_editor_plugin_load_from_file() is preferred. - + - a new plugin instance or %NULL on error. + a new plugin instance or %NULL on error. - The name of the shared library to load. + The name of the shared library to load. This path will be directly passed to dlopen() without further checks. - if not-null, check that the loaded plugin advertises + if not-null, check that the loaded plugin advertises the given service. - - Load the shared library @plugin_name and create a new + + Load the shared library @plugin_name and create a new #NMVpnEditorPlugin instance via the #NMVpnEditorPluginFactory function. @@ -77317,64 +46561,42 @@ is in the plugin directory of NetworkManager. In any case, the call will do certain checks on the file before passing it to dlopen. A consequence for that is, that you cannot omit the ".so" suffix as you could for nm_vpn_editor_plugin_load(). - + - a new plugin instance or %NULL on error. + a new plugin instance or %NULL on error. - The path or name of the shared library to load. + The path or name of the shared library to load. The path must either be an absolute filename to an existing file. Alternatively, it can be the name (without path) of a library in the plugin directory of NetworkManager. - if not-null, check that the loaded plugin advertises + if not-null, check that the loaded plugin advertises the given service. - if non-negative, check whether the file is owned + if non-negative, check whether the file is owned by UID @check_owner or by root. In this case also check that the file is not writable by anybody else. - - optional callback to validate the file prior to + + optional callback to validate the file prior to loading the shared library. - - - - user data for @check_file + + + + user data for @check_file - + diff --git a/libphosh-rs/Phosh-0.gir b/libphosh-rs/Phosh-0.gir index 23ab206ce..0120d9a2b 100644 --- a/libphosh-rs/Phosh-0.gir +++ b/libphosh-rs/Phosh-0.gir @@ -2,202 +2,140 @@ - - + + - - - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - - Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-gnome-Shell-Screenshot.top_of_page">org.gnome.Shell.Screenshot</link>. + + Abstract interface type for the D-Bus interface <link linkend="gdbus-interface-org-gnome-Shell-Screenshot.top_of_page">org.gnome.Shell.Screenshot</link>. - - Gets a machine-readable description of the <link linkend="gdbus-interface-org-gnome-Shell-Screenshot.top_of_page">org.gnome.Shell.Screenshot</link> D-Bus interface. - + + Gets a machine-readable description of the <link linkend="gdbus-interface-org-gnome-Shell-Screenshot.top_of_page">org.gnome.Shell.Screenshot</link> D-Bus interface. + - A #GDBusInterfaceInfo. Do not free. + A #GDBusInterfaceInfo. Do not free. - - Overrides all #GObject properties in the #PhoshDBusScreenshot interface for a concrete class. + + Overrides all #GObject properties in the #PhoshDBusScreenshot interface for a concrete class. The properties are overridden in the order they are defined. - + - The last property id. + The last property id. - The class structure for a #GObject derived class. + The class structure for a #GObject derived class. - The property id to assign to the first overridden property. + The property id to assign to the first overridden property. - Handler for the #PhoshDBusScreenshot::handle-flash-area signal. - + Handler for the #PhoshDBusScreenshot::handle-flash-area signal. + @@ -206,8 +144,7 @@ The properties are overridden in the order they are defined. - + @@ -224,11 +161,8 @@ The properties are overridden in the order they are defined. - Handler for the #PhoshDBusScreenshot::handle-pick-color signal. - + Handler for the #PhoshDBusScreenshot::handle-pick-color signal. + @@ -237,17 +171,13 @@ The properties are overridden in the order they are defined. - + - Handler for the #PhoshDBusScreenshot::handle-screenshot signal. - + Handler for the #PhoshDBusScreenshot::handle-screenshot signal. + @@ -256,8 +186,7 @@ The properties are overridden in the order they are defined. - + @@ -271,11 +200,8 @@ The properties are overridden in the order they are defined. - Handler for the #PhoshDBusScreenshot::handle-screenshot-area signal. - + Handler for the #PhoshDBusScreenshot::handle-screenshot-area signal. + @@ -284,8 +210,7 @@ The properties are overridden in the order they are defined. - + @@ -308,11 +233,8 @@ The properties are overridden in the order they are defined. - Handler for the #PhoshDBusScreenshot::handle-screenshot-window signal. - + Handler for the #PhoshDBusScreenshot::handle-screenshot-window signal. + @@ -321,8 +243,7 @@ The properties are overridden in the order they are defined. - + @@ -339,11 +260,8 @@ The properties are overridden in the order they are defined. - Handler for the #PhoshDBusScreenshot::handle-select-area signal. - + Handler for the #PhoshDBusScreenshot::handle-select-area signal. + @@ -352,1648 +270,964 @@ The properties are overridden in the order they are defined. - + - - Asynchronously invokes the <link linkend="gdbus-method-org-gnome-Shell-Screenshot.FlashArea">FlashArea()</link> D-Bus method on @proxy. + + Asynchronously invokes the <link linkend="gdbus-method-org-gnome-Shell-Screenshot.FlashArea">FlashArea()</link> D-Bus method on @proxy. When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from (see g_main_context_push_thread_default()). You can then call phosh_dbus_screenshot_call_flash_area_finish() to get the result of the operation. See phosh_dbus_screenshot_call_flash_area_sync() for the synchronous, blocking version of this method. - + - A #PhoshDBusScreenshotProxy. + A #PhoshDBusScreenshotProxy. - Argument to pass with the method invocation. + Argument to pass with the method invocation. - Argument to pass with the method invocation. + Argument to pass with the method invocation. - Argument to pass with the method invocation. + Argument to pass with the method invocation. - Argument to pass with the method invocation. + Argument to pass with the method invocation. - - A #GCancellable or %NULL. + + A #GCancellable or %NULL. - - A #GAsyncReadyCallback to call when the request is satisfied or %NULL. + + A #GAsyncReadyCallback to call when the request is satisfied or %NULL. - - User data to pass to @callback. + + User data to pass to @callback. - - Finishes an operation started with phosh_dbus_screenshot_call_flash_area(). - + + Finishes an operation started with phosh_dbus_screenshot_call_flash_area(). + - %TRUE if the call succeeded, %FALSE if @error is set. + %TRUE if the call succeeded, %FALSE if @error is set. - A #PhoshDBusScreenshotProxy. + A #PhoshDBusScreenshotProxy. - The #GAsyncResult obtained from the #GAsyncReadyCallback passed to phosh_dbus_screenshot_call_flash_area(). + The #GAsyncResult obtained from the #GAsyncReadyCallback passed to phosh_dbus_screenshot_call_flash_area(). - - Synchronously invokes the <link linkend="gdbus-method-org-gnome-Shell-Screenshot.FlashArea">FlashArea()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received. + + Synchronously invokes the <link linkend="gdbus-method-org-gnome-Shell-Screenshot.FlashArea">FlashArea()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received. See phosh_dbus_screenshot_call_flash_area() for the asynchronous version of this method. - + - %TRUE if the call succeeded, %FALSE if @error is set. + %TRUE if the call succeeded, %FALSE if @error is set. - A #PhoshDBusScreenshotProxy. + A #PhoshDBusScreenshotProxy. - Argument to pass with the method invocation. + Argument to pass with the method invocation. - Argument to pass with the method invocation. + Argument to pass with the method invocation. - Argument to pass with the method invocation. + Argument to pass with the method invocation. - Argument to pass with the method invocation. + Argument to pass with the method invocation. - - A #GCancellable or %NULL. + + A #GCancellable or %NULL. - - Asynchronously invokes the <link linkend="gdbus-method-org-gnome-Shell-Screenshot.PickColor">PickColor()</link> D-Bus method on @proxy. + + Asynchronously invokes the <link linkend="gdbus-method-org-gnome-Shell-Screenshot.PickColor">PickColor()</link> D-Bus method on @proxy. When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from (see g_main_context_push_thread_default()). You can then call phosh_dbus_screenshot_call_pick_color_finish() to get the result of the operation. See phosh_dbus_screenshot_call_pick_color_sync() for the synchronous, blocking version of this method. - + - A #PhoshDBusScreenshotProxy. + A #PhoshDBusScreenshotProxy. - - A #GCancellable or %NULL. + + A #GCancellable or %NULL. - - A #GAsyncReadyCallback to call when the request is satisfied or %NULL. + + A #GAsyncReadyCallback to call when the request is satisfied or %NULL. - - User data to pass to @callback. + + User data to pass to @callback. - - Finishes an operation started with phosh_dbus_screenshot_call_pick_color(). - + + Finishes an operation started with phosh_dbus_screenshot_call_pick_color(). + - %TRUE if the call succeeded, %FALSE if @error is set. + %TRUE if the call succeeded, %FALSE if @error is set. - A #PhoshDBusScreenshotProxy. + A #PhoshDBusScreenshotProxy. - - Return location for return parameter or %NULL to ignore. + + Return location for return parameter or %NULL to ignore. - The #GAsyncResult obtained from the #GAsyncReadyCallback passed to phosh_dbus_screenshot_call_pick_color(). + The #GAsyncResult obtained from the #GAsyncReadyCallback passed to phosh_dbus_screenshot_call_pick_color(). - - Synchronously invokes the <link linkend="gdbus-method-org-gnome-Shell-Screenshot.PickColor">PickColor()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received. + + Synchronously invokes the <link linkend="gdbus-method-org-gnome-Shell-Screenshot.PickColor">PickColor()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received. See phosh_dbus_screenshot_call_pick_color() for the asynchronous version of this method. - + - %TRUE if the call succeeded, %FALSE if @error is set. + %TRUE if the call succeeded, %FALSE if @error is set. - A #PhoshDBusScreenshotProxy. + A #PhoshDBusScreenshotProxy. - - Return location for return parameter or %NULL to ignore. + + Return location for return parameter or %NULL to ignore. - - A #GCancellable or %NULL. + + A #GCancellable or %NULL. - - Asynchronously invokes the <link linkend="gdbus-method-org-gnome-Shell-Screenshot.Screenshot">Screenshot()</link> D-Bus method on @proxy. + + Asynchronously invokes the <link linkend="gdbus-method-org-gnome-Shell-Screenshot.Screenshot">Screenshot()</link> D-Bus method on @proxy. When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from (see g_main_context_push_thread_default()). You can then call phosh_dbus_screenshot_call_screenshot_finish() to get the result of the operation. See phosh_dbus_screenshot_call_screenshot_sync() for the synchronous, blocking version of this method. - + - A #PhoshDBusScreenshotProxy. + A #PhoshDBusScreenshotProxy. - Argument to pass with the method invocation. + Argument to pass with the method invocation. - Argument to pass with the method invocation. + Argument to pass with the method invocation. - Argument to pass with the method invocation. + Argument to pass with the method invocation. - - A #GCancellable or %NULL. + + A #GCancellable or %NULL. - - A #GAsyncReadyCallback to call when the request is satisfied or %NULL. + + A #GAsyncReadyCallback to call when the request is satisfied or %NULL. - - User data to pass to @callback. + + User data to pass to @callback. - - Asynchronously invokes the <link linkend="gdbus-method-org-gnome-Shell-Screenshot.ScreenshotArea">ScreenshotArea()</link> D-Bus method on @proxy. + + Asynchronously invokes the <link linkend="gdbus-method-org-gnome-Shell-Screenshot.ScreenshotArea">ScreenshotArea()</link> D-Bus method on @proxy. When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from (see g_main_context_push_thread_default()). You can then call phosh_dbus_screenshot_call_screenshot_area_finish() to get the result of the operation. See phosh_dbus_screenshot_call_screenshot_area_sync() for the synchronous, blocking version of this method. - + - A #PhoshDBusScreenshotProxy. + A #PhoshDBusScreenshotProxy. - Argument to pass with the method invocation. + Argument to pass with the method invocation. - Argument to pass with the method invocation. + Argument to pass with the method invocation. - Argument to pass with the method invocation. + Argument to pass with the method invocation. - Argument to pass with the method invocation. + Argument to pass with the method invocation. - Argument to pass with the method invocation. + Argument to pass with the method invocation. - Argument to pass with the method invocation. + Argument to pass with the method invocation. - - A #GCancellable or %NULL. + + A #GCancellable or %NULL. - - A #GAsyncReadyCallback to call when the request is satisfied or %NULL. + + A #GAsyncReadyCallback to call when the request is satisfied or %NULL. - - User data to pass to @callback. + + User data to pass to @callback. - - Finishes an operation started with phosh_dbus_screenshot_call_screenshot_area(). - + + Finishes an operation started with phosh_dbus_screenshot_call_screenshot_area(). + - %TRUE if the call succeeded, %FALSE if @error is set. + %TRUE if the call succeeded, %FALSE if @error is set. - A #PhoshDBusScreenshotProxy. + A #PhoshDBusScreenshotProxy. - - Return location for return parameter or %NULL to ignore. + + Return location for return parameter or %NULL to ignore. - - Return location for return parameter or %NULL to ignore. + + Return location for return parameter or %NULL to ignore. - The #GAsyncResult obtained from the #GAsyncReadyCallback passed to phosh_dbus_screenshot_call_screenshot_area(). + The #GAsyncResult obtained from the #GAsyncReadyCallback passed to phosh_dbus_screenshot_call_screenshot_area(). - - Synchronously invokes the <link linkend="gdbus-method-org-gnome-Shell-Screenshot.ScreenshotArea">ScreenshotArea()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received. + + Synchronously invokes the <link linkend="gdbus-method-org-gnome-Shell-Screenshot.ScreenshotArea">ScreenshotArea()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received. See phosh_dbus_screenshot_call_screenshot_area() for the asynchronous version of this method. - + - %TRUE if the call succeeded, %FALSE if @error is set. + %TRUE if the call succeeded, %FALSE if @error is set. - A #PhoshDBusScreenshotProxy. + A #PhoshDBusScreenshotProxy. - Argument to pass with the method invocation. + Argument to pass with the method invocation. - Argument to pass with the method invocation. + Argument to pass with the method invocation. - Argument to pass with the method invocation. + Argument to pass with the method invocation. - Argument to pass with the method invocation. + Argument to pass with the method invocation. - Argument to pass with the method invocation. + Argument to pass with the method invocation. - Argument to pass with the method invocation. + Argument to pass with the method invocation. - - Return location for return parameter or %NULL to ignore. + + Return location for return parameter or %NULL to ignore. - - Return location for return parameter or %NULL to ignore. + + Return location for return parameter or %NULL to ignore. - - A #GCancellable or %NULL. + + A #GCancellable or %NULL. - - Finishes an operation started with phosh_dbus_screenshot_call_screenshot(). - + + Finishes an operation started with phosh_dbus_screenshot_call_screenshot(). + - %TRUE if the call succeeded, %FALSE if @error is set. + %TRUE if the call succeeded, %FALSE if @error is set. - A #PhoshDBusScreenshotProxy. + A #PhoshDBusScreenshotProxy. - - Return location for return parameter or %NULL to ignore. + + Return location for return parameter or %NULL to ignore. - - Return location for return parameter or %NULL to ignore. + + Return location for return parameter or %NULL to ignore. - The #GAsyncResult obtained from the #GAsyncReadyCallback passed to phosh_dbus_screenshot_call_screenshot(). + The #GAsyncResult obtained from the #GAsyncReadyCallback passed to phosh_dbus_screenshot_call_screenshot(). - - Synchronously invokes the <link linkend="gdbus-method-org-gnome-Shell-Screenshot.Screenshot">Screenshot()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received. + + Synchronously invokes the <link linkend="gdbus-method-org-gnome-Shell-Screenshot.Screenshot">Screenshot()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received. See phosh_dbus_screenshot_call_screenshot() for the asynchronous version of this method. - + - %TRUE if the call succeeded, %FALSE if @error is set. + %TRUE if the call succeeded, %FALSE if @error is set. - A #PhoshDBusScreenshotProxy. + A #PhoshDBusScreenshotProxy. - Argument to pass with the method invocation. + Argument to pass with the method invocation. - Argument to pass with the method invocation. + Argument to pass with the method invocation. - Argument to pass with the method invocation. + Argument to pass with the method invocation. - - Return location for return parameter or %NULL to ignore. + + Return location for return parameter or %NULL to ignore. - - Return location for return parameter or %NULL to ignore. + + Return location for return parameter or %NULL to ignore. - - A #GCancellable or %NULL. + + A #GCancellable or %NULL. - - Asynchronously invokes the <link linkend="gdbus-method-org-gnome-Shell-Screenshot.ScreenshotWindow">ScreenshotWindow()</link> D-Bus method on @proxy. + + Asynchronously invokes the <link linkend="gdbus-method-org-gnome-Shell-Screenshot.ScreenshotWindow">ScreenshotWindow()</link> D-Bus method on @proxy. When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from (see g_main_context_push_thread_default()). You can then call phosh_dbus_screenshot_call_screenshot_window_finish() to get the result of the operation. See phosh_dbus_screenshot_call_screenshot_window_sync() for the synchronous, blocking version of this method. - + - A #PhoshDBusScreenshotProxy. + A #PhoshDBusScreenshotProxy. - Argument to pass with the method invocation. + Argument to pass with the method invocation. - Argument to pass with the method invocation. + Argument to pass with the method invocation. - Argument to pass with the method invocation. + Argument to pass with the method invocation. - Argument to pass with the method invocation. + Argument to pass with the method invocation. - - A #GCancellable or %NULL. + + A #GCancellable or %NULL. - - A #GAsyncReadyCallback to call when the request is satisfied or %NULL. + + A #GAsyncReadyCallback to call when the request is satisfied or %NULL. - - User data to pass to @callback. + + User data to pass to @callback. - - Finishes an operation started with phosh_dbus_screenshot_call_screenshot_window(). - + + Finishes an operation started with phosh_dbus_screenshot_call_screenshot_window(). + - %TRUE if the call succeeded, %FALSE if @error is set. + %TRUE if the call succeeded, %FALSE if @error is set. - A #PhoshDBusScreenshotProxy. + A #PhoshDBusScreenshotProxy. - - Return location for return parameter or %NULL to ignore. + + Return location for return parameter or %NULL to ignore. - - Return location for return parameter or %NULL to ignore. + + Return location for return parameter or %NULL to ignore. - The #GAsyncResult obtained from the #GAsyncReadyCallback passed to phosh_dbus_screenshot_call_screenshot_window(). + The #GAsyncResult obtained from the #GAsyncReadyCallback passed to phosh_dbus_screenshot_call_screenshot_window(). - - Synchronously invokes the <link linkend="gdbus-method-org-gnome-Shell-Screenshot.ScreenshotWindow">ScreenshotWindow()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received. + + Synchronously invokes the <link linkend="gdbus-method-org-gnome-Shell-Screenshot.ScreenshotWindow">ScreenshotWindow()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received. See phosh_dbus_screenshot_call_screenshot_window() for the asynchronous version of this method. - + - %TRUE if the call succeeded, %FALSE if @error is set. + %TRUE if the call succeeded, %FALSE if @error is set. - A #PhoshDBusScreenshotProxy. + A #PhoshDBusScreenshotProxy. - Argument to pass with the method invocation. + Argument to pass with the method invocation. - Argument to pass with the method invocation. + Argument to pass with the method invocation. - Argument to pass with the method invocation. + Argument to pass with the method invocation. - Argument to pass with the method invocation. + Argument to pass with the method invocation. - - Return location for return parameter or %NULL to ignore. + + Return location for return parameter or %NULL to ignore. - - Return location for return parameter or %NULL to ignore. + + Return location for return parameter or %NULL to ignore. - - A #GCancellable or %NULL. + + A #GCancellable or %NULL. - - Asynchronously invokes the <link linkend="gdbus-method-org-gnome-Shell-Screenshot.SelectArea">SelectArea()</link> D-Bus method on @proxy. + + Asynchronously invokes the <link linkend="gdbus-method-org-gnome-Shell-Screenshot.SelectArea">SelectArea()</link> D-Bus method on @proxy. When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from (see g_main_context_push_thread_default()). You can then call phosh_dbus_screenshot_call_select_area_finish() to get the result of the operation. See phosh_dbus_screenshot_call_select_area_sync() for the synchronous, blocking version of this method. - + - A #PhoshDBusScreenshotProxy. + A #PhoshDBusScreenshotProxy. - - A #GCancellable or %NULL. + + A #GCancellable or %NULL. - - A #GAsyncReadyCallback to call when the request is satisfied or %NULL. + + A #GAsyncReadyCallback to call when the request is satisfied or %NULL. - - User data to pass to @callback. + + User data to pass to @callback. - - Finishes an operation started with phosh_dbus_screenshot_call_select_area(). - + + Finishes an operation started with phosh_dbus_screenshot_call_select_area(). + - %TRUE if the call succeeded, %FALSE if @error is set. + %TRUE if the call succeeded, %FALSE if @error is set. - A #PhoshDBusScreenshotProxy. + A #PhoshDBusScreenshotProxy. - - Return location for return parameter or %NULL to ignore. + + Return location for return parameter or %NULL to ignore. - - Return location for return parameter or %NULL to ignore. + + Return location for return parameter or %NULL to ignore. - - Return location for return parameter or %NULL to ignore. + + Return location for return parameter or %NULL to ignore. - - Return location for return parameter or %NULL to ignore. + + Return location for return parameter or %NULL to ignore. - The #GAsyncResult obtained from the #GAsyncReadyCallback passed to phosh_dbus_screenshot_call_select_area(). + The #GAsyncResult obtained from the #GAsyncReadyCallback passed to phosh_dbus_screenshot_call_select_area(). - - Synchronously invokes the <link linkend="gdbus-method-org-gnome-Shell-Screenshot.SelectArea">SelectArea()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received. + + Synchronously invokes the <link linkend="gdbus-method-org-gnome-Shell-Screenshot.SelectArea">SelectArea()</link> D-Bus method on @proxy. The calling thread is blocked until a reply is received. See phosh_dbus_screenshot_call_select_area() for the asynchronous version of this method. - + - %TRUE if the call succeeded, %FALSE if @error is set. + %TRUE if the call succeeded, %FALSE if @error is set. - A #PhoshDBusScreenshotProxy. + A #PhoshDBusScreenshotProxy. - - Return location for return parameter or %NULL to ignore. + + Return location for return parameter or %NULL to ignore. - - Return location for return parameter or %NULL to ignore. + + Return location for return parameter or %NULL to ignore. - - Return location for return parameter or %NULL to ignore. + + Return location for return parameter or %NULL to ignore. - - Return location for return parameter or %NULL to ignore. + + Return location for return parameter or %NULL to ignore. - - A #GCancellable or %NULL. + + A #GCancellable or %NULL. - - Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-gnome-Shell-Screenshot.FlashArea">FlashArea()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar. + + Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-gnome-Shell-Screenshot.FlashArea">FlashArea()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar. This method will free @invocation, you cannot use it afterwards. - + - A #PhoshDBusScreenshot. + A #PhoshDBusScreenshot. - A #GDBusMethodInvocation. - + A #GDBusMethodInvocation. + - - Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-gnome-Shell-Screenshot.PickColor">PickColor()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar. + + Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-gnome-Shell-Screenshot.PickColor">PickColor()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar. This method will free @invocation, you cannot use it afterwards. - + - A #PhoshDBusScreenshot. + A #PhoshDBusScreenshot. - A #GDBusMethodInvocation. - + A #GDBusMethodInvocation. + - Parameter to return. + Parameter to return. - - Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-gnome-Shell-Screenshot.Screenshot">Screenshot()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar. + + Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-gnome-Shell-Screenshot.Screenshot">Screenshot()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar. This method will free @invocation, you cannot use it afterwards. - + - A #PhoshDBusScreenshot. + A #PhoshDBusScreenshot. - A #GDBusMethodInvocation. - + A #GDBusMethodInvocation. + - Parameter to return. + Parameter to return. - Parameter to return. + Parameter to return. - - Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-gnome-Shell-Screenshot.ScreenshotArea">ScreenshotArea()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar. + + Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-gnome-Shell-Screenshot.ScreenshotArea">ScreenshotArea()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar. This method will free @invocation, you cannot use it afterwards. - + - A #PhoshDBusScreenshot. + A #PhoshDBusScreenshot. - A #GDBusMethodInvocation. - + A #GDBusMethodInvocation. + - Parameter to return. + Parameter to return. - Parameter to return. + Parameter to return. - - Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-gnome-Shell-Screenshot.ScreenshotWindow">ScreenshotWindow()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar. + + Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-gnome-Shell-Screenshot.ScreenshotWindow">ScreenshotWindow()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar. This method will free @invocation, you cannot use it afterwards. - + - A #PhoshDBusScreenshot. + A #PhoshDBusScreenshot. - A #GDBusMethodInvocation. - + A #GDBusMethodInvocation. + - Parameter to return. + Parameter to return. - Parameter to return. + Parameter to return. - - Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-gnome-Shell-Screenshot.SelectArea">SelectArea()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar. + + Helper function used in service implementations to finish handling invocations of the <link linkend="gdbus-method-org-gnome-Shell-Screenshot.SelectArea">SelectArea()</link> D-Bus method. If you instead want to finish handling an invocation by returning an error, use g_dbus_method_invocation_return_error() or similar. This method will free @invocation, you cannot use it afterwards. - + - A #PhoshDBusScreenshot. + A #PhoshDBusScreenshot. - A #GDBusMethodInvocation. - + A #GDBusMethodInvocation. + - Parameter to return. + Parameter to return. - Parameter to return. + Parameter to return. - Parameter to return. + Parameter to return. - Parameter to return. + Parameter to return. - Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-gnome-Shell-Screenshot.FlashArea">FlashArea()</link> D-Bus method. + Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-gnome-Shell-Screenshot.FlashArea">FlashArea()</link> D-Bus method. If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call phosh_dbus_screenshot_complete_flash_area() or e.g. g_dbus_method_invocation_return_error() on it) and no other signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned. - %G_DBUS_METHOD_INVOCATION_HANDLED or %TRUE if the invocation was handled, %G_DBUS_METHOD_INVOCATION_UNHANDLED or %FALSE to let other signal handlers run. + %G_DBUS_METHOD_INVOCATION_HANDLED or %TRUE if the invocation was handled, %G_DBUS_METHOD_INVOCATION_UNHANDLED or %FALSE to let other signal handlers run. - A #GDBusMethodInvocation. + A #GDBusMethodInvocation. - Argument passed by remote caller. + Argument passed by remote caller. - Argument passed by remote caller. + Argument passed by remote caller. - Argument passed by remote caller. + Argument passed by remote caller. - Argument passed by remote caller. + Argument passed by remote caller. - Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-gnome-Shell-Screenshot.PickColor">PickColor()</link> D-Bus method. + Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-gnome-Shell-Screenshot.PickColor">PickColor()</link> D-Bus method. If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call phosh_dbus_screenshot_complete_pick_color() or e.g. g_dbus_method_invocation_return_error() on it) and no other signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned. - %G_DBUS_METHOD_INVOCATION_HANDLED or %TRUE if the invocation was handled, %G_DBUS_METHOD_INVOCATION_UNHANDLED or %FALSE to let other signal handlers run. + %G_DBUS_METHOD_INVOCATION_HANDLED or %TRUE if the invocation was handled, %G_DBUS_METHOD_INVOCATION_UNHANDLED or %FALSE to let other signal handlers run. - A #GDBusMethodInvocation. + A #GDBusMethodInvocation. - Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-gnome-Shell-Screenshot.Screenshot">Screenshot()</link> D-Bus method. + Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-gnome-Shell-Screenshot.Screenshot">Screenshot()</link> D-Bus method. If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call phosh_dbus_screenshot_complete_screenshot() or e.g. g_dbus_method_invocation_return_error() on it) and no other signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned. - %G_DBUS_METHOD_INVOCATION_HANDLED or %TRUE if the invocation was handled, %G_DBUS_METHOD_INVOCATION_UNHANDLED or %FALSE to let other signal handlers run. + %G_DBUS_METHOD_INVOCATION_HANDLED or %TRUE if the invocation was handled, %G_DBUS_METHOD_INVOCATION_UNHANDLED or %FALSE to let other signal handlers run. - A #GDBusMethodInvocation. + A #GDBusMethodInvocation. - Argument passed by remote caller. + Argument passed by remote caller. - Argument passed by remote caller. + Argument passed by remote caller. - Argument passed by remote caller. + Argument passed by remote caller. - Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-gnome-Shell-Screenshot.ScreenshotArea">ScreenshotArea()</link> D-Bus method. + Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-gnome-Shell-Screenshot.ScreenshotArea">ScreenshotArea()</link> D-Bus method. If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call phosh_dbus_screenshot_complete_screenshot_area() or e.g. g_dbus_method_invocation_return_error() on it) and no other signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned. - %G_DBUS_METHOD_INVOCATION_HANDLED or %TRUE if the invocation was handled, %G_DBUS_METHOD_INVOCATION_UNHANDLED or %FALSE to let other signal handlers run. + %G_DBUS_METHOD_INVOCATION_HANDLED or %TRUE if the invocation was handled, %G_DBUS_METHOD_INVOCATION_UNHANDLED or %FALSE to let other signal handlers run. - A #GDBusMethodInvocation. + A #GDBusMethodInvocation. - Argument passed by remote caller. + Argument passed by remote caller. - Argument passed by remote caller. + Argument passed by remote caller. - Argument passed by remote caller. + Argument passed by remote caller. - Argument passed by remote caller. + Argument passed by remote caller. - Argument passed by remote caller. + Argument passed by remote caller. - Argument passed by remote caller. + Argument passed by remote caller. - Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-gnome-Shell-Screenshot.ScreenshotWindow">ScreenshotWindow()</link> D-Bus method. + Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-gnome-Shell-Screenshot.ScreenshotWindow">ScreenshotWindow()</link> D-Bus method. If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call phosh_dbus_screenshot_complete_screenshot_window() or e.g. g_dbus_method_invocation_return_error() on it) and no other signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned. - %G_DBUS_METHOD_INVOCATION_HANDLED or %TRUE if the invocation was handled, %G_DBUS_METHOD_INVOCATION_UNHANDLED or %FALSE to let other signal handlers run. + %G_DBUS_METHOD_INVOCATION_HANDLED or %TRUE if the invocation was handled, %G_DBUS_METHOD_INVOCATION_UNHANDLED or %FALSE to let other signal handlers run. - A #GDBusMethodInvocation. + A #GDBusMethodInvocation. - Argument passed by remote caller. + Argument passed by remote caller. - Argument passed by remote caller. + Argument passed by remote caller. - Argument passed by remote caller. + Argument passed by remote caller. - Argument passed by remote caller. + Argument passed by remote caller. - Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-gnome-Shell-Screenshot.SelectArea">SelectArea()</link> D-Bus method. + Signal emitted when a remote caller is invoking the <link linkend="gdbus-method-org-gnome-Shell-Screenshot.SelectArea">SelectArea()</link> D-Bus method. If a signal handler returns %TRUE, it means the signal handler will handle the invocation (e.g. take a reference to @invocation and eventually call phosh_dbus_screenshot_complete_select_area() or e.g. g_dbus_method_invocation_return_error() on it) and no other signal handlers will run. If no signal handler handles the invocation, the %G_DBUS_ERROR_UNKNOWN_METHOD error is returned. - %G_DBUS_METHOD_INVOCATION_HANDLED or %TRUE if the invocation was handled, %G_DBUS_METHOD_INVOCATION_UNHANDLED or %FALSE to let other signal handlers run. + %G_DBUS_METHOD_INVOCATION_HANDLED or %TRUE if the invocation was handled, %G_DBUS_METHOD_INVOCATION_UNHANDLED or %FALSE to let other signal handlers run. - A #GDBusMethodInvocation. + A #GDBusMethodInvocation. - - Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-gnome-Shell-Screenshot.top_of_page">org.gnome.Shell.Screenshot</link>. + + Virtual table for the D-Bus interface <link linkend="gdbus-interface-org-gnome-Shell-Screenshot.top_of_page">org.gnome.Shell.Screenshot</link>. - The parent interface. + The parent interface. - Handler for the #PhoshDBusScreenshot::handle-flash-area signal. + Handler for the #PhoshDBusScreenshot::handle-flash-area signal. - + @@ -2002,8 +1236,7 @@ If a signal handler returns %TRUE, it means the signal handler will handle the i - + @@ -2021,12 +1254,9 @@ If a signal handler returns %TRUE, it means the signal handler will handle the i - Handler for the #PhoshDBusScreenshot::handle-pick-color signal. + Handler for the #PhoshDBusScreenshot::handle-pick-color signal. - + @@ -2035,19 +1265,15 @@ If a signal handler returns %TRUE, it means the signal handler will handle the i - + - Handler for the #PhoshDBusScreenshot::handle-screenshot signal. + Handler for the #PhoshDBusScreenshot::handle-screenshot signal. - + @@ -2056,8 +1282,7 @@ If a signal handler returns %TRUE, it means the signal handler will handle the i - + @@ -2072,12 +1297,9 @@ If a signal handler returns %TRUE, it means the signal handler will handle the i - Handler for the #PhoshDBusScreenshot::handle-screenshot-area signal. + Handler for the #PhoshDBusScreenshot::handle-screenshot-area signal. - + @@ -2086,8 +1308,7 @@ If a signal handler returns %TRUE, it means the signal handler will handle the i - + @@ -2111,12 +1332,9 @@ If a signal handler returns %TRUE, it means the signal handler will handle the i - Handler for the #PhoshDBusScreenshot::handle-screenshot-window signal. + Handler for the #PhoshDBusScreenshot::handle-screenshot-window signal. - + @@ -2125,8 +1343,7 @@ If a signal handler returns %TRUE, it means the signal handler will handle the i - + @@ -2144,12 +1361,9 @@ If a signal handler returns %TRUE, it means the signal handler will handle the i - Handler for the #PhoshDBusScreenshot::handle-select-area signal. + Handler for the #PhoshDBusScreenshot::handle-select-area signal. - + @@ -2158,328 +1372,195 @@ If a signal handler returns %TRUE, it means the signal handler will handle the i - + - - The #PhoshDBusScreenshotProxy structure contains only private data and should only be accessed using the provided API. + + The #PhoshDBusScreenshotProxy structure contains only private data and should only be accessed using the provided API. - - Finishes an operation started with phosh_dbus_screenshot_proxy_new(). - + + Finishes an operation started with phosh_dbus_screenshot_proxy_new(). + - The constructed proxy object or %NULL if @error is set. + The constructed proxy object or %NULL if @error is set. - The #GAsyncResult obtained from the #GAsyncReadyCallback passed to phosh_dbus_screenshot_proxy_new(). + The #GAsyncResult obtained from the #GAsyncReadyCallback passed to phosh_dbus_screenshot_proxy_new(). - - Finishes an operation started with phosh_dbus_screenshot_proxy_new_for_bus(). - + + Finishes an operation started with phosh_dbus_screenshot_proxy_new_for_bus(). + - The constructed proxy object or %NULL if @error is set. + The constructed proxy object or %NULL if @error is set. - The #GAsyncResult obtained from the #GAsyncReadyCallback passed to phosh_dbus_screenshot_proxy_new_for_bus(). + The #GAsyncResult obtained from the #GAsyncReadyCallback passed to phosh_dbus_screenshot_proxy_new_for_bus(). - - Like phosh_dbus_screenshot_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection. + + Like phosh_dbus_screenshot_proxy_new_sync() but takes a #GBusType instead of a #GDBusConnection. The calling thread is blocked until a reply is received. See phosh_dbus_screenshot_proxy_new_for_bus() for the asynchronous version of this constructor. - + - The constructed proxy object or %NULL if @error is set. + The constructed proxy object or %NULL if @error is set. - A #GBusType. + A #GBusType. - Flags from the #GDBusProxyFlags enumeration. + Flags from the #GDBusProxyFlags enumeration. - A bus name (well-known or unique). + A bus name (well-known or unique). - An object path. + An object path. - - A #GCancellable or %NULL. + + A #GCancellable or %NULL. - - Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-gnome-Shell-Screenshot.top_of_page">org.gnome.Shell.Screenshot</link>. See g_dbus_proxy_new_sync() for more details. + + Synchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-gnome-Shell-Screenshot.top_of_page">org.gnome.Shell.Screenshot</link>. See g_dbus_proxy_new_sync() for more details. The calling thread is blocked until a reply is received. See phosh_dbus_screenshot_proxy_new() for the asynchronous version of this constructor. - + - The constructed proxy object or %NULL if @error is set. + The constructed proxy object or %NULL if @error is set. - A #GDBusConnection. + A #GDBusConnection. - Flags from the #GDBusProxyFlags enumeration. + Flags from the #GDBusProxyFlags enumeration. - - A bus name (well-known or unique) or %NULL if @connection is not a message bus connection. + + A bus name (well-known or unique) or %NULL if @connection is not a message bus connection. - An object path. + An object path. - - A #GCancellable or %NULL. + + A #GCancellable or %NULL. - - Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-gnome-Shell-Screenshot.top_of_page">org.gnome.Shell.Screenshot</link>. See g_dbus_proxy_new() for more details. + + Asynchronously creates a proxy for the D-Bus interface <link linkend="gdbus-interface-org-gnome-Shell-Screenshot.top_of_page">org.gnome.Shell.Screenshot</link>. See g_dbus_proxy_new() for more details. When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from (see g_main_context_push_thread_default()). You can then call phosh_dbus_screenshot_proxy_new_finish() to get the result of the operation. See phosh_dbus_screenshot_proxy_new_sync() for the synchronous, blocking version of this constructor. - + - A #GDBusConnection. + A #GDBusConnection. - Flags from the #GDBusProxyFlags enumeration. + Flags from the #GDBusProxyFlags enumeration. - - A bus name (well-known or unique) or %NULL if @connection is not a message bus connection. + + A bus name (well-known or unique) or %NULL if @connection is not a message bus connection. - An object path. + An object path. - - A #GCancellable or %NULL. + + A #GCancellable or %NULL. - - A #GAsyncReadyCallback to call when the request is satisfied. + + A #GAsyncReadyCallback to call when the request is satisfied. - - User data to pass to @callback. + + User data to pass to @callback. - - Like phosh_dbus_screenshot_proxy_new() but takes a #GBusType instead of a #GDBusConnection. + + Like phosh_dbus_screenshot_proxy_new() but takes a #GBusType instead of a #GDBusConnection. When the operation is finished, @callback will be invoked in the thread-default main loop of the thread you are calling this method from (see g_main_context_push_thread_default()). You can then call phosh_dbus_screenshot_proxy_new_for_bus_finish() to get the result of the operation. See phosh_dbus_screenshot_proxy_new_for_bus_sync() for the synchronous, blocking version of this constructor. - + - A #GBusType. + A #GBusType. - Flags from the #GDBusProxyFlags enumeration. + Flags from the #GDBusProxyFlags enumeration. - A bus name (well-known or unique). + A bus name (well-known or unique). - An object path. + An object path. - - A #GCancellable or %NULL. + + A #GCancellable or %NULL. - - A #GAsyncReadyCallback to call when the request is satisfied. + + A #GAsyncReadyCallback to call when the request is satisfied. - - User data to pass to @callback. + + User data to pass to @callback. @@ -2488,109 +1569,66 @@ See phosh_dbus_screenshot_proxy_new_for_bus_sync() for the synchronous, blocking - + - - Class structure for #PhoshDBusScreenshotProxy. + + Class structure for #PhoshDBusScreenshotProxy. - The parent class. + The parent class. - + - - The #PhoshDBusScreenshotSkeleton structure contains only private data and should only be accessed using the provided API. + + The #PhoshDBusScreenshotSkeleton structure contains only private data and should only be accessed using the provided API. - - Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-gnome-Shell-Screenshot.top_of_page">org.gnome.Shell.Screenshot</link>. - + + Creates a skeleton object for the D-Bus interface <link linkend="gdbus-interface-org-gnome-Shell-Screenshot.top_of_page">org.gnome.Shell.Screenshot</link>. + - The skeleton object. + The skeleton object. - + - + - - Class structure for #PhoshDBusScreenshotSkeleton. + + Class structure for #PhoshDBusScreenshotSkeleton. - The parent class. - + The parent class. + - + - - A #GtkWindow rendered as a LayerSurface by the compositor + + A #GtkWindow rendered as a LayerSurface by the compositor #PhoshLayerSurface allows to use a Wayland surface backed by the layer-shell protocol as #GtkWindow. This allows to render e.g. panels and backgrounds using GTK. - - + + + + + - invoked when layer surface is configured - + invoked when layer surface is configured + @@ -2600,115 +1638,98 @@ backgrounds using GTK. - - + + + + + + + + + + + + + + + + The edges the surface is anchored to + - + - + - + - + - + - - - - - + + The layer the surface is in + - + - + - + - + - + - - + + - This signal is emitted once we received the configure event from the + This signal is emitted once we received the configure event from the compositor. - - + + + + + + + + + + + + + + + - The parent class + The parent class - invoked when layer surface is configured + invoked when layer surface is configured - + @@ -2721,7 +1742,7 @@ compositor. - + @@ -2729,7 +1750,7 @@ compositor. - + @@ -2737,7 +1758,7 @@ compositor. - + @@ -2745,7 +1766,7 @@ compositor. - + @@ -2753,7 +1774,7 @@ compositor. - + @@ -2761,7 +1782,7 @@ compositor. - + @@ -2769,7 +1790,7 @@ compositor. - + @@ -2777,7 +1798,7 @@ compositor. - + @@ -2785,23 +1806,26 @@ compositor. - + - - The main lock screen + + + + + + + + + + + + + The main lock screen The lock screen displayed on the primary output featuring the clock and unlock keypad. It handles displaying ongoing calls when the @@ -2813,12 +1837,13 @@ Other outputs are locked via PhoshLockshields. `PhoshLockscreen` has a CSS name with the name `phosh-lockscreen`. - + + + + - This function is invoked when a PIN or password is submitted from the lockscreen + This function is invoked when a PIN or password is submitted from the lockscreen keypad. It allows to implement a custom authentication mechanism. To indicate success the `lockscreen-unlock` signal should be emitted. @@ -2831,11 +1856,8 @@ Other outputs are locked via PhoshLockshields. - - Inserts a custom widget into the "extra" page of the lockscreen. This page sits in-between the + + Inserts a custom widget into the "extra" page of the lockscreen. This page sits in-between the info page and the keypad page. By default, this page does not exist and is not used. Once an extra page is added, it can be navigated to by swiping and also via calls to [method@Lockscreen.set_default_page]. @@ -2845,82 +1867,57 @@ extra page is added, it can be navigated to by swiping and also via calls to - The `PhoshLockscreen` + The `PhoshLockscreen` - The extra #GtkWidget to insert into the lockscreen carousel + The extra #GtkWidget to insert into the lockscreen carousel - - Clears the current contents of the keypad PIN entry buffer + + Clears the current contents of the keypad PIN entry buffer - The `PhoshLockscreen` + The `PhoshLockscreen` - + - The #PhoshLockscreenPage that is currently shown + The #PhoshLockscreenPage that is currently shown - The `PhoshLockscreen` + The `PhoshLockscreen` - - Get the current contents of the keypad PIN entry buffer + + Get the current contents of the keypad PIN entry buffer - the contents of the entry buffer + the contents of the entry buffer - The `PhoshLockscreen` + The `PhoshLockscreen` - - Specifies which page should be shown by default when the lockscreen is made visible. This will + + Specifies which page should be shown by default when the lockscreen is made visible. This will also be the page that is shown when the keypad idle timer is reached. @@ -2928,9 +1925,7 @@ also be the page that is shown when the keypad idle timer is reached. - The `PhoshLockscreen` + The `PhoshLockscreen` page: the page to show by default @@ -2940,9 +1935,7 @@ page: the page to show by default - Scrolls to a specific page in the carousel. The state of the deck + Scrolls to a specific page in the carousel. The state of the deck isn't changed. @@ -2950,9 +1943,7 @@ isn't changed. - The `PhoshLockscreen` + The `PhoshLockscreen` page: The page to scroll to @@ -2961,35 +1952,25 @@ page: The page to scroll to - - Sets the text displayed in the unlock status label. + + Sets the text displayed in the unlock status label. - The `PhoshLockscreen` + The `PhoshLockscreen` - The status text + The status text - - Triggers an animation that shakes the PIN entry left and right for a brief period. + + Triggers an animation that shakes the PIN entry left and right for a brief period. After the animation is complete, the PIN entry buffer is cleared. Used to visually indicate authentication errors. @@ -2998,77 +1979,49 @@ authentication errors. - The `PhoshLockscreen` + The `PhoshLockscreen` - - The calls manager handling incoming and active calls. + + The calls manager handling incoming and active calls. - - The currently active carousel page + + The currently active carousel page - - Require entering PIN or password to unlock. If false, unlock by swiping up. + + Require entering PIN or password to unlock. If false, unlock by swiping up. - This signal is emitted when authentication was successful and the + This signal is emitted when authentication was successful and the session should be unlocked. - Emitted when the output showing the lock screen should be woken + Emitted when the output showing the lock screen should be woken up. - + - The parent class + The parent class - This function is invoked when a PIN or password is submitted from the lockscreen + This function is invoked when a PIN or password is submitted from the lockscreen keypad. It allows to implement a custom authentication mechanism. To indicate success the `lockscreen-unlock` signal should be emitted. @@ -3156,23 +2109,14 @@ up. - - The singleton that manages screen locking + + The singleton that manages screen locking The #PhoshLockscreenManager is responsible for putting the #PhoshLockscreen on the primary output and a #PhoshLockshield on other outputs when the session becomes idle or when invoked explicitly via phosh_lockscreen_manager_set_locked(). - + @@ -3183,9 +2127,7 @@ becomes idle or when invoked explicitly via phosh_lockscreen_manager_set_locked( - + @@ -3196,23 +2138,16 @@ becomes idle or when invoked explicitly via phosh_lockscreen_manager_set_locked( - - Gets the current [type@Lockscreen], if one exists (NULL otherwise). + + Gets the current [type@Lockscreen], if one exists (NULL otherwise). - The lockscreen + The lockscreen - The lockscreen manager + The lockscreen manager @@ -3220,23 +2155,17 @@ becomes idle or when invoked explicitly via phosh_lockscreen_manager_set_locked( - The currently shown #PhoshLockscreenPage in the #PhoshLockscreen + The currently shown #PhoshLockscreenPage in the #PhoshLockscreen - The #PhoshLockscreenManager + The #PhoshLockscreenManager - + @@ -3264,94 +2193,46 @@ becomes idle or when invoked explicitly via phosh_lockscreen_manager_set_locked( - + - - Whether the screen is locked + + Whether the screen is locked - Emitted when the outputs should be woken up. + Emitted when the outputs should be woken up. - + - - Indicates which page is currently shown on the lockscreen. + + Indicates which page is currently shown on the lockscreen. This helps `PhoshGnomeShellManager` to decide when to emit AcceleratorActivated events over DBus - - The info page (clock, notifications, MPRIS, etc) + + The info page (clock, notifications, MPRIS, etc) - - The extra page (an extension point used by Lockscreen subclasses) + + The extra page (an extension point used by Lockscreen subclasses) - - The unlock page (where PIN is entered) + + The unlock page (where PIN is entered) - This section contains code for working with the <link linkend="gdbus-interface-org-gnome-Shell-Screenshot.top_of_page">org.gnome.Shell.Screenshot</link> D-Bus interface in C. + This section contains code for working with the <link linkend="gdbus-interface-org-gnome-Shell-Screenshot.top_of_page">org.gnome.Shell.Screenshot</link> D-Bus interface in C. - - A `PhoshQuickSetting` represents a state of an entity (like Wi-Fi, Bluetooth) using an icon + + A `PhoshQuickSetting` represents a state of an entity (like Wi-Fi, Bluetooth) using an icon and label. It should be added to a PhoshQuickSettingsBox for better integration. A quick-setting displays the state using an icon and label. The state is set by @@ -3382,14 +2263,15 @@ the [property@Phosh.QuickSetting:active] property. When a quick-setting is clicked, [signal@Phosh.QuickSetting::clicked] is emitted. When it is long-pressed or right-clicked, [signal@PhoshQuickSetting::long-pressed] is emitted. -The common usecase of `long-pressed` is to launch an action (like `settings.launch-panel`). So to +The common usecase of `long-pressed` is to launch an action (like `panel.launch-panel`). So to avoid duplicating this process for each quick-setting, the user can set [property@Phosh.QuickSetting:long-press-action-name] and [property@Phosh.QuickSetting:long-press-action-target]. The quick-setting then launches that appropriate action. - + + @@ -3402,9 +2284,7 @@ appropriate action. - + @@ -3415,9 +2295,7 @@ appropriate action. - + @@ -3428,9 +2306,7 @@ appropriate action. - + @@ -3441,9 +2317,7 @@ appropriate action. - + @@ -3454,9 +2328,7 @@ appropriate action. - + @@ -3467,53 +2339,35 @@ appropriate action. - - Get the current status-icon of the quick-setting. + + Get the current status-icon of the quick-setting. - The status-icon or `NULL`. + The status-icon or `NULL`. - A quick-setting + A quick-setting - - Get the current status widget of the quick-setting. + + Get the current status widget of the quick-setting. - The status-page or `NULL`. + The status-page or `NULL`. - A quick-setting + A quick-setting - + @@ -3527,9 +2381,7 @@ appropriate action. - + @@ -3543,9 +2395,7 @@ appropriate action. - + @@ -3559,9 +2409,7 @@ appropriate action. - + @@ -3575,9 +2423,7 @@ appropriate action. - + @@ -3591,129 +2437,66 @@ appropriate action. - - Set the status-icon of the quick-setting. Use `NULL` to remove existing icon. + + Set the status-icon of the quick-setting. Use `NULL` to remove existing icon. - A quick-setting + A quick-setting - A status-icon or `NULL` + A status-icon or `NULL` - - Set the status-page of the quick-setting. + + Set the status-page of the quick-setting. - A quick-setting + A quick-setting - A status-page or `NULL` + A status-page or `NULL` - - The active state of the child. + + The active state of the child. - - If the child can display its status. + + If the child can display its status. - - Action name to trigger on long-press. + + Action name to trigger on long-press. - - Action target for `long-press-action-name`. + + Action target for `long-press-action-name`. - - If the child is displaying its status. + + If the child is displaying its status. - - The status-icon. + + The status-icon. - - The status-page. + + The status-page. @@ -3740,9 +2523,7 @@ appropriate action. - + @@ -3828,16 +2609,8 @@ appropriate action. - - Screenshot interaction + + Screenshot interaction The #PhoshScreenshotManager is responsible for taking screenshots. @@ -3850,82 +2623,50 @@ taking screenshots. - - Initiate a screenshot of all outputs or the given area. If `copy_to_clipboard` is + + Initiate a screenshot of all outputs or the given area. If `copy_to_clipboard` is `TRUE` the screenshot is also copied to the clipboard. - `FALSE` on failure, otherwise `TRUE` + `FALSE` on failure, otherwise `TRUE` - The screenshot manager + The screenshot manager - - The area to capture or %NULL to capture all outputs + + The area to capture or %NULL to capture all outputs - - The output filename or %NULL to autogenerate a filename + + The output filename or %NULL to autogenerate a filename - Whether to use the clipboard + Whether to use the clipboard - Whether to include the cursor + Whether to include the cursor - + - + - - The shell singleton + + The shell singleton #PhoshShell is responsible for instantiating the GUI -parts of the shell#PhoshTopPanel, #PhoshHome,… and the managers that -interface with DBus #PhoshMonitorManager, #PhoshFeedbackManager, … +parts of the shell#PhoshTopPanel, #PhoshHome,… and the managers that +interface with DBus #PhoshMonitorManager, #PhoshFeedbackManager, … and coordinates between them. @@ -3937,14 +2678,10 @@ and coordinates between them. - Get the shell singleton + Get the shell singleton - The shell singleton + The shell singleton @@ -3973,48 +2710,34 @@ and coordinates between them. - + - %TRUE if the shell is currently locked, otherwise %FALSE. + %TRUE if the shell is currently locked, otherwise %FALSE. - The #PhoshShell singleton + The #PhoshShell singleton - - Get the lockscreen manager + + Get the lockscreen manager - The lockscreen manager + The lockscreen manager - The shell singleton + The shell singleton - + @@ -4025,32 +2748,22 @@ and coordinates between them. - - Get the screenshot manager + + Get the screenshot manager - The screenshot manager + The screenshot manager - The shell singleton + The shell singleton - - Gives the usable area in pixels usable by a client on the primary + + Gives the usable area in pixels usable by a client on the primary display. @@ -4058,146 +2771,85 @@ display. - The shell + The shell - - The x coordinate where client usable area starts + + The x coordinate where client usable area starts - - The y coordinate where client usable area starts + + The y coordinate where client usable area starts - - The width of the client usable area + + The width of the client usable area - - The height of the client usable area + + The height of the client usable area - Set the PhoshShell singleton that is returned by `phosh_shell_get_default()` + Set the PhoshShell singleton that is returned by `phosh_shell_get_default()` - The shell to use + The shell to use - - The built in monitor. This is a hardware property and hence can + + The built in monitor. This is a hardware property and hence can only be read. It can be %NULL when not present or disabled. - - Whether the device is currently docked. This mirrors the property + + Whether the device is currently docked. This mirrors the property from #PhoshDockedManager for easier access. - - Whether the screen is currently locked. This mirrors the property + + Whether the screen is currently locked. This mirrors the property from #PhoshLockscreenManager for easier access. - - Whether to display the `PhoshHome` (overview and home bar) + + The current log domains + + + + + + Whether to display the `PhoshHome` (overview and home bar) - - The primary monitor that has the panels, lock screen etc. + + The primary monitor that has the panels, lock screen etc. - - The state of the shell (locked, modal dialog shown, …) + + The state of the shell (locked, modal dialog shown, …) - The ready signal is emitted once when the shell finished starting + The ready signal is emitted once when the shell finished starting up. - + @@ -4288,16 +2940,8 @@ up. - - Base class for status icons used in the Phosh's top-bar or in + + Base class for status icons used in the Phosh's top-bar or in [type@QuickSetting]s. It's very common to have the same status icon class used for both places. @@ -4305,8 +2949,9 @@ If the widget will be used in a [type@QuickSetting] it is recommended (but not required) that derived classes implement a `enabled` property. - + + @@ -4314,9 +2959,7 @@ recommended (but not required) that derived classes implement a - a callback to be invoked once on idle + a callback to be invoked once on idle @@ -4327,32 +2970,22 @@ recommended (but not required) that derived classes implement a - - Get the extra widget or %NULL if there's no extra widget - + + Get the extra widget or %NULL if there's no extra widget + - The extra widget + The extra widget - A status icon + A status icon - - + + @@ -4362,35 +2995,8 @@ recommended (but not required) that derived classes implement a - - Return the size of status-icon. - Use [method@Phosh.StatusIcon.get_pixel_size]. - - - The size of status-icon. - - - - - The status-icon - - - - - - + + @@ -4400,10 +3006,8 @@ recommended (but not required) that derived classes implement a - - + + @@ -4413,10 +3017,8 @@ recommended (but not required) that derived classes implement a - - + + @@ -4429,10 +3031,8 @@ recommended (but not required) that derived classes implement a - - + + @@ -4445,38 +3045,8 @@ recommended (but not required) that derived classes implement a - - Set the size of status-icon. - Use [method@Phosh.StatusIcon.set_pixel_size]. - - - - - - - The status-icon - - - - The size of icon - - - - - - + + @@ -4489,10 +3059,8 @@ recommended (but not required) that derived classes implement a - - + + @@ -4505,81 +3073,37 @@ recommended (but not required) that derived classes implement a - - An extra widget to display. This is used for extra information when + + An extra widget to display. This is used for extra information when used in PhoshTopPanel. When used in [type@QuickSetting] this is not needed. - - The name of the icon to display in the widget + + The name of the icon to display in the widget - - The size of the icon to display in the widget - - - - Textual information to display. Think of it as the [type@StatusIcon]'s + + Textual information to display. Think of it as the [type@StatusIcon]'s label. - - The size of the icon to display in the widget + + The size of the icon to display in the widget - + - + - The parent class - + The parent class + - a callback to be invoked once on idle + a callback to be invoked once on idle @@ -4665,96 +3189,63 @@ label. - - Additional status information associated with a [class@QuickSetting]. + + Additional status information associated with a [class@QuickSetting]. This is displayed when the quick setting needs to show status. - + + - - Get the content widget of the status page + + Get the content widget of the status page - The status page content + The status page content - A quick setting status page + A quick setting status page - - Get the footer of the status page + + Get the footer of the status page - The status page footer + The status page footer - A quick setting status page + A quick setting status page - - Get the header widget of the status page + + Get the header widget of the status page - The status page header + The status page header - A quick setting status page + A quick setting status page - + @@ -4765,12 +3256,8 @@ This is displayed when the quick setting needs to show status. - - Set the content widget of the status page. See [property@StatusPage:content]. Use `NULL` to + + Set the content widget of the status page. See [property@StatusPage:content]. Use `NULL` to remove existing content. @@ -4778,9 +3265,7 @@ remove existing content. - A quick setting status page + A quick setting status page @@ -4788,21 +3273,15 @@ remove existing content. - - Set the footer widget shown at the bottom of a status page + + Set the footer widget shown at the bottom of a status page - A quick setting status page + A quick setting status page @@ -4810,12 +3289,8 @@ remove existing content. - - Set the header widget of the status page. See + + Set the header widget of the status page. See [property@StatusPage:header]. @@ -4823,9 +3298,7 @@ remove existing content. - A quick setting status page + A quick setting status page @@ -4833,9 +3306,7 @@ remove existing content. - + @@ -4849,65 +3320,36 @@ remove existing content. - - The content of status page. + + The content of status page. - - Widget displayed at the very bottom - usually a button. + + Widget displayed at the very bottom - usually a button. - - An extra widget to add to end of the status page's header + + An extra widget to add to end of the status page's header - - The status page title + + The status page title - + - The status page should be closed + The status page should be closed - + - + @@ -4990,16 +3432,8 @@ remove existing content. - - Wall clock used for fetching date and time + + Wall clock used for fetching date and time @@ -5008,40 +3442,28 @@ remove existing content. - Get the wall clock singleton + Get the wall clock singleton - The wall clock singleton + The wall clock singleton - Gets the current clock string, if time_only is true this will be just the + Gets the current clock string, if time_only is true this will be just the current time, otherwise the date + time. - the clock time string + the clock time string - The wall clock + The wall clock - whether to return full clock string or just the time + whether to return full clock string or just the time @@ -5058,59 +3480,43 @@ current time, otherwise the date + time. - Gets the current clock string, if time_only is true this will be just the + Gets the current clock string, if time_only is true this will be just the current time, otherwise the date + time. - the clock time string + the clock time string - The wall clock + The wall clock - whether to return full clock string or just the time + whether to return full clock string or just the time - Get the local date as string + Get the local date as string We honor LC_MESSAGES so we e.g. don't get a translated date when the user has LC_MESSAGES=en_US.UTF-8 but LC_TIME to their local time zone. - The local date as string + The local date as string - The wall clock + The wall clock - Set the wall clock singleton. This sets the singleton returned by + Set the wall clock singleton. This sets the singleton returned by `phosh_wall_clock_get_default()`. @@ -5118,15 +3524,12 @@ time zone. - The clock to use + The clock to use - + @@ -5139,17 +3542,14 @@ time zone. - + - + @@ -5159,9 +3559,7 @@ time zone. - + @@ -5170,22 +3568,16 @@ time zone. - the clock time string + the clock time string - The wall clock + The wall clock - whether to return full clock string or just the time + whether to return full clock string or just the time @@ -5269,45 +3661,29 @@ time zone. - - Gets a machine-readable description of the <link linkend="gdbus-interface-org-gnome-Shell-Screenshot.top_of_page">org.gnome.Shell.Screenshot</link> D-Bus interface. + + Gets a machine-readable description of the <link linkend="gdbus-interface-org-gnome-Shell-Screenshot.top_of_page">org.gnome.Shell.Screenshot</link> D-Bus interface. - A #GDBusInterfaceInfo. Do not free. + A #GDBusInterfaceInfo. Do not free. - - Overrides all #GObject properties in the #PhoshDBusScreenshot interface for a concrete class. + + Overrides all #GObject properties in the #PhoshDBusScreenshot interface for a concrete class. The properties are overridden in the order they are defined. - The last property id. + The last property id. - The class structure for a #GObject derived class. + The class structure for a #GObject derived class. - The property id to assign to the first overridden property. + The property id to assign to the first overridden property. diff --git a/libphosh-rs/Polkit-1.0.gir b/libphosh-rs/Polkit-1.0.gir deleted file mode 100644 index a7b79aa73..000000000 --- a/libphosh-rs/Polkit-1.0.gir +++ /dev/null @@ -1,5657 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Object used to encapsulate a registered action. - - - Gets the action id for @action_description. - - - A string owned by @action_description. Do not free. - - - - - A #PolkitActionDescription. - - - - - - Get the value of the annotation with @key. - - - %NULL if there is no annoation with @key, -otherwise the annotation value owned by @action_description. Do not -free. - - - - - A #PolkitActionDescription. - - - - An annotation key. - - - - - - Gets the keys of annotations defined in @action_description. - - - The annotation keys owned by @action_description. Do not free. - - - - - - - A #PolkitActionDescription. - - - - - - Gets the description used for @action_description. - - - A string owned by @action_description. Do not free. - - - - - A #PolkitActionDescription. - - - - - - Gets the icon name for @action_description, if any. - - - A string owned by @action_description. Do not free. - - - - - A #PolkitActionDescription. - - - - - - Gets the implicit authorization for @action_description used for -subjects in active sessions on a local console. - - - A value from the #PolkitImplicitAuthorization enumeration. - - - - - A #PolkitActionDescription. - - - - - - Gets the implicit authorization for @action_description used for -any subject. - - - A value from the #PolkitImplicitAuthorization enumeration. - - - - - A #PolkitActionDescription. - - - - - - Gets the implicit authorization for @action_description used for -subjects in inactive sessions on a local console. - - - A value from the #PolkitImplicitAuthorization enumeration. - - - - - A #PolkitActionDescription. - - - - - - Gets the message used for @action_description. - - - A string owned by @action_description. Do not free. - - - - - A #PolkitActionDescription. - - - - - - Gets the vendor name for @action_description, if any. - - - A string owned by @action_description. Do not free. - - - - - A #PolkitActionDescription. - - - - - - Gets the vendor URL for @action_description, if any. - - - A string owned by @action_description. Do not free. - - - - - A #PolkitActionDescription. - - - - - - - - - - #PolkitAuthority is used for checking whether a given subject is -authorized to perform a given action. Typically privileged system -daemons or suid helpers will use this when handling requests from -untrusted clients. - -User sessions can register an authentication agent with the -authority. This is used for requests from untrusted clients where -system policy requires that the user needs to acknowledge (through -proving he is the user or the administrator) a given action. See -#PolkitAgentListener and #PolkitAgentSession for details. - - - - - (deprecated) - - - value - - - - - Asynchronously gets a reference to the authority. - -This is an asynchronous failable function. When the result is -ready, @callback will be invoked in the <link -linkend="g-main-context-push-thread-default">thread-default main -loop</link> of the thread you are calling this method from and you -can use polkit_authority_get_finish() to get the result. See -polkit_authority_get_sync() for the synchronous version. - - - - - - - A #GCancellable or %NULL. - - - - A #GAsyncReadyCallback to call when the request is satisfied. - - - - The data to pass to @callback. - - - - - - Finishes an operation started with polkit_authority_get_async(). - - - A #PolkitAuthority. Free it with -g_object_unref() when done with it. - - - - - A #GAsyncResult obtained from the #GAsyncReadyCallback passed to polkit_authority_get_async(). - - - - - - Synchronously gets a reference to the authority. - -This is a synchronous failable function - the calling thread is -blocked until a reply is received. See polkit_authority_get_async() -for the asynchronous version. - - - A #PolkitAuthority. Free it with -g_object_unref() when done with it. - - - - - A #GCancellable or %NULL. - - - - - - Asynchronously provide response that @identity successfully authenticated -for the authentication request identified by @cookie. - -This function is only used by the privileged bits of an authentication agent. -It will fail if the caller is not sufficiently privileged (typically uid 0). - -When the operation is finished, @callback will be invoked in the -<link linkend="g-main-context-push-thread-default">thread-default -main loop</link> of the thread you are calling this method -from. You can then call -polkit_authority_authentication_agent_response_finish() to get the -result of the operation. - - - - - - - A #PolkitAuthority. - - - - The cookie passed to the authentication agent from the authority. - - - - The identity that was authenticated. - - - - A #GCancellable or %NULL. - - - - A #GAsyncReadyCallback to call when the request is satisfied. - - - - The data to pass to @callback. - - - - - - Finishes providing response from an authentication agent. - - - %TRUE if @authority acknowledged the call, %FALSE if @error is set. - - - - - A #PolkitAuthority. - - - - A #GAsyncResult obtained from the callback. - - - - - - Provide response that @identity successfully authenticated for the -authentication request identified by @cookie. See polkit_authority_authentication_agent_response() -for limitations on who is allowed is to call this method. - -The calling thread is blocked until a reply is received. See -polkit_authority_authentication_agent_response() for the -asynchronous version. - - - %TRUE if @authority acknowledged the call, %FALSE if @error is set. - - - - - A #PolkitAuthority. - - - - The cookie passed to the authentication agent from the authority. - - - - The identity that was authenticated. - - - - A #GCancellable or %NULL. - - - - - - Asynchronously checks if @subject is authorized to perform the action represented -by @action_id. - -Note that %POLKIT_CHECK_AUTHORIZATION_FLAGS_ALLOW_USER_INTERACTION -<emphasis>SHOULD</emphasis> be passed <emphasis>ONLY</emphasis> if -the event that triggered the authorization check is stemming from -an user action, e.g. the user pressing a button or attaching a -device. - -When the operation is finished, @callback will be invoked in the -<link linkend="g-main-context-push-thread-default">thread-default -main loop</link> of the thread you are calling this method -from. You can then call -polkit_authority_check_authorization_finish() to get the result of -the operation. - -Known keys in @details include <literal>polkit.message</literal> -and <literal>polkit.gettext_domain</literal> that can be used to -override the message shown to the user. See the documentation for -the <link linkend="eggdbus-method-org.freedesktop.PolicyKit1.Authority.CheckAuthorization">D-Bus method</link> for more details. - -If @details is non-empty then the request will fail with -#POLKIT_ERROR_FAILED unless the process doing the check itsef is -sufficiently authorized (e.g. running as uid 0). - - - - - - - A #PolkitAuthority. - - - - A #PolkitSubject. - - - - The action to check for. - - - - Details about the action or %NULL. - - - - A set of #PolkitCheckAuthorizationFlags. - - - - A #GCancellable or %NULL. - - - - A #GAsyncReadyCallback to call when the request is satisfied. - - - - The data to pass to @callback. - - - - - - Finishes checking if a subject is authorized for an action. - - - A #PolkitAuthorizationResult or %NULL if -@error is set. Free with g_object_unref(). - - - - - A #PolkitAuthority. - - - - A #GAsyncResult obtained from the callback. - - - - - - Checks if @subject is authorized to perform the action represented -by @action_id. - -Note that %POLKIT_CHECK_AUTHORIZATION_FLAGS_ALLOW_USER_INTERACTION -<emphasis>SHOULD</emphasis> be passed <emphasis>ONLY</emphasis> if -the event that triggered the authorization check is stemming from -an user action, e.g. the user pressing a button or attaching a -device. - -Note the calling thread is blocked until a reply is received. You -should therefore <emphasis>NEVER</emphasis> do this from a GUI -thread or a daemon service thread when using the -%POLKIT_CHECK_AUTHORIZATION_FLAGS_ALLOW_USER_INTERACTION flag. This -is because it may potentially take minutes (or even hours) for the -operation to complete because it involves waiting for the user to -authenticate. - -Known keys in @details include <literal>polkit.message</literal> -and <literal>polkit.gettext_domain</literal> that can be used to -override the message shown to the user. See the documentation for -the <link linkend="eggdbus-method-org.freedesktop.PolicyKit1.Authority.CheckAuthorization">D-Bus method</link> for more details. - - - A #PolkitAuthorizationResult or %NULL if @error is set. Free with g_object_unref(). - - - - - A #PolkitAuthority. - - - - A #PolkitSubject. - - - - The action to check for. - - - - Details about the action or %NULL. - - - - A set of #PolkitCheckAuthorizationFlags. - - - - A #GCancellable or %NULL. - - - - - - Asynchronously retrieves all registered actions. - -When the operation is finished, @callback will be invoked in the -<link linkend="g-main-context-push-thread-default">thread-default -main loop</link> of the thread you are calling this method -from. You can then call polkit_authority_enumerate_actions_finish() -to get the result of the operation. - - - - - - - A #PolkitAuthority. - - - - A #GCancellable or %NULL. - - - - A #GAsyncReadyCallback to call when the request is satisfied. - - - - The data to pass to @callback. - - - - - - Finishes retrieving all registered actions. - - - A list of -#PolkitActionDescription objects or %NULL if @error is set. The returned -list should be freed with g_list_free() after each element have been freed -with g_object_unref(). - - - - - - - A #PolkitAuthority. - - - - A #GAsyncResult obtained from the callback. - - - - - - Synchronously retrieves all registered actions - the calling thread -is blocked until a reply is received. See -polkit_authority_enumerate_actions() for the asynchronous version. - - - A list of -#PolkitActionDescription or %NULL if @error is set. The returned list should -be freed with g_list_free() after each element have been freed with -g_object_unref(). - - - - - - - A #PolkitAuthority. - - - - A #GCancellable or %NULL. - - - - - - Asynchronously gets all temporary authorizations for @subject. - -When the operation is finished, @callback will be invoked in the -<link linkend="g-main-context-push-thread-default">thread-default -main loop</link> of the thread you are calling this method -from. You can then call -polkit_authority_enumerate_temporary_authorizations_finish() to get -the result of the operation. - - - - - - - A #PolkitAuthority. - - - - A #PolkitSubject, typically a #PolkitUnixSession. - - - - A #GCancellable or %NULL. - - - - A #GAsyncReadyCallback to call when the request is satisfied. - - - - The data to pass to @callback. - - - - - - Finishes retrieving all registered actions. - - - A -list of #PolkitTemporaryAuthorization objects or %NULL if @error is set. The -returned list should be freed with g_list_free() after each element have -been freed with g_object_unref(). - - - - - - - A #PolkitAuthority. - - - - A #GAsyncResult obtained from the callback. - - - - - - Synchronousky gets all temporary authorizations for @subject. - -The calling thread is blocked until a reply is received. See -polkit_authority_enumerate_temporary_authorizations() for the -asynchronous version. - - - A -list of #PolkitTemporaryAuthorization objects or %NULL if @error is set. The -returned list should be freed with g_list_free() after each element have -been freed with g_object_unref(). - - - - - - - A #PolkitAuthority. - - - - A #PolkitSubject, typically a #PolkitUnixSession. - - - - A #GCancellable or %NULL. - - - - - - Gets the features supported by the authority backend. - - - Flags from #PolkitAuthorityFeatures. - - - - - A #PolkitAuthority. - - - - - - Gets the name of the authority backend. - - - The name of the backend. - - - - - A #PolkitAuthority. - - - - - - Gets the version of the authority backend. - - - The version string for the backend. - - - - - A #PolkitAuthority. - - - - - - The unique name on the system message bus of the owner of the name -<literal>org.freedesktop.PolicyKit1</literal> or %NULL if no-one -currently owns the name. You may connect to the #GObject::notify -signal to track changes to the #PolkitAuthority:owner property. - - - %NULL or a string that should be freed with g_free(). - - - - - A #PolkitAuthority. - - - - - - Asynchronously registers an authentication agent. - -Note that this should be called by the same effective UID which will be -the real UID using the #PolkitAgentSession API or otherwise calling -polkit_authority_authentication_agent_response(). - -When the operation is finished, @callback will be invoked in the -<link linkend="g-main-context-push-thread-default">thread-default -main loop</link> of the thread you are calling this method -from. You can then call -polkit_authority_register_authentication_agent_finish() to get the -result of the operation. - - - - - - - A #PolkitAuthority. - - - - The subject the authentication agent is for, typically a #PolkitUnixSession object. - - - - The locale of the authentication agent. - - - - The object path for the authentication agent. - - - - A #GCancellable or %NULL. - - - - A #GAsyncReadyCallback to call when the request is satisfied. - - - - The data to pass to @callback. - - - - - - Finishes registering an authentication agent. - - - %TRUE if the authentication agent was successfully registered, %FALSE if @error is set. - - - - - A #PolkitAuthority. - - - - A #GAsyncResult obtained from the callback. - - - - - - Registers an authentication agent. - -Note that this should be called by the same effective UID which will be -the real UID using the #PolkitAgentSession API or otherwise calling -polkit_authority_authentication_agent_response(). - -The calling thread is blocked -until a reply is received. See -polkit_authority_register_authentication_agent() for the -asynchronous version. - - - %TRUE if the authentication agent was successfully registered, %FALSE if @error is set. - - - - - A #PolkitAuthority. - - - - The subject the authentication agent is for, typically a #PolkitUnixSession object. - - - - The locale of the authentication agent. - - - - The object path for the authentication agent. - - - - A #GCancellable or %NULL. - - - - - - Asynchronously registers an authentication agent. - -Note that this should be called by the same effective UID which will be -the real UID using the #PolkitAgentSession API or otherwise calling -polkit_authority_authentication_agent_response(). - -When the operation is finished, @callback will be invoked in the -<link linkend="g-main-context-push-thread-default">thread-default -main loop</link> of the thread you are calling this method -from. You can then call -polkit_authority_register_authentication_agent_with_options_finish() to get the -result of the operation. - - - - - - - A #PolkitAuthority. - - - - The subject the authentication agent is for, typically a #PolkitUnixSession object. - - - - The locale of the authentication agent. - - - - The object path for the authentication agent. - - - - A #GVariant with options or %NULL. - - - - A #GCancellable or %NULL. - - - - A #GAsyncReadyCallback to call when the request is satisfied. - - - - The data to pass to @callback. - - - - - - Finishes registering an authentication agent. - - - %TRUE if the authentication agent was successfully registered, %FALSE if @error is set. - - - - - A #PolkitAuthority. - - - - A #GAsyncResult obtained from the callback. - - - - - - Registers an authentication agent. - -Note that this should be called by the same effective UID which will be -the real UID using the #PolkitAgentSession API or otherwise calling -polkit_authority_authentication_agent_response(). - -The calling thread is blocked -until a reply is received. See -polkit_authority_register_authentication_agent_with_options() for the -asynchronous version. - - - %TRUE if the authentication agent was successfully registered, %FALSE if @error is set. - - - - - A #PolkitAuthority. - - - - The subject the authentication agent is for, typically a #PolkitUnixSession object. - - - - The locale of the authentication agent. - - - - The object path for the authentication agent. - - - - A #GVariant with options or %NULL. - - - - A #GCancellable or %NULL. - - - - - - Asynchronously revoke a temporary authorization. - -When the operation is finished, @callback will be invoked in the -<link linkend="g-main-context-push-thread-default">thread-default -main loop</link> of the thread you are calling this method -from. You can then call -polkit_authority_revoke_temporary_authorization_by_id_finish() to -get the result of the operation. - - - - - - - A #PolkitAuthority. - - - - The opaque identifier for the temporary authorization. - - - - A #GCancellable or %NULL. - - - - A #GAsyncReadyCallback to call when the request is satisfied. - - - - The data to pass to @callback. - - - - - - Finishes revoking a temporary authorization by id. - - - %TRUE if the temporary authorization was revoked, %FALSE if error is set. - - - - - A #PolkitAuthority. - - - - A #GAsyncResult obtained from the callback. - - - - - - Synchronously revokes a temporary authorization. - -The calling thread is blocked until a reply is received. See -polkit_authority_revoke_temporary_authorization_by_id() for the -asynchronous version. - - - %TRUE if the temporary authorization was revoked, %FALSE if error is set. - - - - - A #PolkitAuthority. - - - - The opaque identifier for the temporary authorization. - - - - A #GCancellable or %NULL. - - - - - - Asynchronously revokes all temporary authorizations for @subject. - -When the operation is finished, @callback will be invoked in the -<link linkend="g-main-context-push-thread-default">thread-default -main loop</link> of the thread you are calling this method -from. You can then call -polkit_authority_revoke_temporary_authorizations_finish() to get -the result of the operation. - - - - - - - A #PolkitAuthority. - - - - The subject to revoke authorizations from, typically a #PolkitUnixSession. - - - - A #GCancellable or %NULL. - - - - A #GAsyncReadyCallback to call when the request is satisfied. - - - - The data to pass to @callback. - - - - - - Finishes revoking temporary authorizations. - - - %TRUE if all the temporary authorizations was revoked, %FALSE if error is set. - - - - - A #PolkitAuthority. - - - - A #GAsyncResult obtained from the callback. - - - - - - Synchronously revokes all temporary authorization from @subject. - -The calling thread is blocked until a reply is received. See -polkit_authority_revoke_temporary_authorizations() for the -asynchronous version. - - - %TRUE if the temporary authorization was revoked, %FALSE if error is set. - - - - - A #PolkitAuthority. - - - - The subject to revoke authorizations from, typically a #PolkitUnixSession. - - - - A #GCancellable or %NULL. - - - - - - Asynchronously unregisters an authentication agent. - -When the operation is finished, @callback will be invoked in the -<link linkend="g-main-context-push-thread-default">thread-default -main loop</link> of the thread you are calling this method -from. You can then call -polkit_authority_unregister_authentication_agent_finish() to get -the result of the operation. - - - - - - - A #PolkitAuthority. - - - - The subject the authentication agent is for, typically a #PolkitUnixSession object. - - - - The object path for the authentication agent. - - - - A #GCancellable or %NULL. - - - - A #GAsyncReadyCallback to call when the request is satisfied. - - - - The data to pass to @callback. - - - - - - Finishes unregistering an authentication agent. - - - %TRUE if the authentication agent was successfully unregistered, %FALSE if @error is set. - - - - - A #PolkitAuthority. - - - - A #GAsyncResult obtained from the callback. - - - - - - Unregisters an authentication agent. The calling thread is blocked -until a reply is received. See -polkit_authority_unregister_authentication_agent() for the -asynchronous version. - - - %TRUE if the authentication agent was successfully unregistered, %FALSE if @error is set. - - - - - A #PolkitAuthority. - - - - The subject the authentication agent is for, typically a #PolkitUnixSession object. - - - - The object path for the authentication agent. - - - - A #GCancellable or %NULL. - - - - - - The features of the currently used Authority backend. - - - - The name of the currently used Authority backend. - - - - - - - The unique name of the owner of the org.freedesktop.PolicyKit1 -D-Bus service or %NULL if there is no owner. Connect to the -#GObject::notify signal to track changes to this property. - - - - Emitted when actions and/or authorizations change - - - - - - - - - - Flags describing features supported by the Authority implementation. - - No flags set. - - - The authority supports temporary authorizations -that can be obtained through authentication. - - - - This class represents the result you get when checking for an authorization. - - - Creates a new #PolkitAuthorizationResult object. - - - A #PolkitAuthorizationResult object. Free with g_object_unref(). - - - - - Whether the subject is authorized. - - - - Whether the subject is authorized if more -information is provided. Must be %FALSE unless @is_authorized is -%TRUE. - - - - Must be %NULL unless @is_authorized is %TRUE - - - - - - Gets the details about the result. - - - A #PolkitDetails object or -%NULL if there are no details. This object is owned by @result and -should not be freed by the caller. - - - - - A #PolkitAuthorizationResult. - - - - - - Gets whether the authentication request was dismissed / canceled by the user. - -This method simply reads the value of the key/value pair in @details with the -key <literal>polkit.dismissed</literal>. - - - %TRUE if the authentication request was dismissed, %FALSE otherwise. - - - - - A #PolkitAuthorizationResult. - - - - - - Gets whether the subject is authorized. - -If the authorization is temporary, use polkit_authorization_result_get_temporary_authorization_id() -to get the opaque identifier for the temporary authorization. - - - Whether the subject is authorized. - - - - - A #PolkitAuthorizationResult. - - - - - - Gets whether the subject is authorized if more information is provided. - - - Whether the subject is authorized if more information is provided. - - - - - A #PolkitAuthorizationResult. - - - - - - Gets whether authorization is retained if obtained via authentication. This can only be the case -if @result indicates that the subject can obtain authorization after challenge (cf. -polkit_authorization_result_get_is_challenge()), e.g. when the subject is not already authorized (cf. -polkit_authorization_result_get_is_authorized()). - -If the subject is already authorized, use polkit_authorization_result_get_temporary_authorization_id() -to check if the authorization is temporary. - -This method simply reads the value of the key/value pair in @details with the -key <literal>polkit.retains_authorization_after_challenge</literal>. - - - %TRUE if the authorization is or will be temporary. - - - - - A #PolkitAuthorizationResult. - - - - - - Gets the opaque temporary authorization id for @result if @result indicates the -subject is authorized and the authorization is temporary rather than one-shot or -permanent. - -You can use this string together with the result from -polkit_authority_enumerate_temporary_authorizations() to get more details -about the temporary authorization or polkit_authority_revoke_temporary_authorization_by_id() -to revoke the temporary authorization. - -If the subject is not authorized, use polkit_authorization_result_get_retains_authorization() -to check if the authorization will be retained if obtained via authentication. - -This method simply reads the value of the key/value pair in @details with the -key <literal>polkit.temporary_authorization_id</literal>. - - - The opaque temporary authorization id for - @result or %NULL if not available. Do not free this string, it - is owned by @result. - - - - - A #PolkitAuthorizationResult. - - - - - - - - - - Possible flags when checking authorizations. - - No flags set. - - - If the subject can obtain the authorization -through authentication, and an authentication agent is available, then attempt to do so. Note, this -means that the method used for checking authorization is likely to block for a long time. - - - - - - - - - - - - - - - - - - - - - - - - - An object used for passing details around. - - - Creates a new #PolkitDetails object. - - - A #PolkitDetails object. Free with g_object_unref(). - - - - - Gets a list of all keys on @details. - - - %NULL if there are no keys -otherwise an array of strings that should be freed with -g_strfreev(). - - - - - - - A #PolkitDetails. - - - - - - Inserts a copy of @key and @value on @details. - -If @value is %NULL, the key will be removed. - - - - - - - A #PolkitDetails. - - - - A key. - - - - A value. - - - - - - Gets the value for @key on @details. - - - %NULL if there is no value for @key, otherwise a string owned by @details. - - - - - A #PolkitDetails. - - - - A key. - - - - - - - - - - Possible error when using PolicyKit. - - The operation failed. - - - The operation was cancelled. - - - Operation is not supported. - - - Not authorized to perform operation. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #PolkitIdentity is an abstract type for representing one or more -identities. - - - Creates an object from @str that implements the #PolkitIdentity -interface. - - - A #PolkitIdentity or %NULL -if @error is set. Free with g_object_unref(). - - - - - A string obtained from polkit_identity_to_string(). - - - - - - Checks if @a and @b are equal, ie. represent the same identity. - -This function can be used in e.g. g_hash_table_new(). - - - %TRUE if @a and @b are equal, %FALSE otherwise. - - - - - A #PolkitIdentity. - - - - A #PolkitIdentity. - - - - - - Gets a hash code for @identity that can be used with e.g. g_hash_table_new(). - - - A hash code. - - - - - A #PolkitIdentity. - - - - - - Serializes @identity to a string that can be used in -polkit_identity_from_string(). - - - A string representing @identity. Free with g_free(). - - - - - A #PolkitIdentity. - - - - - - Checks if @a and @b are equal, ie. represent the same identity. - -This function can be used in e.g. g_hash_table_new(). - - - %TRUE if @a and @b are equal, %FALSE otherwise. - - - - - A #PolkitIdentity. - - - - A #PolkitIdentity. - - - - - - Gets a hash code for @identity that can be used with e.g. g_hash_table_new(). - - - A hash code. - - - - - A #PolkitIdentity. - - - - - - Serializes @identity to a string that can be used in -polkit_identity_from_string(). - - - A string representing @identity. Free with g_free(). - - - - - A #PolkitIdentity. - - - - - - - An interface for identities. - - - The parent interface. - - - - - - - A hash code. - - - - - A #PolkitIdentity. - - - - - - - - - - %TRUE if @a and @b are equal, %FALSE otherwise. - - - - - A #PolkitIdentity. - - - - A #PolkitIdentity. - - - - - - - - - - A string representing @identity. Free with g_free(). - - - - - A #PolkitIdentity. - - - - - - - - Possible implicit authorizations. - - Unknown whether the subject is authorized, never returned in any public API. - - - Subject is not authorized. - - - Authentication is required. - - - Authentication as an administrator is required. - - - Authentication is required. If the authorization is obtained, it is retained. - - - Authentication as an administrator is required. If the authorization is obtained, it is retained. - - - The subject is authorized - - - - - - - - - A string - - - - The location of the resulting deserialization - - - - - - - - - - - - - - - - - - - - - - - - - #PolkitPermission is a #GPermission implementation. It can be used -with e.g. #GtkLockButton. See the #GPermission documentation for -more information. - - - - Finishes an operation started with polkit_permission_new(). - - - A #GPermission or %NULL if @error is set. - - - - - A #GAsyncResult obtained from the #GAsyncReadyCallback passed to polkit_permission_new(). - - - - - - Creates a #GPermission instance for the PolicyKit action -@action_id. - -This is a synchronous failable constructor. See -polkit_permission_new() for the asynchronous version. - - - A #GPermission or %NULL if @error is set. - - - - - The PolicyKit action identifier. - - - - A #PolkitSubject or %NULL for the current process. - - - - A #GCancellable or %NULL. - - - - - - Creates a #GPermission instance for the PolicyKit action -@action_id. - -When the operation is finished, @callback will be invoked. You can -then call polkit_permission_new_finish() to get the result of the -operation. - -This is a asynchronous failable constructor. See -polkit_permission_new_sync() for the synchronous version. - - - - - - - The PolicyKit action identifier. - - - - A #PolkitSubject or %NULL for the current process. - - - - A #GCancellable or %NULL. - - - - A #GAsyncReadyCallback to call when the request is satisfied. - - - - The data to pass to @callback. - - - - - - Gets the PolicyKit action identifier used for @permission. - - - A string owned by @permission. Do not free. - - - - - A #PolkitPermission. - - - - - - Gets the subject used for @permission. - - - An object owned by @permission. Do not free. - - - - - A #PolkitPermission. - - - - - - The action identifier to use for the permission. - - - - The #PolkitSubject to use for the permission. If not set during -construction, it will be set to match the current process. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #PolkitSubject is an abstract type for representing one or more -processes. - - - Creates an object from @str that implements the #PolkitSubject -interface. - - - A #PolkitSubject or %NULL if @error is -set. Free with g_object_unref(). - - - - - A string obtained from polkit_subject_to_string(). - - - - - - Checks if @a and @b are equal, ie. represent the same subject. -However, avoid calling polkit_subject_equal() to compare two processes; -for more information see the `PolkitUnixProcess` documentation. - -This function can be used in e.g. g_hash_table_new(). - - - %TRUE if @a and @b are equal, %FALSE otherwise. - - - - - A #PolkitSubject. - - - - A #PolkitSubject. - - - - - - Asynchronously checks if @subject exists. - -When the operation is finished, @callback will be invoked in the -<link linkend="g-main-context-push-thread-default">thread-default -main loop</link> of the thread you are calling this method -from. You can then call polkit_subject_exists_finish() to get the -result of the operation. - - - - - - - A #PolkitSubject. - - - - A #GCancellable or %NULL. - - - - A #GAsyncReadyCallback to call when the request is satisfied - - - - The data to pass to @callback. - - - - - - Finishes checking whether a subject exists. - - - %TRUE if the subject exists, %FALSE if not or @error is set. - - - - - A #PolkitSubject. - - - - A #GAsyncResult obtained from the #GAsyncReadyCallback passed to polkit_subject_exists(). - - - - - - Checks if @subject exists. - -This is a synchronous blocking call - the calling thread is blocked -until a reply is received. See polkit_subject_exists() for the -asynchronous version. - - - %TRUE if the subject exists, %FALSE if not or @error is set. - - - - - A #PolkitSubject. - - - - A #GCancellable or %NULL. - - - - - - Gets a hash code for @subject that can be used with e.g. g_hash_table_new(). - - - A hash code. - - - - - A #PolkitSubject. - - - - - - Serializes @subject to a string that can be used in -polkit_subject_from_string(). - - - A string representing @subject. Free with g_free(). - - - - - A #PolkitSubject. - - - - - - Checks if @a and @b are equal, ie. represent the same subject. -However, avoid calling polkit_subject_equal() to compare two processes; -for more information see the `PolkitUnixProcess` documentation. - -This function can be used in e.g. g_hash_table_new(). - - - %TRUE if @a and @b are equal, %FALSE otherwise. - - - - - A #PolkitSubject. - - - - A #PolkitSubject. - - - - - - Asynchronously checks if @subject exists. - -When the operation is finished, @callback will be invoked in the -<link linkend="g-main-context-push-thread-default">thread-default -main loop</link> of the thread you are calling this method -from. You can then call polkit_subject_exists_finish() to get the -result of the operation. - - - - - - - A #PolkitSubject. - - - - A #GCancellable or %NULL. - - - - A #GAsyncReadyCallback to call when the request is satisfied - - - - The data to pass to @callback. - - - - - - Finishes checking whether a subject exists. - - - %TRUE if the subject exists, %FALSE if not or @error is set. - - - - - A #PolkitSubject. - - - - A #GAsyncResult obtained from the #GAsyncReadyCallback passed to polkit_subject_exists(). - - - - - - Checks if @subject exists. - -This is a synchronous blocking call - the calling thread is blocked -until a reply is received. See polkit_subject_exists() for the -asynchronous version. - - - %TRUE if the subject exists, %FALSE if not or @error is set. - - - - - A #PolkitSubject. - - - - A #GCancellable or %NULL. - - - - - - Gets a hash code for @subject that can be used with e.g. g_hash_table_new(). - - - A hash code. - - - - - A #PolkitSubject. - - - - - - Serializes @subject to a string that can be used in -polkit_subject_from_string(). - - - A string representing @subject. Free with g_free(). - - - - - A #PolkitSubject. - - - - - - - An interface for subjects. - - - The parent interface. - - - - - - - A hash code. - - - - - A #PolkitSubject. - - - - - - - - - - %TRUE if @a and @b are equal, %FALSE otherwise. - - - - - A #PolkitSubject. - - - - A #PolkitSubject. - - - - - - - - - - A string representing @subject. Free with g_free(). - - - - - A #PolkitSubject. - - - - - - - - - - - - - - A #PolkitSubject. - - - - A #GCancellable or %NULL. - - - - A #GAsyncReadyCallback to call when the request is satisfied - - - - The data to pass to @callback. - - - - - - - - - - %TRUE if the subject exists, %FALSE if not or @error is set. - - - - - A #PolkitSubject. - - - - A #GAsyncResult obtained from the #GAsyncReadyCallback passed to polkit_subject_exists(). - - - - - - - - - - %TRUE if the subject exists, %FALSE if not or @error is set. - - - - - A #PolkitSubject. - - - - A #GCancellable or %NULL. - - - - - - - - An object that represents a process owning a unique name on the system bus. - - - - Creates a new #PolkitSystemBusName for @name. - - - A #PolkitSystemBusName. Free with g_object_unref(). - - - - - A unique system bus name. - - - - - - Gets the unique system bus name for @system_bus_name. - - - The unique system bus name for @system_bus_name. Do not -free, this string is owned by @system_bus_name. - - - - - A #PolkitSystemBusName. - - - - - - Synchronously gets a #PolkitUnixProcess object for @system_bus_name -- the calling thread is blocked until a reply is received. - - - A #PolkitUnixProcess object or %NULL if @error is set. - - - - - A #PolkitSystemBusName. - - - - A #GCancellable or %NULL. - - - - - - Synchronously gets a #PolkitUnixUser object for @system_bus_name; -the calling thread is blocked until a reply is received. - - - A #PolkitUnixUser object or %NULL if @error is set. - - - - - A #PolkitSystemBusName. - - - - A #GCancellable or %NULL. - - - - - - Sets the unique system bus name for @system_bus_name. - - - - - - - A #PolkitSystemBusName. - - - - A unique system bus name. - - - - - - The unique name on the system message bus. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Object used to describe a temporary authorization. - - - Gets the action that @authorization is for. - - - A string owned by @authorization. Do not free. - - - - - A #PolkitTemporaryAuthorization. - - - - - - Gets the opaque identifier for @authorization. - - - A string owned by @authorization. Do not free. - - - - - A #PolkitTemporaryAuthorization. - - - - - - Gets the subject that @authorization is for. - - - A #PolkitSubject, free with g_object_unref(). - - - - - A #PolkitTemporaryAuthorization. - - - - - - Gets the time when @authorization will expire. - -(Note that the PolicyKit daemon is using monotonic time internally -so the returned value may change if system time changes.) - - - Seconds since the Epoch Jan 1. 1970, 0:00 UTC. - - - - - A #PolkitTemporaryAuthorization. - - - - - - Gets the time when @authorization was obtained. - -(Note that the PolicyKit daemon is using monotonic time internally -so the returned value may change if system time changes.) - - - Seconds since the Epoch Jan 1. 1970, 0:00 UTC. - - - - - A #PolkitTemporaryAuthorization. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - An object representing a group identity on a UNIX system. - - - - Creates a new #PolkitUnixGroup object for @gid. - - - A #PolkitUnixGroup object. Free with g_object_unref(). - - - - - A UNIX group id. - - - - - - Creates a new #PolkitUnixGroup object for a group with the group name -@name. - - - A #PolkitUnixGroup object or %NULL if @error -is set. - - - - - A UNIX group name. - - - - - - Gets the UNIX group id for @group. - - - A UNIX group id. - - - - - A #PolkitUnixGroup. - - - - - - Sets @gid for @group. - - - - - - - A #PolkitUnixGroup. - - - - A UNIX group id. - - - - - - The UNIX group id. - - - - - - - - An object representing a netgroup identity on a UNIX system. - - - - Creates a new #PolkitUnixNetgroup object for @name. - - - A #PolkitUnixNetgroup object. Free with g_object_unref(). - - - - - A netgroup name. - - - - - - Gets the netgroup name for @group. - - - A netgroup name string. - - - - - A #PolkitUnixNetgroup. - - - - - - Sets @name for @group. - - - - - - - A #PolkitUnixNetgroup. - - - - A netgroup name. - - - - - - The NIS netgroup name. - - - - - - - - An object for representing a UNIX process. In order to be reliable and -race-free, this requires support for PID File Descriptors in the kernel, -dbus-daemon/broker and systemd. With this functionality, we can reliably -track processes without risking PID reuse and race conditions, and compare -them. - -NOTE: If PID FDs are not available, this object will fall back to using -PIDs, and this designed is now known broken; a mechanism to exploit a delay -in start time in the Linux kernel was identified. Avoid -calling polkit_subject_equal() to compare two processes. - -To uniquely identify processes, both the process id and the start -time of the process (a monotonic increasing value representing the -time since the kernel was started) is used. - -NOTE: This object stores, and provides access to, the real UID of the -process. That value can change over time (with set*uid*(2) and exec*(2)). -Checks whether an operation is allowed need to take care to use the UID -value as of the time when the operation was made (or, following the open() -privilege check model, when the connection making the operation possible -was initiated). That is usually done by initializing this with -polkit_unix_process_new_for_owner() with trusted data. - - - - Creates a new #PolkitUnixProcess for @pid. - -The uid and start time of the process will be looked up in using -e.g. the <filename>/proc</filename> filesystem depending on the -platform in use. - - - A #PolkitSubject. Free with g_object_unref(). - - - - - The process id. - - - - - - Creates a new #PolkitUnixProcess object for @pid, @start_time and @uid. - - - A #PolkitSubject. Free with g_object_unref(). - - - - - The process id. - - - - The start time for @pid or 0 to look it up in e.g. <filename>/proc</filename>. - - - - The (real, not effective) uid of the owner of @pid or -1 to look it up in e.g. <filename>/proc</filename>. - - - - - - Creates a new #PolkitUnixProcess object for @pid and @start_time. - -The uid of the process will be looked up in using e.g. the -<filename>/proc</filename> filesystem depending on the platform in -use. - - - A #PolkitSubject. Free with g_object_unref(). - - - - - The process id. - - - - The start time for @pid. - - - - - - Creates a new #PolkitUnixProcess object for @pidfd and @uid. - - - A #PolkitSubject. Free with g_object_unref(). - - - - - The process id file descriptor. - - - - The (real, not effective) uid of the owner of @pid or -1 to look it up in e.g. <filename>/proc</filename>. - - - - The (real, not effective) gids of the owner of @pid or %NULL. - - - - - - - - Gets the group ids for @process. Note that this is the real group-ids, -not the effective group-ids. - - - a #GArray - of #gid_t containing the group ids for @process or NULL if unknown, - as a new reference to the array, caller must deref it when done. - - - - - - - - - A #PolkitUnixProcess. - - - - - - (deprecated) - - - - - - - A #PolkitUnixProcess. - - - - - - Gets the process id for @process. - - - The process id for @process. - - - - - A #PolkitUnixProcess. - - - - - - Gets the process id file descriptor for @process. - - - The process id file descriptor for @process. - - - - - A #PolkitUnixProcess. - - - - - - Checks if the process id file descriptor for @process is safe -or if it was opened locally and thus vulnerable to reuse. - - - TRUE or FALSE. - - - - - A #PolkitUnixProcess. - - - - - - Gets the start time of @process. - - - The start time of @process. - - - - - A #PolkitUnixProcess. - - - - - - Gets the user id for @process. Note that this is the real user-id, -not the effective user-id. - -NOTE: The UID may change over time, so the returned value may not match the -current state of the underlying process; or the UID may have been set by -polkit_unix_process_new_for_owner() or polkit_unix_process_set_uid(), -in which case it may not correspond to the actual UID of the referenced -process at all (at any point in time). - - - The user id for @process or -1 if unknown. - - - - - A #PolkitUnixProcess. - - - - - - Sets the (real, not effective) group ids for @process. - - - - - - - A #PolkitUnixProcess. - - - - A #GList of #gid_t containing the group - ids to set for @process or NULL to unset them. - A reference to @gids is taken. - - - - - - - - - - Sets @pid for @process. - - - - - - - A #PolkitUnixProcess. - - - - A process id. - - - - - - Sets @pidfd for @process. - - - - - - - A #PolkitUnixProcess. - - - - A process id file descriptor. - - - - - - Set the start time of @process. - - - - - - - A #PolkitUnixProcess. - - - - The start time for @pid. - - - - - - Sets the (real, not effective) user id for @process. - - - - - - - A #PolkitUnixProcess. - - - - The user id to set for @process or -1 to unset it. - - - - - - The UNIX group ids of the process. - - - - - - The UNIX process id. - - - - The UNIX process id file descriptor. - - - - - - - The start time of the process. - - - - The UNIX user id of the process or -1 if unknown. - -Note that this is the real user-id, not the effective user-id. - - - - - - - - An object that represents an user session. - -The session id is an opaque string obtained from ConsoleKit. - - - - - - Creates a new #PolkitUnixSession for @session_id. - - - A #PolkitUnixSession. Free with g_object_unref(). - - - - - The session id. - - - - - - Asynchronously creates a new #PolkitUnixSession object for the -process with process id @pid. - -When the operation is finished, @callback will be invoked in the -<link linkend="g-main-context-push-thread-default">thread-default -main loop</link> of the thread you are calling this method -from. You can then call -polkit_unix_session_new_for_process_finish() to get the result of -the operation. - -This method constructs the object asynchronously, for the synchronous and blocking version -use polkit_unix_session_new_for_process_sync(). - - - - - - - The process id of the process to get the session for. - - - - A #GCancellable or %NULL. - - - - A #GAsyncReadyCallback to call when the request is satisfied - - - - The data to pass to @callback. - - - - - - Finishes constructing a #PolkitSubject for a process id. - - - A #PolkitUnixSession for the @pid passed to - polkit_unix_session_new_for_process() or %NULL if @error is - set. Free with g_object_unref(). - - - - - A #GAsyncResult obtained from the #GAsyncReadyCallback passed to polkit_unix_session_new_for_process(). - - - - - - Creates a new #PolkitUnixSession for the process with process id @pid. - -This is a synchronous call - the calling thread is blocked until a -reply is received. For the asynchronous version, see -polkit_unix_session_new_for_process(). - - - A #PolkitUnixSession for -@pid or %NULL if @error is set. Free with g_object_unref(). - - - - - The process id of the process to get the session for. - - - - A #GCancellable or %NULL. - - - - - - Gets the session id for @session. - - - The session id for @session. Do not free this string, it -is owned by @session. - - - - - A #PolkitUnixSession. - - - - - - Sets the session id for @session to @session_id. - - - - - - - A #PolkitUnixSession. - - - - The session id. - - - - - - The UNIX process id to look up the session. - - - - The UNIX session id. - - - - - - - - An object representing a user identity on a UNIX system. - - - - Creates a new #PolkitUnixUser object for @uid. - - - A #PolkitUnixUser object. Free with g_object_unref(). - - - - - A UNIX user id. - - - - - - Creates a new #PolkitUnixUser object for a user with the user name -@name. - - - A #PolkitUnixUser object or %NULL if @error is set. - - - - - A UNIX user name. - - - - - - Get the user's name. - - - User name string or %NULL if user uid not found. - - - - - A #PolkitUnixUser. - - - - - - Gets the UNIX user id for @user. - - - A UNIX user id. - - - - - A #PolkitUnixUser. - - - - - - Sets @uid for @user. - - - - - - - A #PolkitUnixUser. - - - - A UNIX user id. - - - - - - The UNIX user id. - - - - - - - - - - - - - Creates an object from @str that implements the #PolkitIdentity -interface. - - - A #PolkitIdentity or %NULL -if @error is set. Free with g_object_unref(). - - - - - A string obtained from polkit_identity_to_string(). - - - - - - - - - - - - A string - - - - The location of the resulting deserialization - - - - - - - - - - - - - - - - - Error codes. - - - Creates an object from @str that implements the #PolkitSubject -interface. - - - A #PolkitSubject or %NULL if @error is -set. Free with g_object_unref(). - - - - - A string obtained from polkit_subject_to_string(). - - - - - - diff --git a/libphosh-rs/fix.sh b/libphosh-rs/fix.sh index 35636e7f1..dfed4536f 100755 --- a/libphosh-rs/fix.sh +++ b/libphosh-rs/fix.sh @@ -16,5 +16,13 @@ xmlstarlet ed -L \ xmlstarlet ed -L \ -d '///_:include[@name="Gcr"]' \ -d '///_:include[@name="GnomeBluetooth"]' \ - -d '///doc:format[@name="unknown"]' \ + Phosh-0.gir + +# GtkPlain is not introspected yet (WIP GTK custom-surface work): g-i emits +# unnamed elements for the parent_instance field, which trip up gir. +# Point them at Gtk.Widget so instance structs keep a workable layout. +xmlstarlet ed -L \ + --var plain_parent '//_:field[@name="parent_instance"]/_:type[@c:type="GtkPlain" and not(@name)]' \ + -i '$plain_parent' -t attr -n 'name' -v 'Gtk.Widget' \ + -u '$plain_parent/@c:type' -v 'GtkWidget' \ Phosh-0.gir diff --git a/libphosh-rs/generator.py b/libphosh-rs/generator.py deleted file mode 100755 index 9a09a6d48..000000000 --- a/libphosh-rs/generator.py +++ /dev/null @@ -1,254 +0,0 @@ -#!/usr/bin/env python3 - -from pathlib import Path -import argparse -import subprocess -import sys -import asyncio - -DEFAULT_GIR_FILES_DIRECTORY = Path("./gir-files") -DEFAULT_GIR_DIRECTORY = Path("./gir/") -DEFAULT_GIR_PATH = DEFAULT_GIR_DIRECTORY / "target/release/gir" - - -def run_command(command, folder=None): - return subprocess.run(command, cwd=folder, check=True) - - -async def spawn_process(exe, args): - p = await asyncio.create_subprocess_exec( - str(exe), - *(str(arg) for arg in args), - stdout=asyncio.subprocess.PIPE, - stderr=asyncio.subprocess.PIPE, - ) - - stdout, stderr = await p.communicate() - stdout = stdout.decode("utf-8") - stderr = stderr.decode("utf-8") - assert p.returncode == 0, stderr.strip() - return stdout, stderr - - -async def spawn_gir(gir_exe, args): - stdout, stderr = await spawn_process(gir_exe, args) - # Gir doesn't print anything to stdout. If it does, this is likely out of - # order with stderr, unless the printer/logging flushes in between. - assert not stdout, "`gir` printed unexpected stdout: {}".format(stdout) - if stderr: - return "===> stderr:\n\n" + stderr + "\n" - return "" - - -def update_workspace(): - return run_command(["cargo", "build", "--release"], "gir") - - -def ask_yes_no_question(question, conf): - question = "{} [y/N] ".format(question) - if conf.yes: - print(question + "y") - return True - line = input(question) - return line.strip().lower() == "y" - - -def update_submodule(submodule_path, conf): - if any(submodule_path.iterdir()): - return False - print("=> Initializing {} submodule...".format(submodule_path)) - run_command(["git", "submodule", "update", "--init", "--checkout", submodule_path]) - print("<= Done!") - - if ask_yes_no_question( - "Do you want to update {} submodule?".format(submodule_path), conf - ): - print("=> Updating submodule...") - run_command(["git", "reset", "--hard", "HEAD"], submodule_path) - run_command(["git", "pull", "-f", "origin", "master"], submodule_path) - print("<= Done!") - return True - return False - - -def build_gir(): - print("=> Building gir...") - update_workspace() - print("<= Done!") - - -async def regenerate_crate_docs(conf, crate_dir, base_gir_args): - doc_path = "docs.md" - # Generate into docs.md instead of the default vendor.md - doc_args = base_gir_args + ["-m", "doc", "--doc-target-path", doc_path] - - # The above `gir -m doc` generates docs.md relative to the directory containing Gir.toml - doc_path = crate_dir / doc_path - embed_args = ["-m", "-d", crate_dir / "src"] - - logs = "" - - if conf.strip_docs: - logs += "==> Stripping documentation from `{}`...\n".format(crate_dir) - # -n dumps stripped docs to stdout - _, stderr = await spawn_process("rustdoc-stripper", embed_args + ["-s", "-n"]) - if stderr: - logs += "===> stderr:\n\n" + stderr + "\n" - - if conf.embed_docs: - logs += "==> Regenerating documentation for `{}` into `{}`...\n".format( - crate_dir, doc_path - ) - logs += await spawn_gir(conf.gir_path, doc_args) - - logs += "==> Embedding documentation from `{}` into `{}`...\n".format( - doc_path, crate_dir - ) - stdout, stderr = await spawn_process( - "rustdoc-stripper", embed_args + ["-g", "-o", doc_path] - ) - if stdout: - logs += "===> stdout:\n\n" + stdout + "\n" - if stderr: - logs += "===> stderr:\n\n" + stderr + "\n" - - return logs - - -def regen_crates(path, conf): - processes = [] - if path.is_dir(): - for entry in path.rglob("Gir*.toml"): - processes += regen_crates(entry, conf) - elif path.match("Gir*.toml"): - args = ["-c", path, "-o", path.parent] + [ - d for path in conf.gir_files_paths for d in ("-d", path) - ] - - is_sys_crate = path.parent.name.endswith("sys") - - if conf.embed_docs or conf.strip_docs: - # Embedding documentation only applies to non-sys crates - if is_sys_crate: - return processes - - processes.append(regenerate_crate_docs(conf, path.parent, args)) - else: - if is_sys_crate: - args.extend(["-m", "sys"]) - - async def regenerate_crate(path, args): - return "==> Regenerating `{}`...\n".format(path) + await spawn_gir( - conf.gir_path, args - ) - - processes.append(regenerate_crate(path, args)) - - else: - raise Exception("`{}` is not a valid Gir*.toml file".format(path)) - - return processes - - -def valid_path(path): - path = Path(path) - if not path.exists(): - raise argparse.ArgumentTypeError("`{}` no such file or directory".format(path)) - return path - - -def directory_path(path): - path = Path(path) - if not path.is_dir(): - raise argparse.ArgumentTypeError("`{}` directory not found".format(path)) - return path - - -def file_path(path): - path = Path(path) - if not path.is_file(): - raise argparse.ArgumentTypeError("`{}` file not found".format(path)) - return path - - -def parse_args(): - parser = argparse.ArgumentParser( - description="Helper to regenerate gtk-rs crates using gir.", - formatter_class=argparse.ArgumentDefaultsHelpFormatter, - ) - - parser.add_argument( - "path", - nargs="*", - default=[Path(".")], - type=valid_path, - help="Paths in which to look for Gir.toml files", - ) - parser.add_argument( - "--gir-files-directories", - nargs="+", # If the option is used, we expect at least one folder! - dest="gir_files_paths", - default=[], - type=directory_path, - help="Path of the gir-files folder", - ) - parser.add_argument( - "--gir-path", - default=DEFAULT_GIR_PATH, - type=file_path, - help="Path of the gir executable to run", - ) - parser.add_argument( - "--yes", - action="store_true", - help=" Always answer `yes` to any question asked by the script", - ) - parser.add_argument( - "--no-fmt", - action="store_true", - help="If set, this script will not run `cargo fmt`", - ) - parser.add_argument( - "--embed-docs", - action="store_true", - help="Build documentation with `gir -m doc`, and embed it with `rustdoc-stripper -g`", - ) - parser.add_argument( - "--strip-docs", - action="store_true", - help="Remove documentation with `rustdoc-stripper -s -n`. Can be used in conjunction with --embed-docs", - ) - - return parser.parse_args() - - -async def main(): - conf = parse_args() - - if not conf.gir_files_paths: - update_submodule(DEFAULT_GIR_FILES_DIRECTORY, conf) - - if conf.gir_path == DEFAULT_GIR_PATH: - update_submodule(DEFAULT_GIR_DIRECTORY, conf) - build_gir() - - print("=> Regenerating crates...") - for path in conf.path: - print("=> Looking in path `{}`".format(path)) - # Collect and print the results as soon as they trickle in, one process at a time: - for coro in asyncio.as_completed(regen_crates(path, conf)): - print(await coro, end="") - - if not conf.no_fmt and not run_command(["cargo", "fmt"]): - return 1 - print("<= Done!") - print("Don't forget to check if everything has been correctly generated!") - return 0 - - -if __name__ == "__main__": - try: - asyncio.run(main()) - except Exception as e: - print("Error: {}".format(e), file=sys.stderr) - sys.exit(1) diff --git a/libphosh-rs/generator.py b/libphosh-rs/generator.py new file mode 120000 index 000000000..09c770c98 --- /dev/null +++ b/libphosh-rs/generator.py @@ -0,0 +1 @@ +gir/generator.py \ No newline at end of file diff --git a/libphosh-rs/libphosh/Cargo.toml b/libphosh-rs/libphosh/Cargo.toml index 0f412d484..d0502c610 100644 --- a/libphosh-rs/libphosh/Cargo.toml +++ b/libphosh-rs/libphosh/Cargo.toml @@ -15,21 +15,14 @@ keywords = ["phosh", "gnome"] name = "libphosh" [features] -default = ["gtk_v3_20"] -gtk_v2_4 = [] -gtk_v2_6 = ["gtk_v2_4"] -gtk_v2_10 = ["gtk_v2_6"] -gtk_v2_12 = ["gtk_v2_10"] -gtk_v2_18 = ["gtk_v2_12"] -gtk_v2_20 = ["gtk_v2_18"] -gtk_v3 = ["gtk_v2_20"] -gtk_v3_4 = ["gtk_v3"] -gtk_v3_8 = ["gtk_v3_4"] -gtk_v3_12 = ["gtk_v3_8"] -gtk_v3_14 = ["gtk_v3_12"] -gtk_v3_20 = ["gtk_v3_14"] -v3_12 = [] -v3_14 = [] +default = [] +gtk_v4_10 = [] +gtk_v4_12 = ["gtk_v4_10"] +gtk_v4_14 = ["gtk_v4_12"] +gtk_v4_16 = ["gtk_v4_14"] +gtk_v4_18 = ["gtk_v4_16"] +gtk_v4_20 = ["gtk_v4_18"] +gtk_v4_22 = ["gtk_v4_20"] [package.metadata.docs.rs] all-features = true @@ -40,19 +33,20 @@ rustdoc-args = ["--cfg", "docsrs"] libc = '0.2' [dependencies.gdk] -version = "0.18" +package = "gdk4" +version = "0.11" [dependencies.gio] -version = "0.18" +version = "0.22" features = [ "v2_70" ] [dependencies.glib] -version = "0.18" +version = "0.22" features = [ "v2_66" ] [dependencies.gtk] -version = "0.18" -features = ["v3_24"] +package = "gtk4" +version = "0.11" [dependencies.ffi] package = "libphosh-sys" diff --git a/libphosh-rs/libphosh/Gir.toml b/libphosh-rs/libphosh/Gir.toml index 3ea876cdc..37b32b8c8 100644 --- a/libphosh-rs/libphosh/Gir.toml +++ b/libphosh-rs/libphosh/Gir.toml @@ -40,9 +40,7 @@ manual = [ "Gio.AsyncResult", "Gio.Cancellable", "GLib.Error", - "Gtk.Bin", "Gtk.Button", - "Gtk.Container", "Gtk.Widget", "Gtk.Window", ] diff --git a/libphosh-rs/libphosh/examples/custom-shell-and-lockscreen.rs b/libphosh-rs/libphosh/examples/custom-shell-and-lockscreen.rs index 13f69aead..bda4448ba 100644 --- a/libphosh-rs/libphosh/examples/custom-shell-and-lockscreen.rs +++ b/libphosh-rs/libphosh/examples/custom-shell-and-lockscreen.rs @@ -129,9 +129,6 @@ mod custom_lockscreen { } impl WidgetImpl for CustomLockscreen {} - impl ContainerImpl for CustomLockscreen {} - impl BinImpl for CustomLockscreen {} - impl WindowImpl for CustomLockscreen {} impl LockscreenImpl for CustomLockscreen {} } } diff --git a/libphosh-rs/libphosh/src/auto/lockscreen.rs b/libphosh-rs/libphosh/src/auto/lockscreen.rs index cb82e882d..12e9015f3 100644 --- a/libphosh-rs/libphosh/src/auto/lockscreen.rs +++ b/libphosh-rs/libphosh/src/auto/lockscreen.rs @@ -9,7 +9,7 @@ use std::{boxed::Box as Box_}; glib::wrapper! { #[doc(alias = "PhoshLockscreen")] - pub struct Lockscreen(Object) @extends gtk::Window, gtk::Bin, gtk::Container, gtk::Widget; + pub struct Lockscreen(Object) @extends gtk::Widget; match fn { type_ => || ffi::phosh_lockscreen_get_type(), @@ -48,215 +48,39 @@ pub struct LockscreenBuilder { Self { builder: self.builder.property("require-unlock", require_unlock), } } - #[cfg(feature = "gtk_v2_4")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v2_4")))] - pub fn accept_focus(self, accept_focus: bool) -> Self { - Self { builder: self.builder.property("accept-focus", accept_focus), } - } - - // #[cfg(feature = "gtk_v3")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))] - //pub fn application(self, application: &impl IsA) -> Self { - // Self { builder: self.builder.property("application", application.clone().upcast()), } - //} - - #[cfg(feature = "gtk_v3_4")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3_4")))] - pub fn attached_to(self, attached_to: &impl IsA) -> Self { - Self { builder: self.builder.property("attached-to", attached_to.clone().upcast()), } - } - - #[cfg(feature = "gtk_v2_4")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v2_4")))] - pub fn decorated(self, decorated: bool) -> Self { - Self { builder: self.builder.property("decorated", decorated), } - } - - pub fn default_height(self, default_height: i32) -> Self { - Self { builder: self.builder.property("default-height", default_height), } - } - - pub fn default_width(self, default_width: i32) -> Self { - Self { builder: self.builder.property("default-width", default_width), } - } - - #[cfg(feature = "gtk_v2_10")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v2_10")))] - pub fn deletable(self, deletable: bool) -> Self { - Self { builder: self.builder.property("deletable", deletable), } - } - - pub fn destroy_with_parent(self, destroy_with_parent: bool) -> Self { - Self { builder: self.builder.property("destroy-with-parent", destroy_with_parent), } - } - - #[cfg(feature = "gtk_v2_6")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v2_6")))] - pub fn focus_on_map(self, focus_on_map: bool) -> Self { - Self { builder: self.builder.property("focus-on-map", focus_on_map), } - } - - #[cfg(feature = "gtk_v2_20")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v2_20")))] - pub fn focus_visible(self, focus_visible: bool) -> Self { - Self { builder: self.builder.property("focus-visible", focus_visible), } - } - - // #[cfg(feature = "gtk_v2_4")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v2_4")))] - //pub fn gravity(self, gravity: /*Ignored*/gdk::Gravity) -> Self { - // Self { builder: self.builder.property("gravity", gravity), } - //} - - #[cfg(feature = "gtk_v3")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))] - #[cfg_attr(feature = "v3_14", deprecated = "Since 3.14")] - pub fn has_resize_grip(self, has_resize_grip: bool) -> Self { - Self { builder: self.builder.property("has-resize-grip", has_resize_grip), } - } - - #[cfg(feature = "gtk_v3_4")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3_4")))] - pub fn hide_titlebar_when_maximized(self, hide_titlebar_when_maximized: bool) -> Self { - Self { builder: self.builder.property("hide-titlebar-when-maximized", hide_titlebar_when_maximized), } - } - - //pub fn icon(self, icon: /*Ignored*/&gdk_pixbuf::Pixbuf) -> Self { - // Self { builder: self.builder.property("icon", icon), } - //} - - #[cfg(feature = "gtk_v2_6")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v2_6")))] - pub fn icon_name(self, icon_name: impl Into) -> Self { - Self { builder: self.builder.property("icon-name", icon_name.into()), } - } - - #[cfg(feature = "gtk_v2_20")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v2_20")))] - pub fn mnemonics_visible(self, mnemonics_visible: bool) -> Self { - Self { builder: self.builder.property("mnemonics-visible", mnemonics_visible), } - } - - pub fn modal(self, modal: bool) -> Self { - Self { builder: self.builder.property("modal", modal), } - } - - pub fn resizable(self, resizable: bool) -> Self { - Self { builder: self.builder.property("resizable", resizable), } - } - - pub fn role(self, role: impl Into) -> Self { - Self { builder: self.builder.property("role", role.into()), } - } - - //pub fn screen(self, screen: /*Ignored*/&gdk::Screen) -> Self { - // Self { builder: self.builder.property("screen", screen), } - //} - - pub fn skip_pager_hint(self, skip_pager_hint: bool) -> Self { - Self { builder: self.builder.property("skip-pager-hint", skip_pager_hint), } - } - - pub fn skip_taskbar_hint(self, skip_taskbar_hint: bool) -> Self { - Self { builder: self.builder.property("skip-taskbar-hint", skip_taskbar_hint), } - } - - #[cfg(feature = "gtk_v2_12")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v2_12")))] - pub fn startup_id(self, startup_id: impl Into) -> Self { - Self { builder: self.builder.property("startup-id", startup_id.into()), } - } - - pub fn title(self, title: impl Into) -> Self { - Self { builder: self.builder.property("title", title.into()), } - } - - #[cfg(feature = "gtk_v2_10")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v2_10")))] - pub fn transient_for(self, transient_for: &impl IsA) -> Self { - Self { builder: self.builder.property("transient-for", transient_for.clone().upcast()), } - } - - //pub fn type_(self, type_: /*Ignored*/gtk::WindowType) -> Self { - // Self { builder: self.builder.property("type", type_), } - //} - - //pub fn type_hint(self, type_hint: /*Ignored*/gdk::WindowTypeHint) -> Self { - // Self { builder: self.builder.property("type-hint", type_hint), } - //} - - pub fn urgency_hint(self, urgency_hint: bool) -> Self { - Self { builder: self.builder.property("urgency-hint", urgency_hint), } - } - - //pub fn window_position(self, window_position: /*Ignored*/gtk::WindowPosition) -> Self { - // Self { builder: self.builder.property("window-position", window_position), } - //} - - pub fn border_width(self, border_width: u32) -> Self { - Self { builder: self.builder.property("border-width", border_width), } - } - - pub fn child(self, child: &impl IsA) -> Self { - Self { builder: self.builder.property("child", child.clone().upcast()), } - } - - //pub fn resize_mode(self, resize_mode: /*Ignored*/gtk::ResizeMode) -> Self { - // Self { builder: self.builder.property("resize-mode", resize_mode), } - //} - - pub fn app_paintable(self, app_paintable: bool) -> Self { - Self { builder: self.builder.property("app-paintable", app_paintable), } + pub fn can_focus(self, can_focus: bool) -> Self { + Self { builder: self.builder.property("can-focus", can_focus), } } - pub fn can_default(self, can_default: bool) -> Self { - Self { builder: self.builder.property("can-default", can_default), } + pub fn can_target(self, can_target: bool) -> Self { + Self { builder: self.builder.property("can-target", can_target), } } - pub fn can_focus(self, can_focus: bool) -> Self { - Self { builder: self.builder.property("can-focus", can_focus), } + pub fn css_classes(self, css_classes: impl Into) -> Self { + Self { builder: self.builder.property("css-classes", css_classes.into()), } } - #[cfg(feature = "gtk_v2_18")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v2_18")))] - #[cfg_attr(feature = "v3_14", deprecated = "Since 3.14")] - pub fn double_buffered(self, double_buffered: bool) -> Self { - Self { builder: self.builder.property("double-buffered", double_buffered), } + pub fn css_name(self, css_name: impl Into) -> Self { + Self { builder: self.builder.property("css-name", css_name.into()), } } - //pub fn events(self, events: /*Ignored*/gdk::EventMask) -> Self { - // Self { builder: self.builder.property("events", events), } + //pub fn cursor(self, cursor: /*Ignored*/&gdk::Cursor) -> Self { + // Self { builder: self.builder.property("cursor", cursor), } //} - #[cfg(feature = "gtk_v3")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))] - pub fn expand(self, expand: bool) -> Self { - Self { builder: self.builder.property("expand", expand), } + pub fn focus_on_click(self, focus_on_click: bool) -> Self { + Self { builder: self.builder.property("focus-on-click", focus_on_click), } } - #[cfg(feature = "gtk_v3_20")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3_20")))] - pub fn focus_on_click(self, focus_on_click: bool) -> Self { - Self { builder: self.builder.property("focus-on-click", focus_on_click), } + pub fn focusable(self, focusable: bool) -> Self { + Self { builder: self.builder.property("focusable", focusable), } } - // #[cfg(feature = "gtk_v3")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))] - //pub fn halign(self, halign: /*Ignored*/gtk::Align) -> Self { + //pub fn halign(self, halign: /*Ignored*/gtk::Align) -> Self { // Self { builder: self.builder.property("halign", halign), } //} - pub fn has_default(self, has_default: bool) -> Self { - Self { builder: self.builder.property("has-default", has_default), } - } - - pub fn has_focus(self, has_focus: bool) -> Self { - Self { builder: self.builder.property("has-focus", has_focus), } - } - - #[cfg(feature = "gtk_v2_12")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v2_12")))] - pub fn has_tooltip(self, has_tooltip: bool) -> Self { + pub fn has_tooltip(self, has_tooltip: bool) -> Self { Self { builder: self.builder.property("has-tooltip", has_tooltip), } } @@ -264,63 +88,37 @@ pub struct LockscreenBuilder { Self { builder: self.builder.property("height-request", height_request), } } - #[cfg(feature = "gtk_v3")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))] - pub fn hexpand(self, hexpand: bool) -> Self { + pub fn hexpand(self, hexpand: bool) -> Self { Self { builder: self.builder.property("hexpand", hexpand), } } - #[cfg(feature = "gtk_v3")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))] - pub fn hexpand_set(self, hexpand_set: bool) -> Self { + pub fn hexpand_set(self, hexpand_set: bool) -> Self { Self { builder: self.builder.property("hexpand-set", hexpand_set), } } - pub fn is_focus(self, is_focus: bool) -> Self { - Self { builder: self.builder.property("is-focus", is_focus), } - } + //pub fn layout_manager(self, layout_manager: &impl IsA) -> Self { + // Self { builder: self.builder.property("layout-manager", layout_manager.clone().upcast()), } + //} - #[cfg(feature = "gtk_v3")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))] - pub fn margin(self, margin: i32) -> Self { - Self { builder: self.builder.property("margin", margin), } + #[cfg(feature = "gtk_v4_18")] + #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v4_18")))] + pub fn limit_events(self, limit_events: bool) -> Self { + Self { builder: self.builder.property("limit-events", limit_events), } } - #[cfg(feature = "gtk_v3")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))] - pub fn margin_bottom(self, margin_bottom: i32) -> Self { + pub fn margin_bottom(self, margin_bottom: i32) -> Self { Self { builder: self.builder.property("margin-bottom", margin_bottom), } } - #[cfg(feature = "gtk_v3_12")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3_12")))] - pub fn margin_end(self, margin_end: i32) -> Self { + pub fn margin_end(self, margin_end: i32) -> Self { Self { builder: self.builder.property("margin-end", margin_end), } } - #[cfg(feature = "gtk_v3")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))] - #[cfg_attr(feature = "v3_12", deprecated = "Since 3.12")] - pub fn margin_left(self, margin_left: i32) -> Self { - Self { builder: self.builder.property("margin-left", margin_left), } - } - - #[cfg(feature = "gtk_v3")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))] - #[cfg_attr(feature = "v3_12", deprecated = "Since 3.12")] - pub fn margin_right(self, margin_right: i32) -> Self { - Self { builder: self.builder.property("margin-right", margin_right), } - } - - #[cfg(feature = "gtk_v3_12")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3_12")))] - pub fn margin_start(self, margin_start: i32) -> Self { + pub fn margin_start(self, margin_start: i32) -> Self { Self { builder: self.builder.property("margin-start", margin_start), } } - #[cfg(feature = "gtk_v3")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))] - pub fn margin_top(self, margin_top: i32) -> Self { + pub fn margin_top(self, margin_top: i32) -> Self { Self { builder: self.builder.property("margin-top", margin_top), } } @@ -328,19 +126,13 @@ pub struct LockscreenBuilder { Self { builder: self.builder.property("name", name.into()), } } - pub fn no_show_all(self, no_show_all: bool) -> Self { - Self { builder: self.builder.property("no-show-all", no_show_all), } - } - - #[cfg(feature = "gtk_v3_8")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3_8")))] - pub fn opacity(self, opacity: f64) -> Self { + pub fn opacity(self, opacity: f64) -> Self { Self { builder: self.builder.property("opacity", opacity), } } - pub fn parent(self, parent: &impl IsA) -> Self { - Self { builder: self.builder.property("parent", parent.clone().upcast()), } - } + //pub fn overflow(self, overflow: /*Ignored*/gtk::Overflow) -> Self { + // Self { builder: self.builder.property("overflow", overflow), } + //} pub fn receives_default(self, receives_default: bool) -> Self { Self { builder: self.builder.property("receives-default", receives_default), } @@ -350,37 +142,23 @@ pub struct LockscreenBuilder { Self { builder: self.builder.property("sensitive", sensitive), } } - //pub fn style(self, style: &impl IsA) -> Self { - // Self { builder: self.builder.property("style", style.clone().upcast()), } - //} - - #[cfg(feature = "gtk_v2_12")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v2_12")))] - pub fn tooltip_markup(self, tooltip_markup: impl Into) -> Self { + pub fn tooltip_markup(self, tooltip_markup: impl Into) -> Self { Self { builder: self.builder.property("tooltip-markup", tooltip_markup.into()), } } - #[cfg(feature = "gtk_v2_12")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v2_12")))] - pub fn tooltip_text(self, tooltip_text: impl Into) -> Self { + pub fn tooltip_text(self, tooltip_text: impl Into) -> Self { Self { builder: self.builder.property("tooltip-text", tooltip_text.into()), } } - // #[cfg(feature = "gtk_v3")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))] - //pub fn valign(self, valign: /*Ignored*/gtk::Align) -> Self { + //pub fn valign(self, valign: /*Ignored*/gtk::Align) -> Self { // Self { builder: self.builder.property("valign", valign), } //} - #[cfg(feature = "gtk_v3")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))] - pub fn vexpand(self, vexpand: bool) -> Self { + pub fn vexpand(self, vexpand: bool) -> Self { Self { builder: self.builder.property("vexpand", vexpand), } } - #[cfg(feature = "gtk_v3")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))] - pub fn vexpand_set(self, vexpand_set: bool) -> Self { + pub fn vexpand_set(self, vexpand_set: bool) -> Self { Self { builder: self.builder.property("vexpand-set", vexpand_set), } } diff --git a/libphosh-rs/libphosh/src/auto/quick_setting.rs b/libphosh-rs/libphosh/src/auto/quick_setting.rs index db28d08cc..3e95836d8 100644 --- a/libphosh-rs/libphosh/src/auto/quick_setting.rs +++ b/libphosh-rs/libphosh/src/auto/quick_setting.rs @@ -9,7 +9,7 @@ use std::{boxed::Box as Box_}; glib::wrapper! { #[doc(alias = "PhoshQuickSetting")] - pub struct QuickSetting(Object) @extends gtk::Container, gtk::Widget; + pub struct QuickSetting(Object) @extends gtk::Widget; match fn { type_ => || ffi::phosh_quick_setting_get_type(), @@ -86,70 +86,39 @@ pub struct QuickSettingBuilder { Self { builder: self.builder.property("status-page", status_page.clone().upcast()), } } - pub fn border_width(self, border_width: u32) -> Self { - Self { builder: self.builder.property("border-width", border_width), } - } - - pub fn child(self, child: &impl IsA) -> Self { - Self { builder: self.builder.property("child", child.clone().upcast()), } - } - - //pub fn resize_mode(self, resize_mode: /*Ignored*/gtk::ResizeMode) -> Self { - // Self { builder: self.builder.property("resize-mode", resize_mode), } - //} - - pub fn app_paintable(self, app_paintable: bool) -> Self { - Self { builder: self.builder.property("app-paintable", app_paintable), } + pub fn can_focus(self, can_focus: bool) -> Self { + Self { builder: self.builder.property("can-focus", can_focus), } } - pub fn can_default(self, can_default: bool) -> Self { - Self { builder: self.builder.property("can-default", can_default), } + pub fn can_target(self, can_target: bool) -> Self { + Self { builder: self.builder.property("can-target", can_target), } } - pub fn can_focus(self, can_focus: bool) -> Self { - Self { builder: self.builder.property("can-focus", can_focus), } + pub fn css_classes(self, css_classes: impl Into) -> Self { + Self { builder: self.builder.property("css-classes", css_classes.into()), } } - #[cfg(feature = "gtk_v2_18")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v2_18")))] - #[cfg_attr(feature = "v3_14", deprecated = "Since 3.14")] - pub fn double_buffered(self, double_buffered: bool) -> Self { - Self { builder: self.builder.property("double-buffered", double_buffered), } + pub fn css_name(self, css_name: impl Into) -> Self { + Self { builder: self.builder.property("css-name", css_name.into()), } } - //pub fn events(self, events: /*Ignored*/gdk::EventMask) -> Self { - // Self { builder: self.builder.property("events", events), } + //pub fn cursor(self, cursor: /*Ignored*/&gdk::Cursor) -> Self { + // Self { builder: self.builder.property("cursor", cursor), } //} - #[cfg(feature = "gtk_v3")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))] - pub fn expand(self, expand: bool) -> Self { - Self { builder: self.builder.property("expand", expand), } + pub fn focus_on_click(self, focus_on_click: bool) -> Self { + Self { builder: self.builder.property("focus-on-click", focus_on_click), } } - #[cfg(feature = "gtk_v3_20")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3_20")))] - pub fn focus_on_click(self, focus_on_click: bool) -> Self { - Self { builder: self.builder.property("focus-on-click", focus_on_click), } + pub fn focusable(self, focusable: bool) -> Self { + Self { builder: self.builder.property("focusable", focusable), } } - // #[cfg(feature = "gtk_v3")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))] - //pub fn halign(self, halign: /*Ignored*/gtk::Align) -> Self { + //pub fn halign(self, halign: /*Ignored*/gtk::Align) -> Self { // Self { builder: self.builder.property("halign", halign), } //} - pub fn has_default(self, has_default: bool) -> Self { - Self { builder: self.builder.property("has-default", has_default), } - } - - pub fn has_focus(self, has_focus: bool) -> Self { - Self { builder: self.builder.property("has-focus", has_focus), } - } - - #[cfg(feature = "gtk_v2_12")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v2_12")))] - pub fn has_tooltip(self, has_tooltip: bool) -> Self { + pub fn has_tooltip(self, has_tooltip: bool) -> Self { Self { builder: self.builder.property("has-tooltip", has_tooltip), } } @@ -157,63 +126,37 @@ pub struct QuickSettingBuilder { Self { builder: self.builder.property("height-request", height_request), } } - #[cfg(feature = "gtk_v3")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))] - pub fn hexpand(self, hexpand: bool) -> Self { + pub fn hexpand(self, hexpand: bool) -> Self { Self { builder: self.builder.property("hexpand", hexpand), } } - #[cfg(feature = "gtk_v3")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))] - pub fn hexpand_set(self, hexpand_set: bool) -> Self { + pub fn hexpand_set(self, hexpand_set: bool) -> Self { Self { builder: self.builder.property("hexpand-set", hexpand_set), } } - pub fn is_focus(self, is_focus: bool) -> Self { - Self { builder: self.builder.property("is-focus", is_focus), } - } + //pub fn layout_manager(self, layout_manager: &impl IsA) -> Self { + // Self { builder: self.builder.property("layout-manager", layout_manager.clone().upcast()), } + //} - #[cfg(feature = "gtk_v3")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))] - pub fn margin(self, margin: i32) -> Self { - Self { builder: self.builder.property("margin", margin), } + #[cfg(feature = "gtk_v4_18")] + #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v4_18")))] + pub fn limit_events(self, limit_events: bool) -> Self { + Self { builder: self.builder.property("limit-events", limit_events), } } - #[cfg(feature = "gtk_v3")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))] - pub fn margin_bottom(self, margin_bottom: i32) -> Self { + pub fn margin_bottom(self, margin_bottom: i32) -> Self { Self { builder: self.builder.property("margin-bottom", margin_bottom), } } - #[cfg(feature = "gtk_v3_12")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3_12")))] - pub fn margin_end(self, margin_end: i32) -> Self { + pub fn margin_end(self, margin_end: i32) -> Self { Self { builder: self.builder.property("margin-end", margin_end), } } - #[cfg(feature = "gtk_v3")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))] - #[cfg_attr(feature = "v3_12", deprecated = "Since 3.12")] - pub fn margin_left(self, margin_left: i32) -> Self { - Self { builder: self.builder.property("margin-left", margin_left), } - } - - #[cfg(feature = "gtk_v3")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))] - #[cfg_attr(feature = "v3_12", deprecated = "Since 3.12")] - pub fn margin_right(self, margin_right: i32) -> Self { - Self { builder: self.builder.property("margin-right", margin_right), } - } - - #[cfg(feature = "gtk_v3_12")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3_12")))] - pub fn margin_start(self, margin_start: i32) -> Self { + pub fn margin_start(self, margin_start: i32) -> Self { Self { builder: self.builder.property("margin-start", margin_start), } } - #[cfg(feature = "gtk_v3")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))] - pub fn margin_top(self, margin_top: i32) -> Self { + pub fn margin_top(self, margin_top: i32) -> Self { Self { builder: self.builder.property("margin-top", margin_top), } } @@ -221,19 +164,13 @@ pub struct QuickSettingBuilder { Self { builder: self.builder.property("name", name.into()), } } - pub fn no_show_all(self, no_show_all: bool) -> Self { - Self { builder: self.builder.property("no-show-all", no_show_all), } - } - - #[cfg(feature = "gtk_v3_8")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3_8")))] - pub fn opacity(self, opacity: f64) -> Self { + pub fn opacity(self, opacity: f64) -> Self { Self { builder: self.builder.property("opacity", opacity), } } - pub fn parent(self, parent: &impl IsA) -> Self { - Self { builder: self.builder.property("parent", parent.clone().upcast()), } - } + //pub fn overflow(self, overflow: /*Ignored*/gtk::Overflow) -> Self { + // Self { builder: self.builder.property("overflow", overflow), } + //} pub fn receives_default(self, receives_default: bool) -> Self { Self { builder: self.builder.property("receives-default", receives_default), } @@ -243,37 +180,23 @@ pub struct QuickSettingBuilder { Self { builder: self.builder.property("sensitive", sensitive), } } - //pub fn style(self, style: &impl IsA) -> Self { - // Self { builder: self.builder.property("style", style.clone().upcast()), } - //} - - #[cfg(feature = "gtk_v2_12")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v2_12")))] - pub fn tooltip_markup(self, tooltip_markup: impl Into) -> Self { + pub fn tooltip_markup(self, tooltip_markup: impl Into) -> Self { Self { builder: self.builder.property("tooltip-markup", tooltip_markup.into()), } } - #[cfg(feature = "gtk_v2_12")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v2_12")))] - pub fn tooltip_text(self, tooltip_text: impl Into) -> Self { + pub fn tooltip_text(self, tooltip_text: impl Into) -> Self { Self { builder: self.builder.property("tooltip-text", tooltip_text.into()), } } - // #[cfg(feature = "gtk_v3")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))] - //pub fn valign(self, valign: /*Ignored*/gtk::Align) -> Self { + //pub fn valign(self, valign: /*Ignored*/gtk::Align) -> Self { // Self { builder: self.builder.property("valign", valign), } //} - #[cfg(feature = "gtk_v3")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))] - pub fn vexpand(self, vexpand: bool) -> Self { + pub fn vexpand(self, vexpand: bool) -> Self { Self { builder: self.builder.property("vexpand", vexpand), } } - #[cfg(feature = "gtk_v3")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))] - pub fn vexpand_set(self, vexpand_set: bool) -> Self { + pub fn vexpand_set(self, vexpand_set: bool) -> Self { Self { builder: self.builder.property("vexpand-set", vexpand_set), } } diff --git a/libphosh-rs/libphosh/src/auto/shell.rs b/libphosh-rs/libphosh/src/auto/shell.rs index fed862c84..c3a51c7aa 100644 --- a/libphosh-rs/libphosh/src/auto/shell.rs +++ b/libphosh-rs/libphosh/src/auto/shell.rs @@ -75,6 +75,10 @@ pub struct ShellBuilder { Self { builder: self.builder.property("locked", locked), } } + pub fn log_domains(self, log_domains: impl Into) -> Self { + Self { builder: self.builder.property("log-domains", log_domains.into()), } + } + pub fn overview_visible(self, overview_visible: bool) -> Self { Self { builder: self.builder.property("overview-visible", overview_visible), } } @@ -160,6 +164,16 @@ pub trait ShellExt: IsA + 'static { ObjectExt::set_property(self.as_ref(),"locked", locked) } + #[doc(alias = "log-domains")] + fn log_domains(&self) -> Vec { + ObjectExt::property(self.as_ref(), "log-domains") + } + + #[doc(alias = "log-domains")] + fn set_log_domains(&self, log_domains: &[&str]) { + ObjectExt::set_property(self.as_ref(),"log-domains", log_domains) + } + #[doc(alias = "overview-visible")] fn is_overview_visible(&self) -> bool { ObjectExt::property(self.as_ref(), "overview-visible") @@ -209,6 +223,19 @@ pub trait ShellExt: IsA + 'static { } } + #[doc(alias = "log-domains")] + fn connect_log_domains_notify(&self, f: F) -> SignalHandlerId { + unsafe extern "C" fn notify_log_domains_trampoline, F: Fn(&P) + 'static>(this: *mut ffi::PhoshShell, _param_spec: glib::ffi::gpointer, f: glib::ffi::gpointer) { + let f: &F = &*(f as *const F); + f(Shell::from_glib_borrow(this).unsafe_cast_ref()) + } + unsafe { + let f: Box_ = Box_::new(f); + connect_raw(self.as_ptr() as *mut _, c"notify::log-domains".as_ptr() as *const _, + Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(notify_log_domains_trampoline:: as *const ())), Box_::into_raw(f)) + } + } + #[doc(alias = "overview-visible")] fn connect_overview_visible_notify(&self, f: F) -> SignalHandlerId { unsafe extern "C" fn notify_overview_visible_trampoline, F: Fn(&P) + 'static>(this: *mut ffi::PhoshShell, _param_spec: glib::ffi::gpointer, f: glib::ffi::gpointer) { diff --git a/libphosh-rs/libphosh/src/auto/status_icon.rs b/libphosh-rs/libphosh/src/auto/status_icon.rs index 840210fbd..6d8f52a3e 100644 --- a/libphosh-rs/libphosh/src/auto/status_icon.rs +++ b/libphosh-rs/libphosh/src/auto/status_icon.rs @@ -9,7 +9,7 @@ use std::{boxed::Box as Box_}; glib::wrapper! { #[doc(alias = "PhoshStatusIcon")] - pub struct StatusIcon(Object) @extends gtk::Bin, gtk::Container, gtk::Widget; + pub struct StatusIcon(Object) @extends gtk::Widget; match fn { type_ => || ffi::phosh_status_icon_get_type(), @@ -66,10 +66,6 @@ pub struct StatusIconBuilder { Self { builder: self.builder.property("icon-name", icon_name.into()), } } - //pub fn icon_size(self, icon_size: /*Ignored*/gtk::IconSize) -> Self { - // Self { builder: self.builder.property("icon-size", icon_size), } - //} - pub fn info(self, info: impl Into) -> Self { Self { builder: self.builder.property("info", info.into()), } } @@ -78,70 +74,39 @@ pub struct StatusIconBuilder { Self { builder: self.builder.property("pixel-size", pixel_size), } } - pub fn border_width(self, border_width: u32) -> Self { - Self { builder: self.builder.property("border-width", border_width), } - } - - pub fn child(self, child: &impl IsA) -> Self { - Self { builder: self.builder.property("child", child.clone().upcast()), } - } - - //pub fn resize_mode(self, resize_mode: /*Ignored*/gtk::ResizeMode) -> Self { - // Self { builder: self.builder.property("resize-mode", resize_mode), } - //} - - pub fn app_paintable(self, app_paintable: bool) -> Self { - Self { builder: self.builder.property("app-paintable", app_paintable), } + pub fn can_focus(self, can_focus: bool) -> Self { + Self { builder: self.builder.property("can-focus", can_focus), } } - pub fn can_default(self, can_default: bool) -> Self { - Self { builder: self.builder.property("can-default", can_default), } + pub fn can_target(self, can_target: bool) -> Self { + Self { builder: self.builder.property("can-target", can_target), } } - pub fn can_focus(self, can_focus: bool) -> Self { - Self { builder: self.builder.property("can-focus", can_focus), } + pub fn css_classes(self, css_classes: impl Into) -> Self { + Self { builder: self.builder.property("css-classes", css_classes.into()), } } - #[cfg(feature = "gtk_v2_18")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v2_18")))] - #[cfg_attr(feature = "v3_14", deprecated = "Since 3.14")] - pub fn double_buffered(self, double_buffered: bool) -> Self { - Self { builder: self.builder.property("double-buffered", double_buffered), } + pub fn css_name(self, css_name: impl Into) -> Self { + Self { builder: self.builder.property("css-name", css_name.into()), } } - //pub fn events(self, events: /*Ignored*/gdk::EventMask) -> Self { - // Self { builder: self.builder.property("events", events), } + //pub fn cursor(self, cursor: /*Ignored*/&gdk::Cursor) -> Self { + // Self { builder: self.builder.property("cursor", cursor), } //} - #[cfg(feature = "gtk_v3")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))] - pub fn expand(self, expand: bool) -> Self { - Self { builder: self.builder.property("expand", expand), } + pub fn focus_on_click(self, focus_on_click: bool) -> Self { + Self { builder: self.builder.property("focus-on-click", focus_on_click), } } - #[cfg(feature = "gtk_v3_20")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3_20")))] - pub fn focus_on_click(self, focus_on_click: bool) -> Self { - Self { builder: self.builder.property("focus-on-click", focus_on_click), } + pub fn focusable(self, focusable: bool) -> Self { + Self { builder: self.builder.property("focusable", focusable), } } - // #[cfg(feature = "gtk_v3")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))] - //pub fn halign(self, halign: /*Ignored*/gtk::Align) -> Self { + //pub fn halign(self, halign: /*Ignored*/gtk::Align) -> Self { // Self { builder: self.builder.property("halign", halign), } //} - pub fn has_default(self, has_default: bool) -> Self { - Self { builder: self.builder.property("has-default", has_default), } - } - - pub fn has_focus(self, has_focus: bool) -> Self { - Self { builder: self.builder.property("has-focus", has_focus), } - } - - #[cfg(feature = "gtk_v2_12")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v2_12")))] - pub fn has_tooltip(self, has_tooltip: bool) -> Self { + pub fn has_tooltip(self, has_tooltip: bool) -> Self { Self { builder: self.builder.property("has-tooltip", has_tooltip), } } @@ -149,63 +114,37 @@ pub struct StatusIconBuilder { Self { builder: self.builder.property("height-request", height_request), } } - #[cfg(feature = "gtk_v3")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))] - pub fn hexpand(self, hexpand: bool) -> Self { + pub fn hexpand(self, hexpand: bool) -> Self { Self { builder: self.builder.property("hexpand", hexpand), } } - #[cfg(feature = "gtk_v3")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))] - pub fn hexpand_set(self, hexpand_set: bool) -> Self { + pub fn hexpand_set(self, hexpand_set: bool) -> Self { Self { builder: self.builder.property("hexpand-set", hexpand_set), } } - pub fn is_focus(self, is_focus: bool) -> Self { - Self { builder: self.builder.property("is-focus", is_focus), } - } + //pub fn layout_manager(self, layout_manager: &impl IsA) -> Self { + // Self { builder: self.builder.property("layout-manager", layout_manager.clone().upcast()), } + //} - #[cfg(feature = "gtk_v3")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))] - pub fn margin(self, margin: i32) -> Self { - Self { builder: self.builder.property("margin", margin), } + #[cfg(feature = "gtk_v4_18")] + #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v4_18")))] + pub fn limit_events(self, limit_events: bool) -> Self { + Self { builder: self.builder.property("limit-events", limit_events), } } - #[cfg(feature = "gtk_v3")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))] - pub fn margin_bottom(self, margin_bottom: i32) -> Self { + pub fn margin_bottom(self, margin_bottom: i32) -> Self { Self { builder: self.builder.property("margin-bottom", margin_bottom), } } - #[cfg(feature = "gtk_v3_12")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3_12")))] - pub fn margin_end(self, margin_end: i32) -> Self { + pub fn margin_end(self, margin_end: i32) -> Self { Self { builder: self.builder.property("margin-end", margin_end), } } - #[cfg(feature = "gtk_v3")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))] - #[cfg_attr(feature = "v3_12", deprecated = "Since 3.12")] - pub fn margin_left(self, margin_left: i32) -> Self { - Self { builder: self.builder.property("margin-left", margin_left), } - } - - #[cfg(feature = "gtk_v3")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))] - #[cfg_attr(feature = "v3_12", deprecated = "Since 3.12")] - pub fn margin_right(self, margin_right: i32) -> Self { - Self { builder: self.builder.property("margin-right", margin_right), } - } - - #[cfg(feature = "gtk_v3_12")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3_12")))] - pub fn margin_start(self, margin_start: i32) -> Self { + pub fn margin_start(self, margin_start: i32) -> Self { Self { builder: self.builder.property("margin-start", margin_start), } } - #[cfg(feature = "gtk_v3")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))] - pub fn margin_top(self, margin_top: i32) -> Self { + pub fn margin_top(self, margin_top: i32) -> Self { Self { builder: self.builder.property("margin-top", margin_top), } } @@ -213,19 +152,13 @@ pub struct StatusIconBuilder { Self { builder: self.builder.property("name", name.into()), } } - pub fn no_show_all(self, no_show_all: bool) -> Self { - Self { builder: self.builder.property("no-show-all", no_show_all), } - } - - #[cfg(feature = "gtk_v3_8")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3_8")))] - pub fn opacity(self, opacity: f64) -> Self { + pub fn opacity(self, opacity: f64) -> Self { Self { builder: self.builder.property("opacity", opacity), } } - pub fn parent(self, parent: &impl IsA) -> Self { - Self { builder: self.builder.property("parent", parent.clone().upcast()), } - } + //pub fn overflow(self, overflow: /*Ignored*/gtk::Overflow) -> Self { + // Self { builder: self.builder.property("overflow", overflow), } + //} pub fn receives_default(self, receives_default: bool) -> Self { Self { builder: self.builder.property("receives-default", receives_default), } @@ -235,37 +168,23 @@ pub struct StatusIconBuilder { Self { builder: self.builder.property("sensitive", sensitive), } } - //pub fn style(self, style: &impl IsA) -> Self { - // Self { builder: self.builder.property("style", style.clone().upcast()), } - //} - - #[cfg(feature = "gtk_v2_12")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v2_12")))] - pub fn tooltip_markup(self, tooltip_markup: impl Into) -> Self { + pub fn tooltip_markup(self, tooltip_markup: impl Into) -> Self { Self { builder: self.builder.property("tooltip-markup", tooltip_markup.into()), } } - #[cfg(feature = "gtk_v2_12")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v2_12")))] - pub fn tooltip_text(self, tooltip_text: impl Into) -> Self { + pub fn tooltip_text(self, tooltip_text: impl Into) -> Self { Self { builder: self.builder.property("tooltip-text", tooltip_text.into()), } } - // #[cfg(feature = "gtk_v3")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))] - //pub fn valign(self, valign: /*Ignored*/gtk::Align) -> Self { + //pub fn valign(self, valign: /*Ignored*/gtk::Align) -> Self { // Self { builder: self.builder.property("valign", valign), } //} - #[cfg(feature = "gtk_v3")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))] - pub fn vexpand(self, vexpand: bool) -> Self { + pub fn vexpand(self, vexpand: bool) -> Self { Self { builder: self.builder.property("vexpand", vexpand), } } - #[cfg(feature = "gtk_v3")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))] - pub fn vexpand_set(self, vexpand_set: bool) -> Self { + pub fn vexpand_set(self, vexpand_set: bool) -> Self { Self { builder: self.builder.property("vexpand-set", vexpand_set), } } @@ -353,16 +272,6 @@ pub trait StatusIconExt: IsA + 'static { } } - //#[doc(alias = "icon-size")] - //fn icon_size(&self) -> /*Ignored*/gtk::IconSize { - // ObjectExt::property(self.as_ref(), "icon-size") - //} - - //#[doc(alias = "icon-size")] - //fn set_icon_size(&self, icon_size: /*Ignored*/gtk::IconSize) { - // ObjectExt::set_property(self.as_ref(),"icon-size", icon_size) - //} - #[doc(alias = "extra-widget")] fn connect_extra_widget_notify(&self, f: F) -> SignalHandlerId { unsafe extern "C" fn notify_extra_widget_trampoline, F: Fn(&P) + 'static>(this: *mut ffi::PhoshStatusIcon, _param_spec: glib::ffi::gpointer, f: glib::ffi::gpointer) { @@ -389,19 +298,6 @@ pub trait StatusIconExt: IsA + 'static { } } - #[doc(alias = "icon-size")] - fn connect_icon_size_notify(&self, f: F) -> SignalHandlerId { - unsafe extern "C" fn notify_icon_size_trampoline, F: Fn(&P) + 'static>(this: *mut ffi::PhoshStatusIcon, _param_spec: glib::ffi::gpointer, f: glib::ffi::gpointer) { - let f: &F = &*(f as *const F); - f(StatusIcon::from_glib_borrow(this).unsafe_cast_ref()) - } - unsafe { - let f: Box_ = Box_::new(f); - connect_raw(self.as_ptr() as *mut _, c"notify::icon-size".as_ptr() as *const _, - Some(std::mem::transmute::<*const (), unsafe extern "C" fn()>(notify_icon_size_trampoline:: as *const ())), Box_::into_raw(f)) - } - } - #[doc(alias = "info")] fn connect_info_notify(&self, f: F) -> SignalHandlerId { unsafe extern "C" fn notify_info_trampoline, F: Fn(&P) + 'static>(this: *mut ffi::PhoshStatusIcon, _param_spec: glib::ffi::gpointer, f: glib::ffi::gpointer) { diff --git a/libphosh-rs/libphosh/src/auto/status_page.rs b/libphosh-rs/libphosh/src/auto/status_page.rs index 593f9d6b3..0d88b7c34 100644 --- a/libphosh-rs/libphosh/src/auto/status_page.rs +++ b/libphosh-rs/libphosh/src/auto/status_page.rs @@ -9,7 +9,7 @@ use std::{boxed::Box as Box_}; glib::wrapper! { #[doc(alias = "PhoshStatusPage")] - pub struct StatusPage(Object) @extends gtk::Bin, gtk::Container, gtk::Widget; + pub struct StatusPage(Object) @extends gtk::Widget; match fn { type_ => || ffi::phosh_status_page_get_type(), @@ -74,70 +74,39 @@ pub struct StatusPageBuilder { Self { builder: self.builder.property("title", title.into()), } } - pub fn border_width(self, border_width: u32) -> Self { - Self { builder: self.builder.property("border-width", border_width), } - } - - pub fn child(self, child: &impl IsA) -> Self { - Self { builder: self.builder.property("child", child.clone().upcast()), } - } - - //pub fn resize_mode(self, resize_mode: /*Ignored*/gtk::ResizeMode) -> Self { - // Self { builder: self.builder.property("resize-mode", resize_mode), } - //} - - pub fn app_paintable(self, app_paintable: bool) -> Self { - Self { builder: self.builder.property("app-paintable", app_paintable), } + pub fn can_focus(self, can_focus: bool) -> Self { + Self { builder: self.builder.property("can-focus", can_focus), } } - pub fn can_default(self, can_default: bool) -> Self { - Self { builder: self.builder.property("can-default", can_default), } + pub fn can_target(self, can_target: bool) -> Self { + Self { builder: self.builder.property("can-target", can_target), } } - pub fn can_focus(self, can_focus: bool) -> Self { - Self { builder: self.builder.property("can-focus", can_focus), } + pub fn css_classes(self, css_classes: impl Into) -> Self { + Self { builder: self.builder.property("css-classes", css_classes.into()), } } - #[cfg(feature = "gtk_v2_18")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v2_18")))] - #[cfg_attr(feature = "v3_14", deprecated = "Since 3.14")] - pub fn double_buffered(self, double_buffered: bool) -> Self { - Self { builder: self.builder.property("double-buffered", double_buffered), } + pub fn css_name(self, css_name: impl Into) -> Self { + Self { builder: self.builder.property("css-name", css_name.into()), } } - //pub fn events(self, events: /*Ignored*/gdk::EventMask) -> Self { - // Self { builder: self.builder.property("events", events), } + //pub fn cursor(self, cursor: /*Ignored*/&gdk::Cursor) -> Self { + // Self { builder: self.builder.property("cursor", cursor), } //} - #[cfg(feature = "gtk_v3")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))] - pub fn expand(self, expand: bool) -> Self { - Self { builder: self.builder.property("expand", expand), } + pub fn focus_on_click(self, focus_on_click: bool) -> Self { + Self { builder: self.builder.property("focus-on-click", focus_on_click), } } - #[cfg(feature = "gtk_v3_20")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3_20")))] - pub fn focus_on_click(self, focus_on_click: bool) -> Self { - Self { builder: self.builder.property("focus-on-click", focus_on_click), } + pub fn focusable(self, focusable: bool) -> Self { + Self { builder: self.builder.property("focusable", focusable), } } - // #[cfg(feature = "gtk_v3")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))] - //pub fn halign(self, halign: /*Ignored*/gtk::Align) -> Self { + //pub fn halign(self, halign: /*Ignored*/gtk::Align) -> Self { // Self { builder: self.builder.property("halign", halign), } //} - pub fn has_default(self, has_default: bool) -> Self { - Self { builder: self.builder.property("has-default", has_default), } - } - - pub fn has_focus(self, has_focus: bool) -> Self { - Self { builder: self.builder.property("has-focus", has_focus), } - } - - #[cfg(feature = "gtk_v2_12")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v2_12")))] - pub fn has_tooltip(self, has_tooltip: bool) -> Self { + pub fn has_tooltip(self, has_tooltip: bool) -> Self { Self { builder: self.builder.property("has-tooltip", has_tooltip), } } @@ -145,63 +114,37 @@ pub struct StatusPageBuilder { Self { builder: self.builder.property("height-request", height_request), } } - #[cfg(feature = "gtk_v3")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))] - pub fn hexpand(self, hexpand: bool) -> Self { + pub fn hexpand(self, hexpand: bool) -> Self { Self { builder: self.builder.property("hexpand", hexpand), } } - #[cfg(feature = "gtk_v3")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))] - pub fn hexpand_set(self, hexpand_set: bool) -> Self { + pub fn hexpand_set(self, hexpand_set: bool) -> Self { Self { builder: self.builder.property("hexpand-set", hexpand_set), } } - pub fn is_focus(self, is_focus: bool) -> Self { - Self { builder: self.builder.property("is-focus", is_focus), } - } + //pub fn layout_manager(self, layout_manager: &impl IsA) -> Self { + // Self { builder: self.builder.property("layout-manager", layout_manager.clone().upcast()), } + //} - #[cfg(feature = "gtk_v3")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))] - pub fn margin(self, margin: i32) -> Self { - Self { builder: self.builder.property("margin", margin), } + #[cfg(feature = "gtk_v4_18")] + #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v4_18")))] + pub fn limit_events(self, limit_events: bool) -> Self { + Self { builder: self.builder.property("limit-events", limit_events), } } - #[cfg(feature = "gtk_v3")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))] - pub fn margin_bottom(self, margin_bottom: i32) -> Self { + pub fn margin_bottom(self, margin_bottom: i32) -> Self { Self { builder: self.builder.property("margin-bottom", margin_bottom), } } - #[cfg(feature = "gtk_v3_12")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3_12")))] - pub fn margin_end(self, margin_end: i32) -> Self { + pub fn margin_end(self, margin_end: i32) -> Self { Self { builder: self.builder.property("margin-end", margin_end), } } - #[cfg(feature = "gtk_v3")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))] - #[cfg_attr(feature = "v3_12", deprecated = "Since 3.12")] - pub fn margin_left(self, margin_left: i32) -> Self { - Self { builder: self.builder.property("margin-left", margin_left), } - } - - #[cfg(feature = "gtk_v3")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))] - #[cfg_attr(feature = "v3_12", deprecated = "Since 3.12")] - pub fn margin_right(self, margin_right: i32) -> Self { - Self { builder: self.builder.property("margin-right", margin_right), } - } - - #[cfg(feature = "gtk_v3_12")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3_12")))] - pub fn margin_start(self, margin_start: i32) -> Self { + pub fn margin_start(self, margin_start: i32) -> Self { Self { builder: self.builder.property("margin-start", margin_start), } } - #[cfg(feature = "gtk_v3")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))] - pub fn margin_top(self, margin_top: i32) -> Self { + pub fn margin_top(self, margin_top: i32) -> Self { Self { builder: self.builder.property("margin-top", margin_top), } } @@ -209,19 +152,13 @@ pub struct StatusPageBuilder { Self { builder: self.builder.property("name", name.into()), } } - pub fn no_show_all(self, no_show_all: bool) -> Self { - Self { builder: self.builder.property("no-show-all", no_show_all), } - } - - #[cfg(feature = "gtk_v3_8")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3_8")))] - pub fn opacity(self, opacity: f64) -> Self { + pub fn opacity(self, opacity: f64) -> Self { Self { builder: self.builder.property("opacity", opacity), } } - pub fn parent(self, parent: &impl IsA) -> Self { - Self { builder: self.builder.property("parent", parent.clone().upcast()), } - } + //pub fn overflow(self, overflow: /*Ignored*/gtk::Overflow) -> Self { + // Self { builder: self.builder.property("overflow", overflow), } + //} pub fn receives_default(self, receives_default: bool) -> Self { Self { builder: self.builder.property("receives-default", receives_default), } @@ -231,37 +168,23 @@ pub struct StatusPageBuilder { Self { builder: self.builder.property("sensitive", sensitive), } } - //pub fn style(self, style: &impl IsA) -> Self { - // Self { builder: self.builder.property("style", style.clone().upcast()), } - //} - - #[cfg(feature = "gtk_v2_12")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v2_12")))] - pub fn tooltip_markup(self, tooltip_markup: impl Into) -> Self { + pub fn tooltip_markup(self, tooltip_markup: impl Into) -> Self { Self { builder: self.builder.property("tooltip-markup", tooltip_markup.into()), } } - #[cfg(feature = "gtk_v2_12")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v2_12")))] - pub fn tooltip_text(self, tooltip_text: impl Into) -> Self { + pub fn tooltip_text(self, tooltip_text: impl Into) -> Self { Self { builder: self.builder.property("tooltip-text", tooltip_text.into()), } } - // #[cfg(feature = "gtk_v3")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))] - //pub fn valign(self, valign: /*Ignored*/gtk::Align) -> Self { + //pub fn valign(self, valign: /*Ignored*/gtk::Align) -> Self { // Self { builder: self.builder.property("valign", valign), } //} - #[cfg(feature = "gtk_v3")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))] - pub fn vexpand(self, vexpand: bool) -> Self { + pub fn vexpand(self, vexpand: bool) -> Self { Self { builder: self.builder.property("vexpand", vexpand), } } - #[cfg(feature = "gtk_v3")] - #[cfg_attr(docsrs, doc(cfg(feature = "gtk_v3")))] - pub fn vexpand_set(self, vexpand_set: bool) -> Self { + pub fn vexpand_set(self, vexpand_set: bool) -> Self { Self { builder: self.builder.property("vexpand-set", vexpand_set), } } diff --git a/libphosh-rs/libphosh/src/auto/versions.txt b/libphosh-rs/libphosh/src/auto/versions.txt index 5d930cef5..c87f88320 100644 --- a/libphosh-rs/libphosh/src/auto/versions.txt +++ b/libphosh-rs/libphosh/src/auto/versions.txt @@ -1,3 +1,3 @@ -Generated by gir (https://github.com/gtk-rs/gir @ be9aa145267c) -from .. (@ b4c1dbc27547+) -from ../gir-files (@ 6cd7b656acd6) +Generated by gir (https://github.com/gtk-rs/gir @ 601c9bb7f8f4) +from .. (@ e6d4e95f67c0+) +from ../gir-files (@ d530241ca19b) diff --git a/libphosh-rs/libphosh/src/lib.rs b/libphosh-rs/libphosh/src/lib.rs index 91e3c5b69..786a117a4 100644 --- a/libphosh-rs/libphosh/src/lib.rs +++ b/libphosh-rs/libphosh/src/lib.rs @@ -10,8 +10,8 @@ macro_rules! skip_assert_initialized { () => {}; } -pub use ffi; pub use auto::*; +pub use ffi; #[allow(unused_imports)] mod auto; pub mod subclass; diff --git a/libphosh-rs/libphosh/src/subclass/lockscreen.rs b/libphosh-rs/libphosh/src/subclass/lockscreen.rs index 0975b1ff8..21e567c59 100644 --- a/libphosh-rs/libphosh/src/subclass/lockscreen.rs +++ b/libphosh-rs/libphosh/src/subclass/lockscreen.rs @@ -1,9 +1,10 @@ -use glib::{Cast, Class, subclass::prelude::*}; +use crate::Lockscreen; +use glib::object::Cast; use glib::translate::ToGlibPtr; +use glib::{subclass::prelude::*, Class}; use gtk::subclass::prelude::*; -use crate::Lockscreen; -pub trait LockscreenImpl: LockscreenImplExt + ObjectImpl + WindowImpl { +pub trait LockscreenImpl: LockscreenImplExt + ObjectImpl + WidgetImpl { fn unlock_submit(&self) { self.parent_unlock_submit(); } diff --git a/libphosh-rs/libphosh/src/subclass/quick_setting.rs b/libphosh-rs/libphosh/src/subclass/quick_setting.rs index 7fe21fc57..6cdbdd21a 100644 --- a/libphosh-rs/libphosh/src/subclass/quick_setting.rs +++ b/libphosh-rs/libphosh/src/subclass/quick_setting.rs @@ -1,9 +1,8 @@ -use glib::{Class, subclass::prelude::*}; -use gtk::subclass::prelude::ButtonImpl; use crate::QuickSetting; +use glib::{subclass::prelude::*, Class}; +use gtk::subclass::prelude::BoxImpl; -pub trait QuickSettingImpl: QuickSettingImplExt + ObjectImpl + ButtonImpl { -} +pub trait QuickSettingImpl: QuickSettingImplExt + ObjectImpl + BoxImpl {} mod sealed { pub trait Sealed {} diff --git a/libphosh-rs/libphosh/src/subclass/shell.rs b/libphosh-rs/libphosh/src/subclass/shell.rs index 4c376e3c1..e5cf9cd80 100644 --- a/libphosh-rs/libphosh/src/subclass/shell.rs +++ b/libphosh-rs/libphosh/src/subclass/shell.rs @@ -1,7 +1,8 @@ -use glib::{Class, prelude::*, subclass::prelude::*, Type}; +use crate::Shell; use glib::ffi::GType; +use glib::object::Cast; use glib::translate::*; -use crate::Shell; +use glib::{subclass::prelude::*, Class, Type}; pub trait ShellImpl: ShellImplExt + ObjectImpl { fn get_lockscreen_type(&self) -> Type { @@ -22,7 +23,7 @@ pub trait ShellImplExt: sealed::Sealed + ObjectSubclass { if let Some(f) = (*parent_class).get_lockscreen_type { return from_glib(f(self.obj().unsafe_cast_ref::().to_glib_none().0)); } - return Type::UNIT; + Type::UNIT } } } diff --git a/libphosh-rs/libphosh/sys/Cargo.toml b/libphosh-rs/libphosh/sys/Cargo.toml index 124ba4edb..0a4912e74 100644 --- a/libphosh-rs/libphosh/sys/Cargo.toml +++ b/libphosh-rs/libphosh/sys/Cargo.toml @@ -24,30 +24,21 @@ name = "phosh_sys" [dependencies] libc = "0.2" -[dependencies.gdk-pixbuf-sys] -version = "0.18" - -[dependencies.gdk-sys] -version = "0.18" +[dependencies.gdk_sys] +package = "gdk4-sys" +version = "0.11" [dependencies.gio-sys] -version = "0.18" +version = "0.22" [dependencies.glib-sys] -version = "0.18" +version = "0.22" [dependencies.gobject-sys] -version = "0.18" - -[dependencies.gtk-sys] -version = "0.18" -features = ["v3_24"] +version = "0.22" -[dependencies.pango-sys] -version = "0.18" - -[dependencies.handy_sys] -package = "libhandy-sys" +[dependencies.gtk_sys] +package = "gtk4-sys" version = "0.11" [build-dependencies] @@ -57,5 +48,3 @@ system-deps = "7" [dev-dependencies] shell-words = "1.0.0" tempfile = "3" - -[features] diff --git a/libphosh-rs/libphosh/sys/Gir.toml b/libphosh-rs/libphosh/sys/Gir.toml index 328431337..dbf2ba74e 100644 --- a/libphosh-rs/libphosh/sys/Gir.toml +++ b/libphosh-rs/libphosh/sys/Gir.toml @@ -10,9 +10,6 @@ external_libraries = [ "Gio", "Gtk", "Gdk", - "GdkPixbuf", - "Pango", - "Handy", ] ignore = [ @@ -20,7 +17,6 @@ ignore = [ "Phosh.DBusScreenshotIface", "Phosh.DBusScreenshotProxy", "Phosh.DBusScreenshotSkeleton", - "Phosh.QuickSettings", ] [[object]] @@ -30,14 +26,3 @@ status = "generate" # We don't want to bother with libgnome-desktop name = "string_for_datetime" ignore = true - -[[object]] -name = "Phosh.LayerSurface" -status = "generate" -# Ignore functions that return Wayland types for the moment - [[object.function]] - name = "get_wl_surface" - ignore = true - [[object.function]] - name = "get_layer_surface" - ignore = true diff --git a/libphosh-rs/libphosh/sys/build.rs b/libphosh-rs/libphosh/sys/build.rs index 7be80592a..699d01817 100644 --- a/libphosh-rs/libphosh/sys/build.rs +++ b/libphosh-rs/libphosh/sys/build.rs @@ -14,6 +14,20 @@ fn main() { match env::var("PHROG_LIBPHOSH_BUILD_INTERNAL").as_deref() { Ok("always") => build_bundled(), Err(env::VarError::NotPresent) | Ok("never") => { + // The GTK3 and experimental GTK4 libraries share the same pkg-config + // name and ABI version. A version check alone can select GTK3 here. + let library = pkg_config::Config::new() + // GTK can be in Requires.private. Inspect it without emitting + // these static flags; system-deps below emits the dynamic link. + .statik(true) + .cargo_metadata(false) + .probe("libphosh-0.45") + .expect("an installed GTK4 libphosh is required; see docs/gtk4.md"); + assert!( + library.libs.iter().any(|name| name == "gtk-4") + && !library.libs.iter().any(|name| name == "gtk-3"), + "libphosh-0.45 resolves to GTK3; select a GTK4 libphosh with PKG_CONFIG_PATH, or use cargo vendored-phosh build (see docs/gtk4.md)" + ); system_deps::Config::new() .probe() .expect("system libphosh-0.45 is required (or set PHROG_LIBPHOSH_BUILD_INTERNAL=always)"); diff --git a/libphosh-rs/libphosh/sys/src/lib.rs b/libphosh-rs/libphosh/sys/src/lib.rs index 73958c1a1..6ff231fc3 100644 --- a/libphosh-rs/libphosh/sys/src/lib.rs +++ b/libphosh-rs/libphosh/sys/src/lib.rs @@ -1,36 +1,56 @@ -// Generated by gir (https://github.com/gtk-rs/gir @ be9aa145267c) -// from ../.. (@ b4c1dbc27547+) -// from ../../gir-files (@ 6cd7b656acd6) +// Generated by gir (https://github.com/gtk-rs/gir @ 601c9bb7f8f4) +// from ../.. (@ 6e705302f485+) +// from ../../gir-files (@ d530241ca19b) // DO NOT EDIT #![allow(non_camel_case_types, non_upper_case_globals, non_snake_case)] -#![allow(clippy::approx_constant, clippy::type_complexity, clippy::unreadable_literal, clippy::upper_case_acronyms)] +#![allow( + clippy::approx_constant, + clippy::type_complexity, + clippy::unreadable_literal, + clippy::upper_case_acronyms +)] #![cfg_attr(docsrs, feature(doc_cfg))] +use gdk_sys as gdk; +use gio_sys as gio; use glib_sys as glib; use gobject_sys as gobject; -use gio_sys as gio; use gtk_sys as gtk; -use gdk_sys as gdk; -#[allow(unused_imports)] -use std::ffi::{c_int, c_char, c_uchar, c_float, c_uint, c_double, - c_short, c_ushort, c_long, c_ulong, c_void}; -#[allow(unused_imports)] -use libc::{size_t, ssize_t, time_t, off_t, intptr_t, uintptr_t, FILE}; #[cfg(unix)] #[allow(unused_imports)] use libc::{dev_t, gid_t, pid_t, socklen_t, uid_t}; +#[allow(unused_imports)] +use libc::{intptr_t, off_t, size_t, ssize_t, time_t, uintptr_t, FILE}; +#[allow(unused_imports)] +use std::ffi::{ + c_char, c_double, c_float, c_int, c_long, c_short, c_uchar, c_uint, c_ulong, c_ushort, c_void, +}; #[allow(unused_imports)] use glib::{gboolean, gconstpointer, gpointer, GType}; // Enums +pub type PhoshLayerSurfaceLayer = c_int; +pub const PHOSH_LAYER_SURFACE_LAYER_BACKGROUND: PhoshLayerSurfaceLayer = 0; +pub const PHOSH_LAYER_SURFACE_LAYER_BOTTOM: PhoshLayerSurfaceLayer = 1; +pub const PHOSH_LAYER_SURFACE_LAYER_TOP: PhoshLayerSurfaceLayer = 2; +pub const PHOSH_LAYER_SURFACE_LAYER_OVERLAY: PhoshLayerSurfaceLayer = 3; + pub type PhoshLockscreenPage = c_int; pub const PHOSH_LOCKSCREEN_PAGE_INFO: PhoshLockscreenPage = 0; pub const PHOSH_LOCKSCREEN_PAGE_EXTRA: PhoshLockscreenPage = 1; pub const PHOSH_LOCKSCREEN_PAGE_UNLOCK: PhoshLockscreenPage = 2; +// Flags +pub type PhoshLayerSurfaceAnchor = c_uint; +pub const PHOSH_LAYER_SURFACE_ANCHOR_NONE: PhoshLayerSurfaceAnchor = 0; +pub const PHOSH_LAYER_SURFACE_ANCHOR_TOP: PhoshLayerSurfaceAnchor = 1; +pub const PHOSH_LAYER_SURFACE_ANCHOR_BOTTOM: PhoshLayerSurfaceAnchor = 2; +pub const PHOSH_LAYER_SURFACE_ANCHOR_LEFT: PhoshLayerSurfaceAnchor = 4; +pub const PHOSH_LAYER_SURFACE_ANCHOR_RIGHT: PhoshLayerSurfaceAnchor = 8; + // Records #[derive(Copy, Clone)] #[repr(C)] @@ -41,8 +61,8 @@ pub struct PhoshDBusScreenshotProxyClass { impl ::std::fmt::Debug for PhoshDBusScreenshotProxyClass { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("PhoshDBusScreenshotProxyClass @ {self:p}")) - .field("parent_class", &self.parent_class) - .finish() + .field("parent_class", &self.parent_class) + .finish() } } @@ -64,8 +84,8 @@ pub struct PhoshDBusScreenshotSkeletonClass { impl ::std::fmt::Debug for PhoshDBusScreenshotSkeletonClass { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("PhoshDBusScreenshotSkeletonClass @ {self:p}")) - .field("parent_class", &self.parent_class) - .finish() + .field("parent_class", &self.parent_class) + .finish() } } @@ -97,18 +117,18 @@ pub struct PhoshLayerSurfaceClass { impl ::std::fmt::Debug for PhoshLayerSurfaceClass { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("PhoshLayerSurfaceClass @ {self:p}")) - .field("parent_class", &self.parent_class) - .field("configured", &self.configured) - .field("_phosh_reserved1", &self._phosh_reserved1) - .field("_phosh_reserved2", &self._phosh_reserved2) - .field("_phosh_reserved3", &self._phosh_reserved3) - .field("_phosh_reserved4", &self._phosh_reserved4) - .field("_phosh_reserved5", &self._phosh_reserved5) - .field("_phosh_reserved6", &self._phosh_reserved6) - .field("_phosh_reserved7", &self._phosh_reserved7) - .field("_phosh_reserved8", &self._phosh_reserved8) - .field("_phosh_reserved9", &self._phosh_reserved9) - .finish() + .field("parent_class", &self.parent_class) + .field("configured", &self.configured) + .field("_phosh_reserved1", &self._phosh_reserved1) + .field("_phosh_reserved2", &self._phosh_reserved2) + .field("_phosh_reserved3", &self._phosh_reserved3) + .field("_phosh_reserved4", &self._phosh_reserved4) + .field("_phosh_reserved5", &self._phosh_reserved5) + .field("_phosh_reserved6", &self._phosh_reserved6) + .field("_phosh_reserved7", &self._phosh_reserved7) + .field("_phosh_reserved8", &self._phosh_reserved8) + .field("_phosh_reserved9", &self._phosh_reserved9) + .finish() } } @@ -131,18 +151,18 @@ pub struct PhoshLockscreenClass { impl ::std::fmt::Debug for PhoshLockscreenClass { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("PhoshLockscreenClass @ {self:p}")) - .field("parent_class", &self.parent_class) - .field("unlock_submit", &self.unlock_submit) - .field("_phosh_reserved1", &self._phosh_reserved1) - .field("_phosh_reserved2", &self._phosh_reserved2) - .field("_phosh_reserved3", &self._phosh_reserved3) - .field("_phosh_reserved4", &self._phosh_reserved4) - .field("_phosh_reserved5", &self._phosh_reserved5) - .field("_phosh_reserved6", &self._phosh_reserved6) - .field("_phosh_reserved7", &self._phosh_reserved7) - .field("_phosh_reserved8", &self._phosh_reserved8) - .field("_phosh_reserved9", &self._phosh_reserved9) - .finish() + .field("parent_class", &self.parent_class) + .field("unlock_submit", &self.unlock_submit) + .field("_phosh_reserved1", &self._phosh_reserved1) + .field("_phosh_reserved2", &self._phosh_reserved2) + .field("_phosh_reserved3", &self._phosh_reserved3) + .field("_phosh_reserved4", &self._phosh_reserved4) + .field("_phosh_reserved5", &self._phosh_reserved5) + .field("_phosh_reserved6", &self._phosh_reserved6) + .field("_phosh_reserved7", &self._phosh_reserved7) + .field("_phosh_reserved8", &self._phosh_reserved8) + .field("_phosh_reserved9", &self._phosh_reserved9) + .finish() } } @@ -155,8 +175,8 @@ pub struct PhoshLockscreenManagerClass { impl ::std::fmt::Debug for PhoshLockscreenManagerClass { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("PhoshLockscreenManagerClass @ {self:p}")) - .field("parent_class", &self.parent_class) - .finish() + .field("parent_class", &self.parent_class) + .finish() } } @@ -179,18 +199,18 @@ pub struct PhoshQuickSettingClass { impl ::std::fmt::Debug for PhoshQuickSettingClass { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("PhoshQuickSettingClass @ {self:p}")) - .field("parent_class", &self.parent_class) - .field("_phosh_reserved0", &self._phosh_reserved0) - .field("_phosh_reserved1", &self._phosh_reserved1) - .field("_phosh_reserved2", &self._phosh_reserved2) - .field("_phosh_reserved3", &self._phosh_reserved3) - .field("_phosh_reserved4", &self._phosh_reserved4) - .field("_phosh_reserved5", &self._phosh_reserved5) - .field("_phosh_reserved6", &self._phosh_reserved6) - .field("_phosh_reserved7", &self._phosh_reserved7) - .field("_phosh_reserved8", &self._phosh_reserved8) - .field("_phosh_reserved9", &self._phosh_reserved9) - .finish() + .field("parent_class", &self.parent_class) + .field("_phosh_reserved0", &self._phosh_reserved0) + .field("_phosh_reserved1", &self._phosh_reserved1) + .field("_phosh_reserved2", &self._phosh_reserved2) + .field("_phosh_reserved3", &self._phosh_reserved3) + .field("_phosh_reserved4", &self._phosh_reserved4) + .field("_phosh_reserved5", &self._phosh_reserved5) + .field("_phosh_reserved6", &self._phosh_reserved6) + .field("_phosh_reserved7", &self._phosh_reserved7) + .field("_phosh_reserved8", &self._phosh_reserved8) + .field("_phosh_reserved9", &self._phosh_reserved9) + .finish() } } @@ -203,8 +223,8 @@ pub struct PhoshScreenshotManagerClass { impl ::std::fmt::Debug for PhoshScreenshotManagerClass { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("PhoshScreenshotManagerClass @ {self:p}")) - .field("parent_class", &self.parent_class) - .finish() + .field("parent_class", &self.parent_class) + .finish() } } @@ -227,25 +247,25 @@ pub struct PhoshShellClass { impl ::std::fmt::Debug for PhoshShellClass { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("PhoshShellClass @ {self:p}")) - .field("parent_class", &self.parent_class) - .field("get_lockscreen_type", &self.get_lockscreen_type) - .field("_phosh_reserved1", &self._phosh_reserved1) - .field("_phosh_reserved2", &self._phosh_reserved2) - .field("_phosh_reserved3", &self._phosh_reserved3) - .field("_phosh_reserved4", &self._phosh_reserved4) - .field("_phosh_reserved5", &self._phosh_reserved5) - .field("_phosh_reserved6", &self._phosh_reserved6) - .field("_phosh_reserved7", &self._phosh_reserved7) - .field("_phosh_reserved8", &self._phosh_reserved8) - .field("_phosh_reserved9", &self._phosh_reserved9) - .finish() + .field("parent_class", &self.parent_class) + .field("get_lockscreen_type", &self.get_lockscreen_type) + .field("_phosh_reserved1", &self._phosh_reserved1) + .field("_phosh_reserved2", &self._phosh_reserved2) + .field("_phosh_reserved3", &self._phosh_reserved3) + .field("_phosh_reserved4", &self._phosh_reserved4) + .field("_phosh_reserved5", &self._phosh_reserved5) + .field("_phosh_reserved6", &self._phosh_reserved6) + .field("_phosh_reserved7", &self._phosh_reserved7) + .field("_phosh_reserved8", &self._phosh_reserved8) + .field("_phosh_reserved9", &self._phosh_reserved9) + .finish() } } #[derive(Copy, Clone)] #[repr(C)] pub struct PhoshStatusIconClass { - pub parent_class: gtk::GtkBinClass, + pub parent_class: gtk::GtkWidgetClass, pub idle_init: Option, pub _phosh_reserved1: Option, pub _phosh_reserved2: Option, @@ -261,25 +281,25 @@ pub struct PhoshStatusIconClass { impl ::std::fmt::Debug for PhoshStatusIconClass { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("PhoshStatusIconClass @ {self:p}")) - .field("parent_class", &self.parent_class) - .field("idle_init", &self.idle_init) - .field("_phosh_reserved1", &self._phosh_reserved1) - .field("_phosh_reserved2", &self._phosh_reserved2) - .field("_phosh_reserved3", &self._phosh_reserved3) - .field("_phosh_reserved4", &self._phosh_reserved4) - .field("_phosh_reserved5", &self._phosh_reserved5) - .field("_phosh_reserved6", &self._phosh_reserved6) - .field("_phosh_reserved7", &self._phosh_reserved7) - .field("_phosh_reserved8", &self._phosh_reserved8) - .field("_phosh_reserved9", &self._phosh_reserved9) - .finish() + .field("parent_class", &self.parent_class) + .field("idle_init", &self.idle_init) + .field("_phosh_reserved1", &self._phosh_reserved1) + .field("_phosh_reserved2", &self._phosh_reserved2) + .field("_phosh_reserved3", &self._phosh_reserved3) + .field("_phosh_reserved4", &self._phosh_reserved4) + .field("_phosh_reserved5", &self._phosh_reserved5) + .field("_phosh_reserved6", &self._phosh_reserved6) + .field("_phosh_reserved7", &self._phosh_reserved7) + .field("_phosh_reserved8", &self._phosh_reserved8) + .field("_phosh_reserved9", &self._phosh_reserved9) + .finish() } } #[derive(Copy, Clone)] #[repr(C)] pub struct PhoshStatusPageClass { - pub parent_class: gtk::GtkBinClass, + pub parent_class: gtk::GtkWidgetClass, pub _phosh_reserved0: Option, pub _phosh_reserved1: Option, pub _phosh_reserved2: Option, @@ -295,18 +315,18 @@ pub struct PhoshStatusPageClass { impl ::std::fmt::Debug for PhoshStatusPageClass { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("PhoshStatusPageClass @ {self:p}")) - .field("parent_class", &self.parent_class) - .field("_phosh_reserved0", &self._phosh_reserved0) - .field("_phosh_reserved1", &self._phosh_reserved1) - .field("_phosh_reserved2", &self._phosh_reserved2) - .field("_phosh_reserved3", &self._phosh_reserved3) - .field("_phosh_reserved4", &self._phosh_reserved4) - .field("_phosh_reserved5", &self._phosh_reserved5) - .field("_phosh_reserved6", &self._phosh_reserved6) - .field("_phosh_reserved7", &self._phosh_reserved7) - .field("_phosh_reserved8", &self._phosh_reserved8) - .field("_phosh_reserved9", &self._phosh_reserved9) - .finish() + .field("parent_class", &self.parent_class) + .field("_phosh_reserved0", &self._phosh_reserved0) + .field("_phosh_reserved1", &self._phosh_reserved1) + .field("_phosh_reserved2", &self._phosh_reserved2) + .field("_phosh_reserved3", &self._phosh_reserved3) + .field("_phosh_reserved4", &self._phosh_reserved4) + .field("_phosh_reserved5", &self._phosh_reserved5) + .field("_phosh_reserved6", &self._phosh_reserved6) + .field("_phosh_reserved7", &self._phosh_reserved7) + .field("_phosh_reserved8", &self._phosh_reserved8) + .field("_phosh_reserved9", &self._phosh_reserved9) + .finish() } } @@ -329,18 +349,18 @@ pub struct PhoshWallClockClass { impl ::std::fmt::Debug for PhoshWallClockClass { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("PhoshWallClockClass @ {self:p}")) - .field("parent_class", &self.parent_class) - .field("get_clock", &self.get_clock) - .field("get_time_t", &self.get_time_t) - .field("_phosh_reserved2", &self._phosh_reserved2) - .field("_phosh_reserved3", &self._phosh_reserved3) - .field("_phosh_reserved4", &self._phosh_reserved4) - .field("_phosh_reserved5", &self._phosh_reserved5) - .field("_phosh_reserved6", &self._phosh_reserved6) - .field("_phosh_reserved7", &self._phosh_reserved7) - .field("_phosh_reserved8", &self._phosh_reserved8) - .field("_phosh_reserved9", &self._phosh_reserved9) - .finish() + .field("parent_class", &self.parent_class) + .field("get_clock", &self.get_clock) + .field("get_time_t", &self.get_time_t) + .field("_phosh_reserved2", &self._phosh_reserved2) + .field("_phosh_reserved3", &self._phosh_reserved3) + .field("_phosh_reserved4", &self._phosh_reserved4) + .field("_phosh_reserved5", &self._phosh_reserved5) + .field("_phosh_reserved6", &self._phosh_reserved6) + .field("_phosh_reserved7", &self._phosh_reserved7) + .field("_phosh_reserved8", &self._phosh_reserved8) + .field("_phosh_reserved9", &self._phosh_reserved9) + .finish() } } @@ -348,14 +368,14 @@ impl ::std::fmt::Debug for PhoshWallClockClass { #[derive(Copy, Clone)] #[repr(C)] pub struct PhoshLayerSurface { - pub parent_instance: gtk::GtkWindow, + pub parent_instance: gtk::GtkWidget, } impl ::std::fmt::Debug for PhoshLayerSurface { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("PhoshLayerSurface @ {self:p}")) - .field("parent_instance", &self.parent_instance) - .finish() + .field("parent_instance", &self.parent_instance) + .finish() } } @@ -368,8 +388,8 @@ pub struct PhoshLockscreen { impl ::std::fmt::Debug for PhoshLockscreen { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("PhoshLockscreen @ {self:p}")) - .field("parent_instance", &self.parent_instance) - .finish() + .field("parent_instance", &self.parent_instance) + .finish() } } @@ -383,7 +403,7 @@ pub struct PhoshLockscreenManager { impl ::std::fmt::Debug for PhoshLockscreenManager { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("PhoshLockscreenManager @ {self:p}")) - .finish() + .finish() } } @@ -396,8 +416,8 @@ pub struct PhoshQuickSetting { impl ::std::fmt::Debug for PhoshQuickSetting { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("PhoshQuickSetting @ {self:p}")) - .field("parent_instance", &self.parent_instance) - .finish() + .field("parent_instance", &self.parent_instance) + .finish() } } @@ -411,7 +431,7 @@ pub struct PhoshScreenshotManager { impl ::std::fmt::Debug for PhoshScreenshotManager { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("PhoshScreenshotManager @ {self:p}")) - .finish() + .finish() } } @@ -424,36 +444,36 @@ pub struct PhoshShell { impl ::std::fmt::Debug for PhoshShell { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("PhoshShell @ {self:p}")) - .field("parent_instance", &self.parent_instance) - .finish() + .field("parent_instance", &self.parent_instance) + .finish() } } #[derive(Copy, Clone)] #[repr(C)] pub struct PhoshStatusIcon { - pub parent_instance: gtk::GtkBin, + pub parent_instance: gtk::GtkWidget, } impl ::std::fmt::Debug for PhoshStatusIcon { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("PhoshStatusIcon @ {self:p}")) - .field("parent_instance", &self.parent_instance) - .finish() + .field("parent_instance", &self.parent_instance) + .finish() } } #[derive(Copy, Clone)] #[repr(C)] pub struct PhoshStatusPage { - pub parent_instance: gtk::GtkBin, + pub parent_instance: gtk::GtkWidget, } impl ::std::fmt::Debug for PhoshStatusPage { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("PhoshStatusPage @ {self:p}")) - .field("parent_instance", &self.parent_instance) - .finish() + .field("parent_instance", &self.parent_instance) + .finish() } } @@ -466,8 +486,8 @@ pub struct PhoshWallClock { impl ::std::fmt::Debug for PhoshWallClock { fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { f.debug_struct(&format!("PhoshWallClock @ {self:p}")) - .field("parent_instance", &self.parent_instance) - .finish() + .field("parent_instance", &self.parent_instance) + .finish() } } @@ -488,8 +508,24 @@ extern "C" { //pub fn phosh_dbus_screenshot_proxy_new_for_bus_finish(res: *mut gio::GAsyncResult, error: *mut *mut glib::GError) -> /*Ignored*/*mut PhoshDBusScreenshotProxy; //pub fn phosh_dbus_screenshot_proxy_new_for_bus_sync(bus_type: gio::GBusType, flags: gio::GDBusProxyFlags, name: *const c_char, object_path: *const c_char, cancellable: *mut gio::GCancellable, error: *mut *mut glib::GError) -> /*Ignored*/*mut PhoshDBusScreenshotProxy; //pub fn phosh_dbus_screenshot_proxy_new_sync(connection: *mut gio::GDBusConnection, flags: gio::GDBusProxyFlags, name: *const c_char, object_path: *const c_char, cancellable: *mut gio::GCancellable, error: *mut *mut glib::GError) -> /*Ignored*/*mut PhoshDBusScreenshotProxy; - pub fn phosh_dbus_screenshot_proxy_new(connection: *mut gio::GDBusConnection, flags: gio::GDBusProxyFlags, name: *const c_char, object_path: *const c_char, cancellable: *mut gio::GCancellable, callback: gio::GAsyncReadyCallback, user_data: gpointer); - pub fn phosh_dbus_screenshot_proxy_new_for_bus(bus_type: gio::GBusType, flags: gio::GDBusProxyFlags, name: *const c_char, object_path: *const c_char, cancellable: *mut gio::GCancellable, callback: gio::GAsyncReadyCallback, user_data: gpointer); + pub fn phosh_dbus_screenshot_proxy_new( + connection: *mut gio::GDBusConnection, + flags: gio::GDBusProxyFlags, + name: *const c_char, + object_path: *const c_char, + cancellable: *mut gio::GCancellable, + callback: gio::GAsyncReadyCallback, + user_data: gpointer, + ); + pub fn phosh_dbus_screenshot_proxy_new_for_bus( + bus_type: gio::GBusType, + flags: gio::GDBusProxyFlags, + name: *const c_char, + object_path: *const c_char, + cancellable: *mut gio::GCancellable, + callback: gio::GAsyncReadyCallback, + user_data: gpointer, + ); //========================================================================= // PhoshDBusScreenshotSkeleton @@ -501,16 +537,23 @@ extern "C" { // PhoshLayerSurface //========================================================================= pub fn phosh_layer_surface_get_type() -> GType; + pub fn phosh_layer_surface_set_child(self_: *mut PhoshLayerSurface, child: *mut gtk::GtkWidget); //========================================================================= // PhoshLockscreen //========================================================================= pub fn phosh_lockscreen_get_type() -> GType; - pub fn phosh_lockscreen_add_extra_page(self_: *mut PhoshLockscreen, widget: *mut gtk::GtkWidget); + pub fn phosh_lockscreen_add_extra_page( + self_: *mut PhoshLockscreen, + widget: *mut gtk::GtkWidget, + ); pub fn phosh_lockscreen_clear_pin_entry(self_: *mut PhoshLockscreen); pub fn phosh_lockscreen_get_page(self_: *mut PhoshLockscreen) -> PhoshLockscreenPage; pub fn phosh_lockscreen_get_pin_entry(self_: *mut PhoshLockscreen) -> *const c_char; - pub fn phosh_lockscreen_set_default_page(self_: *mut PhoshLockscreen, page: PhoshLockscreenPage); + pub fn phosh_lockscreen_set_default_page( + self_: *mut PhoshLockscreen, + page: PhoshLockscreenPage, + ); pub fn phosh_lockscreen_set_page(self_: *mut PhoshLockscreen, page: PhoshLockscreenPage); pub fn phosh_lockscreen_set_unlock_status(self_: *mut PhoshLockscreen, status: *const c_char); pub fn phosh_lockscreen_shake_pin_entry(self_: *mut PhoshLockscreen); @@ -521,10 +564,17 @@ extern "C" { pub fn phosh_lockscreen_manager_get_type() -> GType; pub fn phosh_lockscreen_manager_get_active_time(self_: *mut PhoshLockscreenManager) -> i64; pub fn phosh_lockscreen_manager_get_locked(self_: *mut PhoshLockscreenManager) -> gboolean; - pub fn phosh_lockscreen_manager_get_lockscreen(self_: *mut PhoshLockscreenManager) -> *mut PhoshLockscreen; - pub fn phosh_lockscreen_manager_get_page(self_: *mut PhoshLockscreenManager) -> PhoshLockscreenPage; + pub fn phosh_lockscreen_manager_get_lockscreen( + self_: *mut PhoshLockscreenManager, + ) -> *mut PhoshLockscreen; + pub fn phosh_lockscreen_manager_get_page( + self_: *mut PhoshLockscreenManager, + ) -> PhoshLockscreenPage; pub fn phosh_lockscreen_manager_set_locked(self_: *mut PhoshLockscreenManager, state: gboolean); - pub fn phosh_lockscreen_manager_set_page(self_: *mut PhoshLockscreenManager, page: PhoshLockscreenPage) -> gboolean; + pub fn phosh_lockscreen_manager_set_page( + self_: *mut PhoshLockscreenManager, + page: PhoshLockscreenPage, + ) -> gboolean; //========================================================================= // PhoshQuickSetting @@ -533,25 +583,57 @@ extern "C" { pub fn phosh_quick_setting_new(status_page: *mut PhoshStatusPage) -> *mut gtk::GtkWidget; pub fn phosh_quick_setting_get_active(self_: *mut PhoshQuickSetting) -> gboolean; pub fn phosh_quick_setting_get_can_show_status(self_: *mut PhoshQuickSetting) -> gboolean; - pub fn phosh_quick_setting_get_long_press_action_name(self_: *mut PhoshQuickSetting) -> *const c_char; - pub fn phosh_quick_setting_get_long_press_action_target(self_: *mut PhoshQuickSetting) -> *const c_char; + pub fn phosh_quick_setting_get_long_press_action_name( + self_: *mut PhoshQuickSetting, + ) -> *const c_char; + pub fn phosh_quick_setting_get_long_press_action_target( + self_: *mut PhoshQuickSetting, + ) -> *const c_char; pub fn phosh_quick_setting_get_showing_status(self_: *mut PhoshQuickSetting) -> gboolean; - pub fn phosh_quick_setting_get_status_icon(self_: *mut PhoshQuickSetting) -> *mut PhoshStatusIcon; - pub fn phosh_quick_setting_get_status_page(self_: *mut PhoshQuickSetting) -> *mut PhoshStatusPage; + pub fn phosh_quick_setting_get_status_icon( + self_: *mut PhoshQuickSetting, + ) -> *mut PhoshStatusIcon; + pub fn phosh_quick_setting_get_status_page( + self_: *mut PhoshQuickSetting, + ) -> *mut PhoshStatusPage; pub fn phosh_quick_setting_set_active(self_: *mut PhoshQuickSetting, active: gboolean); - pub fn phosh_quick_setting_set_can_show_status(self_: *mut PhoshQuickSetting, can_show_status: gboolean); - pub fn phosh_quick_setting_set_long_press_action_name(self_: *mut PhoshQuickSetting, action_name: *const c_char); - pub fn phosh_quick_setting_set_long_press_action_target(self_: *mut PhoshQuickSetting, action_target: *const c_char); - pub fn phosh_quick_setting_set_showing_status(self_: *mut PhoshQuickSetting, showing_status: gboolean); - pub fn phosh_quick_setting_set_status_icon(self_: *mut PhoshQuickSetting, status_icon: *mut PhoshStatusIcon); - pub fn phosh_quick_setting_set_status_page(self_: *mut PhoshQuickSetting, status_page: *mut PhoshStatusPage); + pub fn phosh_quick_setting_set_can_show_status( + self_: *mut PhoshQuickSetting, + can_show_status: gboolean, + ); + pub fn phosh_quick_setting_set_long_press_action_name( + self_: *mut PhoshQuickSetting, + action_name: *const c_char, + ); + pub fn phosh_quick_setting_set_long_press_action_target( + self_: *mut PhoshQuickSetting, + action_target: *const c_char, + ); + pub fn phosh_quick_setting_set_showing_status( + self_: *mut PhoshQuickSetting, + showing_status: gboolean, + ); + pub fn phosh_quick_setting_set_status_icon( + self_: *mut PhoshQuickSetting, + status_icon: *mut PhoshStatusIcon, + ); + pub fn phosh_quick_setting_set_status_page( + self_: *mut PhoshQuickSetting, + status_page: *mut PhoshStatusPage, + ); //========================================================================= // PhoshScreenshotManager //========================================================================= pub fn phosh_screenshot_manager_get_type() -> GType; pub fn phosh_screenshot_manager_new() -> *mut PhoshScreenshotManager; - pub fn phosh_screenshot_manager_take_screenshot(self_: *mut PhoshScreenshotManager, area: *const gdk::GdkRectangle, filename: *const c_char, copy_to_clipboard: gboolean, include_cursor: gboolean) -> gboolean; + pub fn phosh_screenshot_manager_take_screenshot( + self_: *mut PhoshScreenshotManager, + area: *const gdk::GdkRectangle, + filename: *const c_char, + copy_to_clipboard: gboolean, + include_cursor: gboolean, + ) -> gboolean; //========================================================================= // PhoshShell @@ -561,10 +643,20 @@ extern "C" { pub fn phosh_shell_get_default() -> *mut PhoshShell; pub fn phosh_shell_fade_out(self_: *mut PhoshShell, timeout: c_uint); pub fn phosh_shell_get_locked(self_: *mut PhoshShell) -> gboolean; - pub fn phosh_shell_get_lockscreen_manager(self_: *mut PhoshShell) -> *mut PhoshLockscreenManager; + pub fn phosh_shell_get_lockscreen_manager( + self_: *mut PhoshShell, + ) -> *mut PhoshLockscreenManager; pub fn phosh_shell_get_lockscreen_type(self_: *mut PhoshShell) -> GType; - pub fn phosh_shell_get_screenshot_manager(self_: *mut PhoshShell) -> *mut PhoshScreenshotManager; - pub fn phosh_shell_get_usable_area(self_: *mut PhoshShell, x: *mut c_int, y: *mut c_int, width: *mut c_int, height: *mut c_int); + pub fn phosh_shell_get_screenshot_manager( + self_: *mut PhoshShell, + ) -> *mut PhoshScreenshotManager; + pub fn phosh_shell_get_usable_area( + self_: *mut PhoshShell, + x: *mut c_int, + y: *mut c_int, + width: *mut c_int, + height: *mut c_int, + ); pub fn phosh_shell_set_default(self_: *mut PhoshShell); //========================================================================= @@ -574,12 +666,13 @@ extern "C" { pub fn phosh_status_icon_new() -> *mut gtk::GtkWidget; pub fn phosh_status_icon_get_extra_widget(self_: *mut PhoshStatusIcon) -> *mut gtk::GtkWidget; pub fn phosh_status_icon_get_icon_name(self_: *mut PhoshStatusIcon) -> *mut c_char; - pub fn phosh_status_icon_get_icon_size(self_: *mut PhoshStatusIcon) -> gtk::GtkIconSize; pub fn phosh_status_icon_get_info(self_: *mut PhoshStatusIcon) -> *mut c_char; pub fn phosh_status_icon_get_pixel_size(self_: *mut PhoshStatusIcon) -> c_uint; - pub fn phosh_status_icon_set_extra_widget(self_: *mut PhoshStatusIcon, widget: *mut gtk::GtkWidget); + pub fn phosh_status_icon_set_extra_widget( + self_: *mut PhoshStatusIcon, + widget: *mut gtk::GtkWidget, + ); pub fn phosh_status_icon_set_icon_name(self_: *mut PhoshStatusIcon, icon_name: *const c_char); - pub fn phosh_status_icon_set_icon_size(self_: *mut PhoshStatusIcon, size: gtk::GtkIconSize); pub fn phosh_status_icon_set_info(self_: *mut PhoshStatusIcon, info: *const c_char); pub fn phosh_status_icon_set_pixel_size(self_: *mut PhoshStatusIcon, size: c_uint); @@ -603,7 +696,10 @@ extern "C" { pub fn phosh_wall_clock_get_type() -> GType; pub fn phosh_wall_clock_new() -> *mut PhoshWallClock; pub fn phosh_wall_clock_get_default() -> *mut PhoshWallClock; - pub fn phosh_wall_clock_get_clock(self_: *mut PhoshWallClock, time_only: gboolean) -> *const c_char; + pub fn phosh_wall_clock_get_clock( + self_: *mut PhoshWallClock, + time_only: gboolean, + ) -> *const c_char; pub fn phosh_wall_clock_local_date(self_: *mut PhoshWallClock) -> *mut c_char; pub fn phosh_wall_clock_set_default(self_: *mut PhoshWallClock); @@ -612,7 +708,10 @@ extern "C" { //========================================================================= pub fn phosh_dbus_screenshot_get_type() -> GType; pub fn phosh_dbus_screenshot_interface_info() -> *mut gio::GDBusInterfaceInfo; - pub fn phosh_dbus_screenshot_override_properties(klass: *mut gobject::GObjectClass, property_id_begin: c_uint) -> c_uint; + pub fn phosh_dbus_screenshot_override_properties( + klass: *mut gobject::GObjectClass, + property_id_begin: c_uint, + ) -> c_uint; //pub fn phosh_dbus_screenshot_call_flash_area(proxy: /*Ignored*/*mut PhoshDBusScreenshot, arg_x: c_int, arg_y: c_int, arg_width: c_int, arg_height: c_int, cancellable: *mut gio::GCancellable, callback: gio::GAsyncReadyCallback, user_data: gpointer); //pub fn phosh_dbus_screenshot_call_flash_area_finish(proxy: /*Ignored*/*mut PhoshDBusScreenshot, res: *mut gio::GAsyncResult, error: *mut *mut glib::GError) -> gboolean; //pub fn phosh_dbus_screenshot_call_flash_area_sync(proxy: /*Ignored*/*mut PhoshDBusScreenshot, arg_x: c_int, arg_y: c_int, arg_width: c_int, arg_height: c_int, cancellable: *mut gio::GCancellable, error: *mut *mut glib::GError) -> gboolean; diff --git a/libphosh-rs/libphosh/sys/tests/abi.rs b/libphosh-rs/libphosh/sys/tests/abi.rs index e133d4f42..464a52c5f 100644 --- a/libphosh-rs/libphosh/sys/tests/abi.rs +++ b/libphosh-rs/libphosh/sys/tests/abi.rs @@ -1,15 +1,15 @@ -// Generated by gir (https://github.com/gtk-rs/gir @ be9aa145267c) -// from ../.. (@ b4c1dbc27547+) -// from ../../gir-files (@ 6cd7b656acd6) +// Generated by gir (https://github.com/gtk-rs/gir @ 601c9bb7f8f4) +// from ../.. (@ 6e705302f485+) +// from ../../gir-files (@ d530241ca19b) // DO NOT EDIT #![cfg(unix)] use phosh_sys::*; -use std::mem::{align_of, size_of}; use std::env; use std::error::Error; use std::ffi::OsString; +use std::mem::{align_of, size_of}; use std::path::Path; use std::process::{Command, Stdio}; use std::str; @@ -67,8 +67,7 @@ fn pkg_config_cflags(packages: &[&str]) -> Result, Box> { if packages.is_empty() { return Ok(Vec::new()); } - let pkg_config = env::var_os("PKG_CONFIG") - .unwrap_or_else(|| OsString::from("pkg-config")); + let pkg_config = env::var_os("PKG_CONFIG").unwrap_or_else(|| OsString::from("pkg-config")); let mut cmd = Command::new(pkg_config); cmd.arg("--cflags"); cmd.args(packages); @@ -82,7 +81,6 @@ fn pkg_config_cflags(packages: &[&str]) -> Result, Box> { Ok(shell_words::split(stdout.trim())?) } - #[derive(Copy, Clone, Debug, Eq, PartialEq)] struct Layout { size: usize, @@ -164,8 +162,7 @@ fn cross_validate_layout_with_c() { let mut results = Results::default(); - for ((rust_name, rust_layout), (c_name, c_layout)) in - RUST_LAYOUTS.iter().zip(c_layouts.iter()) + for ((rust_name, rust_layout), (c_name, c_layout)) in RUST_LAYOUTS.iter().zip(c_layouts.iter()) { if rust_name != c_name { results.record_failed(); @@ -175,9 +172,7 @@ fn cross_validate_layout_with_c() { if rust_layout != c_layout { results.record_failed(); - eprintln!( - "Layout mismatch for {rust_name}\nRust: {rust_layout:?}\nC: {c_layout:?}", - ); + eprintln!("Layout mismatch for {rust_name}\nRust: {rust_layout:?}\nC: {c_layout:?}",); continue; } @@ -207,31 +202,166 @@ fn get_c_output(name: &str) -> Result> { } const RUST_LAYOUTS: &[(&str, Layout)] = &[ - ("PhoshDBusScreenshotProxyClass", Layout {size: size_of::(), alignment: align_of::()}), - ("PhoshDBusScreenshotSkeletonClass", Layout {size: size_of::(), alignment: align_of::()}), - ("PhoshLayerSurface", Layout {size: size_of::(), alignment: align_of::()}), - ("PhoshLayerSurfaceClass", Layout {size: size_of::(), alignment: align_of::()}), - ("PhoshLockscreen", Layout {size: size_of::(), alignment: align_of::()}), - ("PhoshLockscreenClass", Layout {size: size_of::(), alignment: align_of::()}), - ("PhoshLockscreenManagerClass", Layout {size: size_of::(), alignment: align_of::()}), - ("PhoshLockscreenPage", Layout {size: size_of::(), alignment: align_of::()}), - ("PhoshQuickSetting", Layout {size: size_of::(), alignment: align_of::()}), - ("PhoshQuickSettingClass", Layout {size: size_of::(), alignment: align_of::()}), - ("PhoshScreenshotManagerClass", Layout {size: size_of::(), alignment: align_of::()}), - ("PhoshShell", Layout {size: size_of::(), alignment: align_of::()}), - ("PhoshShellClass", Layout {size: size_of::(), alignment: align_of::()}), - ("PhoshStatusIcon", Layout {size: size_of::(), alignment: align_of::()}), - ("PhoshStatusIconClass", Layout {size: size_of::(), alignment: align_of::()}), - ("PhoshStatusPage", Layout {size: size_of::(), alignment: align_of::()}), - ("PhoshStatusPageClass", Layout {size: size_of::(), alignment: align_of::()}), - ("PhoshWallClock", Layout {size: size_of::(), alignment: align_of::()}), - ("PhoshWallClockClass", Layout {size: size_of::(), alignment: align_of::()}), + ( + "PhoshDBusScreenshotProxyClass", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "PhoshDBusScreenshotSkeletonClass", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "PhoshLayerSurface", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "PhoshLayerSurfaceAnchor", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "PhoshLayerSurfaceClass", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "PhoshLayerSurfaceLayer", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "PhoshLockscreen", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "PhoshLockscreenClass", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "PhoshLockscreenManagerClass", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "PhoshLockscreenPage", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "PhoshQuickSetting", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "PhoshQuickSettingClass", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "PhoshScreenshotManagerClass", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "PhoshShell", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "PhoshShellClass", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "PhoshStatusIcon", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "PhoshStatusIconClass", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "PhoshStatusPage", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "PhoshStatusPageClass", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "PhoshWallClock", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), + ( + "PhoshWallClockClass", + Layout { + size: size_of::(), + alignment: align_of::(), + }, + ), ]; const RUST_CONSTANTS: &[(&str, &str)] = &[ + ("(guint) PHOSH_LAYER_SURFACE_ANCHOR_BOTTOM", "2"), + ("(guint) PHOSH_LAYER_SURFACE_ANCHOR_LEFT", "4"), + ("(guint) PHOSH_LAYER_SURFACE_ANCHOR_NONE", "0"), + ("(guint) PHOSH_LAYER_SURFACE_ANCHOR_RIGHT", "8"), + ("(guint) PHOSH_LAYER_SURFACE_ANCHOR_TOP", "1"), + ("(gint) PHOSH_LAYER_SURFACE_LAYER_BACKGROUND", "0"), + ("(gint) PHOSH_LAYER_SURFACE_LAYER_BOTTOM", "1"), + ("(gint) PHOSH_LAYER_SURFACE_LAYER_OVERLAY", "3"), + ("(gint) PHOSH_LAYER_SURFACE_LAYER_TOP", "2"), ("(gint) PHOSH_LOCKSCREEN_PAGE_EXTRA", "1"), ("(gint) PHOSH_LOCKSCREEN_PAGE_INFO", "0"), ("(gint) PHOSH_LOCKSCREEN_PAGE_UNLOCK", "2"), ]; - - diff --git a/libphosh-rs/libphosh/sys/tests/constant.c b/libphosh-rs/libphosh/sys/tests/constant.c index ebce88100..d0a18a088 100644 --- a/libphosh-rs/libphosh/sys/tests/constant.c +++ b/libphosh-rs/libphosh/sys/tests/constant.c @@ -1,6 +1,6 @@ -// Generated by gir (https://github.com/gtk-rs/gir @ be9aa145267c) -// from ../.. (@ b4c1dbc27547+) -// from ../../gir-files (@ 6cd7b656acd6) +// Generated by gir (https://github.com/gtk-rs/gir @ 601c9bb7f8f4) +// from ../.. (@ 6e705302f485+) +// from ../../gir-files (@ d530241ca19b) // DO NOT EDIT #include "manual.h" @@ -29,6 +29,15 @@ printf("\n"); int main() { + PRINT_CONSTANT((guint) PHOSH_LAYER_SURFACE_ANCHOR_BOTTOM); + PRINT_CONSTANT((guint) PHOSH_LAYER_SURFACE_ANCHOR_LEFT); + PRINT_CONSTANT((guint) PHOSH_LAYER_SURFACE_ANCHOR_NONE); + PRINT_CONSTANT((guint) PHOSH_LAYER_SURFACE_ANCHOR_RIGHT); + PRINT_CONSTANT((guint) PHOSH_LAYER_SURFACE_ANCHOR_TOP); + PRINT_CONSTANT((gint) PHOSH_LAYER_SURFACE_LAYER_BACKGROUND); + PRINT_CONSTANT((gint) PHOSH_LAYER_SURFACE_LAYER_BOTTOM); + PRINT_CONSTANT((gint) PHOSH_LAYER_SURFACE_LAYER_OVERLAY); + PRINT_CONSTANT((gint) PHOSH_LAYER_SURFACE_LAYER_TOP); PRINT_CONSTANT((gint) PHOSH_LOCKSCREEN_PAGE_EXTRA); PRINT_CONSTANT((gint) PHOSH_LOCKSCREEN_PAGE_INFO); PRINT_CONSTANT((gint) PHOSH_LOCKSCREEN_PAGE_UNLOCK); diff --git a/libphosh-rs/libphosh/sys/tests/layout.c b/libphosh-rs/libphosh/sys/tests/layout.c index 3c33ac751..a3f61944e 100644 --- a/libphosh-rs/libphosh/sys/tests/layout.c +++ b/libphosh-rs/libphosh/sys/tests/layout.c @@ -1,6 +1,6 @@ -// Generated by gir (https://github.com/gtk-rs/gir @ be9aa145267c) -// from ../.. (@ b4c1dbc27547+) -// from ../../gir-files (@ 6cd7b656acd6) +// Generated by gir (https://github.com/gtk-rs/gir @ 601c9bb7f8f4) +// from ../.. (@ 6e705302f485+) +// from ../../gir-files (@ d530241ca19b) // DO NOT EDIT #include "manual.h" @@ -11,7 +11,9 @@ int main() { printf("%s;%zu;%zu\n", "PhoshDBusScreenshotProxyClass", sizeof(PhoshDBusScreenshotProxyClass), alignof(PhoshDBusScreenshotProxyClass)); printf("%s;%zu;%zu\n", "PhoshDBusScreenshotSkeletonClass", sizeof(PhoshDBusScreenshotSkeletonClass), alignof(PhoshDBusScreenshotSkeletonClass)); printf("%s;%zu;%zu\n", "PhoshLayerSurface", sizeof(PhoshLayerSurface), alignof(PhoshLayerSurface)); + printf("%s;%zu;%zu\n", "PhoshLayerSurfaceAnchor", sizeof(PhoshLayerSurfaceAnchor), alignof(PhoshLayerSurfaceAnchor)); printf("%s;%zu;%zu\n", "PhoshLayerSurfaceClass", sizeof(PhoshLayerSurfaceClass), alignof(PhoshLayerSurfaceClass)); + printf("%s;%zu;%zu\n", "PhoshLayerSurfaceLayer", sizeof(PhoshLayerSurfaceLayer), alignof(PhoshLayerSurfaceLayer)); printf("%s;%zu;%zu\n", "PhoshLockscreen", sizeof(PhoshLockscreen), alignof(PhoshLockscreen)); printf("%s;%zu;%zu\n", "PhoshLockscreenClass", sizeof(PhoshLockscreenClass), alignof(PhoshLockscreenClass)); printf("%s;%zu;%zu\n", "PhoshLockscreenManagerClass", sizeof(PhoshLockscreenManagerClass), alignof(PhoshLockscreenManagerClass)); diff --git a/resources/lockscreen-user-session.ui b/resources/lockscreen-user-session.ui index a1a024323..8c6bc57a3 100644 --- a/resources/lockscreen-user-session.ui +++ b/resources/lockscreen-user-session.ui @@ -1,49 +1,39 @@ - + +