Compare commits
23 Commits
v41
..
gnome-3.36-44
| Author | SHA1 | Date | |
|---|---|---|---|
| cf8fca916e | |||
| 7ed27f89a9 | |||
| 03586796e2 | |||
| efdf4ca9f7 | |||
| de0ed55cf7 | |||
| cd7d000e21 | |||
| 92694d4e3e | |||
| e318b5ad6c | |||
| 4b67453be5 | |||
| 3b9433395c | |||
| 736b90927a | |||
| 91342170d0 | |||
| 40e160311e | |||
| c18e022cc5 | |||
| 85d3d96f24 | |||
| 69b0f94062 | |||
| 93e5836fd6 | |||
| 71297faec1 | |||
| 8fd5c75dac | |||
| 19cae610a5 | |||
| 902aa65946 | |||
| 0e543414ad | |||
| 265ebb8a4c |
@@ -1,10 +1,15 @@
|
|||||||
# SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
|
# SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
|
||||||
# SPDX-License-Identifier: CC0-1.0
|
# SPDX-License-Identifier: CC0-1.0
|
||||||
|
|
||||||
|
# These are supported funding model platforms
|
||||||
|
|
||||||
github: schneegans
|
github: schneegans
|
||||||
|
patreon: # Replace with a single Patreon username
|
||||||
|
open_collective: # Replace with a single Open Collective username
|
||||||
ko_fi: schneegans
|
ko_fi: schneegans
|
||||||
custom:
|
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
|
||||||
[
|
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
|
||||||
"https://www.paypal.com/donate/?hosted_button_id=3F7UFL8KLVPXE",
|
liberapay: # Schneegans
|
||||||
https://schneegans.cb.id,
|
issuehunt: # Replace with a single IssueHunt username
|
||||||
]
|
otechie: # Replace with a single Otechie username
|
||||||
|
custom: ["https://www.paypal.me/simonschneegans"]
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ jobs:
|
|||||||
echo "CODE_LINES=$(scripts/cloc.sh --loc)" >> $GITHUB_ENV
|
echo "CODE_LINES=$(scripts/cloc.sh --loc)" >> $GITHUB_ENV
|
||||||
echo "COMMENT_LINES=$(scripts/cloc.sh --percentage)" >> $GITHUB_ENV
|
echo "COMMENT_LINES=$(scripts/cloc.sh --percentage)" >> $GITHUB_ENV
|
||||||
- name: Create Lines-of-Code-Badge
|
- name: Create Lines-of-Code-Badge
|
||||||
uses: schneegans/dynamic-badges-action@v1.7.0
|
uses: schneegans/dynamic-badges-action@v1.3.0
|
||||||
with:
|
with:
|
||||||
auth: ${{ secrets.GIST_SECRET }}
|
auth: ${{ secrets.GIST_SECRET }}
|
||||||
gistID: 8cf45f23253ff09b21196e7271378762
|
gistID: 8cf45f23253ff09b21196e7271378762
|
||||||
@@ -32,7 +32,7 @@ jobs:
|
|||||||
color: lightgrey
|
color: lightgrey
|
||||||
labelColor: 303030
|
labelColor: 303030
|
||||||
- name: Create Comments-Badge
|
- name: Create Comments-Badge
|
||||||
uses: schneegans/dynamic-badges-action@v1.7.0
|
uses: schneegans/dynamic-badges-action@v1.3.0
|
||||||
with:
|
with:
|
||||||
auth: ${{ secrets.GIST_SECRET }}
|
auth: ${{ secrets.GIST_SECRET }}
|
||||||
gistID: 8cf45f23253ff09b21196e7271378762
|
gistID: 8cf45f23253ff09b21196e7271378762
|
||||||
|
|||||||
@@ -79,6 +79,26 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
find $GITHUB_WORKSPACE -type f -and \( -name "*.sh" \) | xargs shellcheck
|
find $GITHUB_WORKSPACE -type f -and \( -name "*.sh" \) | xargs shellcheck
|
||||||
|
|
||||||
|
references:
|
||||||
|
name: Generate References
|
||||||
|
runs-on: ubuntu-22.04
|
||||||
|
if: >
|
||||||
|
github.event_name == 'push' && contains(github.event.head_commit.message, '[generate-references]')
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
- name: Download Dependencies
|
||||||
|
run: |
|
||||||
|
sudo apt update -qq
|
||||||
|
sudo apt install gettext imagemagick -qq
|
||||||
|
- name: Build Burn-My-Windows
|
||||||
|
run: make
|
||||||
|
- name: Generate References
|
||||||
|
run: sudo make references
|
||||||
|
- uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: references
|
||||||
|
path: tests/references/
|
||||||
|
|
||||||
build:
|
build:
|
||||||
name: Run Tests
|
name: Run Tests
|
||||||
runs-on: ubuntu-22.04
|
runs-on: ubuntu-22.04
|
||||||
@@ -90,8 +110,13 @@ jobs:
|
|||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
version:
|
version:
|
||||||
- "39"
|
- "32"
|
||||||
- "rawhide"
|
- "33"
|
||||||
|
- "34"
|
||||||
|
- "35"
|
||||||
|
- "36"
|
||||||
|
- "37"
|
||||||
|
- "38"
|
||||||
session:
|
session:
|
||||||
- "gnome-xsession"
|
- "gnome-xsession"
|
||||||
- "gnome-wayland-nested"
|
- "gnome-wayland-nested"
|
||||||
|
|||||||
@@ -1,28 +0,0 @@
|
|||||||
# SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
|
|
||||||
# SPDX-License-Identifier: CC0-1.0
|
|
||||||
|
|
||||||
name: Generate References
|
|
||||||
|
|
||||||
on:
|
|
||||||
workflow_dispatch:
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
references:
|
|
||||||
name: Generate References
|
|
||||||
runs-on: ubuntu-22.04
|
|
||||||
if: >
|
|
||||||
github.event_name == 'push' && contains(github.event.head_commit.message, '[generate-references]')
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v3
|
|
||||||
- name: Download Dependencies
|
|
||||||
run: |
|
|
||||||
sudo apt update -qq
|
|
||||||
sudo apt install gettext imagemagick -qq
|
|
||||||
- name: Build Burn-My-Windows
|
|
||||||
run: make
|
|
||||||
- name: Generate References
|
|
||||||
run: sudo make references
|
|
||||||
- uses: actions/upload-artifact@v3
|
|
||||||
with:
|
|
||||||
name: references
|
|
||||||
path: tests/references/
|
|
||||||
@@ -19,7 +19,7 @@ LOCALES_MO = $(patsubst po/%.po,locale/%/LC_MESSAGES/$(NAME).mo,$(LOCALES_PO
|
|||||||
ZIP_CONTENT = $(JS_FILES) $(LOCALES_MO) resources/$(NAME).gresource \
|
ZIP_CONTENT = $(JS_FILES) $(LOCALES_MO) resources/$(NAME).gresource \
|
||||||
schemas/org.gnome.shell.extensions.$(NAME).gschema.xml \
|
schemas/org.gnome.shell.extensions.$(NAME).gschema.xml \
|
||||||
schemas/org.gnome.shell.extensions.$(NAME)-profile.gschema.xml \
|
schemas/org.gnome.shell.extensions.$(NAME)-profile.gschema.xml \
|
||||||
metadata.json LICENSE
|
schemas/gschemas.compiled metadata.json LICENSE
|
||||||
|
|
||||||
# These seven recipes can be invoked by the user.
|
# These seven recipes can be invoked by the user.
|
||||||
.PHONY: zip install uninstall pot clean test references
|
.PHONY: zip install uninstall pot clean test references
|
||||||
@@ -48,7 +48,7 @@ pot: $(JS_FILES) $(UI_FILES)
|
|||||||
|
|
||||||
# This runs several tests in containerized versions of GNOME Shell.
|
# This runs several tests in containerized versions of GNOME Shell.
|
||||||
test:
|
test:
|
||||||
@ for version in 39 "rawhide" ; do \
|
@ for version in 32 33 34 35 36 37 38 ; do \
|
||||||
for session in "gnome-xsession" "gnome-wayland-nested" ; do \
|
for session in "gnome-xsession" "gnome-wayland-nested" ; do \
|
||||||
echo ; \
|
echo ; \
|
||||||
echo "Running Tests on Fedora $$version ($$session)." ; \
|
echo "Running Tests on Fedora $$version ($$session)." ; \
|
||||||
@@ -59,7 +59,7 @@ test:
|
|||||||
|
|
||||||
# This re-generates all reference images required by the tests.
|
# This re-generates all reference images required by the tests.
|
||||||
references:
|
references:
|
||||||
@ for version in 39 "rawhide" ; do \
|
@ for version in 32 33 34 35 36 37 38 ; do \
|
||||||
for session in "gnome-xsession" "gnome-wayland-nested" ; do \
|
for session in "gnome-xsession" "gnome-wayland-nested" ; do \
|
||||||
echo ; \
|
echo ; \
|
||||||
echo "Generating References for Fedora $$version ($$session)." ; \
|
echo "Generating References for Fedora $$version ($$session)." ; \
|
||||||
@@ -92,6 +92,11 @@ $(ZIP_NAME): $(ZIP_CONTENT)
|
|||||||
exit 1; \
|
exit 1; \
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Compiles the gschemas.compiled file from the gschema.xml file.
|
||||||
|
schemas/gschemas.compiled: schemas/org.gnome.shell.extensions.$(NAME).gschema.xml schemas/org.gnome.shell.extensions.$(NAME)-profile.gschema.xml
|
||||||
|
@echo "Compiling schemas..."
|
||||||
|
@glib-compile-schemas schemas
|
||||||
|
|
||||||
# Compiles the gresource file from the gresources.xml.
|
# Compiles the gresource file from the gresources.xml.
|
||||||
resources/$(NAME).gresource: resources/$(NAME).gresource.xml
|
resources/$(NAME).gresource: resources/$(NAME).gresource.xml
|
||||||
@echo "Compiling resources..."
|
@echo "Compiling resources..."
|
||||||
|
|||||||
@@ -13,44 +13,41 @@ SPDX-License-Identifier: CC-BY-4.0
|
|||||||
<a href="https://extensions.gnome.org/extension/4679/burn-my-windows/"><img src="https://img.shields.io/badge/Download-extensions.gnome.org-e67f4d.svg?logo=gnome&logoColor=lightgrey&labelColor=303030" /></a><br/>
|
<a href="https://extensions.gnome.org/extension/4679/burn-my-windows/"><img src="https://img.shields.io/badge/Download-extensions.gnome.org-e67f4d.svg?logo=gnome&logoColor=lightgrey&labelColor=303030" /></a><br/>
|
||||||
<a href="https://github.com/Schneegans/Burn-My-Windows/actions"><img src="https://github.com/Schneegans/Burn-My-Windows/workflows/Checks/badge.svg?branch=main" /></a>
|
<a href="https://github.com/Schneegans/Burn-My-Windows/actions"><img src="https://github.com/Schneegans/Burn-My-Windows/workflows/Checks/badge.svg?branch=main" /></a>
|
||||||
<a href="https://api.reuse.software/info/github.com/Schneegans/Burn-My-Windows"><img src="https://api.reuse.software/badge/github.com/Schneegans/Burn-My-Windows" /></a>
|
<a href="https://api.reuse.software/info/github.com/Schneegans/Burn-My-Windows"><img src="https://api.reuse.software/badge/github.com/Schneegans/Burn-My-Windows" /></a>
|
||||||
<a href="https://schneegans.github.io/sponsors/"><img src="https://gist.githubusercontent.com/Schneegans/2d06edf0937c480951feb86b9e719304/raw/weekly.svg" /></a>
|
<a href="LICENSE"><img src="https://img.shields.io/badge/License-GPLv3-blue.svg?labelColor=303030" /></a>
|
||||||
<a href="https://hosted.weblate.org/engage/burn-my-windows/"><img src="https://img.shields.io/weblate/progress/burn-my-windows?label=Translated&logo=weblate&logoColor=lightgray&labelColor=303030" /></a>
|
<a href="https://hosted.weblate.org/engage/burn-my-windows/"><img src="https://img.shields.io/weblate/progress/burn-my-windows?label=Translated&logo=weblate&logoColor=lightgray&labelColor=303030" /></a>
|
||||||
<a href="scripts/cloc.sh"><img src="https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/Schneegans/8cf45f23253ff09b21196e7271378762/raw/loc.json" /></a>
|
<a href="scripts/cloc.sh"><img src="https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/Schneegans/8cf45f23253ff09b21196e7271378762/raw/loc.json" /></a>
|
||||||
<a href="scripts/cloc.sh"><img src="https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/Schneegans/8cf45f23253ff09b21196e7271378762/raw/comments.json" /></a>
|
<a href="scripts/cloc.sh"><img src="https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/Schneegans/8cf45f23253ff09b21196e7271378762/raw/comments.json" /></a>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
> [!IMPORTANT]
|
|
||||||
> The code in the `main` branch is for GNOME Shell 45+. For older GNOME versions, please use the `gnome-3.36-44` branch.
|
|
||||||
|
|
||||||
When I released the [Desktop Cube Extension](https://github.com/Schneegans/Desktop-Cube/) for GNOME, many people requested to revive one of the most useless features of Linux desktop history: Setting windows on fire!
|
When I released the [Desktop Cube Extension](https://github.com/Schneegans/Desktop-Cube/) for GNOME, many people requested to revive one of the most useless features of Linux desktop history: Setting windows on fire!
|
||||||
This extension is not only more useless than the cube, but it is also much more hacky. So I expect some bug! [Let's incinerate them all](https://github.com/Schneegans/Burn-My-Windows/issues)!
|
This extension is not only more useless than the cube, but it is also much more hacky. So I expect some bug! [Let's incinerate them all](https://github.com/Schneegans/Burn-My-Windows/issues)!
|
||||||
|
|
||||||
**🖼️ The wallpapers used in the previews below were all generated using AI and are available in [this GitHub repository](https://github.com/Schneegans/ai-wallpapers).**
|
**🖼️ The wallpapers used in the previews below were all generated using AI and are available in [this GitHub repository](https://github.com/Schneegans/ai-wallpapers).**
|
||||||
|
|
||||||
| Effect | Preview |
|
Effect | Preview
|
||||||
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- |
|
-----|--------
|
||||||
| **Apparition** <br> This effect hides your windows by violently sucking them into the void of magic! | <img src ="docs/pics/apparition.gif" /> |
|
**Apparition** <br> This effect hides your windows by violently sucking them into the void of magic! | <img src ="docs/pics/apparition.gif" />
|
||||||
| **Broken Glass** <br> Shatter your windows into a shower sharp shards! This effect can be configured so that the shards fly away from your mouse pointer position! | <img src ="docs/pics/broken-glass.gif" /> |
|
**Broken Glass** <br> Shatter your windows into a shower sharp shards! This effect can be configured so that the shards fly away from your mouse pointer position!| <img src ="docs/pics/broken-glass.gif" />
|
||||||
| **Doom** <br> Melt your windows. Inspired by the legendary screen transitions of the original Doom. | <img src ="docs/pics/doom.gif" /> |
|
**Doom** <br> Melt your windows. Inspired by the legendary screen transitions of the original Doom. | <img src ="docs/pics/doom.gif" />
|
||||||
| **Energize A** <br> Beam your windows away! | <img src ="docs/pics/energize-a.gif" /> |
|
**Energize A** <br> Beam your windows away! | <img src ="docs/pics/energize-a.gif" />
|
||||||
| **Energize B** <br> Using different transporter technology results in an alternative visual effect. | <img src ="docs/pics/energize-b.gif" /> |
|
**Energize B** <br> Using different transporter technology results in an alternative visual effect. | <img src ="docs/pics/energize-b.gif" />
|
||||||
| **Fire** <br> The classic effect inspired by Compiz. However, this is implemented using a GLSL shader and not with a particle system like in the old days. | <img src ="docs/pics/fire.gif" /> |
|
**Fire** <br> The classic effect inspired by Compiz. However, this is implemented using a GLSL shader and not with a particle system like in the old days. | <img src ="docs/pics/fire.gif" />
|
||||||
| **Glide** <br> This very simple effect fades the window to transparency with subtle 3D effects. | <img src ="docs/pics/glide.gif" /> |
|
**Glide** <br> This very simple effect fades the window to transparency with subtle 3D effects. | <img src ="docs/pics/glide.gif" />
|
||||||
| **Glitch** <br> This effect applies some intentional graphics issues to your windows. | <img src ="docs/pics/glitch.gif" /> |
|
**Glitch** <br> This effect applies some intentional graphics issues to your windows. | <img src ="docs/pics/glitch.gif" />
|
||||||
| **Hexagon** <br> With glowing lines and hexagon-shaped tiles, this effect looks very sci-fi. | <img src ="docs/pics/hexagon.gif" /> |
|
**Hexagon** <br> With glowing lines and hexagon-shaped tiles, this effect looks very sci-fi. | <img src ="docs/pics/hexagon.gif" />
|
||||||
| **Incinerate** <br> A less snappy but definitely more fancy take on the fire effect. | <img src ="docs/pics/incinerate.gif" /> |
|
**Incinerate** <br> A less snappy but definitely more fancy take on the fire effect. | <img src ="docs/pics/incinerate.gif" />
|
||||||
| **Matrix** <br> Turn your windows into a shower of green letters! The color is actually configurable. | <img src ="docs/pics/matrix.gif" /> |
|
**Matrix** <br> Turn your windows into a shower of green letters! The color is actually configurable.| <img src ="docs/pics/matrix.gif" />
|
||||||
| **Paint Brush** <br> Paint or erase your windows with a thick paint brush. | <img src ="docs/pics/paint-brush.gif" /> |
|
**Paint Brush** <br> Paint or erase your windows with a thick paint brush. | <img src ="docs/pics/paint-brush.gif" />
|
||||||
| **Pixelate** <br> Pixelate your windows and randomly hide pixels until the entire window is gone. | <img src ="docs/pics/pixelate.gif" /> |
|
**Pixelate** <br> Pixelate your windows and randomly hide pixels until the entire window is gone.| <img src ="docs/pics/pixelate.gif" />
|
||||||
| **Pixel Wheel** <br> This simple effect pixelates the window and hides the pixels in a wheel-like fashion. | <img src ="docs/pics/pixel-wheel.gif" /> |
|
**Pixel Wheel** <br> This simple effect pixelates the window and hides the pixels in a wheel-like fashion.| <img src ="docs/pics/pixel-wheel.gif" />
|
||||||
| **Pixel Wipe** <br> This effect pixelates the window and hides the pixels radially, starting from the pointer position. | <img src ="docs/pics/pixel-wipe.gif" /> |
|
**Pixel Wipe** <br> This effect pixelates the window and hides the pixels radially, starting from the pointer position.| <img src ="docs/pics/pixel-wipe.gif" />
|
||||||
| **Portal** <br> This ridiculous effect teleports your windows from and to alternative dimensions. It may resemble the portal from a well-known cartoon series... | <img src ="docs/pics/portal.gif" /> |
|
**Portal** <br> This ridiculous effect teleports your windows from and to alternative dimensions. It may resemble the portal from a well-known cartoon series... | <img src ="docs/pics/portal.gif" />
|
||||||
| **Snap of Disintegration** <br> Dissolve your windows into a cloud of dust. | <img src ="docs/pics/snap.gif" /> |
|
**Snap of Disintegration** <br> Dissolve your windows into a cloud of dust.| <img src ="docs/pics/snap.gif" />
|
||||||
| **T-Rex Attack** <br> Destroy your windows with a series of violent slashes! | <img src ="docs/pics/trex.gif" /> |
|
**T-Rex Attack** <br> Destroy your windows with a series of violent slashes!| <img src ="docs/pics/trex.gif" />
|
||||||
| **TV Effect** <br> This is a very simple effect to demonstrate that this extension could also be used in a more professional environment. | <img src ="docs/pics/tv.gif" /> |
|
**TV Effect** <br> This is a very simple effect to demonstrate that this extension could also be used in a more professional environment. | <img src ="docs/pics/tv.gif" />
|
||||||
| **TV Glitch** <br> This effect combines the Glitch and the TV Effect. | <img src ="docs/pics/tv-glitch.gif" /> |
|
**TV Glitch** <br> This effect combines the Glitch and the TV Effect. | <img src ="docs/pics/tv-glitch.gif" />
|
||||||
| **Wisps** <br> Let your windows be carried away to the realm of dreams by these little fairies! | <img src ="docs/pics/wisps.gif" /> |
|
**Wisps** <br> Let your windows be carried away to the realm of dreams by these little fairies! | <img src ="docs/pics/wisps.gif" />
|
||||||
| **Your Effect!** <br> The extension is very modular and with a bit of creativity and GLSL knowledge, [you can easily create your own effects](docs/how-to-create-new-effects.md). | [](docs/how-to-create-new-effects.md) |
|
**Your Effect!** <br> The extension is very modular and with a bit of creativity and GLSL knowledge, [you can easily create your own effects](docs/how-to-create-new-effects.md). | [](docs/how-to-create-new-effects.md)
|
||||||
|
|
||||||
## ✅ Supported Versions
|
## ✅ Supported Versions
|
||||||
|
|
||||||
@@ -87,18 +84,50 @@ Below is a table which summarizes the current availability for all effects.
|
|||||||
<tr><td>Wisps</td> <td>✅</td> <td>✅</td> <td>✅</td> <td>✅</td> </tr>
|
<tr><td>Wisps</td> <td>✅</td> <td>✅</td> <td>✅</td> <td>✅</td> </tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
## 💞 Show that you love Burn-My-Windows!
|
|
||||||
|
|
||||||
[](https://ko-fi.com/schneegans)
|
## 💞 These People _love_ this Extension
|
||||||
[](https://github.com/sponsors/Schneegans)
|
|
||||||
[](https://www.paypal.com/donate/?hosted_button_id=3F7UFL8KLVPXE)
|
|
||||||
[](https://schneegans.cb.id)
|
|
||||||
|
|
||||||
While coding new features or translating Burn-My-Windows is the most awesome way to contribute, providing financial support will encourage me to invest my spare time for developing free and open-source software.
|
While [coding new features](docs/how-to-create-new-effects.md) or [translating the extension](https://hosted.weblate.org/engage/burn-my-windows/) are the most awesome ways to contribute, providing financial support will help me stay motivated to invest my spare time to keep the project alive in the future.
|
||||||
|
|
||||||
**These awesome people have already donated to the development of my open-source projects:**
|
<h3 align="center">🥇 Current Gold Sponsors</h3>
|
||||||
|
<p align="center">
|
||||||
|
<a href="https://github.com/D3vil0p3r">D3vil0p3r</a><br>
|
||||||
|
Maxence Sebald<br>
|
||||||
|
</p>
|
||||||
|
|
||||||
[](https://schneegans.github.io/sponsors/)
|
<h3 align="center">🥈 Current Silver Sponsors</h3>
|
||||||
|
<p align="center">
|
||||||
|
<a href="https://github.com/danielheadbang">@danielheadbang</a><br>
|
||||||
|
<a href="https://github.com/castrojo">Jorge Castro</a><br>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h3 align="center">🥉 Current Bronze Sponsors</h3>
|
||||||
|
<p align="center">
|
||||||
|
<a href='https://github.com/SubOptimal'>@SubOptimal</a><br>
|
||||||
|
<a href='https://github.com/vlazic'>@vlazic</a><br>
|
||||||
|
<!-- <a href="https://github.com/sponsors/Schneegans">Become the first!</a><br> -->
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h3 align="center">🏅 Previous Sponsors and One-Time Donators</h3>
|
||||||
|
<p align="center">
|
||||||
|
<a href="https://github.com/dennis1248">Dennis ten Hoove</a><br>
|
||||||
|
<a href="https://github.com/MRR-dev">@MRR-dev</a><br>
|
||||||
|
<a href='https://github.com/AngelBrielez'>Angel Brielez</a>
|
||||||
|
<a href='https://github.com/taconomix'>@taconomix</a><br>
|
||||||
|
<a href='https://github.com/enolive'>@enolive</a><br>
|
||||||
|
<a href="https://github.com/Aggraxis">@Aggraxis</a><br>
|
||||||
|
<a href="https://twitter.com/tjiiik">tj3k</a><br>
|
||||||
|
<a href="https://github.com/wolfyrion">@wolfyrion</a><br>
|
||||||
|
<a href="https://github.com/MrTomRod">@MrTomRod</a><br>
|
||||||
|
Pouhiou<br>
|
||||||
|
DAPREMONT Christophe<br>
|
||||||
|
<a href="https://github.com/manero6">@manero6</a><br>
|
||||||
|
<a href="https://github.com/RickStanley">@RickStanley</a><br>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
|
||||||
|
Do you want to show that you love it too? You may <a href="https://github.com/sponsors/Schneegans">become a sponsor for as little as 1$ / month</a>!
|
||||||
|
If you like this extension, you may also want to try one of my other GNOME extensions: [🧊 Desktop-Cube](https://github.com/Schneegans/Desktop-Cube) or [🍰 Fly-Pie](https://github.com/Schneegans/Fly-Pie/)!
|
||||||
|
|
||||||
## ⬇️ Installation (GNOME)
|
## ⬇️ Installation (GNOME)
|
||||||
|
|
||||||
@@ -128,7 +157,7 @@ gnome-extensions install burn-my-windows@schneegans.github.com.zip
|
|||||||
|
|
||||||
Then restart GNOME Shell with <kbd>Alt</kbd> + <kbd>F2</kbd>, <kbd>r</kbd> + <kbd>Enter</kbd>.
|
Then restart GNOME Shell with <kbd>Alt</kbd> + <kbd>F2</kbd>, <kbd>r</kbd> + <kbd>Enter</kbd>.
|
||||||
Or logout / login if you are on Wayland.
|
Or logout / login if you are on Wayland.
|
||||||
Then you can enable the extension with the _Gnome Tweak Tool_, the _Extensions_ application or with this command:
|
Then you can enable the extension with the *Gnome Tweak Tool*, the *Extensions* application or with this command:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
gnome-extensions enable burn-my-windows@schneegans.github.com
|
gnome-extensions enable burn-my-windows@schneegans.github.com
|
||||||
@@ -144,12 +173,6 @@ git clone https://github.com/Schneegans/Burn-My-Windows.git
|
|||||||
cd Burn-My-Windows
|
cd Burn-My-Windows
|
||||||
```
|
```
|
||||||
|
|
||||||
If your GNOME Shell version is <= 45, you will have to checkout the `gnome-3.36-44` branch:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
git checkout gnome-3.36-44
|
|
||||||
```
|
|
||||||
|
|
||||||
Now you will have to install the extension.
|
Now you will have to install the extension.
|
||||||
The `make` command below compiles the locales, schemas and resources, creates a zip file of the extension and finally installs it with the `gnome-extensions` tool.
|
The `make` command below compiles the locales, schemas and resources, creates a zip file of the extension and finally installs it with the `gnome-extensions` tool.
|
||||||
|
|
||||||
@@ -159,41 +182,40 @@ make install
|
|||||||
|
|
||||||
Then restart GNOME Shell with <kbd>Alt</kbd> + <kbd>F2</kbd>, <kbd>r</kbd> + <kbd>Enter</kbd>.
|
Then restart GNOME Shell with <kbd>Alt</kbd> + <kbd>F2</kbd>, <kbd>r</kbd> + <kbd>Enter</kbd>.
|
||||||
Or logout / login if you are on Wayland.
|
Or logout / login if you are on Wayland.
|
||||||
Then you can enable the extension with the _Gnome Tweak Tool_, the _Extensions_ application or with this command:
|
Then you can enable the extension with the *Gnome Tweak Tool*, the *Extensions* application or with this command:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
gnome-extensions enable burn-my-windows@schneegans.github.com
|
gnome-extensions enable burn-my-windows@schneegans.github.com
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
## ⬇️ Installation (KWin)
|
## ⬇️ Installation (KWin)
|
||||||
|
|
||||||
You can either download the effects from the KDE store (a), download a stable version from GitHub (b) or clone the latest version directly with `git` (c).
|
You can either download the effects from the KDE store (a), download a stable version from GitHub (b) or clone the latest version directly with `git` (c).
|
||||||
|
|
||||||
> [!IMPORTANT]
|
:warning: **You need at least KWin 5.25.0 for the Burn-My-Windows effects.**
|
||||||
> You need at least KWin 5.25.0 for the Burn-My-Windows effects.
|
|
||||||
|
|
||||||
> [!NOTE]
|
:warning: **If the color picker widgets in the effect settings do not work for you, you may have to install a package called `libkf5widgetsaddons-dev` (Kubuntu, KDE Neon, ...) or `kf5-kwidgetsaddons-devel`, `kwidgetsaddons-devel` (Fedora, OpenSuse, ...).**
|
||||||
> If the color picker widgets in the effect settings do not work for you, you may have to install a package called `libkf5widgetsaddons-dev` (Kubuntu, KDE Neon, ...) or `kf5-kwidgetsaddons-devel`, `kwidgetsaddons-devel` (Fedora, OpenSuse, ...).
|
|
||||||
|
|
||||||
### a) Download from the KDE Store
|
### a) Download from the KDE Store
|
||||||
|
|
||||||
Here are links to all effects which are currently available in the KDE store;
|
Here are links to all effects which are currently available in the KDE store;
|
||||||
|
|
||||||
- [Doom](https://store.kde.org/p/1898739)
|
* [Doom](https://store.kde.org/p/1898739)
|
||||||
- [Energize A](https://store.kde.org/p/1884310)
|
* [Energize A](https://store.kde.org/p/1884310)
|
||||||
- [Energize B](https://store.kde.org/p/1884311)
|
* [Energize B](https://store.kde.org/p/1884311)
|
||||||
- [Fire](https://store.kde.org/p/1884307)
|
* [Fire](https://store.kde.org/p/1884307)
|
||||||
- [Glide](https://store.kde.org/p/1935778)
|
* [Glide](https://store.kde.org/p/1935778)
|
||||||
- [Glitch](https://store.kde.org/p/1972813)
|
* [Glitch](https://store.kde.org/p/1972813)
|
||||||
- [Hexagon](https://store.kde.org/p/1884309)
|
* [Hexagon](https://store.kde.org/p/1884309)
|
||||||
- [Incinerate](https://store.kde.org/p/1861183)
|
* [Incinerate](https://store.kde.org/p/1861183)
|
||||||
- [Pixelate](https://store.kde.org/p/1898742)
|
* [Pixelate](https://store.kde.org/p/1898742)
|
||||||
- [Pixel Wheel](https://store.kde.org/p/1898746)
|
* [Pixel Wheel](https://store.kde.org/p/1898746)
|
||||||
- [Pixel Wipe](https://store.kde.org/p/1898748)
|
* [Pixel Wipe](https://store.kde.org/p/1898748)
|
||||||
- [Portal](https://store.kde.org/p/1959879)
|
* [Portal](https://store.kde.org/p/1959879)
|
||||||
- [TV-Effect](https://store.kde.org/p/1884312)
|
* [TV-Effect](https://store.kde.org/p/1884312)
|
||||||
- [TV-Glitch](https://store.kde.org/p/1982142)
|
* [TV-Glitch](https://store.kde.org/p/1982142)
|
||||||
- [Wisps](https://store.kde.org/p/1884313)
|
* [Wisps](https://store.kde.org/p/1884313)
|
||||||
|
|
||||||
You can also directly get the effects from within your system settings.
|
You can also directly get the effects from within your system settings.
|
||||||
Just go to your System Settings, then "Workspace Behavior", and "Desktop Effects". Then click on "Get new Desktop Effects...".
|
Just go to your System Settings, then "Workspace Behavior", and "Desktop Effects". Then click on "Get new Desktop Effects...".
|
||||||
@@ -215,6 +237,7 @@ tar -xf burn_my_windows_kwin4.tar.gz -C ~/.local/share/kwin/effects
|
|||||||
|
|
||||||
Then select the desired effects in the system settings under "Desktop Effects".
|
Then select the desired effects in the system settings under "Desktop Effects".
|
||||||
|
|
||||||
|
|
||||||
### c) Cloning the Latest Version with `git`
|
### c) Cloning the Latest Version with `git`
|
||||||
|
|
||||||
Execute the clone command below where you want to have the source code of the extension.
|
Execute the clone command below where you want to have the source code of the extension.
|
||||||
@@ -235,29 +258,30 @@ tar -xf kwin/burn_my_windows_kwin4.tar.gz -C ~/.local/share/kwin/effects
|
|||||||
That's it!
|
That's it!
|
||||||
You can now select the desired effects in the system settings under "Desktop Effects".
|
You can now select the desired effects in the system settings under "Desktop Effects".
|
||||||
|
|
||||||
|
|
||||||
## :octocat: I want to contribute!
|
## :octocat: I want to contribute!
|
||||||
|
|
||||||
That's great!
|
That's great!
|
||||||
Most likely, you want to [create a new effect](docs/how-to-create-new-effects.md) or to [translate the extension](https://hosted.weblate.org/engage/burn-my-windows/)?
|
Most likely, you want to [create a new effect](docs/how-to-create-new-effects.md) or to [translate the extension](https://hosted.weblate.org/engage/burn-my-windows/)?
|
||||||
Here are some basic rules to get you started:
|
Here are some basic rules to get you started:
|
||||||
Commits should start with a Capital letter and should be written in present tense (e.g. **:tada: Add cool new feature** instead of **:tada: Added cool new feature**).
|
Commits should start with a Capital letter and should be written in present tense (e.g. __:tada: Add cool new feature__ instead of __:tada: Added cool new feature__).
|
||||||
You should also start your commit message with **one** applicable emoji.
|
You should also start your commit message with **one** applicable emoji.
|
||||||
This does not only look great but also makes you rethink what to add to a commit. Make many but small commits!
|
This does not only look great but also makes you rethink what to add to a commit. Make many but small commits!
|
||||||
|
|
||||||
| Emoji | Description |
|
Emoji | Description
|
||||||
| --------------------------------------------------------- | ------------------------------------------------------------------------- |
|
------|------------
|
||||||
| :tada: `:tada:` | When you added a cool new feature. |
|
:tada: `:tada:` | When you added a cool new feature.
|
||||||
| :wrench: `:wrench:` | When you added a piece of code. |
|
:wrench: `:wrench:` | When you added a piece of code.
|
||||||
| :recycle: `:recycle:` | When you refactored a part of the code. |
|
:recycle: `:recycle:` | When you refactored a part of the code.
|
||||||
| :sparkles: `:sparkles:` | When you applied clang-format. |
|
:sparkles: `:sparkles:` | When you applied clang-format.
|
||||||
| :globe_with_meridians: `:globe_with_meridians:` | When you worked on translations. |
|
:globe_with_meridians: `:globe_with_meridians:` | When you worked on translations.
|
||||||
| :art: `:art:` | When you improved / added assets like themes. |
|
:art: `:art:` | When you improved / added assets like themes.
|
||||||
| :lipstick: `:lipstick:` | When you worked on the UI of the preferences dialog. |
|
:lipstick: `:lipstick:` | When you worked on the UI of the preferences dialog.
|
||||||
| :rocket: `:rocket:` | When you improved performance. |
|
:rocket: `:rocket:` | When you improved performance.
|
||||||
| :memo: `:memo:` | When you wrote documentation. |
|
:memo: `:memo:` | When you wrote documentation.
|
||||||
| :beetle: `:beetle:` | When you fixed a bug. |
|
:beetle: `:beetle:` | When you fixed a bug.
|
||||||
| :revolving_hearts: `:revolving_hearts:` | When a new sponsor is added or credits are updated. |
|
:revolving_hearts: `:revolving_hearts:` | When a new sponsor is added or credits are updated.
|
||||||
| :heavy_check_mark: `:heavy_check_mark:` | When you worked on checks or adjusted the code to be compliant with them. |
|
:heavy_check_mark: `:heavy_check_mark:` | When you worked on checks or adjusted the code to be compliant with them.
|
||||||
| :twisted_rightwards_arrows: `:twisted_rightwards_arrows:` | When you merged a branch. |
|
:twisted_rightwards_arrows: `:twisted_rightwards_arrows:` | When you merged a branch.
|
||||||
| :fire: `:fire:` | When you removed something. |
|
:fire: `:fire:` | When you removed something.
|
||||||
| :truck: `:truck:` | When you moved / renamed something. |
|
:truck: `:truck:` | When you moved / renamed something.
|
||||||
|
|||||||
@@ -104,7 +104,6 @@ Please study this code carefully, all of it is explained with inline comments.
|
|||||||
// provides the standard input:
|
// provides the standard input:
|
||||||
|
|
||||||
// vec2 iTexCoord: Texture coordinates for retrieving the window input color.
|
// vec2 iTexCoord: Texture coordinates for retrieving the window input color.
|
||||||
// bool uIsFullscreen: True if the window is maximized or in fullscreen mode.
|
|
||||||
// bool uForOpening: True if a window-open animation is ongoing, false otherwise.
|
// bool uForOpening: True if a window-open animation is ongoing, false otherwise.
|
||||||
// float uProgress: A value which transitions from 0 to 1 during the animation.
|
// float uProgress: A value which transitions from 0 to 1 during the animation.
|
||||||
// float uDuration: The duration of the current animation in seconds.
|
// float uDuration: The duration of the current animation in seconds.
|
||||||
@@ -163,16 +162,16 @@ void main() {
|
|||||||
// SPDX-FileCopyrightText: Your Name <your@email.com>
|
// SPDX-FileCopyrightText: Your Name <your@email.com>
|
||||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
"use strict";
|
'use strict';
|
||||||
|
|
||||||
import * as utils from "../utils.js";
|
const GObject = imports.gi.GObject;
|
||||||
|
|
||||||
// We import the ShaderFactory only in the Shell process as it is not required in the
|
const _ = imports.gettext.domain('burn-my-windows').gettext;
|
||||||
// preferences process. The preferences process does not create any shader instances, it
|
|
||||||
// only uses the static metadata of the effect.
|
|
||||||
const ShaderFactory = await utils.importInShellOnly("./ShaderFactory.js");
|
|
||||||
|
|
||||||
const _ = await utils.importGettext();
|
const ExtensionUtils = imports.misc.extensionUtils;
|
||||||
|
const Me = imports.misc.extensionUtils.getCurrentExtension();
|
||||||
|
const utils = Me.imports.src.utils;
|
||||||
|
const ShaderFactory = Me.imports.src.ShaderFactory.ShaderFactory;
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////////////////
|
||||||
// This effect ... //
|
// This effect ... //
|
||||||
@@ -182,21 +181,21 @@ const _ = await utils.importGettext();
|
|||||||
// The effect class can be used to get some metadata (like the effect's name or supported
|
// The effect class can be used to get some metadata (like the effect's name or supported
|
||||||
// GNOME Shell versions), to initialize the respective page of the settings dialog, as
|
// GNOME Shell versions), to initialize the respective page of the settings dialog, as
|
||||||
// well as to create the actual shader for the effect.
|
// well as to create the actual shader for the effect.
|
||||||
export default class Effect {
|
var SimpleFade = class {
|
||||||
|
|
||||||
// The constructor creates a ShaderFactory which will be used by extension.js to create
|
// The constructor creates a ShaderFactory which will be used by extension.js to create
|
||||||
// shader instances for this effect. The shaders will be automagically created using the
|
// shader instances for this effect. The shaders will be automagically created using the
|
||||||
// GLSL file in resources/shaders/<nick>.glsl. The callback will be called for each
|
// GLSL file in resources/shaders/<nick>.glsl. The callback will be called for each
|
||||||
// newly created shader instance.
|
// newly created shader instance.
|
||||||
constructor() {
|
constructor() {
|
||||||
this.shaderFactory = new ShaderFactory(Effect.getNick(), (shader) => {
|
this.shaderFactory = new ShaderFactory(this.getNick(), (shader) => {
|
||||||
|
|
||||||
// Store uniform locations of newly created shaders.
|
// Store uniform locations of newly created shaders.
|
||||||
shader._uFadeWidth = shader.get_uniform_location("uFadeWidth");
|
shader._uFadeWidth = shader.get_uniform_location('uFadeWidth');
|
||||||
|
|
||||||
// Write all uniform values at the start of each animation.
|
// Write all uniform values at the start of each animation.
|
||||||
shader.connect("begin-animation", (shader, settings) => {
|
shader.connect('begin-animation', (shader, settings) => {
|
||||||
shader.set_uniform_float(shader._uFadeWidth, 1, [
|
shader.set_uniform_float(shader._uFadeWidth, 1, [settings.get_double('simple-fade-width')]);
|
||||||
settings.get_double("simple-fade-width"),
|
|
||||||
]);
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -204,7 +203,7 @@ export default class Effect {
|
|||||||
// ---------------------------------------------------------------------------- metadata
|
// ---------------------------------------------------------------------------- metadata
|
||||||
|
|
||||||
// The effect is available on all GNOME Shell versions supported by this extension.
|
// The effect is available on all GNOME Shell versions supported by this extension.
|
||||||
static getMinShellVersion() {
|
getMinShellVersion() {
|
||||||
return [3, 36];
|
return [3, 36];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -213,21 +212,21 @@ export default class Effect {
|
|||||||
// effect is enabled currently (e.g. '*-enable-effect'), and its animation time
|
// effect is enabled currently (e.g. '*-enable-effect'), and its animation time
|
||||||
// (e.g. '*-animation-time'). Also, the shader file and the settings UI files should be
|
// (e.g. '*-animation-time'). Also, the shader file and the settings UI files should be
|
||||||
// named likes this.
|
// named likes this.
|
||||||
static getNick() {
|
getNick() {
|
||||||
return "simple-fade";
|
return 'simple-fade';
|
||||||
}
|
}
|
||||||
|
|
||||||
// This will be shown in the sidebar of the preferences dialog as well as in the
|
// This will be shown in the sidebar of the preferences dialog as well as in the
|
||||||
// drop-down menus where the user can choose the effect.
|
// drop-down menus where the user can choose the effect.
|
||||||
static getLabel() {
|
getLabel() {
|
||||||
return _("Simple Fade Effect");
|
return _('Simple Fade Effect');
|
||||||
}
|
}
|
||||||
|
|
||||||
// -------------------------------------------------------------------- API for prefs.js
|
// -------------------------------------------------------------------- API for prefs.js
|
||||||
|
|
||||||
// This is called by the preferences dialog whenever a new effect profile is loaded. It
|
// This is called by the preferences dialog whenever a new effect profile is loaded. It
|
||||||
// binds all user interface elements to the respective settings keys of the profile.
|
// binds all user interface elements to the respective settings keys of the profile.
|
||||||
static bindPreferences(dialog) {
|
bindPreferences(dialog) {
|
||||||
// Empty for now... Code is added here later in the tutorial!
|
// Empty for now... Code is added here later in the tutorial!
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -236,8 +235,8 @@ export default class Effect {
|
|||||||
// The getActorScale() is called from extension.js to adjust the actor's size during the
|
// The getActorScale() is called from extension.js to adjust the actor's size during the
|
||||||
// animation. This is useful if the effect requires drawing something beyond the usual
|
// animation. This is useful if the effect requires drawing something beyond the usual
|
||||||
// bounds of the actor. This only works for GNOME 3.38+.
|
// bounds of the actor. This only works for GNOME 3.38+.
|
||||||
static getActorScale(settings, forOpening, actor) {
|
getActorScale(settings) {
|
||||||
return { x: 1.0, y: 1.0 };
|
return {x: 1.0, y: 1.0};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
@@ -251,17 +250,15 @@ Both, [`extension.js`](../extension.js) and [`prefs.js`](../prefs.js) define an
|
|||||||
Like this:
|
Like this:
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
import SimpleFade from './src/effects/SimpleFade.js';
|
|
||||||
|
|
||||||
...
|
|
||||||
|
|
||||||
const ALL_EFFECTS = [
|
const ALL_EFFECTS = [
|
||||||
...
|
...
|
||||||
new SimpleFade(),
|
new Me.imports.src.effects.SimpleFade.SimpleFade(),
|
||||||
...
|
...
|
||||||
];
|
];
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### Testing your Effect
|
### Testing your Effect
|
||||||
|
|
||||||
Now you can call `make install` and restart GNOME Shell with <kbd>Alt</kbd> + <kbd>F2</kbd>, <kbd>r</kbd> + <kbd>Enter</kbd>.
|
Now you can call `make install` and restart GNOME Shell with <kbd>Alt</kbd> + <kbd>F2</kbd>, <kbd>r</kbd> + <kbd>Enter</kbd>.
|
||||||
@@ -277,11 +274,272 @@ gnome-extensions prefs burn-my-windows@schneegans.github.com
|
|||||||
## Adding a Preferences Page
|
## Adding a Preferences Page
|
||||||
|
|
||||||
There should be two sliders in this example: The animation duration and the width of the fading gradient.
|
There should be two sliders in this example: The animation duration and the width of the fading gradient.
|
||||||
Just save the code below to `resources/ui/adw/simple-fade.ui`.
|
|
||||||
|
If your effect supports GNOME Shell 3.3x _and_ GNOME Shell 40+, you will have to provide three `*.ui` files for this.
|
||||||
|
This is because starting with GNOME Shell 40, the preference dialog uses GTK4, before it used to use GTK3.
|
||||||
|
Starting with GNOME Shell 42, it uses `libadwaita` which requires different UI files again.
|
||||||
|
|
||||||
|
_:information_source: If you do not have the means to test your effect on different versions of GNOME, feel free to submit a pull request for one GNOME version only, I may then port your effect to other GNOME versions!_
|
||||||
|
|
||||||
|
Just save the code below to `resources/ui/gtk3/simple-fade.ui`, `resources/ui/gtk4/simple-fade.ui`, and `resources/ui/adw/simple-fade.ui` respectively.
|
||||||
Remember to replace any occurrence of `simple-fade` with your effect's nick-name!
|
Remember to replace any occurrence of `simple-fade` with your effect's nick-name!
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>Expand this to show the UI code.</summary>
|
<summary>Expand this to show the GTK3 code.</summary>
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
SPDX-FileCopyrightText: Your Name <your@email.com>
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
-->
|
||||||
|
|
||||||
|
<interface domain="burn-my-windows">
|
||||||
|
|
||||||
|
<object class="GtkAdjustment" id="simple-fade-animation-time">
|
||||||
|
<property name="upper">5000</property>
|
||||||
|
<property name="lower">100</property>
|
||||||
|
<property name="step-increment">10</property>
|
||||||
|
<property name="page-increment">100</property>
|
||||||
|
</object>
|
||||||
|
|
||||||
|
<object class="GtkAdjustment" id="simple-fade-width">
|
||||||
|
<property name="upper">1</property>
|
||||||
|
<property name="lower">0</property>
|
||||||
|
<property name="step-increment">0.01</property>
|
||||||
|
<property name="page-increment">0.1</property>
|
||||||
|
</object>
|
||||||
|
|
||||||
|
<object class="GtkRevealer" id="simple-fade-prefs">
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBox">
|
||||||
|
<property name="selection-mode">none</property>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Animation Time [ms]</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">0</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">simple-fade-animation-time</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-simple-fade-animation-time">
|
||||||
|
<child>
|
||||||
|
<object class="GtkImage">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="icon-size">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Fade Width</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">2</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">simple-fade-width</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-simple-fade-width">
|
||||||
|
<child>
|
||||||
|
<object class="GtkImage">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="icon-size">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
|
||||||
|
</interface>
|
||||||
|
```
|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>Expand this to show the GTK4 code.</summary>
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
SPDX-FileCopyrightText: Your Name <your@email.com>
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
-->
|
||||||
|
|
||||||
|
<interface domain="burn-my-windows">
|
||||||
|
|
||||||
|
<object class="GtkAdjustment" id="simple-fade-animation-time">
|
||||||
|
<property name="upper">5000</property>
|
||||||
|
<property name="lower">100</property>
|
||||||
|
<property name="step-increment">10</property>
|
||||||
|
<property name="page-increment">100</property>
|
||||||
|
</object>
|
||||||
|
|
||||||
|
<object class="GtkAdjustment" id="simple-fade-width">
|
||||||
|
<property name="upper">1</property>
|
||||||
|
<property name="lower">0</property>
|
||||||
|
<property name="step-increment">0.01</property>
|
||||||
|
<property name="page-increment">0.1</property>
|
||||||
|
</object>
|
||||||
|
|
||||||
|
<object class="GtkRevealer" id="simple-fade-prefs">
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBox">
|
||||||
|
<property name="selection-mode">none</property>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Animation Time [ms]</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">0</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">simple-fade-animation-time</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-simple-fade-animation-time">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Fade Width</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">2</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">simple-fade-width</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-simple-fade-width">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
|
||||||
|
</interface>
|
||||||
|
```
|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>Expand this to show the libadwaita code.</summary>
|
||||||
|
|
||||||
```xml
|
```xml
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
@@ -370,10 +628,10 @@ SPDX-License-Identifier: GPL-3.0-or-later
|
|||||||
|
|
||||||
### Loading the Preferences Page
|
### Loading the Preferences Page
|
||||||
|
|
||||||
In order to load the above `*.ui` file, add the following code to your effect's `bindPreferences()` method.
|
In order to load the above `*.ui` files, add the following code to your effect's `bindPreferences()` method.
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
static bindPreferences(dialog) {
|
bindPreferences(dialog) {
|
||||||
// These connect the settings to the UI elements. Have a look at prefs.js
|
// These connect the settings to the UI elements. Have a look at prefs.js
|
||||||
// on how to bind other types of UI elements.
|
// on how to bind other types of UI elements.
|
||||||
dialog.bindAdjustment('simple-fade-animation-time');
|
dialog.bindAdjustment('simple-fade-animation-time');
|
||||||
|
|||||||
@@ -14,41 +14,26 @@
|
|||||||
|
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
import Gio from 'gi://Gio';
|
const {Clutter, Gio, Meta} = imports.gi;
|
||||||
import Meta from 'gi://Meta';
|
|
||||||
|
|
||||||
import {fromVersion26} from './src/migrate.js';
|
const Main = imports.ui.main;
|
||||||
import {ProfileManager} from './src/ProfileManager.js';
|
const Workspace = imports.ui.workspace.Workspace;
|
||||||
import {WindowPicker} from './src/WindowPicker.js';
|
const WindowManager = imports.ui.windowManager.WindowManager;
|
||||||
import * as utils from './src/utils.js';
|
|
||||||
|
|
||||||
import Apparition from './src/effects/Apparition.js';
|
// The WindowPreview class is only available on GNOME Shell 3.38+;
|
||||||
import BrokenGlass from './src/effects/BrokenGlass.js';
|
let WindowPreview = null;
|
||||||
import Doom from './src/effects/Doom.js';
|
try {
|
||||||
import EnergizeA from './src/effects/EnergizeA.js';
|
WindowPreview = imports.ui.windowPreview.WindowPreview;
|
||||||
import EnergizeB from './src/effects/EnergizeB.js';
|
} catch (error) {
|
||||||
import Fire from './src/effects/Fire.js';
|
// Nothing to be done, we are on GNOME Shell 3.36.
|
||||||
import Glide from './src/effects/Glide.js';
|
}
|
||||||
import Glitch from './src/effects/Glitch.js';
|
|
||||||
import Hexagon from './src/effects/Hexagon.js';
|
|
||||||
import Incinerate from './src/effects/Incinerate.js';
|
|
||||||
import Matrix from './src/effects/Matrix.js';
|
|
||||||
import PaintBrush from './src/effects/PaintBrush.js';
|
|
||||||
import Pixelate from './src/effects/Pixelate.js';
|
|
||||||
import PixelWheel from './src/effects/PixelWheel.js';
|
|
||||||
import PixelWipe from './src/effects/PixelWipe.js';
|
|
||||||
import Portal from './src/effects/Portal.js';
|
|
||||||
import SnapOfDisintegration from './src/effects/SnapOfDisintegration.js';
|
|
||||||
import TRexAttack from './src/effects/TRexAttack.js';
|
|
||||||
import TVEffect from './src/effects/TVEffect.js';
|
|
||||||
import TVGlitch from './src/effects/TVGlitch.js';
|
|
||||||
import Wisps from './src/effects/Wisps.js';
|
|
||||||
|
|
||||||
import * as Main from 'resource:///org/gnome/shell/ui/main.js';
|
|
||||||
import {Workspace} from 'resource:///org/gnome/shell/ui/workspace.js';
|
|
||||||
import {WindowPreview} from 'resource:///org/gnome/shell/ui/windowPreview.js';
|
|
||||||
import {Extension} from 'resource:///org/gnome/shell/extensions/extension.js';
|
|
||||||
|
|
||||||
|
const ExtensionUtils = imports.misc.extensionUtils;
|
||||||
|
const Me = imports.misc.extensionUtils.getCurrentExtension();
|
||||||
|
const migrate = Me.imports.src.migrate;
|
||||||
|
const utils = Me.imports.src.utils;
|
||||||
|
const ProfileManager = Me.imports.src.ProfileManager.ProfileManager;
|
||||||
|
const WindowPicker = Me.imports.src.WindowPicker.WindowPicker;
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////////////////
|
||||||
// This extensions modifies the window-close and window-open animations with all kinds //
|
// This extensions modifies the window-close and window-open animations with all kinds //
|
||||||
@@ -59,7 +44,7 @@ import {Extension} from 'resource:///org/gnome/shell/extensions/extension.js';
|
|||||||
// to get this working. For more details, read the other comments in this file... //
|
// to get this working. For more details, read the other comments in this file... //
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
export default class BurnMyWindows extends Extension {
|
class Extension {
|
||||||
|
|
||||||
// ------------------------------------------------------------------------ public stuff
|
// ------------------------------------------------------------------------ public stuff
|
||||||
|
|
||||||
@@ -69,47 +54,46 @@ export default class BurnMyWindows extends Extension {
|
|||||||
|
|
||||||
// New effects must be registered here and in prefs.js.
|
// New effects must be registered here and in prefs.js.
|
||||||
this._ALL_EFFECTS = [
|
this._ALL_EFFECTS = [
|
||||||
new Apparition(),
|
new Me.imports.src.effects.Apparition.Apparition(),
|
||||||
new BrokenGlass(),
|
new Me.imports.src.effects.BrokenGlass.BrokenGlass(),
|
||||||
new Doom(),
|
new Me.imports.src.effects.Doom.Doom(),
|
||||||
new EnergizeA(),
|
new Me.imports.src.effects.EnergizeA.EnergizeA(),
|
||||||
new EnergizeB(),
|
new Me.imports.src.effects.EnergizeB.EnergizeB(),
|
||||||
new Fire(),
|
new Me.imports.src.effects.Fire.Fire(),
|
||||||
new Glide(),
|
new Me.imports.src.effects.Glide.Glide(),
|
||||||
new Glitch(),
|
new Me.imports.src.effects.Glitch.Glitch(),
|
||||||
new Hexagon(),
|
new Me.imports.src.effects.Hexagon.Hexagon(),
|
||||||
new Incinerate(),
|
new Me.imports.src.effects.Incinerate.Incinerate(),
|
||||||
new Matrix(),
|
new Me.imports.src.effects.Matrix.Matrix(),
|
||||||
new PaintBrush(),
|
new Me.imports.src.effects.PaintBrush.PaintBrush(),
|
||||||
new Pixelate(),
|
new Me.imports.src.effects.Pixelate.Pixelate(),
|
||||||
new PixelWheel(),
|
new Me.imports.src.effects.PixelWheel.PixelWheel(),
|
||||||
new PixelWipe(),
|
new Me.imports.src.effects.PixelWipe.PixelWipe(),
|
||||||
new Portal(),
|
new Me.imports.src.effects.Portal.Portal(),
|
||||||
new SnapOfDisintegration(),
|
new Me.imports.src.effects.SnapOfDisintegration.SnapOfDisintegration(),
|
||||||
new TRexAttack(),
|
new Me.imports.src.effects.TRexAttack.TRexAttack(),
|
||||||
new TVEffect(),
|
new Me.imports.src.effects.TVEffect.TVEffect(),
|
||||||
new TVGlitch(),
|
new Me.imports.src.effects.TVGlitch.TVGlitch(),
|
||||||
new Wisps(),
|
new Me.imports.src.effects.Wisps.Wisps(),
|
||||||
];
|
];
|
||||||
|
|
||||||
// Load all of our resources.
|
// Load all of our resources.
|
||||||
this._resources =
|
this._resources = Gio.Resource.load(Me.path + '/resources/burn-my-windows.gresource');
|
||||||
Gio.Resource.load(this.path + '/resources/burn-my-windows.gresource');
|
|
||||||
Gio.resources_register(this._resources);
|
Gio.resources_register(this._resources);
|
||||||
|
|
||||||
// Store a reference to the settings object.
|
// Store a reference to the settings object.
|
||||||
this._settings = this.getSettings();
|
this._settings = ExtensionUtils.getSettings();
|
||||||
|
|
||||||
// Now we check whether the extension settings need to be migrated from a previous
|
// Now we check whether the extension settings need to be migrated from a previous
|
||||||
// version. If this is the case, we defer the profile loading until this is finished.
|
// version. If this is the case, we defer the profile loading until this is finished.
|
||||||
const lastVersion = this._settings.get_int('last-extension-version');
|
const lastVersion = this._settings.get_int('last-extension-version');
|
||||||
if (lastVersion < this.metadata.version) {
|
if (lastVersion < Me.metadata.version) {
|
||||||
if (lastVersion <= 26) {
|
if (lastVersion <= 26) {
|
||||||
// If the profile migration fails for some reason, the callback will create a
|
// If the profile migration fails for some reason, the callback will create a
|
||||||
// default profile instead.
|
// default profile instead.
|
||||||
fromVersion26().finally(() => {
|
migrate.fromVersion26().finally(() => {
|
||||||
this._loadProfiles();
|
this._loadProfiles();
|
||||||
this._settings.set_int('last-extension-version', this.metadata.version);
|
this._settings.set_int('last-extension-version', Me.metadata.version);
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
this._loadProfiles();
|
this._loadProfiles();
|
||||||
@@ -251,8 +235,20 @@ export default class BurnMyWindows extends Extension {
|
|||||||
// the window as well.
|
// the window as well.
|
||||||
Workspace.prototype._addWindowClone = function(...params) {
|
Workspace.prototype._addWindowClone = function(...params) {
|
||||||
const clone = extensionThis._origAddWindowClone.apply(this, params);
|
const clone = extensionThis._origAddWindowClone.apply(this, params);
|
||||||
const container = clone.window_container;
|
|
||||||
const realWindow = params[0].get_compositor_private();
|
// The parameters of this method changed a bit through the versions...
|
||||||
|
let realWindow, container;
|
||||||
|
|
||||||
|
if (utils.shellVersionIs(3, 36)) {
|
||||||
|
container = clone[0];
|
||||||
|
realWindow = container.realWindow;
|
||||||
|
} else if (utils.shellVersionIs(3, 38)) {
|
||||||
|
container = clone._windowContainer;
|
||||||
|
realWindow = params[0].get_compositor_private();
|
||||||
|
} else {
|
||||||
|
container = clone.window_container;
|
||||||
|
realWindow = params[0].get_compositor_private();
|
||||||
|
}
|
||||||
|
|
||||||
// Store the overview clone as temporary members of the real window actor. When we
|
// Store the overview clone as temporary members of the real window actor. When we
|
||||||
// set up the effect, we will check for the existence of these and enlarge the clone
|
// set up the effect, we will check for the existence of these and enlarge the clone
|
||||||
@@ -266,6 +262,16 @@ export default class BurnMyWindows extends Extension {
|
|||||||
delete realWindow._bmwOverviewCloneContainer;
|
delete realWindow._bmwOverviewCloneContainer;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// This is actually needed for the window-close animation on GNOME Shell 3.36.
|
||||||
|
// On GNOME 3.36, the window clone's 'destroy' handler only calls _removeWindowClone
|
||||||
|
// but not _doRemoveWindow. The latter is required to trigger the repositioning of
|
||||||
|
// the overview window layout. Therefore we call this method in addition.
|
||||||
|
// https://gitlab.gnome.org/GNOME/gnome-shell/-/blob/gnome-3-36/js/ui/workspace.js#L1877
|
||||||
|
// https://gitlab.gnome.org/GNOME/gnome-shell/-/blob/main/js/ui/workspace.js#L1363
|
||||||
|
if (utils.shellVersionIs(3, 36)) {
|
||||||
|
container.connect('destroy', () => this._doRemoveWindow(container.metaWindow));
|
||||||
|
}
|
||||||
|
|
||||||
return clone;
|
return clone;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -295,7 +301,9 @@ export default class BurnMyWindows extends Extension {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// With the code below, we hide the window-overlay (icon, label, close button) in the
|
// With the code below, we hide the window-overlay (icon, label, close button) in the
|
||||||
// overview once the close-animation is running.
|
// overview once the close-animation is running. As the WindowPreview class is only
|
||||||
|
// available on GNOME 3.38 and beyond, we cannot hide the overlay on GNOME 3.36.
|
||||||
|
if (WindowPreview) {
|
||||||
|
|
||||||
// We will monkey-patch these methods.
|
// We will monkey-patch these methods.
|
||||||
this._origDeleteAll = WindowPreview.prototype._deleteAll;
|
this._origDeleteAll = WindowPreview.prototype._deleteAll;
|
||||||
@@ -340,6 +348,7 @@ export default class BurnMyWindows extends Extension {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// This function could be called after the extension is uninstalled, disabled in GNOME
|
// This function could be called after the extension is uninstalled, disabled in GNOME
|
||||||
// Tweaks, when you log out or when the screen locks.
|
// Tweaks, when you log out or when the screen locks.
|
||||||
@@ -363,9 +372,11 @@ export default class BurnMyWindows extends Extension {
|
|||||||
Main.wm._shouldAnimateActor = this._origShouldAnimateActor;
|
Main.wm._shouldAnimateActor = this._origShouldAnimateActor;
|
||||||
Main.wm._waitForOverviewToHide = this._origWaitForOverviewToHide;
|
Main.wm._waitForOverviewToHide = this._origWaitForOverviewToHide;
|
||||||
|
|
||||||
|
if (WindowPreview) {
|
||||||
WindowPreview.prototype._deleteAll = this._origDeleteAll;
|
WindowPreview.prototype._deleteAll = this._origDeleteAll;
|
||||||
WindowPreview.prototype._restack = this._origRestack;
|
WindowPreview.prototype._restack = this._origRestack;
|
||||||
WindowPreview.prototype._init = this._origInit;
|
WindowPreview.prototype._init = this._origInit;
|
||||||
|
}
|
||||||
|
|
||||||
this._settings = null;
|
this._settings = null;
|
||||||
}
|
}
|
||||||
@@ -381,7 +392,7 @@ export default class BurnMyWindows extends Extension {
|
|||||||
_loadProfiles() {
|
_loadProfiles() {
|
||||||
|
|
||||||
// Get all currently available profiles.
|
// Get all currently available profiles.
|
||||||
const profileManager = new ProfileManager(this.metadata);
|
const profileManager = new ProfileManager();
|
||||||
this._profiles = profileManager.getProfiles();
|
this._profiles = profileManager.getProfiles();
|
||||||
|
|
||||||
// Whenever the properties of a profile is changed in the settings, we may have to
|
// Whenever the properties of a profile is changed in the settings, we may have to
|
||||||
@@ -437,8 +448,7 @@ export default class BurnMyWindows extends Extension {
|
|||||||
|
|
||||||
if (previewNick != '') {
|
if (previewNick != '') {
|
||||||
const activeProfile = this._settings.get_string('active-profile');
|
const activeProfile = this._settings.get_string('active-profile');
|
||||||
effect =
|
effect = this._ALL_EFFECTS.find(effect => effect.getNick() == previewNick);
|
||||||
this._ALL_EFFECTS.find(effect => effect.constructor.getNick() == previewNick);
|
|
||||||
profile = this._profiles.find(p => p.path == activeProfile);
|
profile = this._profiles.find(p => p.path == activeProfile);
|
||||||
|
|
||||||
// Only preview the effect until the preview window is closed.
|
// Only preview the effect until the preview window is closed.
|
||||||
@@ -491,7 +501,7 @@ export default class BurnMyWindows extends Extension {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// If the profile is still matching, we also check the color scheme.
|
// If the profile is still matching, we also check the color scheme.
|
||||||
if (matches && profileColorScheme != 0) {
|
if (matches && profileColorScheme != 0 && utils.shellVersionIsAtLeast(42, 0)) {
|
||||||
const colorScheme = this._shellSettings.get_string('color-scheme');
|
const colorScheme = this._shellSettings.get_string('color-scheme');
|
||||||
matches &= (profileColorScheme == 1 && colorScheme == 'default') ||
|
matches &= (profileColorScheme == 1 && colorScheme == 'default') ||
|
||||||
(profileColorScheme == 2 && colorScheme == 'prefer-dark');
|
(profileColorScheme == 2 && colorScheme == 'prefer-dark');
|
||||||
@@ -521,8 +531,7 @@ export default class BurnMyWindows extends Extension {
|
|||||||
|
|
||||||
// Create a list of all enabled effects of this profile.
|
// Create a list of all enabled effects of this profile.
|
||||||
const enabled = this._ALL_EFFECTS.filter(effect => {
|
const enabled = this._ALL_EFFECTS.filter(effect => {
|
||||||
return profile.settings.get_boolean(
|
return profile.settings.get_boolean(`${effect.getNick()}-enable-effect`);
|
||||||
`${effect.constructor.getNick()}-enable-effect`);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
// And then choose a random effect.
|
// And then choose a random effect.
|
||||||
@@ -560,8 +569,7 @@ export default class BurnMyWindows extends Extension {
|
|||||||
// windows are faded in / out scaled up / down slightly by GNOME Shell. Here, we tweak
|
// windows are faded in / out scaled up / down slightly by GNOME Shell. Here, we tweak
|
||||||
// the transitions so that nothing changes. The window stays opaque and is scaled to
|
// the transitions so that nothing changes. The window stays opaque and is scaled to
|
||||||
// actorScale.
|
// actorScale.
|
||||||
const actorScale =
|
const actorScale = effect.getActorScale(profile.settings, forOpening, actor);
|
||||||
effect.constructor.getActorScale(profile.settings, forOpening, actor);
|
|
||||||
|
|
||||||
// All scaling is relative to the window's center.
|
// All scaling is relative to the window's center.
|
||||||
actor.set_pivot_point(0.5, 0.5);
|
actor.set_pivot_point(0.5, 0.5);
|
||||||
@@ -572,7 +580,7 @@ export default class BurnMyWindows extends Extension {
|
|||||||
// If we are in the overview, we have to enlarge the window's clone as well. We also
|
// If we are in the overview, we have to enlarge the window's clone as well. We also
|
||||||
// disable the clone's overlay (e.g. its icon, name, and close button) during the
|
// disable the clone's overlay (e.g. its icon, name, and close button) during the
|
||||||
// animation.
|
// animation.
|
||||||
if (actor._bmwOverviewClone) {
|
if (actor._bmwOverviewClone && utils.shellVersionIsAtLeast(3, 38)) {
|
||||||
actor._bmwOverviewClone.overlayEnabled = false;
|
actor._bmwOverviewClone.overlayEnabled = false;
|
||||||
actor._bmwOverviewCloneContainer.set_pivot_point(0.5, 0.5);
|
actor._bmwOverviewCloneContainer.set_pivot_point(0.5, 0.5);
|
||||||
actor._bmwOverviewCloneContainer.scale_x = actorScale.x;
|
actor._bmwOverviewCloneContainer.scale_x = actorScale.x;
|
||||||
@@ -589,7 +597,7 @@ export default class BurnMyWindows extends Extension {
|
|||||||
const endID = shader.connect('end-animation', () => {
|
const endID = shader.connect('end-animation', () => {
|
||||||
shader.disconnect(endID);
|
shader.disconnect(endID);
|
||||||
|
|
||||||
if (actor._bmwOverviewClone) {
|
if (actor._bmwOverviewClone && utils.shellVersionIsAtLeast(3, 38)) {
|
||||||
actor._bmwOverviewClone.overlayEnabled = true;
|
actor._bmwOverviewClone.overlayEnabled = true;
|
||||||
actor._bmwOverviewCloneContainer.scale_x = 1.0;
|
actor._bmwOverviewCloneContainer.scale_x = 1.0;
|
||||||
actor._bmwOverviewCloneContainer.scale_y = 1.0;
|
actor._bmwOverviewCloneContainer.scale_y = 1.0;
|
||||||
@@ -614,11 +622,10 @@ export default class BurnMyWindows extends Extension {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// To make things deterministic during testing, we set the effect duration to 8
|
// To make things deterministic during testing, we set the effect duration to 5
|
||||||
// seconds.
|
// seconds.
|
||||||
const duration = testMode ?
|
const duration =
|
||||||
8000 :
|
testMode ? 5000 : profile.settings.get_int(effect.getNick() + '-animation-time');
|
||||||
profile.settings.get_int(effect.constructor.getNick() + '-animation-time');
|
|
||||||
|
|
||||||
// Finally start the animation!
|
// Finally start the animation!
|
||||||
shader.beginAnimation(profile.settings, forOpening, testMode, duration, actor);
|
shader.beginAnimation(profile.settings, forOpening, testMode, duration, actor);
|
||||||
@@ -632,9 +639,16 @@ export default class BurnMyWindows extends Extension {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
const actor = workspace._windows[index]._windowActor;
|
// This was called "realWindow" in GNOME 3.36.
|
||||||
|
const propertyName = utils.shellVersionIs(3, 36) ? 'realWindow' : '_windowActor';
|
||||||
|
const actor = workspace._windows[index][propertyName];
|
||||||
const shader = actor.get_effect('burn-my-windows-effect');
|
const shader = actor.get_effect('burn-my-windows-effect');
|
||||||
|
|
||||||
return shader == null;
|
return shader == null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// This function is called once when the extension is loaded, not enabled.
|
||||||
|
function init() {
|
||||||
|
return new Extension();
|
||||||
|
}
|
||||||
|
|||||||
@@ -10,9 +10,14 @@
|
|||||||
"gettext-domain": "burn-my-windows",
|
"gettext-domain": "burn-my-windows",
|
||||||
"settings-schema": "org.gnome.shell.extensions.burn-my-windows",
|
"settings-schema": "org.gnome.shell.extensions.burn-my-windows",
|
||||||
"shell-version": [
|
"shell-version": [
|
||||||
"45",
|
"3.36",
|
||||||
"46"
|
"3.38",
|
||||||
|
"40",
|
||||||
|
"41",
|
||||||
|
"42",
|
||||||
|
"43",
|
||||||
|
"44"
|
||||||
],
|
],
|
||||||
"url": "https://github.com/Schneegans/Burn-My-Windows",
|
"url": "https://github.com/Schneegans/Burn-My-Windows",
|
||||||
"version": 41
|
"version": 42
|
||||||
}
|
}
|
||||||
@@ -8,289 +8,284 @@ msgstr ""
|
|||||||
"Project-Id-Version: burn-my-windows\n"
|
"Project-Id-Version: burn-my-windows\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2023-08-31 07:30+0200\n"
|
"POT-Creation-Date: 2023-08-31 07:30+0200\n"
|
||||||
"PO-Revision-Date: 2024-02-26 11:01+0000\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: Scrambled777 <weblate.scrambled777@simplelogin.com>\n"
|
"Last-Translator: Automatically generated\n"
|
||||||
"Language-Team: Hindi <https://hosted.weblate.org/projects/burn-my-windows/"
|
"Language-Team: none\n"
|
||||||
"core/hi/>\n"
|
|
||||||
"Language: hi\n"
|
"Language: hi\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Plural-Forms: nplurals=2; plural=n > 1;\n"
|
|
||||||
"X-Generator: Weblate 5.5-dev\n"
|
|
||||||
|
|
||||||
#: src/ProfileManager.js:175 resources/ui/gtk4/prefs.ui:256
|
#: src/ProfileManager.js:175 resources/ui/gtk4/prefs.ui:256
|
||||||
#: resources/ui/gtk3/prefs.ui:301 resources/ui/adw/prefs.ui:103
|
#: resources/ui/gtk3/prefs.ui:301 resources/ui/adw/prefs.ui:103
|
||||||
msgid "Opening Windows"
|
msgid "Opening Windows"
|
||||||
msgstr "विंडोज़ खोलते समय"
|
msgstr ""
|
||||||
|
|
||||||
#: src/ProfileManager.js:176 resources/ui/gtk4/prefs.ui:257
|
#: src/ProfileManager.js:176 resources/ui/gtk4/prefs.ui:257
|
||||||
#: resources/ui/gtk3/prefs.ui:302 resources/ui/adw/prefs.ui:104
|
#: resources/ui/gtk3/prefs.ui:302 resources/ui/adw/prefs.ui:104
|
||||||
msgid "Closing Windows"
|
msgid "Closing Windows"
|
||||||
msgstr "विंडोज़ बंद करते समय"
|
msgstr ""
|
||||||
|
|
||||||
#: src/ProfileManager.js:177 resources/ui/gtk4/prefs.ui:285
|
#: src/ProfileManager.js:177 resources/ui/gtk4/prefs.ui:285
|
||||||
#: resources/ui/gtk3/prefs.ui:330 resources/ui/adw/prefs.ui:118
|
#: resources/ui/gtk3/prefs.ui:330 resources/ui/adw/prefs.ui:118
|
||||||
msgid "Normal Windows"
|
msgid "Normal Windows"
|
||||||
msgstr "सामान्य विंडोज़"
|
msgstr ""
|
||||||
|
|
||||||
#: src/ProfileManager.js:178 resources/ui/gtk4/prefs.ui:286
|
#: src/ProfileManager.js:178 resources/ui/gtk4/prefs.ui:286
|
||||||
#: resources/ui/gtk3/prefs.ui:331 resources/ui/adw/prefs.ui:119
|
#: resources/ui/gtk3/prefs.ui:331 resources/ui/adw/prefs.ui:119
|
||||||
msgid "Dialog Windows"
|
msgid "Dialog Windows"
|
||||||
msgstr "डायलॉग विंडोज़"
|
msgstr ""
|
||||||
|
|
||||||
#: src/ProfileManager.js:179 resources/ui/gtk4/prefs.ui:314
|
#: src/ProfileManager.js:179 resources/ui/gtk4/prefs.ui:314
|
||||||
#: resources/ui/gtk3/prefs.ui:359 resources/ui/adw/prefs.ui:133
|
#: resources/ui/gtk3/prefs.ui:359 resources/ui/adw/prefs.ui:133
|
||||||
msgid "Default Color Scheme"
|
msgid "Default Color Scheme"
|
||||||
msgstr "डिफ़ॉल्ट रंग योजना"
|
msgstr ""
|
||||||
|
|
||||||
#: src/ProfileManager.js:180 resources/ui/gtk4/prefs.ui:315
|
#: src/ProfileManager.js:180 resources/ui/gtk4/prefs.ui:315
|
||||||
#: resources/ui/gtk3/prefs.ui:360 resources/ui/adw/prefs.ui:134
|
#: resources/ui/gtk3/prefs.ui:360 resources/ui/adw/prefs.ui:134
|
||||||
msgid "Dark Color Scheme"
|
msgid "Dark Color Scheme"
|
||||||
msgstr "गहरी रंग योजना"
|
msgstr ""
|
||||||
|
|
||||||
#: src/ProfileManager.js:181 resources/ui/gtk4/prefs.ui:343
|
#: src/ProfileManager.js:181 resources/ui/gtk4/prefs.ui:343
|
||||||
#: resources/ui/gtk3/prefs.ui:388 resources/ui/adw/prefs.ui:148
|
#: resources/ui/gtk3/prefs.ui:388 resources/ui/adw/prefs.ui:148
|
||||||
msgid "On Battery"
|
msgid "On Battery"
|
||||||
msgstr "बैटरी पर"
|
msgstr ""
|
||||||
|
|
||||||
#: src/ProfileManager.js:182 resources/ui/gtk4/prefs.ui:344
|
#: src/ProfileManager.js:182 resources/ui/gtk4/prefs.ui:344
|
||||||
#: resources/ui/gtk3/prefs.ui:389 resources/ui/adw/prefs.ui:149
|
#: resources/ui/gtk3/prefs.ui:389 resources/ui/adw/prefs.ui:149
|
||||||
msgid "Plugged In"
|
msgid "Plugged In"
|
||||||
msgstr "जब प्लग इन हो"
|
msgstr ""
|
||||||
|
|
||||||
#: src/ProfileManager.js:183 resources/ui/gtk4/prefs.ui:372
|
#: src/ProfileManager.js:183 resources/ui/gtk4/prefs.ui:372
|
||||||
#: resources/ui/gtk3/prefs.ui:417 resources/ui/adw/prefs.ui:163
|
#: resources/ui/gtk3/prefs.ui:417 resources/ui/adw/prefs.ui:163
|
||||||
msgid "Power-Saver Mode"
|
msgid "Power-Saver Mode"
|
||||||
msgstr "पावर-सेवर मोड"
|
msgstr ""
|
||||||
|
|
||||||
#: src/ProfileManager.js:184 resources/ui/gtk4/prefs.ui:373
|
#: src/ProfileManager.js:184 resources/ui/gtk4/prefs.ui:373
|
||||||
#: resources/ui/gtk3/prefs.ui:418 resources/ui/adw/prefs.ui:164
|
#: resources/ui/gtk3/prefs.ui:418 resources/ui/adw/prefs.ui:164
|
||||||
msgid "Balanced Mode"
|
msgid "Balanced Mode"
|
||||||
msgstr "संतुलित मोड"
|
msgstr ""
|
||||||
|
|
||||||
#: src/ProfileManager.js:185 resources/ui/gtk4/prefs.ui:374
|
#: src/ProfileManager.js:185 resources/ui/gtk4/prefs.ui:374
|
||||||
#: resources/ui/gtk3/prefs.ui:419 resources/ui/adw/prefs.ui:165
|
#: resources/ui/gtk3/prefs.ui:419 resources/ui/adw/prefs.ui:165
|
||||||
msgid "Performance Mode"
|
msgid "Performance Mode"
|
||||||
msgstr "प्रदर्शन मोड"
|
msgstr ""
|
||||||
|
|
||||||
#: src/ProfileManager.js:186 resources/ui/gtk4/prefs.ui:375
|
#: src/ProfileManager.js:186 resources/ui/gtk4/prefs.ui:375
|
||||||
#: resources/ui/gtk3/prefs.ui:420 resources/ui/adw/prefs.ui:166
|
#: resources/ui/gtk3/prefs.ui:420 resources/ui/adw/prefs.ui:166
|
||||||
msgid "Power Saver or Balanced"
|
msgid "Power Saver or Balanced"
|
||||||
msgstr "पावर सेवर या संतुलित"
|
msgstr ""
|
||||||
|
|
||||||
#: src/ProfileManager.js:187 resources/ui/gtk4/prefs.ui:376
|
#: src/ProfileManager.js:187 resources/ui/gtk4/prefs.ui:376
|
||||||
#: resources/ui/gtk3/prefs.ui:421 resources/ui/adw/prefs.ui:167
|
#: resources/ui/gtk3/prefs.ui:421 resources/ui/adw/prefs.ui:167
|
||||||
msgid "Balanced or Performance"
|
msgid "Balanced or Performance"
|
||||||
msgstr "संतुलित या प्रदर्शन"
|
msgstr ""
|
||||||
|
|
||||||
#: src/ProfileManager.js:192 resources/ui/gtk4/prefs.ui:423
|
#: src/ProfileManager.js:192 resources/ui/gtk4/prefs.ui:423
|
||||||
#: resources/ui/gtk3/prefs.ui:468 resources/ui/adw/prefs.ui:183
|
#: resources/ui/gtk3/prefs.ui:468 resources/ui/adw/prefs.ui:183
|
||||||
msgid "High Priority"
|
msgid "High Priority"
|
||||||
msgstr "उच्च प्राथमिकता"
|
msgstr ""
|
||||||
|
|
||||||
#: src/ProfileManager.js:198
|
#: src/ProfileManager.js:198
|
||||||
msgid "Standard Profile"
|
msgid "Standard Profile"
|
||||||
msgstr "मानक प्रोफ़ाइल"
|
msgstr ""
|
||||||
|
|
||||||
#: src/effects/Apparition.js:78
|
#: src/effects/Apparition.js:78
|
||||||
msgid "Apparition"
|
msgid "Apparition"
|
||||||
msgstr "प्रेतछाया"
|
msgstr ""
|
||||||
|
|
||||||
#: src/effects/BrokenGlass.js:137
|
#: src/effects/BrokenGlass.js:137
|
||||||
msgid "Broken Glass"
|
msgid "Broken Glass"
|
||||||
msgstr "टूटा हुआ शीशा"
|
msgstr ""
|
||||||
|
|
||||||
#: src/effects/Doom.js:88
|
#: src/effects/Doom.js:88
|
||||||
msgid "Doom"
|
msgid "Doom"
|
||||||
msgstr "कयामत"
|
msgstr ""
|
||||||
|
|
||||||
#: src/effects/EnergizeA.js:80
|
#: src/effects/EnergizeA.js:80
|
||||||
msgid "Energize A"
|
msgid "Energize A"
|
||||||
msgstr "ऊर्जावान A"
|
msgstr ""
|
||||||
|
|
||||||
#: src/effects/EnergizeB.js:81
|
#: src/effects/EnergizeB.js:81
|
||||||
msgid "Energize B"
|
msgid "Energize B"
|
||||||
msgstr "ऊर्जावान B"
|
msgstr ""
|
||||||
|
|
||||||
#: src/effects/Fire.js:100
|
#: src/effects/Fire.js:100
|
||||||
msgid "Fire"
|
msgid "Fire"
|
||||||
msgstr "आग"
|
msgstr ""
|
||||||
|
|
||||||
#: src/effects/Fire.js:154
|
#: src/effects/Fire.js:154
|
||||||
msgid "Default Fire"
|
msgid "Default Fire"
|
||||||
msgstr "डिफ़ॉल्ट आग"
|
msgstr ""
|
||||||
|
|
||||||
#: src/effects/Fire.js:164
|
#: src/effects/Fire.js:164
|
||||||
msgid "Hell Fire"
|
msgid "Hell Fire"
|
||||||
msgstr "नरक की आग"
|
msgstr ""
|
||||||
|
|
||||||
#: src/effects/Fire.js:174
|
#: src/effects/Fire.js:174
|
||||||
msgid "Dark and Smutty"
|
msgid "Dark and Smutty"
|
||||||
msgstr "अँधेरी और मैली"
|
msgstr ""
|
||||||
|
|
||||||
#: src/effects/Fire.js:184
|
#: src/effects/Fire.js:184
|
||||||
msgid "Cold Breeze"
|
msgid "Cold Breeze"
|
||||||
msgstr "ठंडी हवा"
|
msgstr ""
|
||||||
|
|
||||||
#: src/effects/Fire.js:194
|
#: src/effects/Fire.js:194
|
||||||
msgid "Santa is Coming"
|
msgid "Santa is Coming"
|
||||||
msgstr "सांता आ रहा है"
|
msgstr ""
|
||||||
|
|
||||||
#: src/effects/Glide.js:78
|
#: src/effects/Glide.js:78
|
||||||
msgid "Glide"
|
msgid "Glide"
|
||||||
msgstr "फिसलन"
|
msgstr ""
|
||||||
|
|
||||||
#: src/effects/Glitch.js:86
|
#: src/effects/Glitch.js:86
|
||||||
msgid "Glitch"
|
msgid "Glitch"
|
||||||
msgstr "गड़बड़ी"
|
msgstr ""
|
||||||
|
|
||||||
#: src/effects/Hexagon.js:94
|
#: src/effects/Hexagon.js:94
|
||||||
msgid "Hexagon"
|
msgid "Hexagon"
|
||||||
msgstr "षटकोण"
|
msgstr ""
|
||||||
|
|
||||||
#: src/effects/Incinerate.js:131
|
#: src/effects/Incinerate.js:131
|
||||||
msgid "Incinerate"
|
msgid "Incinerate"
|
||||||
msgstr "भस्म"
|
msgstr ""
|
||||||
|
|
||||||
#: src/effects/Matrix.js:114
|
#: src/effects/Matrix.js:114
|
||||||
msgid "Matrix"
|
msgid "Matrix"
|
||||||
msgstr "आव्यूह"
|
msgstr ""
|
||||||
|
|
||||||
#: src/effects/PaintBrush.js:102
|
#: src/effects/PaintBrush.js:102
|
||||||
msgid "Paint Brush"
|
msgid "Paint Brush"
|
||||||
msgstr "पेंट ब्रश"
|
msgstr ""
|
||||||
|
|
||||||
#: src/effects/Pixelate.js:74
|
#: src/effects/Pixelate.js:74
|
||||||
msgid "Pixelate"
|
msgid "Pixelate"
|
||||||
msgstr "पिक्सेलेट"
|
msgstr ""
|
||||||
|
|
||||||
#: src/effects/PixelWheel.js:74
|
#: src/effects/PixelWheel.js:74
|
||||||
msgid "Pixel Wheel"
|
msgid "Pixel Wheel"
|
||||||
msgstr "पिक्सेल व्हील"
|
msgstr ""
|
||||||
|
|
||||||
#: src/effects/PixelWipe.js:101
|
#: src/effects/PixelWipe.js:101
|
||||||
msgid "Pixel Wipe"
|
msgid "Pixel Wipe"
|
||||||
msgstr "पिक्सेल वाइप"
|
msgstr ""
|
||||||
|
|
||||||
#: src/effects/Portal.js:88
|
#: src/effects/Portal.js:88
|
||||||
msgid "Portal"
|
msgid "Portal"
|
||||||
msgstr "द्वार"
|
msgstr ""
|
||||||
|
|
||||||
#: src/effects/SnapOfDisintegration.js:114
|
#: src/effects/SnapOfDisintegration.js:114
|
||||||
msgid "Snap of Disintegration"
|
msgid "Snap of Disintegration"
|
||||||
msgstr "विघटन की चुटकी"
|
msgstr ""
|
||||||
|
|
||||||
#: src/effects/TRexAttack.js:112
|
#: src/effects/TRexAttack.js:112
|
||||||
msgid "T-Rex Attack"
|
msgid "T-Rex Attack"
|
||||||
msgstr "T-Rex का हमला"
|
msgstr ""
|
||||||
|
|
||||||
#: src/effects/TVEffect.js:78
|
#: src/effects/TVEffect.js:78
|
||||||
msgid "TV Effect"
|
msgid "TV Effect"
|
||||||
msgstr "TV प्रभाव"
|
msgstr ""
|
||||||
|
|
||||||
#: src/effects/TVGlitch.js:87
|
#: src/effects/TVGlitch.js:87
|
||||||
msgid "TV Glitch"
|
msgid "TV Glitch"
|
||||||
msgstr "TV की गड़बड़ी"
|
msgstr ""
|
||||||
|
|
||||||
#: src/effects/Wisps.js:89
|
#: src/effects/Wisps.js:89
|
||||||
msgid "Wisps"
|
msgid "Wisps"
|
||||||
msgstr "विसप्स"
|
msgstr ""
|
||||||
|
|
||||||
#: prefs.js:269
|
#: prefs.js:269
|
||||||
msgid "Preview this effect"
|
msgid "Preview this effect"
|
||||||
msgstr "इस प्रभाव का पूर्वावलोकन करें"
|
msgstr ""
|
||||||
|
|
||||||
#: prefs.js:388 resources/ui/gtk4/prefs.ui:50 resources/ui/gtk3/prefs.ui:86
|
#: prefs.js:388 resources/ui/gtk4/prefs.ui:50 resources/ui/gtk3/prefs.ui:86
|
||||||
msgid "Burn-My-Windows has been updated!"
|
msgid "Burn-My-Windows has been updated!"
|
||||||
msgstr "Burn-My-Windows अपडेट कर दिया गया है!"
|
msgstr ""
|
||||||
|
|
||||||
#: prefs.js:389 resources/ui/common/menus.ui:17 resources/ui/gtk4/prefs.ui:56
|
#: prefs.js:389 resources/ui/common/menus.ui:17 resources/ui/gtk4/prefs.ui:56
|
||||||
#: resources/ui/gtk3/prefs.ui:96
|
#: resources/ui/gtk3/prefs.ui:96
|
||||||
msgid "View Changelog"
|
msgid "View Changelog"
|
||||||
msgstr "चेंजलॉग देखें"
|
msgstr ""
|
||||||
|
|
||||||
#: prefs.js:571 prefs.js:603
|
#: prefs.js:571 prefs.js:603
|
||||||
msgid "Gold Sponsors"
|
msgid "Gold Sponsors"
|
||||||
msgstr "स्वर्ण प्रायोजक"
|
msgstr ""
|
||||||
|
|
||||||
#: prefs.js:575 prefs.js:607
|
#: prefs.js:575 prefs.js:607
|
||||||
msgid "Silver Sponsors"
|
msgid "Silver Sponsors"
|
||||||
msgstr "रजत प्रायोजक"
|
msgstr ""
|
||||||
|
|
||||||
#: prefs.js:579 prefs.js:611
|
#: prefs.js:579 prefs.js:611
|
||||||
msgid "Bronze Sponsors"
|
msgid "Bronze Sponsors"
|
||||||
msgstr "कांस्य प्रायोजक"
|
msgstr ""
|
||||||
|
|
||||||
#: prefs.js:583 prefs.js:615
|
#: prefs.js:583 prefs.js:615
|
||||||
msgid "Past Sponsors"
|
msgid "Past Sponsors"
|
||||||
msgstr "पिछले प्रायोजक"
|
msgstr ""
|
||||||
|
|
||||||
#: prefs.js:660
|
#: prefs.js:660
|
||||||
msgid "Delete this Profile?"
|
msgid "Delete this Profile?"
|
||||||
msgstr "यह प्रोफ़ाइल हटाएं?"
|
msgstr ""
|
||||||
|
|
||||||
#: prefs.js:661
|
#: prefs.js:661
|
||||||
msgid ""
|
msgid ""
|
||||||
"The current effect profile with all its effect settings will be permanently "
|
"The current effect profile with all its effect settings will be permanently "
|
||||||
"lost."
|
"lost."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"वर्तमान प्रभाव प्रोफ़ाइल अपनी सभी प्रभाव सेटिंग्स के साथ स्थायी रूप से खो "
|
|
||||||
"जाएगी।"
|
|
||||||
|
|
||||||
#: prefs.js:664
|
#: prefs.js:664
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr "रद्द करें"
|
msgstr ""
|
||||||
|
|
||||||
#: prefs.js:669
|
#: prefs.js:669
|
||||||
msgid "Delete"
|
msgid "Delete"
|
||||||
msgstr "हटाएं"
|
msgstr ""
|
||||||
|
|
||||||
#. Translators: %s will be replaced by the effect's name.
|
#. Translators: %s will be replaced by the effect's name.
|
||||||
#: prefs.js:980
|
#: prefs.js:980
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Preview for %s"
|
msgid "Preview for %s"
|
||||||
msgstr "%s का पूर्वावलोकन"
|
msgstr ""
|
||||||
|
|
||||||
#: prefs.js:1002
|
#: prefs.js:1002
|
||||||
msgid "Close this Window to Preview the Effect!"
|
msgid "Close this Window to Preview the Effect!"
|
||||||
msgstr "प्रभाव का पूर्वावलोकन करने के लिए इस विंडो को बंद करें!"
|
msgstr ""
|
||||||
|
|
||||||
#: resources/ui/common/menus.ui:13
|
#: resources/ui/common/menus.ui:13
|
||||||
msgid "Visit Homepage"
|
msgid "Visit Homepage"
|
||||||
msgstr "मुखपृष्ठ पर जाएँ"
|
msgstr ""
|
||||||
|
|
||||||
#: resources/ui/common/menus.ui:21
|
#: resources/ui/common/menus.ui:21
|
||||||
msgid "View Matching Wallpapers"
|
msgid "View Matching Wallpapers"
|
||||||
msgstr "मिलते-जुलते वॉलपेपर देखें"
|
msgstr ""
|
||||||
|
|
||||||
#: resources/ui/common/menus.ui:27
|
#: resources/ui/common/menus.ui:27
|
||||||
msgid "Report a Bug"
|
msgid "Report a Bug"
|
||||||
msgstr "बग रिपोर्ट करें"
|
msgstr ""
|
||||||
|
|
||||||
#: resources/ui/common/menus.ui:31
|
#: resources/ui/common/menus.ui:31
|
||||||
msgid "Create an Effect"
|
msgid "Create an Effect"
|
||||||
msgstr "एक प्रभाव पैदा करें"
|
msgstr ""
|
||||||
|
|
||||||
#: resources/ui/common/menus.ui:35
|
#: resources/ui/common/menus.ui:35
|
||||||
msgid "Translate"
|
msgid "Translate"
|
||||||
msgstr "अनुवाद"
|
msgstr ""
|
||||||
|
|
||||||
#: resources/ui/common/menus.ui:39
|
#: resources/ui/common/menus.ui:39
|
||||||
msgid "Donate"
|
msgid "Donate"
|
||||||
msgstr "दान करें"
|
msgstr ""
|
||||||
|
|
||||||
#: resources/ui/common/menus.ui:56
|
#: resources/ui/common/menus.ui:56
|
||||||
msgid "Open Effect-Profile Directory"
|
msgid "Open Effect-Profile Directory"
|
||||||
msgstr "इफ़ेक्ट-प्रोफ़ाइल डॉयरेक्टरी खोलें"
|
msgstr ""
|
||||||
|
|
||||||
#: resources/ui/common/menus.ui:62
|
#: resources/ui/common/menus.ui:62
|
||||||
msgid "About Burn-My-Windows"
|
msgid "About Burn-My-Windows"
|
||||||
msgstr "Burn-My-Windows के बारे में"
|
msgstr ""
|
||||||
|
|
||||||
#: resources/ui/common/menus.ui:73
|
#: resources/ui/common/menus.ui:73
|
||||||
msgid "Add New Profile..."
|
msgid "Add New Profile..."
|
||||||
msgstr "नई प्रोफ़ाइल जोड़ें…"
|
msgstr ""
|
||||||
|
|
||||||
#: resources/ui/gtk4/broken-glass.ui:22 resources/ui/gtk4/tv-glitch.ui:23
|
#: resources/ui/gtk4/broken-glass.ui:22 resources/ui/gtk4/tv-glitch.ui:23
|
||||||
#: resources/ui/gtk4/glitch.ui:23 resources/ui/gtk4/matrix.ui:23
|
#: resources/ui/gtk4/glitch.ui:23 resources/ui/gtk4/matrix.ui:23
|
||||||
@@ -322,7 +317,7 @@ msgstr "नई प्रोफ़ाइल जोड़ें…"
|
|||||||
#: resources/ui/adw/snap.ui:14 resources/ui/adw/energize-a.ui:14
|
#: resources/ui/adw/snap.ui:14 resources/ui/adw/energize-a.ui:14
|
||||||
#: resources/ui/adw/pixelate.ui:14 resources/ui/adw/tv.ui:14
|
#: resources/ui/adw/pixelate.ui:14 resources/ui/adw/tv.ui:14
|
||||||
msgid "Animation Time [ms]"
|
msgid "Animation Time [ms]"
|
||||||
msgstr "एनीमेशन समय [ms]"
|
msgstr ""
|
||||||
|
|
||||||
#: resources/ui/gtk4/broken-glass.ui:50 resources/ui/gtk4/broken-glass.ui:96
|
#: resources/ui/gtk4/broken-glass.ui:50 resources/ui/gtk4/broken-glass.ui:96
|
||||||
#: resources/ui/gtk4/broken-glass.ui:142 resources/ui/gtk4/broken-glass.ui:188
|
#: resources/ui/gtk4/broken-glass.ui:142 resources/ui/gtk4/broken-glass.ui:188
|
||||||
@@ -442,7 +437,7 @@ msgstr "एनीमेशन समय [ms]"
|
|||||||
#: resources/ui/adw/pixelate.ui:69 resources/ui/adw/pixelate.ui:102
|
#: resources/ui/adw/pixelate.ui:69 resources/ui/adw/pixelate.ui:102
|
||||||
#: resources/ui/adw/tv.ui:36 resources/ui/adw/tv.ui:61
|
#: resources/ui/adw/tv.ui:36 resources/ui/adw/tv.ui:61
|
||||||
msgid "Reset to Default Value"
|
msgid "Reset to Default Value"
|
||||||
msgstr "डिफ़ॉल्ट मान पर रीसेट करें"
|
msgstr ""
|
||||||
|
|
||||||
#: resources/ui/gtk4/broken-glass.ui:68 resources/ui/gtk4/tv-glitch.ui:69
|
#: resources/ui/gtk4/broken-glass.ui:68 resources/ui/gtk4/tv-glitch.ui:69
|
||||||
#: resources/ui/gtk4/glitch.ui:69 resources/ui/gtk4/matrix.ui:69
|
#: resources/ui/gtk4/glitch.ui:69 resources/ui/gtk4/matrix.ui:69
|
||||||
@@ -462,32 +457,31 @@ msgstr "डिफ़ॉल्ट मान पर रीसेट करें"
|
|||||||
#: resources/ui/adw/fire.ui:63 resources/ui/adw/snap.ui:47
|
#: resources/ui/adw/fire.ui:63 resources/ui/adw/snap.ui:47
|
||||||
#: resources/ui/adw/energize-a.ui:47
|
#: resources/ui/adw/energize-a.ui:47
|
||||||
msgid "Scale"
|
msgid "Scale"
|
||||||
msgstr "पैमाना"
|
msgstr ""
|
||||||
|
|
||||||
#: resources/ui/gtk4/broken-glass.ui:114 resources/ui/adw/broken-glass.ui:81
|
#: resources/ui/gtk4/broken-glass.ui:114 resources/ui/adw/broken-glass.ui:81
|
||||||
msgid "Gravity"
|
msgid "Gravity"
|
||||||
msgstr "गुरुत्व"
|
msgstr ""
|
||||||
|
|
||||||
#: resources/ui/gtk4/broken-glass.ui:160 resources/ui/adw/broken-glass.ui:114
|
#: resources/ui/gtk4/broken-glass.ui:160 resources/ui/adw/broken-glass.ui:114
|
||||||
msgid "Blow Force"
|
msgid "Blow Force"
|
||||||
msgstr "प्रहार का बल"
|
msgstr ""
|
||||||
|
|
||||||
#: resources/ui/gtk4/broken-glass.ui:210 resources/ui/adw/broken-glass.ui:147
|
#: resources/ui/gtk4/broken-glass.ui:210 resources/ui/adw/broken-glass.ui:147
|
||||||
msgid "Shatter From Pointer Location"
|
msgid "Shatter From Pointer Location"
|
||||||
msgstr "सूचक स्थान से चकनाचूर"
|
msgstr ""
|
||||||
|
|
||||||
#: resources/ui/gtk4/broken-glass.ui:219 resources/ui/adw/broken-glass.ui:148
|
#: resources/ui/gtk4/broken-glass.ui:219 resources/ui/adw/broken-glass.ui:148
|
||||||
msgid ""
|
msgid ""
|
||||||
"The shards will fly away from where your mouse pointer was when closing the "
|
"The shards will fly away from where your mouse pointer was when closing the "
|
||||||
"window."
|
"window."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"खिड़की बंद करते समय आपका माउस पॉइंटर जहां था, वहां से टुकड़े उड़ जाएंगे।"
|
|
||||||
|
|
||||||
#: resources/ui/gtk4/tv-glitch.ui:115 resources/ui/gtk4/glitch.ui:115
|
#: resources/ui/gtk4/tv-glitch.ui:115 resources/ui/gtk4/glitch.ui:115
|
||||||
#: resources/ui/gtk3/tv-glitch.ui:142 resources/ui/gtk3/glitch.ui:142
|
#: resources/ui/gtk3/tv-glitch.ui:142 resources/ui/gtk3/glitch.ui:142
|
||||||
#: resources/ui/adw/tv-glitch.ui:80 resources/ui/adw/glitch.ui:80
|
#: resources/ui/adw/tv-glitch.ui:80 resources/ui/adw/glitch.ui:80
|
||||||
msgid "Strength"
|
msgid "Strength"
|
||||||
msgstr "ताकत"
|
msgstr ""
|
||||||
|
|
||||||
#: resources/ui/gtk4/tv-glitch.ui:161 resources/ui/gtk4/glitch.ui:161
|
#: resources/ui/gtk4/tv-glitch.ui:161 resources/ui/gtk4/glitch.ui:161
|
||||||
#: resources/ui/gtk4/fire.ui:138 resources/ui/gtk3/tv-glitch.ui:187
|
#: resources/ui/gtk4/fire.ui:138 resources/ui/gtk3/tv-glitch.ui:187
|
||||||
@@ -495,7 +489,7 @@ msgstr "ताकत"
|
|||||||
#: resources/ui/adw/tv-glitch.ui:113 resources/ui/adw/glitch.ui:113
|
#: resources/ui/adw/tv-glitch.ui:113 resources/ui/adw/glitch.ui:113
|
||||||
#: resources/ui/adw/fire.ui:96
|
#: resources/ui/adw/fire.ui:96
|
||||||
msgid "Speed"
|
msgid "Speed"
|
||||||
msgstr "गति"
|
msgstr ""
|
||||||
|
|
||||||
#: resources/ui/gtk4/tv-glitch.ui:207 resources/ui/gtk4/glitch.ui:207
|
#: resources/ui/gtk4/tv-glitch.ui:207 resources/ui/gtk4/glitch.ui:207
|
||||||
#: resources/ui/gtk4/wisps.ui:115 resources/ui/gtk4/energize-b.ui:115
|
#: resources/ui/gtk4/wisps.ui:115 resources/ui/gtk4/energize-b.ui:115
|
||||||
@@ -511,35 +505,35 @@ msgstr "गति"
|
|||||||
#: resources/ui/adw/incinerate.ui:136 resources/ui/adw/snap.ui:80
|
#: resources/ui/adw/incinerate.ui:136 resources/ui/adw/snap.ui:80
|
||||||
#: resources/ui/adw/energize-a.ui:80 resources/ui/adw/tv.ui:47
|
#: resources/ui/adw/energize-a.ui:80 resources/ui/adw/tv.ui:47
|
||||||
msgid "Color"
|
msgid "Color"
|
||||||
msgstr "रंग"
|
msgstr ""
|
||||||
|
|
||||||
#: resources/ui/gtk4/matrix.ui:115 resources/ui/gtk4/apparition.ui:68
|
#: resources/ui/gtk4/matrix.ui:115 resources/ui/gtk4/apparition.ui:68
|
||||||
#: resources/ui/gtk3/apparition.ui:104 resources/ui/adw/matrix.ui:80
|
#: resources/ui/gtk3/apparition.ui:104 resources/ui/adw/matrix.ui:80
|
||||||
#: resources/ui/adw/apparition.ui:48
|
#: resources/ui/adw/apparition.ui:48
|
||||||
msgid "Randomness"
|
msgid "Randomness"
|
||||||
msgstr "बेतरतीबी"
|
msgstr ""
|
||||||
|
|
||||||
#: resources/ui/gtk4/matrix.ui:161 resources/ui/adw/matrix.ui:113
|
#: resources/ui/gtk4/matrix.ui:161 resources/ui/adw/matrix.ui:113
|
||||||
msgid "Vertical Overshooting"
|
msgid "Vertical Overshooting"
|
||||||
msgstr "लंबवत ओवरशूटिंग"
|
msgstr ""
|
||||||
|
|
||||||
#: resources/ui/gtk4/matrix.ui:207 resources/ui/adw/matrix.ui:146
|
#: resources/ui/gtk4/matrix.ui:207 resources/ui/adw/matrix.ui:146
|
||||||
msgid "Trail Color"
|
msgid "Trail Color"
|
||||||
msgstr "पगडंडी का रंग"
|
msgstr ""
|
||||||
|
|
||||||
#: resources/ui/gtk4/matrix.ui:244 resources/ui/adw/matrix.ui:171
|
#: resources/ui/gtk4/matrix.ui:244 resources/ui/adw/matrix.ui:171
|
||||||
msgid "Tip Color"
|
msgid "Tip Color"
|
||||||
msgstr "टिप का रंग"
|
msgstr ""
|
||||||
|
|
||||||
#: resources/ui/gtk4/doom.ui:68 resources/ui/gtk3/doom.ui:97
|
#: resources/ui/gtk4/doom.ui:68 resources/ui/gtk3/doom.ui:97
|
||||||
#: resources/ui/adw/doom.ui:47
|
#: resources/ui/adw/doom.ui:47
|
||||||
msgid "Horizontal Scale"
|
msgid "Horizontal Scale"
|
||||||
msgstr "क्षैतिज पैमाना"
|
msgstr ""
|
||||||
|
|
||||||
#: resources/ui/gtk4/doom.ui:114 resources/ui/gtk3/doom.ui:142
|
#: resources/ui/gtk4/doom.ui:114 resources/ui/gtk3/doom.ui:142
|
||||||
#: resources/ui/adw/doom.ui:80
|
#: resources/ui/adw/doom.ui:80
|
||||||
msgid "Vertical Scale"
|
msgid "Vertical Scale"
|
||||||
msgstr "लंबवत पैमाना"
|
msgstr ""
|
||||||
|
|
||||||
#: resources/ui/gtk4/doom.ui:160 resources/ui/gtk4/pixel-wheel.ui:115
|
#: resources/ui/gtk4/doom.ui:160 resources/ui/gtk4/pixel-wheel.ui:115
|
||||||
#: resources/ui/gtk4/pixel-wipe.ui:69 resources/ui/gtk4/pixelate.ui:115
|
#: resources/ui/gtk4/pixel-wipe.ui:69 resources/ui/gtk4/pixelate.ui:115
|
||||||
@@ -548,179 +542,177 @@ msgstr "लंबवत पैमाना"
|
|||||||
#: resources/ui/adw/doom.ui:113 resources/ui/adw/pixel-wheel.ui:80
|
#: resources/ui/adw/doom.ui:113 resources/ui/adw/pixel-wheel.ui:80
|
||||||
#: resources/ui/adw/pixel-wipe.ui:47 resources/ui/adw/pixelate.ui:80
|
#: resources/ui/adw/pixel-wipe.ui:47 resources/ui/adw/pixelate.ui:80
|
||||||
msgid "Pixel Size"
|
msgid "Pixel Size"
|
||||||
msgstr "पिक्सेल आकार"
|
msgstr ""
|
||||||
|
|
||||||
#: resources/ui/gtk4/paint-brush.ui:69 resources/ui/adw/paint-brush.ui:47
|
#: resources/ui/gtk4/paint-brush.ui:69 resources/ui/adw/paint-brush.ui:47
|
||||||
msgid "Brush Size"
|
msgid "Brush Size"
|
||||||
msgstr "ब्रश का आकार"
|
msgstr ""
|
||||||
|
|
||||||
#: resources/ui/gtk4/trex.ui:69 resources/ui/adw/trex.ui:47
|
#: resources/ui/gtk4/trex.ui:69 resources/ui/adw/trex.ui:47
|
||||||
msgid "Claw Scratch Scale"
|
msgid "Claw Scratch Scale"
|
||||||
msgstr "पंजे का स्क्रैच स्केल"
|
msgstr ""
|
||||||
|
|
||||||
#: resources/ui/gtk4/trex.ui:115 resources/ui/adw/trex.ui:80
|
#: resources/ui/gtk4/trex.ui:115 resources/ui/adw/trex.ui:80
|
||||||
msgid "Claw Scratch Count"
|
msgid "Claw Scratch Count"
|
||||||
msgstr "पंजे की खरोंच गिनती"
|
msgstr ""
|
||||||
|
|
||||||
#: resources/ui/gtk4/trex.ui:161 resources/ui/adw/trex.ui:113
|
#: resources/ui/gtk4/trex.ui:161 resources/ui/adw/trex.ui:113
|
||||||
msgid "Warp Effect"
|
msgid "Warp Effect"
|
||||||
msgstr "वार्प का प्रभाव"
|
msgstr ""
|
||||||
|
|
||||||
#: resources/ui/gtk4/trex.ui:207 resources/ui/adw/trex.ui:146
|
#: resources/ui/gtk4/trex.ui:207 resources/ui/adw/trex.ui:146
|
||||||
msgid "Flash Color"
|
msgid "Flash Color"
|
||||||
msgstr "फ़्लैश रंग"
|
msgstr ""
|
||||||
|
|
||||||
#: resources/ui/gtk4/pixel-wheel.ui:69 resources/ui/gtk3/pixel-wheel.ui:90
|
#: resources/ui/gtk4/pixel-wheel.ui:69 resources/ui/gtk3/pixel-wheel.ui:90
|
||||||
#: resources/ui/adw/pixel-wheel.ui:47
|
#: resources/ui/adw/pixel-wheel.ui:47
|
||||||
msgid "Spoke Count"
|
msgid "Spoke Count"
|
||||||
msgstr "स्पोक की गिनती"
|
msgstr ""
|
||||||
|
|
||||||
#: resources/ui/gtk4/glide.ui:115 resources/ui/gtk3/glide.ui:149
|
#: resources/ui/gtk4/glide.ui:115 resources/ui/gtk3/glide.ui:149
|
||||||
#: resources/ui/adw/glide.ui:80
|
#: resources/ui/adw/glide.ui:80
|
||||||
msgid "Squish"
|
msgid "Squish"
|
||||||
msgstr "स्क्विश"
|
msgstr ""
|
||||||
|
|
||||||
#: resources/ui/gtk4/glide.ui:161 resources/ui/gtk3/glide.ui:194
|
#: resources/ui/gtk4/glide.ui:161 resources/ui/gtk3/glide.ui:194
|
||||||
#: resources/ui/adw/glide.ui:113
|
#: resources/ui/adw/glide.ui:113
|
||||||
msgid "Tilt"
|
msgid "Tilt"
|
||||||
msgstr "झुकाव"
|
msgstr ""
|
||||||
|
|
||||||
#: resources/ui/gtk4/glide.ui:207 resources/ui/gtk3/glide.ui:239
|
#: resources/ui/gtk4/glide.ui:207 resources/ui/gtk3/glide.ui:239
|
||||||
#: resources/ui/adw/glide.ui:146
|
#: resources/ui/adw/glide.ui:146
|
||||||
msgid "Shift"
|
msgid "Shift"
|
||||||
msgstr "शिफ्ट"
|
msgstr ""
|
||||||
|
|
||||||
#: resources/ui/gtk4/apparition.ui:114 resources/ui/gtk3/apparition.ui:149
|
#: resources/ui/gtk4/apparition.ui:114 resources/ui/gtk3/apparition.ui:149
|
||||||
#: resources/ui/adw/apparition.ui:81
|
#: resources/ui/adw/apparition.ui:81
|
||||||
msgid "Twirl Intensity"
|
msgid "Twirl Intensity"
|
||||||
msgstr "घुमाव की तीव्रता"
|
msgstr ""
|
||||||
|
|
||||||
#: resources/ui/gtk4/apparition.ui:160 resources/ui/gtk3/apparition.ui:194
|
#: resources/ui/gtk4/apparition.ui:160 resources/ui/gtk3/apparition.ui:194
|
||||||
#: resources/ui/adw/apparition.ui:114
|
#: resources/ui/adw/apparition.ui:114
|
||||||
msgid "Shake Intensity"
|
msgid "Shake Intensity"
|
||||||
msgstr "झटकों की तीव्रता"
|
msgstr ""
|
||||||
|
|
||||||
#: resources/ui/gtk4/apparition.ui:206 resources/ui/gtk3/apparition.ui:239
|
#: resources/ui/gtk4/apparition.ui:206 resources/ui/gtk3/apparition.ui:239
|
||||||
#: resources/ui/adw/apparition.ui:147
|
#: resources/ui/adw/apparition.ui:147
|
||||||
msgid "Suction Intensity"
|
msgid "Suction Intensity"
|
||||||
msgstr "सक्शन की तीव्रता"
|
msgstr ""
|
||||||
|
|
||||||
#: resources/ui/gtk4/portal.ui:69 resources/ui/gtk3/portal.ui:142
|
#: resources/ui/gtk4/portal.ui:69 resources/ui/gtk3/portal.ui:142
|
||||||
#: resources/ui/adw/portal.ui:80
|
#: resources/ui/adw/portal.ui:80
|
||||||
msgid "Whirling"
|
msgid "Whirling"
|
||||||
msgstr "घुमावदार"
|
msgstr ""
|
||||||
|
|
||||||
#: resources/ui/gtk4/portal.ui:115 resources/ui/gtk3/portal.ui:97
|
#: resources/ui/gtk4/portal.ui:115 resources/ui/gtk3/portal.ui:97
|
||||||
#: resources/ui/adw/portal.ui:47
|
#: resources/ui/adw/portal.ui:47
|
||||||
msgid "Rotation Speed"
|
msgid "Rotation Speed"
|
||||||
msgstr "घूर्णन गति"
|
msgstr ""
|
||||||
|
|
||||||
#: resources/ui/gtk4/portal.ui:161 resources/ui/gtk3/portal.ui:187
|
#: resources/ui/gtk4/portal.ui:161 resources/ui/gtk3/portal.ui:187
|
||||||
#: resources/ui/adw/portal.ui:113
|
#: resources/ui/adw/portal.ui:113
|
||||||
msgid "Details"
|
msgid "Details"
|
||||||
msgstr "विवरण"
|
msgstr ""
|
||||||
|
|
||||||
#: resources/ui/gtk4/incinerate.ui:115 resources/ui/gtk3/incinerate.ui:135
|
#: resources/ui/gtk4/incinerate.ui:115 resources/ui/gtk3/incinerate.ui:135
|
||||||
#: resources/ui/adw/incinerate.ui:80
|
#: resources/ui/adw/incinerate.ui:80
|
||||||
msgid "Turbulence"
|
msgid "Turbulence"
|
||||||
msgstr "उथल-पुथल"
|
msgstr ""
|
||||||
|
|
||||||
#: resources/ui/gtk4/incinerate.ui:165 resources/ui/gtk3/incinerate.ui:183
|
#: resources/ui/gtk4/incinerate.ui:165 resources/ui/gtk3/incinerate.ui:183
|
||||||
#: resources/ui/adw/incinerate.ui:113
|
#: resources/ui/adw/incinerate.ui:113
|
||||||
msgid "Start at Pointer"
|
msgid "Start at Pointer"
|
||||||
msgstr "पॉइंटर से प्रारंभ करें"
|
msgstr ""
|
||||||
|
|
||||||
#: resources/ui/gtk4/incinerate.ui:174 resources/ui/gtk3/incinerate.ui:192
|
#: resources/ui/gtk4/incinerate.ui:174 resources/ui/gtk3/incinerate.ui:192
|
||||||
#: resources/ui/adw/incinerate.ui:114
|
#: resources/ui/adw/incinerate.ui:114
|
||||||
msgid "If disabled, a random location will be chosen."
|
msgid "If disabled, a random location will be chosen."
|
||||||
msgstr "यदि अक्षम किया गया है, तो एक यादृच्छिक स्थान चुना जाएगा।"
|
msgstr ""
|
||||||
|
|
||||||
#: resources/ui/gtk4/hexagon.ui:115 resources/ui/gtk3/hexagon.ui:135
|
#: resources/ui/gtk4/hexagon.ui:115 resources/ui/gtk3/hexagon.ui:135
|
||||||
#: resources/ui/adw/hexagon.ui:80
|
#: resources/ui/adw/hexagon.ui:80
|
||||||
msgid "Mesh Line Width"
|
msgid "Mesh Line Width"
|
||||||
msgstr "मेष रेखा की चौड़ाई"
|
msgstr ""
|
||||||
|
|
||||||
#: resources/ui/gtk4/hexagon.ui:161 resources/ui/gtk3/hexagon.ui:179
|
#: resources/ui/gtk4/hexagon.ui:161 resources/ui/gtk3/hexagon.ui:179
|
||||||
#: resources/ui/adw/hexagon.ui:113
|
#: resources/ui/adw/hexagon.ui:113
|
||||||
msgid "Line Color"
|
msgid "Line Color"
|
||||||
msgstr "रेखा रंग"
|
msgstr ""
|
||||||
|
|
||||||
#: resources/ui/gtk4/hexagon.ui:198 resources/ui/gtk3/hexagon.ui:221
|
#: resources/ui/gtk4/hexagon.ui:198 resources/ui/gtk3/hexagon.ui:221
|
||||||
#: resources/ui/adw/hexagon.ui:138
|
#: resources/ui/adw/hexagon.ui:138
|
||||||
msgid "Glow Color"
|
msgid "Glow Color"
|
||||||
msgstr "चमकदार रंग"
|
msgstr ""
|
||||||
|
|
||||||
#: resources/ui/gtk4/hexagon.ui:239 resources/ui/gtk3/hexagon.ui:267
|
#: resources/ui/gtk4/hexagon.ui:239 resources/ui/gtk3/hexagon.ui:267
|
||||||
#: resources/ui/adw/hexagon.ui:163
|
#: resources/ui/adw/hexagon.ui:163
|
||||||
msgid "Additive Blending"
|
msgid "Additive Blending"
|
||||||
msgstr "योगात्मक सम्मिश्रण"
|
msgstr ""
|
||||||
|
|
||||||
#: resources/ui/gtk4/hexagon.ui:248 resources/ui/gtk3/hexagon.ui:276
|
#: resources/ui/gtk4/hexagon.ui:248 resources/ui/gtk3/hexagon.ui:276
|
||||||
#: resources/ui/adw/hexagon.ui:164
|
#: resources/ui/adw/hexagon.ui:164
|
||||||
msgid "You may want to enable this for dark window themes."
|
msgid "You may want to enable this for dark window themes."
|
||||||
msgstr "आप इसे डार्क विंडो थीम के लिए सक्षम करना चाह सकते हैं।"
|
msgstr ""
|
||||||
|
|
||||||
#: resources/ui/gtk4/fire.ui:22 resources/ui/gtk3/fire.ui:44
|
#: resources/ui/gtk4/fire.ui:22 resources/ui/gtk3/fire.ui:44
|
||||||
#: resources/ui/adw/fire.ui:14
|
#: resources/ui/adw/fire.ui:14
|
||||||
msgid "Presets"
|
msgid "Presets"
|
||||||
msgstr "प्रीसेट"
|
msgstr ""
|
||||||
|
|
||||||
#: resources/ui/gtk4/fire.ui:31 resources/ui/gtk3/fire.ui:58
|
#: resources/ui/gtk4/fire.ui:31 resources/ui/gtk3/fire.ui:58
|
||||||
#: resources/ui/adw/fire.ui:19
|
#: resources/ui/adw/fire.ui:19
|
||||||
msgid "Choose a Preset"
|
msgid "Choose a Preset"
|
||||||
msgstr "प्रीसेट चुनें"
|
msgstr ""
|
||||||
|
|
||||||
#: resources/ui/gtk4/fire.ui:188 resources/ui/gtk3/fire.ui:220
|
#: resources/ui/gtk4/fire.ui:188 resources/ui/gtk3/fire.ui:220
|
||||||
#: resources/ui/adw/fire.ui:129
|
#: resources/ui/adw/fire.ui:129
|
||||||
msgid "3D Noise"
|
msgid "3D Noise"
|
||||||
msgstr "3D शोर"
|
msgstr ""
|
||||||
|
|
||||||
#: resources/ui/gtk4/fire.ui:197 resources/ui/gtk3/fire.ui:229
|
#: resources/ui/gtk4/fire.ui:197 resources/ui/gtk3/fire.ui:229
|
||||||
#: resources/ui/adw/fire.ui:130
|
#: resources/ui/adw/fire.ui:130
|
||||||
msgid "Creates a more dynamic fire but requires more GPU power."
|
msgid "Creates a more dynamic fire but requires more GPU power."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"अधिक गतिशील आग पैदा करता है लेकिन इसके लिए अधिक GPU शक्ति की आवश्यकता होती "
|
|
||||||
"है।"
|
|
||||||
|
|
||||||
#: resources/ui/gtk4/fire.ui:239 resources/ui/gtk3/fire.ui:276
|
#: resources/ui/gtk4/fire.ui:239 resources/ui/gtk3/fire.ui:276
|
||||||
#: resources/ui/adw/fire.ui:152
|
#: resources/ui/adw/fire.ui:152
|
||||||
msgid "Gradient"
|
msgid "Gradient"
|
||||||
msgstr "ग्रेडियेंट"
|
msgstr ""
|
||||||
|
|
||||||
#: resources/ui/gtk4/prefs.ui:91 resources/ui/gtk3/prefs.ui:133
|
#: resources/ui/gtk4/prefs.ui:91 resources/ui/gtk3/prefs.ui:133
|
||||||
#: resources/ui/adw/prefs.ui:224
|
#: resources/ui/adw/prefs.ui:224
|
||||||
msgid "Effect Selection"
|
msgid "Effect Selection"
|
||||||
msgstr "प्रभाव चयन"
|
msgstr ""
|
||||||
|
|
||||||
#: resources/ui/gtk4/prefs.ui:101 resources/ui/gtk3/prefs.ui:143
|
#: resources/ui/gtk4/prefs.ui:101 resources/ui/gtk3/prefs.ui:143
|
||||||
#: resources/ui/adw/prefs.ui:225
|
#: resources/ui/adw/prefs.ui:225
|
||||||
msgid "If multiple are selected, one is chosen randomly."
|
msgid "If multiple are selected, one is chosen randomly."
|
||||||
msgstr "यदि एकाधिक का चयन किया जाता है, तो एक को यादृच्छिक रूप से चुना जाता है।"
|
msgstr ""
|
||||||
|
|
||||||
#: resources/ui/gtk4/prefs.ui:118 resources/ui/gtk3/prefs.ui:160
|
#: resources/ui/gtk4/prefs.ui:118 resources/ui/gtk3/prefs.ui:160
|
||||||
#: resources/ui/adw/prefs.ui:236
|
#: resources/ui/adw/prefs.ui:236
|
||||||
msgid "All"
|
msgid "All"
|
||||||
msgstr "सभी"
|
msgstr ""
|
||||||
|
|
||||||
#: resources/ui/gtk4/prefs.ui:124 resources/ui/gtk3/prefs.ui:166
|
#: resources/ui/gtk4/prefs.ui:124 resources/ui/gtk3/prefs.ui:166
|
||||||
#: resources/ui/adw/prefs.ui:242
|
#: resources/ui/adw/prefs.ui:242
|
||||||
msgid "None"
|
msgid "None"
|
||||||
msgstr "कोई नहीं"
|
msgstr ""
|
||||||
|
|
||||||
#: resources/ui/gtk4/prefs.ui:168 resources/ui/gtk3/prefs.ui:208
|
#: resources/ui/gtk4/prefs.ui:168 resources/ui/gtk3/prefs.ui:208
|
||||||
#: resources/ui/adw/prefs.ui:65
|
#: resources/ui/adw/prefs.ui:65
|
||||||
msgid "Effect Profile Constraints"
|
msgid "Effect Profile Constraints"
|
||||||
msgstr "प्रभाव प्रोफ़ाइल बाधाएँ"
|
msgstr ""
|
||||||
|
|
||||||
#: resources/ui/gtk4/prefs.ui:178 resources/ui/gtk3/prefs.ui:218
|
#: resources/ui/gtk4/prefs.ui:178 resources/ui/gtk3/prefs.ui:218
|
||||||
#: resources/ui/adw/prefs.ui:66
|
#: resources/ui/adw/prefs.ui:66
|
||||||
msgid "Define when the current effect settings should be used."
|
msgid "Define when the current effect settings should be used."
|
||||||
msgstr "परिभाषित करें कि वर्तमान प्रभाव सेटिंग्स का उपयोग कब किया जाना चाहिए।"
|
msgstr ""
|
||||||
|
|
||||||
#: resources/ui/gtk4/prefs.ui:202 resources/ui/gtk3/prefs.ui:242
|
#: resources/ui/gtk4/prefs.ui:202 resources/ui/gtk3/prefs.ui:242
|
||||||
#: resources/ui/adw/prefs.ui:70
|
#: resources/ui/adw/prefs.ui:70
|
||||||
msgid "Application"
|
msgid "Application"
|
||||||
msgstr "एप्लिकेशन"
|
msgstr ""
|
||||||
|
|
||||||
#: resources/ui/gtk4/prefs.ui:220 resources/ui/gtk4/prefs.ui:255
|
#: resources/ui/gtk4/prefs.ui:220 resources/ui/gtk4/prefs.ui:255
|
||||||
#: resources/ui/gtk4/prefs.ui:284 resources/ui/gtk4/prefs.ui:313
|
#: resources/ui/gtk4/prefs.ui:284 resources/ui/gtk4/prefs.ui:313
|
||||||
@@ -732,49 +724,49 @@ msgstr "एप्लिकेशन"
|
|||||||
#: resources/ui/adw/prefs.ui:117 resources/ui/adw/prefs.ui:132
|
#: resources/ui/adw/prefs.ui:117 resources/ui/adw/prefs.ui:132
|
||||||
#: resources/ui/adw/prefs.ui:147 resources/ui/adw/prefs.ui:162
|
#: resources/ui/adw/prefs.ui:147 resources/ui/adw/prefs.ui:162
|
||||||
msgid "Any"
|
msgid "Any"
|
||||||
msgstr "कोई"
|
msgstr ""
|
||||||
|
|
||||||
#: resources/ui/gtk4/prefs.ui:244 resources/ui/gtk3/prefs.ui:289
|
#: resources/ui/gtk4/prefs.ui:244 resources/ui/gtk3/prefs.ui:289
|
||||||
#: resources/ui/adw/prefs.ui:98
|
#: resources/ui/adw/prefs.ui:98
|
||||||
msgid "Animation Type"
|
msgid "Animation Type"
|
||||||
msgstr "एनिमेशन प्रकार"
|
msgstr ""
|
||||||
|
|
||||||
#: resources/ui/gtk4/prefs.ui:273 resources/ui/gtk3/prefs.ui:318
|
#: resources/ui/gtk4/prefs.ui:273 resources/ui/gtk3/prefs.ui:318
|
||||||
#: resources/ui/adw/prefs.ui:113
|
#: resources/ui/adw/prefs.ui:113
|
||||||
msgid "Window Type"
|
msgid "Window Type"
|
||||||
msgstr "विंडो प्रकार"
|
msgstr ""
|
||||||
|
|
||||||
#: resources/ui/gtk4/prefs.ui:302 resources/ui/gtk3/prefs.ui:347
|
#: resources/ui/gtk4/prefs.ui:302 resources/ui/gtk3/prefs.ui:347
|
||||||
#: resources/ui/adw/prefs.ui:128
|
#: resources/ui/adw/prefs.ui:128
|
||||||
msgid "Color Scheme"
|
msgid "Color Scheme"
|
||||||
msgstr "रंग योजना"
|
msgstr ""
|
||||||
|
|
||||||
#: resources/ui/gtk4/prefs.ui:331 resources/ui/gtk3/prefs.ui:376
|
#: resources/ui/gtk4/prefs.ui:331 resources/ui/gtk3/prefs.ui:376
|
||||||
#: resources/ui/adw/prefs.ui:143
|
#: resources/ui/adw/prefs.ui:143
|
||||||
msgid "Power Mode"
|
msgid "Power Mode"
|
||||||
msgstr "पावर मोड"
|
msgstr ""
|
||||||
|
|
||||||
#: resources/ui/gtk4/prefs.ui:360 resources/ui/gtk3/prefs.ui:405
|
#: resources/ui/gtk4/prefs.ui:360 resources/ui/gtk3/prefs.ui:405
|
||||||
#: resources/ui/adw/prefs.ui:158
|
#: resources/ui/adw/prefs.ui:158
|
||||||
msgid "Power Profile"
|
msgid "Power Profile"
|
||||||
msgstr "पावर प्रोफ़ाइल"
|
msgstr ""
|
||||||
|
|
||||||
#: resources/ui/gtk4/prefs.ui:392 resources/ui/gtk3/prefs.ui:437
|
#: resources/ui/gtk4/prefs.ui:392 resources/ui/gtk3/prefs.ui:437
|
||||||
#: resources/ui/adw/prefs.ui:179
|
#: resources/ui/adw/prefs.ui:179
|
||||||
msgid "Advanced Profile Options"
|
msgid "Advanced Profile Options"
|
||||||
msgstr "उन्नत प्रोफ़ाइल विकल्प"
|
msgstr ""
|
||||||
|
|
||||||
#: resources/ui/gtk4/prefs.ui:432 resources/ui/gtk3/prefs.ui:477
|
#: resources/ui/gtk4/prefs.ui:432 resources/ui/gtk3/prefs.ui:477
|
||||||
#: resources/ui/adw/prefs.ui:184
|
#: resources/ui/adw/prefs.ui:184
|
||||||
msgid "Use this profile even if there are better matching profiles."
|
msgid "Use this profile even if there are better matching profiles."
|
||||||
msgstr "बेहतर मिलान वाली प्रोफ़ाइल होने पर भी इस प्रोफ़ाइल का उपयोग करें।"
|
msgstr ""
|
||||||
|
|
||||||
#: resources/ui/gtk4/prefs.ui:464 resources/ui/gtk3/prefs.ui:509
|
#: resources/ui/gtk4/prefs.ui:464 resources/ui/gtk3/prefs.ui:509
|
||||||
#: resources/ui/adw/prefs.ui:204
|
#: resources/ui/adw/prefs.ui:204
|
||||||
msgid "Delete this Profile..."
|
msgid "Delete this Profile..."
|
||||||
msgstr "इस प्रोफ़ाइल को हटाएँ..।"
|
msgstr ""
|
||||||
|
|
||||||
#: resources/ui/gtk4/pixelate.ui:69 resources/ui/gtk3/pixelate.ui:90
|
#: resources/ui/gtk4/pixelate.ui:69 resources/ui/gtk3/pixelate.ui:90
|
||||||
#: resources/ui/adw/pixelate.ui:47
|
#: resources/ui/adw/pixelate.ui:47
|
||||||
msgid "Noise"
|
msgid "Noise"
|
||||||
msgstr "शोर"
|
msgstr ""
|
||||||
|
|||||||
@@ -14,77 +14,22 @@
|
|||||||
|
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
import Gio from 'gi://Gio';
|
const {Gio, Gtk, Gdk, GLib, GObject} = imports.gi;
|
||||||
import Gtk from 'gi://Gtk';
|
|
||||||
import GLib from 'gi://GLib';
|
|
||||||
import Gdk from 'gi://Gdk';
|
|
||||||
import Adw from 'gi://Adw';
|
|
||||||
|
|
||||||
import * as utils from './src/utils.js';
|
// libadwaita is available starting with GNOME Shell 42.
|
||||||
import {ProfileManager} from './src/ProfileManager.js';
|
let Adw = null;
|
||||||
|
try {
|
||||||
import Apparition from './src/effects/Apparition.js';
|
Adw = imports.gi.Adw;
|
||||||
import BrokenGlass from './src/effects/BrokenGlass.js';
|
} catch (e) {
|
||||||
import Doom from './src/effects/Doom.js';
|
// Nothing to do.
|
||||||
import EnergizeA from './src/effects/EnergizeA.js';
|
|
||||||
import EnergizeB from './src/effects/EnergizeB.js';
|
|
||||||
import Fire from './src/effects/Fire.js';
|
|
||||||
import Glide from './src/effects/Glide.js';
|
|
||||||
import Glitch from './src/effects/Glitch.js';
|
|
||||||
import Hexagon from './src/effects/Hexagon.js';
|
|
||||||
import Incinerate from './src/effects/Incinerate.js';
|
|
||||||
import Matrix from './src/effects/Matrix.js';
|
|
||||||
import PaintBrush from './src/effects/PaintBrush.js';
|
|
||||||
import Pixelate from './src/effects/Pixelate.js';
|
|
||||||
import PixelWheel from './src/effects/PixelWheel.js';
|
|
||||||
import PixelWipe from './src/effects/PixelWipe.js';
|
|
||||||
import Portal from './src/effects/Portal.js';
|
|
||||||
import SnapOfDisintegration from './src/effects/SnapOfDisintegration.js';
|
|
||||||
import TRexAttack from './src/effects/TRexAttack.js';
|
|
||||||
import TVEffect from './src/effects/TVEffect.js';
|
|
||||||
import TVGlitch from './src/effects/TVGlitch.js';
|
|
||||||
import Wisps from './src/effects/Wisps.js';
|
|
||||||
|
|
||||||
import {ExtensionPreferences, gettext as _} from 'resource:///org/gnome/Shell/Extensions/js/extensions/prefs.js';
|
|
||||||
import * as Config from 'resource:///org/gnome/Shell/Extensions/js/misc/config.js';
|
|
||||||
|
|
||||||
const [GS_MAJOR, GS_MINOR] = Config.PACKAGE_VERSION.split('.').map(toNumericVersion);
|
|
||||||
|
|
||||||
// Returns the given argument, except for "alpha", "beta", and "rc". In these cases -3,
|
|
||||||
// -2, and -1 are returned respectively.
|
|
||||||
function toNumericVersion(x) {
|
|
||||||
switch (x) {
|
|
||||||
case 'alpha':
|
|
||||||
return -3;
|
|
||||||
case 'beta':
|
|
||||||
return -2;
|
|
||||||
case 'rc':
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
return x;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Currently, the extension supports only one set of UI files. In the past, there were
|
const _ = imports.gettext.domain('burn-my-windows').gettext;
|
||||||
// three different sets for GTK3, GTK4, and Adwaita. This method returns the name of the
|
|
||||||
// current UI directory. It's still here since it might be useful in the future.
|
|
||||||
function getUIDir() {
|
|
||||||
return 'adw';
|
|
||||||
}
|
|
||||||
|
|
||||||
// This method returns true if the current GNOME Shell version is at least as high as the
|
|
||||||
// given arguments. Supports "alpha" and "beta" for the minor version number.
|
|
||||||
function shellVersionIsAtLeast(major, minor) {
|
|
||||||
if (GS_MAJOR > major) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (GS_MAJOR == major) {
|
|
||||||
return GS_MINOR >= toNumericVersion(minor);
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
const ExtensionUtils = imports.misc.extensionUtils;
|
||||||
|
const Me = imports.misc.extensionUtils.getCurrentExtension();
|
||||||
|
const utils = Me.imports.src.utils;
|
||||||
|
const ProfileManager = Me.imports.src.ProfileManager.ProfileManager;
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////////////////
|
||||||
// The preferences dialog is organized in pages, each of which is loaded from a //
|
// The preferences dialog is organized in pages, each of which is loaded from a //
|
||||||
@@ -92,56 +37,73 @@ function shellVersionIsAtLeast(major, minor) {
|
|||||||
// from the respective effects. //
|
// from the respective effects. //
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
export default class BurnMyWindowsPreferences extends ExtensionPreferences {
|
var PreferencesDialog = class PreferencesDialog {
|
||||||
|
|
||||||
// ------------------------------------------------------------ constructor / destructor
|
// ------------------------------------------------------------ constructor / destructor
|
||||||
|
|
||||||
fillPreferencesWindow(window) {
|
constructor() {
|
||||||
window.set_default_size(650, 750);
|
|
||||||
|
|
||||||
// New effects must be registered here and in extension.js.
|
// New effects must be registered here and in extension.js.
|
||||||
this._ALL_EFFECTS = [
|
this._ALL_EFFECTS = [
|
||||||
Apparition,
|
new Me.imports.src.effects.Apparition.Apparition(),
|
||||||
BrokenGlass,
|
new Me.imports.src.effects.BrokenGlass.BrokenGlass(),
|
||||||
Doom,
|
new Me.imports.src.effects.Doom.Doom(),
|
||||||
EnergizeA,
|
new Me.imports.src.effects.EnergizeA.EnergizeA(),
|
||||||
EnergizeB,
|
new Me.imports.src.effects.EnergizeB.EnergizeB(),
|
||||||
Fire,
|
new Me.imports.src.effects.Fire.Fire(),
|
||||||
Glide,
|
new Me.imports.src.effects.Glide.Glide(),
|
||||||
Glitch,
|
new Me.imports.src.effects.Glitch.Glitch(),
|
||||||
Hexagon,
|
new Me.imports.src.effects.Hexagon.Hexagon(),
|
||||||
Incinerate,
|
new Me.imports.src.effects.Incinerate.Incinerate(),
|
||||||
Matrix,
|
new Me.imports.src.effects.Matrix.Matrix(),
|
||||||
PaintBrush,
|
new Me.imports.src.effects.PaintBrush.PaintBrush(),
|
||||||
Pixelate,
|
new Me.imports.src.effects.Pixelate.Pixelate(),
|
||||||
PixelWheel,
|
new Me.imports.src.effects.PixelWheel.PixelWheel(),
|
||||||
PixelWipe,
|
new Me.imports.src.effects.PixelWipe.PixelWipe(),
|
||||||
Portal,
|
new Me.imports.src.effects.Portal.Portal(),
|
||||||
SnapOfDisintegration,
|
new Me.imports.src.effects.SnapOfDisintegration.SnapOfDisintegration(),
|
||||||
TRexAttack,
|
new Me.imports.src.effects.TRexAttack.TRexAttack(),
|
||||||
TVEffect,
|
new Me.imports.src.effects.TVEffect.TVEffect(),
|
||||||
TVGlitch,
|
new Me.imports.src.effects.TVGlitch.TVGlitch(),
|
||||||
Wisps,
|
new Me.imports.src.effects.Wisps.Wisps(),
|
||||||
];
|
];
|
||||||
|
|
||||||
// Load all of our resources.
|
// Load all of our resources.
|
||||||
this._resources =
|
this._resources = Gio.Resource.load(Me.path + '/resources/burn-my-windows.gresource');
|
||||||
Gio.Resource.load(this.path + '/resources/burn-my-windows.gresource');
|
|
||||||
Gio.resources_register(this._resources);
|
Gio.resources_register(this._resources);
|
||||||
|
|
||||||
|
// Load the CSS file for the settings dialog. If using libadwaita, we do not need an
|
||||||
|
// additional style sheet.
|
||||||
|
if (!utils.isADW()) {
|
||||||
|
const provider = Gtk.CssProvider.new();
|
||||||
|
if (utils.isGTK4()) {
|
||||||
|
provider.load_from_resource('/css/gtk4.css');
|
||||||
|
Gtk.StyleContext.add_provider_for_display(
|
||||||
|
Gdk.Display.get_default(), provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION);
|
||||||
|
} else {
|
||||||
|
provider.load_from_resource('/css/gtk3.css');
|
||||||
|
Gtk.StyleContext.add_provider_for_screen(Gdk.Screen.get_default(), provider,
|
||||||
|
Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Make sure custom icons are found.
|
// Make sure custom icons are found.
|
||||||
|
if (utils.isGTK4()) {
|
||||||
Gtk.IconTheme.get_for_display(Gdk.Display.get_default()).add_resource_path('/img');
|
Gtk.IconTheme.get_for_display(Gdk.Display.get_default()).add_resource_path('/img');
|
||||||
|
} else {
|
||||||
|
Gtk.IconTheme.get_default().add_resource_path('/img');
|
||||||
|
}
|
||||||
|
|
||||||
// Load the general user interface files.
|
// Load the general user interface files.
|
||||||
this._builder = new Gtk.Builder();
|
this._builder = new Gtk.Builder();
|
||||||
this._builder.add_from_resource(`/ui/common/menus.ui`);
|
this._builder.add_from_resource(`/ui/common/menus.ui`);
|
||||||
this._builder.add_from_resource(`/ui/${getUIDir()}/prefs.ui`);
|
this._builder.add_from_resource(`/ui/${utils.getUIDir()}/prefs.ui`);
|
||||||
|
|
||||||
// Store a reference to the general settings object.
|
// Store a reference to the general settings object.
|
||||||
this._settings = this.getSettings();
|
this._settings = ExtensionUtils.getSettings();
|
||||||
|
|
||||||
// This tracks all available effect profiles.
|
// This tracks all available effect profiles.
|
||||||
this._profileManager = new ProfileManager(this.metadata);
|
this._profileManager = new ProfileManager();
|
||||||
|
|
||||||
// This is used to track all connections to properties of the current effect profile.
|
// This is used to track all connections to properties of the current effect profile.
|
||||||
// Whenever the current effect profile changes, all connections are disconnected.
|
// Whenever the current effect profile changes, all connections are disconnected.
|
||||||
@@ -167,8 +129,19 @@ export default class BurnMyWindowsPreferences extends ExtensionPreferences {
|
|||||||
}
|
}
|
||||||
|
|
||||||
let powerProfileRow = this._builder.get_object('profile-power-profile');
|
let powerProfileRow = this._builder.get_object('profile-power-profile');
|
||||||
|
if (!utils.isADW()) {
|
||||||
|
powerProfileRow = powerProfileRow.get_parent().get_parent();
|
||||||
|
}
|
||||||
powerProfileRow.set_visible(hasPowerProfiles);
|
powerProfileRow.set_visible(hasPowerProfiles);
|
||||||
|
|
||||||
|
// The global color scheme is only available starting with GNOME Shell 42. We hide the
|
||||||
|
// corresponding settings row on older versions.
|
||||||
|
let colorSchemeRow = this._builder.get_object('profile-color-scheme');
|
||||||
|
if (!utils.isADW()) {
|
||||||
|
colorSchemeRow = colorSchemeRow.get_parent().get_parent();
|
||||||
|
}
|
||||||
|
colorSchemeRow.set_visible(utils.shellVersionIsAtLeast(42, 0));
|
||||||
|
|
||||||
// Wire up the window picker of the profile editor. Whenever the app-chooser button is
|
// Wire up the window picker of the profile editor. Whenever the app-chooser button is
|
||||||
// clicked, we call a method of the extension which will initiate the window picking.
|
// clicked, we call a method of the extension which will initiate the window picking.
|
||||||
this._builder.get_object('profile-choose-app-button').connect('clicked', () => {
|
this._builder.get_object('profile-choose-app-button').connect('clicked', () => {
|
||||||
@@ -205,6 +178,22 @@ export default class BurnMyWindowsPreferences extends ExtensionPreferences {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// If using libadwaita, the visibility of the profile-editor Adw.Flap is controlled
|
||||||
|
// using bindings in the ui file. On GTK3 and GTK4 we have to wire up this toggling
|
||||||
|
// here since we are using a Gtk.Stack instead of an Adw.Flap.
|
||||||
|
if (!utils.isADW()) {
|
||||||
|
const profileEditorButton = this._builder.get_object('edit-profile-button');
|
||||||
|
profileEditorButton.connect('toggled', b => {
|
||||||
|
if (b.active) {
|
||||||
|
this._builder.get_object('general-prefs')
|
||||||
|
.set_visible_child(this._builder.get_object('profile-editor'));
|
||||||
|
} else {
|
||||||
|
this._builder.get_object('general-prefs')
|
||||||
|
.set_visible_child(this._builder.get_object('effect-editor'));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
// This is our top-level widget which we will return later.
|
// This is our top-level widget which we will return later.
|
||||||
this._widget = this._builder.get_object('general-prefs');
|
this._widget = this._builder.get_object('general-prefs');
|
||||||
|
|
||||||
@@ -228,12 +217,31 @@ export default class BurnMyWindowsPreferences extends ExtensionPreferences {
|
|||||||
// accordion-like behavior of the effect settings.
|
// accordion-like behavior of the effect settings.
|
||||||
this._effectRows = [];
|
this._effectRows = [];
|
||||||
|
|
||||||
|
if (!utils.isADW()) {
|
||||||
|
group.connect('row-activated', (g, row) => {
|
||||||
|
this._effectRows.forEach(r => {
|
||||||
|
if (r == row) {
|
||||||
|
if (r._revealer.get_reveal_child()) {
|
||||||
|
r._revealer.set_reveal_child(false);
|
||||||
|
r._arrow.get_style_context().remove_class('revealed');
|
||||||
|
} else {
|
||||||
|
r._revealer.set_reveal_child(true);
|
||||||
|
r._arrow.get_style_context().add_class('revealed');
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
r._revealer.set_reveal_child(false);
|
||||||
|
r._arrow.get_style_context().remove_class('revealed');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
// Now add all the rows.
|
// Now add all the rows.
|
||||||
this._ALL_EFFECTS.forEach(effect => {
|
this._ALL_EFFECTS.forEach(effect => {
|
||||||
const [minMajor, minMinor] = effect.getMinShellVersion();
|
const [minMajor, minMinor] = effect.getMinShellVersion();
|
||||||
if (shellVersionIsAtLeast(minMajor, minMinor)) {
|
if (utils.shellVersionIsAtLeast(minMajor, minMinor)) {
|
||||||
|
|
||||||
const uiFile = `/ui/${getUIDir()}/${effect.getNick()}.ui`;
|
const uiFile = `/ui/${utils.getUIDir()}/${effect.getNick()}.ui`;
|
||||||
|
|
||||||
// Is there a better way to test for the existence of a resource file?
|
// Is there a better way to test for the existence of a resource file?
|
||||||
let hasPrefs = false;
|
let hasPrefs = false;
|
||||||
@@ -250,7 +258,12 @@ export default class BurnMyWindowsPreferences extends ExtensionPreferences {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// The preview button.
|
// The preview button.
|
||||||
let previewButton = Gtk.Button.new_from_icon_name('bmw-preview-symbolic');
|
let previewButton;
|
||||||
|
if (utils.isGTK4()) {
|
||||||
|
previewButton = Gtk.Button.new_from_icon_name('bmw-preview-symbolic');
|
||||||
|
} else {
|
||||||
|
previewButton = Gtk.Button.new_from_icon_name('bmw-preview-symbolic', 1);
|
||||||
|
}
|
||||||
previewButton.get_style_context().add_class('circular');
|
previewButton.get_style_context().add_class('circular');
|
||||||
previewButton.get_style_context().add_class('flat');
|
previewButton.get_style_context().add_class('flat');
|
||||||
previewButton.set_tooltip_text(_('Preview this effect'));
|
previewButton.set_tooltip_text(_('Preview this effect'));
|
||||||
@@ -264,12 +277,14 @@ export default class BurnMyWindowsPreferences extends ExtensionPreferences {
|
|||||||
button.set_valign(Gtk.Align.CENTER);
|
button.set_valign(Gtk.Align.CENTER);
|
||||||
this._builder.expose_object(`${effect.getNick()}-enable-effect`, button);
|
this._builder.expose_object(`${effect.getNick()}-enable-effect`, button);
|
||||||
|
|
||||||
|
if (utils.isADW()) {
|
||||||
|
|
||||||
let row;
|
let row;
|
||||||
if (hasPrefs) {
|
if (hasPrefs) {
|
||||||
|
|
||||||
// Add the effect's preferences (if any).
|
// Add the effect's preferences (if any).
|
||||||
row = this._builder.get_object(`${effect.getNick()}-prefs`);
|
row = this._builder.get_object(`${effect.getNick()}-prefs`);
|
||||||
} else {
|
} else if (utils.isADW()) {
|
||||||
row = Adw.ActionRow.new();
|
row = Adw.ActionRow.new();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -303,16 +318,60 @@ export default class BurnMyWindowsPreferences extends ExtensionPreferences {
|
|||||||
row.add_prefix(previewButton);
|
row.add_prefix(previewButton);
|
||||||
|
|
||||||
group.add(row);
|
group.add(row);
|
||||||
|
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
const row = new Gtk.ListBoxRow();
|
||||||
|
row.get_style_context().add_class('effect-row');
|
||||||
|
|
||||||
|
const container = new Gtk.Box({orientation: Gtk.Orientation.VERTICAL});
|
||||||
|
|
||||||
|
const header = new Gtk.Box({spacing: 12});
|
||||||
|
header.get_style_context().add_class('effect-row-header');
|
||||||
|
|
||||||
|
const label = new Gtk.Label(
|
||||||
|
{label: effect.getLabel(), hexpand: true, halign: Gtk.Align.START});
|
||||||
|
label.get_style_context().add_class('heading');
|
||||||
|
|
||||||
|
this.gtkBoxAppend(header, previewButton);
|
||||||
|
this.gtkBoxAppend(header, label);
|
||||||
|
this.gtkBoxAppend(header, button);
|
||||||
|
this.gtkBoxAppend(container, header);
|
||||||
|
|
||||||
|
if (hasPrefs) {
|
||||||
|
const revealer = this._builder.get_object(`${effect.getNick()}-prefs`);
|
||||||
|
const arrow = new Gtk.Image({icon_name: 'go-down-symbolic'});
|
||||||
|
arrow.get_style_context().add_class('revealer-arrow');
|
||||||
|
this.gtkBoxAppend(header, arrow);
|
||||||
|
this.gtkBoxAppend(container, revealer);
|
||||||
|
row._revealer = revealer;
|
||||||
|
row._arrow = arrow;
|
||||||
|
|
||||||
|
row.set_activatable(true);
|
||||||
|
this._effectRows.push(row);
|
||||||
|
} else {
|
||||||
|
row.set_activatable(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (utils.isGTK4()) {
|
||||||
|
row.set_child(container);
|
||||||
|
group.append(row);
|
||||||
|
} else {
|
||||||
|
row.add(container);
|
||||||
|
group.add(row);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// Some things can only be done once the widget is shown as we do not have access to
|
// Some things can only be done once the widget is shown as we do not have access to
|
||||||
// the toplevel widget before.
|
// the toplevel widget before.
|
||||||
this._widget.connect('realize', (widget) => {
|
this._widget.connect('realize', (widget) => {
|
||||||
const window = widget.get_root();
|
const window = utils.isGTK4() ? widget.get_root() : widget.get_toplevel();
|
||||||
|
|
||||||
// Show the version number in the title bar.
|
// Show the version number in the title bar.
|
||||||
window.set_title(`Burn-My-Windows ${this.metadata.version}`);
|
window.set_title(`Burn-My-Windows ${Me.metadata.version}`);
|
||||||
|
|
||||||
this._loadActiveProfile();
|
this._loadActiveProfile();
|
||||||
this._updateProfileMenu();
|
this._updateProfileMenu();
|
||||||
@@ -320,11 +379,12 @@ export default class BurnMyWindowsPreferences extends ExtensionPreferences {
|
|||||||
// Show an Adw.Toast or a Gtk.InfoBar whenever Burn-My-Windows was updated. We use a
|
// Show an Adw.Toast or a Gtk.InfoBar whenever Burn-My-Windows was updated. We use a
|
||||||
// small timeout so that it is not shown instantaneously.
|
// small timeout so that it is not shown instantaneously.
|
||||||
const lastVersion = this._settings.get_int('last-prefs-version');
|
const lastVersion = this._settings.get_int('last-prefs-version');
|
||||||
if (lastVersion < this.metadata.version) {
|
if (lastVersion < Me.metadata.version) {
|
||||||
this._showUpdateInfoTimeout =
|
this._showUpdateInfoTimeout =
|
||||||
GLib.timeout_add(GLib.PRIORITY_DEFAULT, 2000, () => {
|
GLib.timeout_add(GLib.PRIORITY_DEFAULT, 2000, () => {
|
||||||
this._showUpdateInfoTimeout = 0;
|
this._showUpdateInfoTimeout = 0;
|
||||||
|
|
||||||
|
if (utils.isADW()) {
|
||||||
const toast = Adw.Toast.new(_('Burn-My-Windows has been updated!'));
|
const toast = Adw.Toast.new(_('Burn-My-Windows has been updated!'));
|
||||||
toast.set_button_label(_('View Changelog'));
|
toast.set_button_label(_('View Changelog'));
|
||||||
toast.set_action_name('prefs.changelog');
|
toast.set_action_name('prefs.changelog');
|
||||||
@@ -332,9 +392,17 @@ export default class BurnMyWindowsPreferences extends ExtensionPreferences {
|
|||||||
|
|
||||||
toast.connect(
|
toast.connect(
|
||||||
'dismissed',
|
'dismissed',
|
||||||
() => this._settings.set_int('last-prefs-version', this.metadata.version));
|
() => this._settings.set_int('last-prefs-version', Me.metadata.version));
|
||||||
|
|
||||||
window.add_toast(toast);
|
window.add_toast(toast);
|
||||||
|
} else {
|
||||||
|
const infoBar = this._builder.get_object('update-info');
|
||||||
|
infoBar.connect('response', i => {
|
||||||
|
this._settings.set_int('last-prefs-version', Me.metadata.version);
|
||||||
|
i.set_revealed(false);
|
||||||
|
});
|
||||||
|
infoBar.set_revealed(true);
|
||||||
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
@@ -381,7 +449,11 @@ GitHub: <a href='https://github.com/sponsors/schneegans'>https://github.com/spon
|
|||||||
}
|
}
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
if (utils.isGTK4()) {
|
||||||
dialog.show();
|
dialog.show();
|
||||||
|
} else {
|
||||||
|
dialog.show_all();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -396,6 +468,7 @@ GitHub: <a href='https://github.com/sponsors/schneegans'>https://github.com/spon
|
|||||||
|
|
||||||
// Starting with GNOME Shell 42, we have to hack our way through the widget tree
|
// Starting with GNOME Shell 42, we have to hack our way through the widget tree
|
||||||
// of the Adw.PreferencesWindow...
|
// of the Adw.PreferencesWindow...
|
||||||
|
if (utils.isADW()) {
|
||||||
const header = this._findWidgetByType(window.get_content(), Adw.HeaderBar);
|
const header = this._findWidgetByType(window.get_content(), Adw.HeaderBar);
|
||||||
header.pack_start(menu);
|
header.pack_start(menu);
|
||||||
header.set_title_widget(this._builder.get_object('profile-button'));
|
header.set_title_widget(this._builder.get_object('profile-button'));
|
||||||
@@ -419,6 +492,16 @@ GitHub: <a href='https://github.com/sponsors/schneegans'>https://github.com/spon
|
|||||||
|
|
||||||
flap.set_content(scrolledWindow);
|
flap.set_content(scrolledWindow);
|
||||||
|
|
||||||
|
} else if (utils.isGTK4()) {
|
||||||
|
window.get_titlebar().pack_start(menu);
|
||||||
|
window.get_titlebar().set_title_widget(
|
||||||
|
this._builder.get_object('profile-button'));
|
||||||
|
} else {
|
||||||
|
window.get_titlebar().pack_start(menu);
|
||||||
|
window.get_titlebar().set_custom_title(
|
||||||
|
this._builder.get_object('profile-button'));
|
||||||
|
}
|
||||||
|
|
||||||
const addURIAction = (name, uri) => {
|
const addURIAction = (name, uri) => {
|
||||||
const action = Gio.SimpleAction.new(name, null);
|
const action = Gio.SimpleAction.new(name, null);
|
||||||
action.connect('activate', () => Gtk.show_uri(null, uri, Gdk.CURRENT_TIME));
|
action.connect('activate', () => Gtk.show_uri(null, uri, Gdk.CURRENT_TIME));
|
||||||
@@ -450,7 +533,7 @@ GitHub: <a href='https://github.com/sponsors/schneegans'>https://github.com/spon
|
|||||||
null,
|
null,
|
||||||
'https://github.com/Schneegans/Burn-My-Windows/blob/main/docs/changelog.md',
|
'https://github.com/Schneegans/Burn-My-Windows/blob/main/docs/changelog.md',
|
||||||
Gdk.CURRENT_TIME);
|
Gdk.CURRENT_TIME);
|
||||||
this._settings.set_int('last-prefs-version', this.metadata.version)
|
this._settings.set_int('last-prefs-version', Me.metadata.version)
|
||||||
});
|
});
|
||||||
group.add_action(changelogAction);
|
group.add_action(changelogAction);
|
||||||
|
|
||||||
@@ -466,18 +549,35 @@ GitHub: <a href='https://github.com/sponsors/schneegans'>https://github.com/spon
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
const dialog = new Adw.AboutWindow({transient_for: window, modal: true});
|
let dialog;
|
||||||
|
|
||||||
|
// We try to use the special Adw.AboutWindow if it is available.
|
||||||
|
if (utils.isADW() && Adw.AboutWindow) {
|
||||||
|
dialog = new Adw.AboutWindow({transient_for: window, modal: true});
|
||||||
dialog.set_application_icon('burn-my-windows-symbolic');
|
dialog.set_application_icon('burn-my-windows-symbolic');
|
||||||
dialog.set_application_name('Burn-My-Windows');
|
dialog.set_application_name('Burn-My-Windows');
|
||||||
dialog.set_version(`${this.metadata.version}`);
|
dialog.set_version(`${Me.metadata.version}`);
|
||||||
dialog.set_developer_name('Simon Schneegans');
|
dialog.set_developer_name('Simon Schneegans');
|
||||||
dialog.set_issue_url('https://github.com/Schneegans/Burn-My-Windows/issues');
|
dialog.set_issue_url('https://github.com/Schneegans/Burn-My-Windows/issues');
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
dialog = new Gtk.AboutDialog({transient_for: window, modal: true});
|
||||||
|
dialog.set_logo_icon_name('burn-my-windows-symbolic');
|
||||||
|
dialog.set_program_name(`Burn-My-Windows ${Me.metadata.version}`);
|
||||||
|
dialog.set_authors(['Simon Schneegans']);
|
||||||
|
}
|
||||||
|
|
||||||
dialog.set_translator_credits([...translators].join('\n'));
|
dialog.set_translator_credits([...translators].join('\n'));
|
||||||
dialog.set_copyright('© 2023 Simon Schneegans');
|
dialog.set_copyright('© 2022 Simon Schneegans');
|
||||||
dialog.set_website('https://github.com/Schneegans/Burn-My-Windows');
|
dialog.set_website('https://github.com/Schneegans/Burn-My-Windows');
|
||||||
dialog.set_license_type(Gtk.License.GPL_3_0);
|
dialog.set_license_type(Gtk.License.GPL_3_0);
|
||||||
|
|
||||||
|
if (utils.isGTK4()) {
|
||||||
dialog.show();
|
dialog.show();
|
||||||
|
} else {
|
||||||
|
dialog.show_all();
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
group.add_action(aboutAction);
|
group.add_action(aboutAction);
|
||||||
@@ -562,7 +662,10 @@ GitHub: <a href='https://github.com/sponsors/schneegans'>https://github.com/spon
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
window.add(this._widget);
|
// Show the widgets on GTK3.
|
||||||
|
if (!utils.isGTK4()) {
|
||||||
|
this._widget.show_all();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// -------------------------------------------------------------------- public interface
|
// -------------------------------------------------------------------- public interface
|
||||||
@@ -578,6 +681,11 @@ GitHub: <a href='https://github.com/sponsors/schneegans'>https://github.com/spon
|
|||||||
return this._activeProfile.settings;
|
return this._activeProfile.settings;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Returns the widget used for the settings of this extension.
|
||||||
|
getWidget() {
|
||||||
|
return this._widget;
|
||||||
|
}
|
||||||
|
|
||||||
// Connects an Adw.ComboRow (or anything else which has an 'selected' property) to a
|
// Connects an Adw.ComboRow (or anything else which has an 'selected' property) to a
|
||||||
// settings key. It also binds the corresponding reset button.
|
// settings key. It also binds the corresponding reset button.
|
||||||
bindComboRow(settingsKey) {
|
bindComboRow(settingsKey) {
|
||||||
@@ -643,6 +751,17 @@ GitHub: <a href='https://github.com/sponsors/schneegans'>https://github.com/spon
|
|||||||
this._bindResetButton(settingsKey);
|
this._bindResetButton(settingsKey);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------- GTK3 / GTK4 helpers
|
||||||
|
|
||||||
|
// Appends the given child widget to the given Gtk.Box.
|
||||||
|
gtkBoxAppend(box, child) {
|
||||||
|
if (utils.isGTK4()) {
|
||||||
|
box.append(child);
|
||||||
|
} else {
|
||||||
|
box.pack_start(child, false, true, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// ----------------------------------------------------------------------- private stuff
|
// ----------------------------------------------------------------------- private stuff
|
||||||
|
|
||||||
// This loads all settings from the profile given in the settings key 'active-profile'.
|
// This loads all settings from the profile given in the settings key 'active-profile'.
|
||||||
@@ -681,17 +800,26 @@ GitHub: <a href='https://github.com/sponsors/schneegans'>https://github.com/spon
|
|||||||
updateProfileButtonMenuIfChanged('profile-high-priority');
|
updateProfileButtonMenuIfChanged('profile-high-priority');
|
||||||
|
|
||||||
this.bindEntry('profile-app');
|
this.bindEntry('profile-app');
|
||||||
|
|
||||||
|
if (utils.isADW()) {
|
||||||
this.bindComboRow('profile-animation-type');
|
this.bindComboRow('profile-animation-type');
|
||||||
this.bindComboRow('profile-window-type');
|
this.bindComboRow('profile-window-type');
|
||||||
this.bindComboRow('profile-color-scheme');
|
this.bindComboRow('profile-color-scheme');
|
||||||
this.bindComboRow('profile-power-mode');
|
this.bindComboRow('profile-power-mode');
|
||||||
this.bindComboRow('profile-power-profile');
|
this.bindComboRow('profile-power-profile');
|
||||||
|
} else {
|
||||||
|
this.bindComboBox('profile-animation-type');
|
||||||
|
this.bindComboBox('profile-window-type');
|
||||||
|
this.bindComboBox('profile-color-scheme');
|
||||||
|
this.bindComboBox('profile-power-mode');
|
||||||
|
this.bindComboBox('profile-power-profile');
|
||||||
|
}
|
||||||
this.bindSwitch('profile-high-priority');
|
this.bindSwitch('profile-high-priority');
|
||||||
|
|
||||||
// Connect all effect settings.
|
// Connect all effect settings.
|
||||||
this._ALL_EFFECTS.forEach(effect => {
|
this._ALL_EFFECTS.forEach(effect => {
|
||||||
const [minMajor, minMinor] = effect.getMinShellVersion();
|
const [minMajor, minMinor] = effect.getMinShellVersion();
|
||||||
if (shellVersionIsAtLeast(minMajor, minMinor)) {
|
if (utils.shellVersionIsAtLeast(minMajor, minMinor)) {
|
||||||
this.bindSwitch(`${effect.getNick()}-enable-effect`);
|
this.bindSwitch(`${effect.getNick()}-enable-effect`);
|
||||||
effect.bindPreferences(this);
|
effect.bindPreferences(this);
|
||||||
}
|
}
|
||||||
@@ -706,7 +834,7 @@ GitHub: <a href='https://github.com/sponsors/schneegans'>https://github.com/spon
|
|||||||
// configuration option of the profile is changed.
|
// configuration option of the profile is changed.
|
||||||
_updateProfileButton() {
|
_updateProfileButton() {
|
||||||
this._builder.get_object('choose-profile-button').label =
|
this._builder.get_object('choose-profile-button').label =
|
||||||
this._getProfileName(this.getProfileSettings());
|
this._profileManager.getProfileName(this.getProfileSettings());
|
||||||
}
|
}
|
||||||
|
|
||||||
// This updates the list of available profiles in the dropdown of the profile-selection
|
// This updates the list of available profiles in the dropdown of the profile-selection
|
||||||
@@ -720,7 +848,7 @@ GitHub: <a href='https://github.com/sponsors/schneegans'>https://github.com/spon
|
|||||||
|
|
||||||
// Then add an entry for each available profile.
|
// Then add an entry for each available profile.
|
||||||
this._profileManager.getProfiles().forEach(profile => {
|
this._profileManager.getProfiles().forEach(profile => {
|
||||||
const label = this._getProfileName(profile.settings);
|
const label = this._profileManager.getProfileName(profile.settings);
|
||||||
const item = Gio.MenuItem.new(label, 'prefs.active-profile');
|
const item = Gio.MenuItem.new(label, 'prefs.active-profile');
|
||||||
item.set_action_and_target_value('prefs.active-profile',
|
item.set_action_and_target_value('prefs.active-profile',
|
||||||
GLib.Variant.new_string(profile.path));
|
GLib.Variant.new_string(profile.path));
|
||||||
@@ -728,58 +856,6 @@ GitHub: <a href='https://github.com/sponsors/schneegans'>https://github.com/spon
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// Profiles are named according to their configuration. This method returns a localized
|
|
||||||
// string describing the settings of the profile.
|
|
||||||
_getProfileName(settings) {
|
|
||||||
let items = [];
|
|
||||||
|
|
||||||
// If an app is configured, use it as first component for the profile's name.
|
|
||||||
const app = settings.get_string('profile-app');
|
|
||||||
if (app != '') {
|
|
||||||
items.push(app);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Now add components to the name for each non-default profile option. Make sure that
|
|
||||||
// these are the same strings as used in the UI files!
|
|
||||||
const addComponent = (settingsKey, options) => {
|
|
||||||
const option = settings.get_int(settingsKey);
|
|
||||||
if (option > 0) {
|
|
||||||
items.push(options[option - 1]);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
// clang-format off
|
|
||||||
addComponent('profile-animation-type', [_('Opening Windows'),
|
|
||||||
_('Closing Windows')]);
|
|
||||||
addComponent('profile-window-type', [_('Normal Windows'),
|
|
||||||
_('Dialog Windows')]);
|
|
||||||
addComponent('profile-color-scheme', [_('Default Color Scheme'),
|
|
||||||
_('Dark Color Scheme')]);
|
|
||||||
addComponent('profile-power-mode', [_('On Battery'),
|
|
||||||
_('Plugged In')]);
|
|
||||||
addComponent('profile-power-profile', [_('Power-Saver Mode'),
|
|
||||||
_('Balanced Mode'),
|
|
||||||
_('Performance Mode'),
|
|
||||||
_('Power Saver or Balanced'),
|
|
||||||
_('Balanced or Performance')]);
|
|
||||||
// clang-format on
|
|
||||||
|
|
||||||
// If the profile is a high-priority profile, also add this..
|
|
||||||
if (settings.get_boolean('profile-high-priority')) {
|
|
||||||
items.push(_('High Priority'));
|
|
||||||
}
|
|
||||||
|
|
||||||
let name = '';
|
|
||||||
|
|
||||||
if (items.length == 0) {
|
|
||||||
name = _('Standard Profile');
|
|
||||||
} else {
|
|
||||||
name = items.join(' · ');
|
|
||||||
}
|
|
||||||
|
|
||||||
return name;
|
|
||||||
}
|
|
||||||
|
|
||||||
// This wrapper connects a given callback to a profile settings key. Use this instead of
|
// This wrapper connects a given callback to a profile settings key. Use this instead of
|
||||||
// the direct connect() call on the profile settings to make sure that the callback is
|
// the direct connect() call on the profile settings to make sure that the callback is
|
||||||
// disconnected when the active profile changes.
|
// disconnected when the active profile changes.
|
||||||
@@ -856,12 +932,15 @@ GitHub: <a href='https://github.com/sponsors/schneegans'>https://github.com/spon
|
|||||||
default_width: 800,
|
default_width: 800,
|
||||||
default_height: 450,
|
default_height: 450,
|
||||||
modal: true,
|
modal: true,
|
||||||
transient_for: this._widget.get_root()
|
transient_for: utils.isGTK4() ? this._widget.get_root() :
|
||||||
|
this._widget.get_toplevel()
|
||||||
});
|
});
|
||||||
|
|
||||||
// Add a header bar to the window.
|
// Add a header bar to the window.
|
||||||
|
if (utils.isGTK4()) {
|
||||||
const header = Gtk.HeaderBar.new();
|
const header = Gtk.HeaderBar.new();
|
||||||
window.set_titlebar(header);
|
window.set_titlebar(header);
|
||||||
|
}
|
||||||
|
|
||||||
const box = new Gtk.Box({
|
const box = new Gtk.Box({
|
||||||
orientation: Gtk.Orientation.VERTICAL,
|
orientation: Gtk.Orientation.VERTICAL,
|
||||||
@@ -881,11 +960,16 @@ GitHub: <a href='https://github.com/sponsors/schneegans'>https://github.com/spon
|
|||||||
pixel_size: 128,
|
pixel_size: 128,
|
||||||
});
|
});
|
||||||
|
|
||||||
box.append(image);
|
this.gtkBoxAppend(box, image);
|
||||||
box.append(label);
|
this.gtkBoxAppend(box, label);
|
||||||
|
|
||||||
|
if (utils.isGTK4()) {
|
||||||
window.set_child(box);
|
window.set_child(box);
|
||||||
window.show();
|
window.show();
|
||||||
|
} else {
|
||||||
|
window.add(box);
|
||||||
|
window.show_all();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Helper function to show a message dialog. The dialog is modal and has a title, a
|
// Helper function to show a message dialog. The dialog is modal and has a title, a
|
||||||
@@ -894,7 +978,10 @@ GitHub: <a href='https://github.com/sponsors/schneegans'>https://github.com/spon
|
|||||||
// called when the button is clicked.
|
// called when the button is clicked.
|
||||||
// This method works on GTK3, GTK4, and libadwaita.
|
// This method works on GTK3, GTK4, and libadwaita.
|
||||||
_createMessageDialog(title, message, window, buttons) {
|
_createMessageDialog(title, message, window, buttons) {
|
||||||
let dialog = new Adw.MessageDialog({
|
let dialog;
|
||||||
|
|
||||||
|
if (utils.isADW() && Adw.MessageDialog) {
|
||||||
|
dialog = new Adw.MessageDialog({
|
||||||
heading: title,
|
heading: title,
|
||||||
body: message,
|
body: message,
|
||||||
body_use_markup: true,
|
body_use_markup: true,
|
||||||
@@ -915,7 +1002,29 @@ GitHub: <a href='https://github.com/sponsors/schneegans'>https://github.com/spon
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
dialog = new Gtk.MessageDialog({
|
||||||
|
text: title,
|
||||||
|
secondary_text: message,
|
||||||
|
secondary_use_markup: true,
|
||||||
|
modal: true,
|
||||||
|
title: '',
|
||||||
|
});
|
||||||
|
|
||||||
|
buttons.forEach((button, i) => {
|
||||||
|
dialog.add_button(button.label, i);
|
||||||
|
|
||||||
|
if (button.default) {
|
||||||
|
dialog.set_default_response(i);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
if (utils.isGTK4()) {
|
||||||
dialog.set_hide_on_close(true);
|
dialog.set_hide_on_close(true);
|
||||||
|
}
|
||||||
|
|
||||||
dialog.set_transient_for(window);
|
dialog.set_transient_for(window);
|
||||||
|
|
||||||
// If the dialog is closed or a button is clicked, we hide the dialog and call the
|
// If the dialog is closed or a button is clicked, we hide the dialog and call the
|
||||||
@@ -934,3 +1043,25 @@ GitHub: <a href='https://github.com/sponsors/schneegans'>https://github.com/spon
|
|||||||
return dialog;
|
return dialog;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// This is used for setting up the translations.
|
||||||
|
function init() {
|
||||||
|
ExtensionUtils.initTranslations();
|
||||||
|
}
|
||||||
|
|
||||||
|
// This function is called when the preferences window is created to build and return a
|
||||||
|
// Gtk widget. We create a new instance of the PreferencesDialog class each time this
|
||||||
|
// method is called. This way we can actually open multiple settings windows and interact
|
||||||
|
// with all of them properly.
|
||||||
|
function buildPrefsWidget() {
|
||||||
|
var dialog = new PreferencesDialog();
|
||||||
|
return dialog.getWidget();
|
||||||
|
}
|
||||||
|
|
||||||
|
// If using libadwaita, this method is called. In this case, the primary widget of the
|
||||||
|
// preferences dialog is an Adw.PreferencesPage, which we directly add to the window.
|
||||||
|
function fillPreferencesWindow(window) {
|
||||||
|
window.set_default_size(650, 750);
|
||||||
|
var dialog = new PreferencesDialog();
|
||||||
|
window.add(dialog.getWidget());
|
||||||
|
}
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
/*
|
||||||
|
SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
|
||||||
|
SPDX-License-Identifier: CC0-1.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
row {
|
||||||
|
padding: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.effect-row {
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.effect-row-header,
|
||||||
|
.effect-row list {
|
||||||
|
padding: 8px;
|
||||||
|
border: 0 solid @borders;
|
||||||
|
border-bottom-width: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.revealer-arrow {
|
||||||
|
margin-right: 6px;
|
||||||
|
}
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
/*
|
||||||
|
SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
|
||||||
|
SPDX-License-Identifier: CC0-1.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* These are only used if not using libadwaita */
|
||||||
|
|
||||||
|
.effect-row {
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.effect-row-header,
|
||||||
|
.effect-row list {
|
||||||
|
padding: 8px;
|
||||||
|
border: 0 solid @borders;
|
||||||
|
border-bottom-width: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.revealer-arrow {
|
||||||
|
margin-right: 6px;
|
||||||
|
transition: transform 250ms;
|
||||||
|
}
|
||||||
|
|
||||||
|
.revealer-arrow.revealed {
|
||||||
|
transform: rotate(180deg);
|
||||||
|
}
|
||||||
@@ -0,0 +1,281 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
-->
|
||||||
|
|
||||||
|
<interface domain="burn-my-windows">
|
||||||
|
|
||||||
|
<object class="GtkAdjustment" id="apparition-animation-time">
|
||||||
|
<property name="upper">2000</property>
|
||||||
|
<property name="lower">100</property>
|
||||||
|
<property name="step-increment">10</property>
|
||||||
|
<property name="page-increment">100</property>
|
||||||
|
</object>
|
||||||
|
|
||||||
|
<object class="GtkAdjustment" id="apparition-randomness">
|
||||||
|
<property name="upper">1</property>
|
||||||
|
<property name="lower">0</property>
|
||||||
|
<property name="step-increment">0.01</property>
|
||||||
|
<property name="page-increment">0.1</property>
|
||||||
|
</object>
|
||||||
|
|
||||||
|
<object class="GtkAdjustment" id="apparition-twirl-intensity">
|
||||||
|
<property name="upper">10</property>
|
||||||
|
<property name="lower">-10</property>
|
||||||
|
<property name="step-increment">0.1</property>
|
||||||
|
<property name="page-increment">1</property>
|
||||||
|
</object>
|
||||||
|
|
||||||
|
<object class="GtkAdjustment" id="apparition-shake-intensity">
|
||||||
|
<property name="upper">10</property>
|
||||||
|
<property name="lower">0</property>
|
||||||
|
<property name="step-increment">0.1</property>
|
||||||
|
<property name="page-increment">1</property>
|
||||||
|
</object>
|
||||||
|
|
||||||
|
<object class="GtkAdjustment" id="apparition-suction-intensity">
|
||||||
|
<property name="upper">1</property>
|
||||||
|
<property name="lower">0</property>
|
||||||
|
<property name="step-increment">0.01</property>
|
||||||
|
<property name="page-increment">0.1</property>
|
||||||
|
</object>
|
||||||
|
|
||||||
|
<object class="GtkRevealer" id="apparition-prefs">
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBox">
|
||||||
|
<property name="selection-mode">none</property>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<property name="spacing">8</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Animation Time [ms]</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">0</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">apparition-animation-time</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-apparition-animation-time">
|
||||||
|
<child>
|
||||||
|
<object class="GtkImage">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="icon-size">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<property name="spacing">8</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Randomness</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">2</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">apparition-randomness</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-apparition-randomness">
|
||||||
|
<child>
|
||||||
|
<object class="GtkImage">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="icon-size">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<property name="spacing">8</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Twirl Intensity</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">1</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">apparition-twirl-intensity</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-apparition-twirl-intensity">
|
||||||
|
<child>
|
||||||
|
<object class="GtkImage">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="icon-size">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<property name="spacing">8</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Shake Intensity</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">1</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">apparition-shake-intensity</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-apparition-shake-intensity">
|
||||||
|
<child>
|
||||||
|
<object class="GtkImage">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="icon-size">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<property name="spacing">8</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Suction Intensity</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">2</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">apparition-suction-intensity</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-apparition-suction-intensity">
|
||||||
|
<child>
|
||||||
|
<object class="GtkImage">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="icon-size">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
|
||||||
|
</interface>
|
||||||
@@ -0,0 +1,229 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
-->
|
||||||
|
|
||||||
|
<interface domain="burn-my-windows">
|
||||||
|
|
||||||
|
<object class="GtkAdjustment" id="doom-animation-time">
|
||||||
|
<property name="upper">10000</property>
|
||||||
|
<property name="lower">100</property>
|
||||||
|
<property name="step-increment">1</property>
|
||||||
|
<property name="page-increment">100</property>
|
||||||
|
</object>
|
||||||
|
|
||||||
|
<object class="GtkAdjustment" id="doom-horizontal-scale">
|
||||||
|
<property name="upper">50</property>
|
||||||
|
<property name="lower">1</property>
|
||||||
|
<property name="step-increment">1</property>
|
||||||
|
<property name="page-increment">10</property>
|
||||||
|
</object>
|
||||||
|
|
||||||
|
<object class="GtkAdjustment" id="doom-vertical-scale">
|
||||||
|
<property name="upper">50</property>
|
||||||
|
<property name="lower">1</property>
|
||||||
|
<property name="step-increment">1</property>
|
||||||
|
<property name="page-increment">10</property>
|
||||||
|
</object>
|
||||||
|
|
||||||
|
<object class="GtkAdjustment" id="doom-pixel-size">
|
||||||
|
<property name="upper">50</property>
|
||||||
|
<property name="lower">1</property>
|
||||||
|
<property name="step-increment">1</property>
|
||||||
|
<property name="page-increment">10</property>
|
||||||
|
</object>
|
||||||
|
|
||||||
|
<object class="GtkRevealer" id="doom-prefs">
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBox">
|
||||||
|
<property name="selection-mode">none</property>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<property name="spacing">8</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Animation Time [ms]</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">0</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">doom-animation-time</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-doom-animation-time">
|
||||||
|
<child>
|
||||||
|
<object class="GtkImage">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="icon-size">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<property name="spacing">8</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Horizontal Scale</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">2</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">doom-horizontal-scale</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-doom-horizontal-scale">
|
||||||
|
<child>
|
||||||
|
<object class="GtkImage">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="icon-size">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<property name="spacing">8</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Vertical Scale</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">2</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">doom-vertical-scale</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-doom-vertical-scale">
|
||||||
|
<child>
|
||||||
|
<object class="GtkImage">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="icon-size">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<property name="spacing">8</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Pixel Size</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">0</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">doom-pixel-size</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-doom-pixel-size">
|
||||||
|
<child>
|
||||||
|
<object class="GtkImage">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="icon-size">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
|
||||||
|
</interface>
|
||||||
@@ -0,0 +1,167 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
-->
|
||||||
|
|
||||||
|
<interface domain="burn-my-windows">
|
||||||
|
|
||||||
|
<object class="GtkAdjustment" id="energize-a-animation-time">
|
||||||
|
<property name="upper">10000</property>
|
||||||
|
<property name="lower">100</property>
|
||||||
|
<property name="step-increment">1</property>
|
||||||
|
<property name="page-increment">100</property>
|
||||||
|
</object>
|
||||||
|
|
||||||
|
<object class="GtkAdjustment" id="energize-a-scale">
|
||||||
|
<property name="upper">10</property>
|
||||||
|
<property name="lower">0.1</property>
|
||||||
|
<property name="step-increment">0.01</property>
|
||||||
|
<property name="page-increment">0.1</property>
|
||||||
|
</object>
|
||||||
|
|
||||||
|
<object class="GtkRevealer" id="energize-a-prefs">
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBox">
|
||||||
|
<property name="selection-mode">none</property>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<property name="spacing">8</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Animation Time [ms]</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">0</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">energize-a-animation-time</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-energize-a-animation-time">
|
||||||
|
<child>
|
||||||
|
<object class="GtkImage">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="icon-size">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<property name="spacing">8</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Scale</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">2</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">energize-a-scale</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-energize-a-scale">
|
||||||
|
<child>
|
||||||
|
<object class="GtkImage">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="icon-size">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Color</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkColorButton" id="energize-a-color">
|
||||||
|
<property name="use_alpha">0</property>
|
||||||
|
<property name="show_editor">1</property>
|
||||||
|
<property name="margin-start">8</property>
|
||||||
|
<property name="margin-end">8</property>
|
||||||
|
<property name="width-request">250</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-energize-a-color">
|
||||||
|
<child>
|
||||||
|
<object class="GtkImage">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="icon-size">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
|
||||||
|
</interface>
|
||||||
@@ -0,0 +1,168 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
-->
|
||||||
|
|
||||||
|
<interface domain="burn-my-windows">
|
||||||
|
|
||||||
|
<object class="GtkAdjustment" id="energize-b-animation-time">
|
||||||
|
<property name="upper">10000</property>
|
||||||
|
<property name="lower">100</property>
|
||||||
|
<property name="step-increment">1</property>
|
||||||
|
<property name="page-increment">100</property>
|
||||||
|
</object>
|
||||||
|
|
||||||
|
<object class="GtkAdjustment" id="energize-b-scale">
|
||||||
|
<property name="upper">10</property>
|
||||||
|
<property name="lower">0.1</property>
|
||||||
|
<property name="step-increment">0.01</property>
|
||||||
|
<property name="page-increment">0.1</property>
|
||||||
|
</object>
|
||||||
|
|
||||||
|
<object class="GtkRevealer" id="energize-b-prefs">
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBox">
|
||||||
|
<property name="selection-mode">none</property>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<property name="spacing">8</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Animation Time [ms]</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">0</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">energize-b-animation-time</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-energize-b-animation-time">
|
||||||
|
<child>
|
||||||
|
<object class="GtkImage">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="icon-size">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<property name="spacing">8</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Scale</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">2</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">energize-b-scale</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-energize-b-scale">
|
||||||
|
<child>
|
||||||
|
<object class="GtkImage">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="icon-size">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Color</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkColorButton" id="energize-b-color">
|
||||||
|
<property name="use_alpha">0</property>
|
||||||
|
<property name="show_editor">1</property>
|
||||||
|
<property name="margin-start">8</property>
|
||||||
|
<property name="margin-end">8</property>
|
||||||
|
<property name="width-request">250</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-energize-b-color">
|
||||||
|
<child>
|
||||||
|
<object class="GtkImage">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="icon-size">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
|
||||||
|
</object>
|
||||||
|
|
||||||
|
</interface>
|
||||||
@@ -0,0 +1,337 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
-->
|
||||||
|
|
||||||
|
<interface domain="burn-my-windows">
|
||||||
|
|
||||||
|
<object class="GtkAdjustment" id="fire-animation-time">
|
||||||
|
<property name="upper">10000</property>
|
||||||
|
<property name="lower">100</property>
|
||||||
|
<property name="step-increment">1</property>
|
||||||
|
<property name="page-increment">100</property>
|
||||||
|
</object>
|
||||||
|
|
||||||
|
<object class="GtkAdjustment" id="fire-scale">
|
||||||
|
<property name="upper">3</property>
|
||||||
|
<property name="lower">0.1</property>
|
||||||
|
<property name="step-increment">0.01</property>
|
||||||
|
<property name="page-increment">0.1</property>
|
||||||
|
</object>
|
||||||
|
|
||||||
|
<object class="GtkAdjustment" id="fire-movement-speed">
|
||||||
|
<property name="upper">2.0</property>
|
||||||
|
<property name="lower">-2.0</property>
|
||||||
|
<property name="step-increment">0.01</property>
|
||||||
|
<property name="page-increment">0.1</property>
|
||||||
|
</object>
|
||||||
|
|
||||||
|
<object class="GtkRevealer" id="fire-prefs">
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBox">
|
||||||
|
<property name="selection-mode">none</property>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Presets</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkMenuButton" id="fire-preset-button">
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<property name="spacing">8</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Choose a Preset</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkImage">
|
||||||
|
<property name="icon-name">pan-down-symbolic</property>
|
||||||
|
<property name="icon-size">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<property name="spacing">8</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Animation Time [ms]</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">0</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">fire-animation-time</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-fire-animation-time">
|
||||||
|
<child>
|
||||||
|
<object class="GtkImage">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="icon-size">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Scale</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">2</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">fire-scale</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-fire-scale">
|
||||||
|
<child>
|
||||||
|
<object class="GtkImage">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="icon-size">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Speed</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">2</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">fire-movement-speed</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-fire-movement-speed">
|
||||||
|
<child>
|
||||||
|
<object class="GtkImage">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="icon-size">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<property name="orientation">vertical</property>
|
||||||
|
<property name="spacing">3</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">3D Noise</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Creates a more dynamic fire but requires more GPU power.</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
<style>
|
||||||
|
<class name="dim-label" />
|
||||||
|
<class name="caption" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkSwitch" id="fire-3d-noise">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="margin-end">8</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-fire-3d-noise">
|
||||||
|
<child>
|
||||||
|
<object class="GtkImage">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="icon-size">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<property name="spacing">8</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Gradient</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkColorButton" id="fire-color-1">
|
||||||
|
<property name="use_alpha">1</property>
|
||||||
|
<property name="show_editor">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkColorButton" id="fire-color-2">
|
||||||
|
<property name="use_alpha">1</property>
|
||||||
|
<property name="show_editor">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkColorButton" id="fire-color-3">
|
||||||
|
<property name="use_alpha">1</property>
|
||||||
|
<property name="show_editor">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkColorButton" id="fire-color-4">
|
||||||
|
<property name="use_alpha">1</property>
|
||||||
|
<property name="show_editor">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkColorButton" id="fire-color-5">
|
||||||
|
<property name="use_alpha">1</property>
|
||||||
|
<property name="show_editor">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-fire-colors">
|
||||||
|
<child>
|
||||||
|
<object class="GtkImage">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="icon-size">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
|
||||||
|
</interface>
|
||||||
@@ -0,0 +1,281 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
-->
|
||||||
|
|
||||||
|
<interface domain="burn-my-windows">
|
||||||
|
|
||||||
|
<object class="GtkAdjustment" id="glide-animation-time">
|
||||||
|
<property name="upper">2000</property>
|
||||||
|
<property name="lower">100</property>
|
||||||
|
<property name="step-increment">1</property>
|
||||||
|
<property name="page-increment">100</property>
|
||||||
|
</object>
|
||||||
|
|
||||||
|
<object class="GtkAdjustment" id="glide-scale">
|
||||||
|
<property name="upper">1</property>
|
||||||
|
<property name="lower">0.1</property>
|
||||||
|
<property name="step-increment">0.01</property>
|
||||||
|
<property name="page-increment">0.1</property>
|
||||||
|
</object>
|
||||||
|
|
||||||
|
<object class="GtkAdjustment" id="glide-squish">
|
||||||
|
<property name="upper">1</property>
|
||||||
|
<property name="lower">0</property>
|
||||||
|
<property name="step-increment">0.01</property>
|
||||||
|
<property name="page-increment">0.1</property>
|
||||||
|
</object>
|
||||||
|
|
||||||
|
<object class="GtkAdjustment" id="glide-tilt">
|
||||||
|
<property name="upper">1</property>
|
||||||
|
<property name="lower">-1</property>
|
||||||
|
<property name="step-increment">0.01</property>
|
||||||
|
<property name="page-increment">0.1</property>
|
||||||
|
</object>
|
||||||
|
|
||||||
|
<object class="GtkAdjustment" id="glide-shift">
|
||||||
|
<property name="upper">1</property>
|
||||||
|
<property name="lower">-1</property>
|
||||||
|
<property name="step-increment">0.01</property>
|
||||||
|
<property name="page-increment">0.1</property>
|
||||||
|
</object>
|
||||||
|
|
||||||
|
<object class="GtkRevealer" id="glide-prefs">
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBox">
|
||||||
|
<property name="selection-mode">none</property>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<property name="spacing">8</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Animation Time [ms]</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">0</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">glide-animation-time</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-glide-animation-time">
|
||||||
|
<child>
|
||||||
|
<object class="GtkImage">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="icon-size">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<property name="spacing">8</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Scale</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">2</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">glide-scale</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-glide-scale">
|
||||||
|
<child>
|
||||||
|
<object class="GtkImage">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="icon-size">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<property name="spacing">8</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Squish</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">2</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">glide-squish</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-glide-squish">
|
||||||
|
<child>
|
||||||
|
<object class="GtkImage">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="icon-size">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<property name="spacing">8</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Tilt</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">2</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">glide-tilt</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-glide-tilt">
|
||||||
|
<child>
|
||||||
|
<object class="GtkImage">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="icon-size">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<property name="spacing">8</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Shift</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">2</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">glide-shift</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-glide-shift">
|
||||||
|
<child>
|
||||||
|
<object class="GtkImage">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="icon-size">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
|
||||||
|
</interface>
|
||||||
@@ -0,0 +1,271 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
-->
|
||||||
|
|
||||||
|
<interface domain="burn-my-windows">
|
||||||
|
|
||||||
|
<object class="GtkAdjustment" id="glitch-animation-time">
|
||||||
|
<property name="upper">2000</property>
|
||||||
|
<property name="lower">100</property>
|
||||||
|
<property name="step-increment">1</property>
|
||||||
|
<property name="page-increment">100</property>
|
||||||
|
</object>
|
||||||
|
|
||||||
|
<object class="GtkAdjustment" id="glitch-scale">
|
||||||
|
<property name="upper">10</property>
|
||||||
|
<property name="lower">0.1</property>
|
||||||
|
<property name="step-increment">0.01</property>
|
||||||
|
<property name="page-increment">0.1</property>
|
||||||
|
</object>
|
||||||
|
|
||||||
|
<object class="GtkAdjustment" id="glitch-strength">
|
||||||
|
<property name="upper">10</property>
|
||||||
|
<property name="lower">0.1</property>
|
||||||
|
<property name="step-increment">0.01</property>
|
||||||
|
<property name="page-increment">0.1</property>
|
||||||
|
</object>
|
||||||
|
|
||||||
|
<object class="GtkAdjustment" id="glitch-speed">
|
||||||
|
<property name="upper">10</property>
|
||||||
|
<property name="lower">0.1</property>
|
||||||
|
<property name="step-increment">0.01</property>
|
||||||
|
<property name="page-increment">0.1</property>
|
||||||
|
</object>
|
||||||
|
|
||||||
|
<object class="GtkRevealer" id="glitch-prefs">
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBox">
|
||||||
|
<property name="selection-mode">none</property>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<property name="spacing">8</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Animation Time [ms]</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">0</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">glitch-animation-time</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-glitch-animation-time">
|
||||||
|
<child>
|
||||||
|
<object class="GtkImage">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="icon-size">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<property name="spacing">8</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Scale</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">2</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">glitch-scale</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-glitch-scale">
|
||||||
|
<child>
|
||||||
|
<object class="GtkImage">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="icon-size">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<property name="spacing">8</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Strength</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">2</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">glitch-strength</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-glitch-strength">
|
||||||
|
<child>
|
||||||
|
<object class="GtkImage">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="icon-size">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<property name="spacing">8</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Speed</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">2</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">glitch-speed</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-glitch-speed">
|
||||||
|
<child>
|
||||||
|
<object class="GtkImage">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="icon-size">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Color</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkColorButton" id="glitch-color">
|
||||||
|
<property name="use_alpha">1</property>
|
||||||
|
<property name="show_editor">1</property>
|
||||||
|
<property name="margin-start">8</property>
|
||||||
|
<property name="margin-end">8</property>
|
||||||
|
<property name="width-request">250</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-glitch-color">
|
||||||
|
<child>
|
||||||
|
<object class="GtkImage">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="icon-size">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
|
||||||
|
</interface>
|
||||||
@@ -0,0 +1,320 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
-->
|
||||||
|
|
||||||
|
<interface domain="burn-my-windows">
|
||||||
|
|
||||||
|
<object class="GtkAdjustment" id="hexagon-animation-time">
|
||||||
|
<property name="upper">10000</property>
|
||||||
|
<property name="lower">100</property>
|
||||||
|
<property name="step-increment">1</property>
|
||||||
|
<property name="page-increment">100</property>
|
||||||
|
</object>
|
||||||
|
|
||||||
|
<object class="GtkAdjustment" id="hexagon-scale">
|
||||||
|
<property name="upper">10</property>
|
||||||
|
<property name="lower">0.1</property>
|
||||||
|
<property name="step-increment">0.01</property>
|
||||||
|
<property name="page-increment">0.1</property>
|
||||||
|
</object>
|
||||||
|
|
||||||
|
<object class="GtkAdjustment" id="hexagon-line-width">
|
||||||
|
<property name="upper">10</property>
|
||||||
|
<property name="lower">0</property>
|
||||||
|
<property name="step-increment">0.1</property>
|
||||||
|
<property name="page-increment">1</property>
|
||||||
|
</object>
|
||||||
|
|
||||||
|
<object class="GtkRevealer" id="hexagon-prefs">
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBox">
|
||||||
|
<property name="selection-mode">none</property>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<property name="spacing">8</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Animation Time [ms]</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">0</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">hexagon-animation-time</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-hexagon-animation-time">
|
||||||
|
<child>
|
||||||
|
<object class="GtkImage">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="icon-size">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<property name="spacing">8</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Scale</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">2</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">hexagon-scale</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-hexagon-scale">
|
||||||
|
<child>
|
||||||
|
<object class="GtkImage">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="icon-size">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<property name="spacing">8</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Mesh Line Width</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">1</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">hexagon-line-width</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-hexagon-line-width">
|
||||||
|
<child>
|
||||||
|
<object class="GtkImage">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="icon-size">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Line Color</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkColorButton" id="hexagon-line-color">
|
||||||
|
<property name="use_alpha">1</property>
|
||||||
|
<property name="show_editor">1</property>
|
||||||
|
<property name="margin-start">8</property>
|
||||||
|
<property name="margin-end">8</property>
|
||||||
|
<property name="width-request">250</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-hexagon-line-color">
|
||||||
|
<child>
|
||||||
|
<object class="GtkImage">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="icon-size">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Glow Color</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkColorButton" id="hexagon-glow-color">
|
||||||
|
<property name="use_alpha">1</property>
|
||||||
|
<property name="show_editor">1</property>
|
||||||
|
<property name="margin-start">8</property>
|
||||||
|
<property name="margin-end">8</property>
|
||||||
|
<property name="width-request">250</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-hexagon-glow-color">
|
||||||
|
<child>
|
||||||
|
<object class="GtkImage">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="icon-size">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<property name="orientation">vertical</property>
|
||||||
|
<property name="spacing">3</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Additive Blending</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">You may want to enable this for dark window themes.</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
<style>
|
||||||
|
<class name="dim-label" />
|
||||||
|
<class name="caption" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkSwitch" id="hexagon-additive-blending">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="margin-end">8</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-hexagon-additive-blending">
|
||||||
|
<child>
|
||||||
|
<object class="GtkImage">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="icon-size">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
|
||||||
|
</interface>
|
||||||
@@ -0,0 +1,278 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
-->
|
||||||
|
|
||||||
|
<interface domain="burn-my-windows">
|
||||||
|
|
||||||
|
<object class="GtkAdjustment" id="incinerate-animation-time">
|
||||||
|
<property name="upper">10000</property>
|
||||||
|
<property name="lower">100</property>
|
||||||
|
<property name="step-increment">1</property>
|
||||||
|
<property name="page-increment">100</property>
|
||||||
|
</object>
|
||||||
|
|
||||||
|
<object class="GtkAdjustment" id="incinerate-scale">
|
||||||
|
<property name="upper">10</property>
|
||||||
|
<property name="lower">0.1</property>
|
||||||
|
<property name="step-increment">0.01</property>
|
||||||
|
<property name="page-increment">0.1</property>
|
||||||
|
</object>
|
||||||
|
|
||||||
|
<object class="GtkAdjustment" id="incinerate-turbulence">
|
||||||
|
<property name="upper">1</property>
|
||||||
|
<property name="lower">0</property>
|
||||||
|
<property name="step-increment">0.01</property>
|
||||||
|
<property name="page-increment">0.1</property>
|
||||||
|
</object>
|
||||||
|
|
||||||
|
<object class="GtkRevealer" id="incinerate-prefs">
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBox">
|
||||||
|
<property name="selection-mode">none</property>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<property name="spacing">8</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Animation Time [ms]</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">0</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">incinerate-animation-time</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-incinerate-animation-time">
|
||||||
|
<child>
|
||||||
|
<object class="GtkImage">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="icon-size">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<property name="spacing">8</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Scale</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">2</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">incinerate-scale</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-incinerate-scale">
|
||||||
|
<child>
|
||||||
|
<object class="GtkImage">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="icon-size">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<property name="spacing">8</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Turbulence</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">2</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">incinerate-turbulence</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-incinerate-turbulence">
|
||||||
|
<child>
|
||||||
|
<object class="GtkImage">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="icon-size">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<property name="orientation">vertical</property>
|
||||||
|
<property name="spacing">3</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Start at Pointer</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">If disabled, a random location will be chosen.</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
<style>
|
||||||
|
<class name="dim-label" />
|
||||||
|
<class name="caption" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkSwitch" id="incinerate-use-pointer">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="margin-end">8</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-incinerate-use-pointer">
|
||||||
|
<child>
|
||||||
|
<object class="GtkImage">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="icon-size">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Color</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkColorButton" id="incinerate-color">
|
||||||
|
<property name="use_alpha">0</property>
|
||||||
|
<property name="show_editor">1</property>
|
||||||
|
<property name="margin-start">8</property>
|
||||||
|
<property name="margin-end">8</property>
|
||||||
|
<property name="width-request">250</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-incinerate-color">
|
||||||
|
<child>
|
||||||
|
<object class="GtkImage">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="icon-size">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
|
||||||
|
</interface>
|
||||||
@@ -0,0 +1,177 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
-->
|
||||||
|
|
||||||
|
<interface domain="burn-my-windows">
|
||||||
|
|
||||||
|
<object class="GtkAdjustment" id="pixel-wheel-animation-time">
|
||||||
|
<property name="upper">2000</property>
|
||||||
|
<property name="lower">100</property>
|
||||||
|
<property name="step-increment">1</property>
|
||||||
|
<property name="page-increment">100</property>
|
||||||
|
</object>
|
||||||
|
|
||||||
|
<object class="GtkAdjustment" id="pixel-wheel-spoke-count">
|
||||||
|
<property name="upper">50</property>
|
||||||
|
<property name="lower">1</property>
|
||||||
|
<property name="step-increment">1</property>
|
||||||
|
<property name="page-increment">10</property>
|
||||||
|
</object>
|
||||||
|
|
||||||
|
<object class="GtkAdjustment" id="pixel-wheel-pixel-size">
|
||||||
|
<property name="upper">50</property>
|
||||||
|
<property name="lower">1</property>
|
||||||
|
<property name="step-increment">1</property>
|
||||||
|
<property name="page-increment">10</property>
|
||||||
|
</object>
|
||||||
|
|
||||||
|
<object class="GtkRevealer" id="pixel-wheel-prefs">
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBox">
|
||||||
|
<property name="selection-mode">none</property>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<property name="spacing">8</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Animation Time [ms]</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">0</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">pixel-wheel-animation-time</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-pixel-wheel-animation-time">
|
||||||
|
<child>
|
||||||
|
<object class="GtkImage">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="icon-size">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<property name="spacing">8</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Spoke Count</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">0</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">pixel-wheel-spoke-count</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-pixel-wheel-spoke-count">
|
||||||
|
<child>
|
||||||
|
<object class="GtkImage">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="icon-size">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<property name="spacing">8</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Pixel Size</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">0</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">pixel-wheel-pixel-size</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-pixel-wheel-pixel-size">
|
||||||
|
<child>
|
||||||
|
<object class="GtkImage">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="icon-size">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
|
||||||
|
</interface>
|
||||||
@@ -0,0 +1,132 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
-->
|
||||||
|
|
||||||
|
<interface domain="burn-my-windows">
|
||||||
|
|
||||||
|
<object class="GtkAdjustment" id="pixel-wipe-animation-time">
|
||||||
|
<property name="upper">5000</property>
|
||||||
|
<property name="lower">100</property>
|
||||||
|
<property name="step-increment">1</property>
|
||||||
|
<property name="page-increment">100</property>
|
||||||
|
</object>
|
||||||
|
|
||||||
|
<object class="GtkAdjustment" id="pixel-wipe-direction">
|
||||||
|
<property name="upper">360</property>
|
||||||
|
<property name="lower">0</property>
|
||||||
|
<property name="step-increment">1</property>
|
||||||
|
<property name="page-increment">10</property>
|
||||||
|
</object>
|
||||||
|
|
||||||
|
<object class="GtkAdjustment" id="pixel-wipe-pixel-size">
|
||||||
|
<property name="upper">50</property>
|
||||||
|
<property name="lower">1</property>
|
||||||
|
<property name="step-increment">1</property>
|
||||||
|
<property name="page-increment">10</property>
|
||||||
|
</object>
|
||||||
|
|
||||||
|
<object class="GtkRevealer" id="pixel-wipe-prefs">
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBox">
|
||||||
|
<property name="selection-mode">none</property>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<property name="spacing">8</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Animation Time [ms]</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">0</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">pixel-wipe-animation-time</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-pixel-wipe-animation-time">
|
||||||
|
<child>
|
||||||
|
<object class="GtkImage">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="icon-size">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<property name="spacing">8</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Pixel Size</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">0</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">pixel-wipe-pixel-size</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-pixel-wipe-pixel-size">
|
||||||
|
<child>
|
||||||
|
<object class="GtkImage">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="icon-size">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
|
||||||
|
</interface>
|
||||||
@@ -0,0 +1,177 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
-->
|
||||||
|
|
||||||
|
<interface domain="burn-my-windows">
|
||||||
|
|
||||||
|
<object class="GtkAdjustment" id="pixelate-animation-time">
|
||||||
|
<property name="upper">10000</property>
|
||||||
|
<property name="lower">100</property>
|
||||||
|
<property name="step-increment">1</property>
|
||||||
|
<property name="page-increment">100</property>
|
||||||
|
</object>
|
||||||
|
|
||||||
|
<object class="GtkAdjustment" id="pixelate-noise">
|
||||||
|
<property name="upper">100</property>
|
||||||
|
<property name="lower">1</property>
|
||||||
|
<property name="step-increment">1</property>
|
||||||
|
<property name="page-increment">10</property>
|
||||||
|
</object>
|
||||||
|
|
||||||
|
<object class="GtkAdjustment" id="pixelate-pixel-size">
|
||||||
|
<property name="upper">50</property>
|
||||||
|
<property name="lower">1</property>
|
||||||
|
<property name="step-increment">1</property>
|
||||||
|
<property name="page-increment">10</property>
|
||||||
|
</object>
|
||||||
|
|
||||||
|
<object class="GtkRevealer" id="pixelate-prefs">
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBox">
|
||||||
|
<property name="selection-mode">none</property>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<property name="spacing">8</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Animation Time [ms]</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">0</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">pixelate-animation-time</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-pixelate-animation-time">
|
||||||
|
<child>
|
||||||
|
<object class="GtkImage">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="icon-size">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<property name="spacing">8</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Noise</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">0</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">pixelate-noise</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-pixelate-noise">
|
||||||
|
<child>
|
||||||
|
<object class="GtkImage">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="icon-size">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<property name="spacing">8</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Pixel Size</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">0</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">pixelate-pixel-size</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-pixelate-pixel-size">
|
||||||
|
<child>
|
||||||
|
<object class="GtkImage">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="icon-size">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
|
||||||
|
</interface>
|
||||||
@@ -0,0 +1,271 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
-->
|
||||||
|
|
||||||
|
<interface domain="burn-my-windows">
|
||||||
|
|
||||||
|
<object class="GtkAdjustment" id="portal-animation-time">
|
||||||
|
<property name="upper">5000</property>
|
||||||
|
<property name="lower">500</property>
|
||||||
|
<property name="step-increment">1</property>
|
||||||
|
<property name="page-increment">100</property>
|
||||||
|
</object>
|
||||||
|
|
||||||
|
<object class="GtkAdjustment" id="portal-rotation-speed">
|
||||||
|
<property name="upper">2</property>
|
||||||
|
<property name="lower">-2</property>
|
||||||
|
<property name="step-increment">0.1</property>
|
||||||
|
<property name="page-increment">1</property>
|
||||||
|
</object>
|
||||||
|
|
||||||
|
<object class="GtkAdjustment" id="portal-whirling">
|
||||||
|
<property name="upper">2</property>
|
||||||
|
<property name="lower">-2</property>
|
||||||
|
<property name="step-increment">0.1</property>
|
||||||
|
<property name="page-increment">1</property>
|
||||||
|
</object>
|
||||||
|
|
||||||
|
<object class="GtkAdjustment" id="portal-details">
|
||||||
|
<property name="upper">100</property>
|
||||||
|
<property name="lower">1</property>
|
||||||
|
<property name="step-increment">1</property>
|
||||||
|
<property name="page-increment">10</property>
|
||||||
|
</object>
|
||||||
|
|
||||||
|
<object class="GtkRevealer" id="portal-prefs">
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBox">
|
||||||
|
<property name="selection-mode">none</property>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<property name="spacing">8</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Animation Time [ms]</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">0</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">portal-animation-time</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-portal-animation-time">
|
||||||
|
<child>
|
||||||
|
<object class="GtkImage">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="icon-size">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<property name="spacing">8</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Rotation Speed</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">2</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">portal-rotation-speed</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-portal-rotation-speed">
|
||||||
|
<child>
|
||||||
|
<object class="GtkImage">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="icon-size">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<property name="spacing">8</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Whirling</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">2</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">portal-whirling</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-portal-whirling">
|
||||||
|
<child>
|
||||||
|
<object class="GtkImage">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="icon-size">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<property name="spacing">8</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Details</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">1</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">portal-details</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-portal-details">
|
||||||
|
<child>
|
||||||
|
<object class="GtkImage">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="icon-size">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Color</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkColorButton" id="portal-color">
|
||||||
|
<property name="use_alpha">0</property>
|
||||||
|
<property name="show_editor">1</property>
|
||||||
|
<property name="margin-start">8</property>
|
||||||
|
<property name="margin-end">8</property>
|
||||||
|
<property name="width-request">250</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-portal-color">
|
||||||
|
<child>
|
||||||
|
<object class="GtkImage">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="icon-size">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
|
||||||
|
</interface>
|
||||||
@@ -0,0 +1,519 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
-->
|
||||||
|
|
||||||
|
<interface domain="burn-my-windows">
|
||||||
|
<requires lib="gtk" version="3.0" />
|
||||||
|
|
||||||
|
<!-- This will be added to the header bar. -->
|
||||||
|
<object class="GtkMenuButton" id="menu-button">
|
||||||
|
<property name="menu-model">main-menu</property>
|
||||||
|
<property name="visible">1</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkImage">
|
||||||
|
<property name="icon-name">heart-filled-symbolic</property>
|
||||||
|
<property name="visible">1</property>
|
||||||
|
<property name="icon-size">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
|
||||||
|
<!-- This will be added to the header bar. -->
|
||||||
|
<object class="GtkBox" id="profile-button">
|
||||||
|
<property name="halign">center</property>
|
||||||
|
<property name="visible">1</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkMenuButton">
|
||||||
|
<property name="menu-model">profile-menu</property>
|
||||||
|
<property name="visible">1</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<property name="visible">1</property>
|
||||||
|
<property name="spacing">6</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel" id="choose-profile-button">
|
||||||
|
<property name="visible">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkImage">
|
||||||
|
<property name="icon-name">pan-down-symbolic</property>
|
||||||
|
<property name="visible">1</property>
|
||||||
|
<property name="icon-size">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkToggleButton" id="edit-profile-button">
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="visible">1</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkImage">
|
||||||
|
<property name="icon-name">bmw-edit-profile-symbolic</property>
|
||||||
|
<property name="visible">1</property>
|
||||||
|
<property name="icon-size">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<style>
|
||||||
|
<class name="linked" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
|
||||||
|
<object class="GtkStack" id="general-prefs">
|
||||||
|
<property name="transition-type">over-down-up</property>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox" id="effect-editor">
|
||||||
|
<property name="orientation">vertical</property>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkInfoBar" id="update-info">
|
||||||
|
<property name="message-type">info</property>
|
||||||
|
<property name="revealed">false</property>
|
||||||
|
<property name="show-close-button">true</property>
|
||||||
|
<child internal-child="content_area">
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Burn-My-Windows has been updated!</property>
|
||||||
|
<property name="margin-start">6</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child internal-child="action_area">
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="update-info-button">
|
||||||
|
<property name="label" translatable="yes">View Changelog</property>
|
||||||
|
<property name="action-name">prefs.changelog</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<action-widgets>
|
||||||
|
<action-widget response="-1">update-info-button</action-widget>
|
||||||
|
</action-widgets>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkScrolledWindow">
|
||||||
|
<property name="hscrollbar-policy">never</property>
|
||||||
|
<property name="vexpand">true</property>
|
||||||
|
<child>
|
||||||
|
|
||||||
|
<object class="GtkBox">
|
||||||
|
<property name="orientation">vertical</property>
|
||||||
|
<property name="margin-top">20</property>
|
||||||
|
<property name="margin-bottom">20</property>
|
||||||
|
<property name="margin-start">20</property>
|
||||||
|
<property name="margin-end">20</property>
|
||||||
|
<property name="spacing">5</property>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<property name="orientation">vertical</property>
|
||||||
|
<property name="spacing">5</property>
|
||||||
|
<property name="hexpand">true</property>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Effect Selection</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<style>
|
||||||
|
<class name="heading" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">If multiple are selected, one is chosen randomly.</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<style>
|
||||||
|
<class name="linked" />
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="choose-all-effects-button">
|
||||||
|
<property name="label" translatable="yes">All</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="choose-no-effects-button">
|
||||||
|
<property name="label" translatable="yes">None</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkFrame">
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBox" id="effects-group">
|
||||||
|
<property name="selection-mode">none</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox" id="profile-editor">
|
||||||
|
<property name="orientation">vertical</property>
|
||||||
|
<property name="margin-top">20</property>
|
||||||
|
<property name="margin-bottom">20</property>
|
||||||
|
<property name="margin-start">20</property>
|
||||||
|
<property name="margin-end">20</property>
|
||||||
|
<property name="spacing">5</property>
|
||||||
|
<style>
|
||||||
|
<class name="background" />
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Effect Profile Constraints</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<style>
|
||||||
|
<class name="heading" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Define when the current effect settings should be used.</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkFrame">
|
||||||
|
<property name="margin-top">5</property>
|
||||||
|
<property name="margin-bottom">15</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBox">
|
||||||
|
<property name="selection-mode">none</property>
|
||||||
|
<!-- <property name="show-separators">1</property> -->
|
||||||
|
<style>
|
||||||
|
<class name="rich-list" />
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Application</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<style>
|
||||||
|
<class name="linked" />
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkEntry" id="profile-app">
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="placeholder-text" translatable="yes">Any</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="profile-choose-app-button">
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkImage">
|
||||||
|
<property name="icon-name">bmw-select-app-symbolic</property>
|
||||||
|
<property name="icon-size">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Animation Type</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkComboBoxText" id="profile-animation-type">
|
||||||
|
<property name="width-request">200</property>
|
||||||
|
<items>
|
||||||
|
<item translatable="yes">Any</item>
|
||||||
|
<item translatable="yes">Opening Windows</item>
|
||||||
|
<item translatable="yes">Closing Windows</item>
|
||||||
|
</items>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Window Type</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkComboBoxText" id="profile-window-type">
|
||||||
|
<property name="width-request">200</property>
|
||||||
|
<items>
|
||||||
|
<item translatable="yes">Any</item>
|
||||||
|
<item translatable="yes">Normal Windows</item>
|
||||||
|
<item translatable="yes">Dialog Windows</item>
|
||||||
|
</items>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Color Scheme</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkComboBoxText" id="profile-color-scheme">
|
||||||
|
<property name="width-request">200</property>
|
||||||
|
<items>
|
||||||
|
<item translatable="yes">Any</item>
|
||||||
|
<item translatable="yes">Default Color Scheme</item>
|
||||||
|
<item translatable="yes">Dark Color Scheme</item>
|
||||||
|
</items>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Power Mode</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkComboBoxText" id="profile-power-mode">
|
||||||
|
<property name="width-request">200</property>
|
||||||
|
<items>
|
||||||
|
<item translatable="yes">Any</item>
|
||||||
|
<item translatable="yes">On Battery</item>
|
||||||
|
<item translatable="yes">Plugged In</item>
|
||||||
|
</items>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Power Profile</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkComboBoxText" id="profile-power-profile">
|
||||||
|
<property name="width-request">200</property>
|
||||||
|
<items>
|
||||||
|
<item translatable="yes">Any</item>
|
||||||
|
<item translatable="yes">Power-Saver Mode</item>
|
||||||
|
<item translatable="yes">Balanced Mode</item>
|
||||||
|
<item translatable="yes">Performance Mode</item>
|
||||||
|
<item translatable="yes">Power Saver or Balanced</item>
|
||||||
|
<item translatable="yes">Balanced or Performance</item>
|
||||||
|
</items>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Advanced Profile Options</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<style>
|
||||||
|
<class name="heading" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkFrame">
|
||||||
|
<property name="margin-top">5</property>
|
||||||
|
<property name="margin-bottom">15</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBox">
|
||||||
|
<property name="selection-mode">none</property>
|
||||||
|
<!-- <property name="show-separators">1</property> -->
|
||||||
|
<style>
|
||||||
|
<class name="rich-list" />
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<property name="orientation">vertical</property>
|
||||||
|
<property name="spacing">3</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">High Priority</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Use this profile even if there are better matching profiles.</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
<property name="ellipsize">end</property>
|
||||||
|
<style>
|
||||||
|
<class name="dim-label" />
|
||||||
|
<class name="caption" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkSwitch" id="profile-high-priority">
|
||||||
|
<property name="valign">center</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton">
|
||||||
|
<property name="action-name">prefs.profile-delete</property>
|
||||||
|
<property name="label" translatable="yes">Delete this Profile...</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
|
||||||
|
</interface>
|
||||||
@@ -0,0 +1,271 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
-->
|
||||||
|
|
||||||
|
<interface domain="burn-my-windows">
|
||||||
|
|
||||||
|
<object class="GtkAdjustment" id="tv-glitch-animation-time">
|
||||||
|
<property name="upper">2000</property>
|
||||||
|
<property name="lower">100</property>
|
||||||
|
<property name="step-increment">1</property>
|
||||||
|
<property name="page-increment">100</property>
|
||||||
|
</object>
|
||||||
|
|
||||||
|
<object class="GtkAdjustment" id="tv-glitch-scale">
|
||||||
|
<property name="upper">10</property>
|
||||||
|
<property name="lower">0.1</property>
|
||||||
|
<property name="step-increment">0.01</property>
|
||||||
|
<property name="page-increment">0.1</property>
|
||||||
|
</object>
|
||||||
|
|
||||||
|
<object class="GtkAdjustment" id="tv-glitch-strength">
|
||||||
|
<property name="upper">10</property>
|
||||||
|
<property name="lower">0.1</property>
|
||||||
|
<property name="step-increment">0.01</property>
|
||||||
|
<property name="page-increment">0.1</property>
|
||||||
|
</object>
|
||||||
|
|
||||||
|
<object class="GtkAdjustment" id="tv-glitch-speed">
|
||||||
|
<property name="upper">10</property>
|
||||||
|
<property name="lower">0.1</property>
|
||||||
|
<property name="step-increment">0.01</property>
|
||||||
|
<property name="page-increment">0.1</property>
|
||||||
|
</object>
|
||||||
|
|
||||||
|
<object class="GtkRevealer" id="tv-glitch-prefs">
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBox">
|
||||||
|
<property name="selection-mode">none</property>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<property name="spacing">8</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Animation Time [ms]</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">0</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">tv-glitch-animation-time</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-tv-glitch-animation-time">
|
||||||
|
<child>
|
||||||
|
<object class="GtkImage">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="icon-size">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<property name="spacing">8</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Scale</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">2</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">tv-glitch-scale</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-tv-glitch-scale">
|
||||||
|
<child>
|
||||||
|
<object class="GtkImage">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="icon-size">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<property name="spacing">8</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Strength</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">2</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">tv-glitch-strength</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-tv-glitch-strength">
|
||||||
|
<child>
|
||||||
|
<object class="GtkImage">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="icon-size">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<property name="spacing">8</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Speed</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">2</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">tv-glitch-speed</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-tv-glitch-speed">
|
||||||
|
<child>
|
||||||
|
<object class="GtkImage">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="icon-size">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Color</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkColorButton" id="tv-glitch-color">
|
||||||
|
<property name="use_alpha">1</property>
|
||||||
|
<property name="show_editor">1</property>
|
||||||
|
<property name="margin-start">8</property>
|
||||||
|
<property name="margin-end">8</property>
|
||||||
|
<property name="width-request">250</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-tv-glitch-color">
|
||||||
|
<child>
|
||||||
|
<object class="GtkImage">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="icon-size">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
|
||||||
|
</interface>
|
||||||
@@ -0,0 +1,115 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
-->
|
||||||
|
|
||||||
|
<interface domain="burn-my-windows">
|
||||||
|
|
||||||
|
<object class="GtkAdjustment" id="tv-animation-time">
|
||||||
|
<property name="upper">10000</property>
|
||||||
|
<property name="lower">100</property>
|
||||||
|
<property name="step-increment">1</property>
|
||||||
|
<property name="page-increment">100</property>
|
||||||
|
</object>
|
||||||
|
|
||||||
|
<object class="GtkRevealer" id="tv-prefs">
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBox">
|
||||||
|
<property name="selection-mode">none</property>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<property name="spacing">8</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Animation Time [ms]</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">0</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">tv-animation-time</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-tv-animation-time">
|
||||||
|
<child>
|
||||||
|
<object class="GtkImage">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="icon-size">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Color</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkColorButton" id="tv-effect-color">
|
||||||
|
<property name="use_alpha">1</property>
|
||||||
|
<property name="show_editor">1</property>
|
||||||
|
<property name="margin-start">8</property>
|
||||||
|
<property name="margin-end">8</property>
|
||||||
|
<property name="width-request">250</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-tv-effect-color">
|
||||||
|
<child>
|
||||||
|
<object class="GtkImage">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="icon-size">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
|
||||||
|
</interface>
|
||||||
@@ -0,0 +1,175 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
-->
|
||||||
|
|
||||||
|
<interface domain="burn-my-windows">
|
||||||
|
|
||||||
|
<object class="GtkAdjustment" id="wisps-animation-time">
|
||||||
|
<property name="upper">10000</property>
|
||||||
|
<property name="lower">100</property>
|
||||||
|
<property name="step-increment">1</property>
|
||||||
|
<property name="page-increment">100</property>
|
||||||
|
</object>
|
||||||
|
|
||||||
|
<object class="GtkAdjustment" id="wisps-scale">
|
||||||
|
<property name="upper">10</property>
|
||||||
|
<property name="lower">0.1</property>
|
||||||
|
<property name="step-increment">0.01</property>
|
||||||
|
<property name="page-increment">0.1</property>
|
||||||
|
</object>
|
||||||
|
|
||||||
|
<object class="GtkRevealer" id="wisps-prefs">
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBox">
|
||||||
|
<property name="selection-mode">none</property>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<property name="spacing">8</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Animation Time [ms]</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">0</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">wisps-animation-time</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-wisps-animation-time">
|
||||||
|
<child>
|
||||||
|
<object class="GtkImage">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="icon-size">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<property name="spacing">8</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Scale</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">2</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">wisps-scale</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-wisps-scale">
|
||||||
|
<child>
|
||||||
|
<object class="GtkImage">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="icon-size">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<property name="spacing">8</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Color</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkColorButton" id="wisps-color-1">
|
||||||
|
<property name="show_editor">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkColorButton" id="wisps-color-2">
|
||||||
|
<property name="show_editor">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkColorButton" id="wisps-color-3">
|
||||||
|
<property name="show_editor">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-wisps-colors">
|
||||||
|
<child>
|
||||||
|
<object class="GtkImage">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="icon-size">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
|
||||||
|
</interface>
|
||||||
@@ -0,0 +1,249 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
-->
|
||||||
|
|
||||||
|
<interface domain="burn-my-windows">
|
||||||
|
|
||||||
|
<object class="GtkRevealer" id="apparition-prefs">
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBox">
|
||||||
|
<property name="selection-mode">none</property>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Animation Time [ms]</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">0</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">
|
||||||
|
<object class="GtkAdjustment" id="apparition-animation-time">
|
||||||
|
<property name="upper">2000</property>
|
||||||
|
<property name="lower">100</property>
|
||||||
|
<property name="step-increment">10</property>
|
||||||
|
<property name="page-increment">100</property>
|
||||||
|
</object>
|
||||||
|
</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-apparition-animation-time">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Randomness</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">2</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">
|
||||||
|
<object class="GtkAdjustment" id="apparition-randomness">
|
||||||
|
<property name="upper">1</property>
|
||||||
|
<property name="lower">0</property>
|
||||||
|
<property name="step-increment">0.01</property>
|
||||||
|
<property name="page-increment">0.1</property>
|
||||||
|
</object>
|
||||||
|
</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-apparition-randomness">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Twirl Intensity</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">1</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">
|
||||||
|
<object class="GtkAdjustment" id="apparition-twirl-intensity">
|
||||||
|
<property name="upper">10</property>
|
||||||
|
<property name="lower">-10</property>
|
||||||
|
<property name="step-increment">0.1</property>
|
||||||
|
<property name="page-increment">1</property>
|
||||||
|
</object>
|
||||||
|
</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-apparition-twirl-intensity">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Shake Intensity</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">1</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">
|
||||||
|
<object class="GtkAdjustment" id="apparition-shake-intensity">
|
||||||
|
<property name="upper">10</property>
|
||||||
|
<property name="lower">0</property>
|
||||||
|
<property name="step-increment">0.1</property>
|
||||||
|
<property name="page-increment">1</property>
|
||||||
|
</object>
|
||||||
|
</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-apparition-shake-intensity">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Suction Intensity</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">2</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">
|
||||||
|
<object class="GtkAdjustment" id="apparition-suction-intensity">
|
||||||
|
<property name="upper">1</property>
|
||||||
|
<property name="lower">0</property>
|
||||||
|
<property name="step-increment">0.01</property>
|
||||||
|
<property name="page-increment">0.1</property>
|
||||||
|
</object>
|
||||||
|
</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-apparition-suction-intensity">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
|
||||||
|
</interface>
|
||||||
@@ -0,0 +1,259 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
-->
|
||||||
|
|
||||||
|
<interface domain="burn-my-windows">
|
||||||
|
|
||||||
|
<object class="GtkRevealer" id="broken-glass-prefs">
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBox">
|
||||||
|
<property name="selection-mode">none</property>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Animation Time [ms]</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">0</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">
|
||||||
|
<object class="GtkAdjustment" id="broken-glass-animation-time">
|
||||||
|
<property name="upper">10000</property>
|
||||||
|
<property name="lower">100</property>
|
||||||
|
<property name="step-increment">1</property>
|
||||||
|
<property name="page-increment">100</property>
|
||||||
|
</object>
|
||||||
|
</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-broken-glass-animation-time">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Scale</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">2</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">
|
||||||
|
<object class="GtkAdjustment" id="broken-glass-scale">
|
||||||
|
<property name="upper">5</property>
|
||||||
|
<property name="lower">0.2</property>
|
||||||
|
<property name="step-increment">0.01</property>
|
||||||
|
<property name="page-increment">0.1</property>
|
||||||
|
</object>
|
||||||
|
</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-broken-glass-scale">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Gravity</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">2</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">
|
||||||
|
<object class="GtkAdjustment" id="broken-glass-gravity">
|
||||||
|
<property name="upper">2.0</property>
|
||||||
|
<property name="lower">-2.0</property>
|
||||||
|
<property name="step-increment">0.01</property>
|
||||||
|
<property name="page-increment">0.1</property>
|
||||||
|
</object>
|
||||||
|
</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-broken-glass-gravity">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Blow Force</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">2</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">
|
||||||
|
<object class="GtkAdjustment" id="broken-glass-blow-force">
|
||||||
|
<property name="upper">2.0</property>
|
||||||
|
<property name="lower">-2.0</property>
|
||||||
|
<property name="step-increment">0.01</property>
|
||||||
|
<property name="page-increment">0.1</property>
|
||||||
|
</object>
|
||||||
|
</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-broken-glass-blow-force">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<property name="orientation">vertical</property>
|
||||||
|
<property name="spacing">3</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Shatter From Pointer Location</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">The shards will fly away from where your mouse pointer was when closing the window.</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
<property name="wrap">1</property>
|
||||||
|
<style>
|
||||||
|
<class name="dim-label" />
|
||||||
|
<class name="caption" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkSwitch" id="broken-glass-use-pointer">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="margin-start">8</property>
|
||||||
|
<property name="margin-end">8</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-broken-glass-use-pointer">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
|
||||||
|
</interface>
|
||||||
@@ -0,0 +1,203 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
-->
|
||||||
|
|
||||||
|
<interface domain="burn-my-windows">
|
||||||
|
|
||||||
|
<object class="GtkRevealer" id="doom-prefs">
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBox">
|
||||||
|
<property name="selection-mode">none</property>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Animation Time [ms]</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">0</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">
|
||||||
|
<object class="GtkAdjustment" id="doom-animation-time">
|
||||||
|
<property name="upper">10000</property>
|
||||||
|
<property name="lower">100</property>
|
||||||
|
<property name="step-increment">1</property>
|
||||||
|
<property name="page-increment">100</property>
|
||||||
|
</object>
|
||||||
|
</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-doom-animation-time">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Horizontal Scale</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">2</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">
|
||||||
|
<object class="GtkAdjustment" id="doom-horizontal-scale">
|
||||||
|
<property name="upper">50</property>
|
||||||
|
<property name="lower">1</property>
|
||||||
|
<property name="step-increment">1</property>
|
||||||
|
<property name="page-increment">10</property>
|
||||||
|
</object>
|
||||||
|
</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-doom-horizontal-scale">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Vertical Scale</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">2</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">
|
||||||
|
<object class="GtkAdjustment" id="doom-vertical-scale">
|
||||||
|
<property name="upper">50</property>
|
||||||
|
<property name="lower">1</property>
|
||||||
|
<property name="step-increment">1</property>
|
||||||
|
<property name="page-increment">10</property>
|
||||||
|
</object>
|
||||||
|
</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-doom-vertical-scale">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Pixel Size</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">0</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">
|
||||||
|
<object class="GtkAdjustment" id="doom-pixel-size">
|
||||||
|
<property name="upper">50</property>
|
||||||
|
<property name="lower">1</property>
|
||||||
|
<property name="step-increment">1</property>
|
||||||
|
<property name="page-increment">10</property>
|
||||||
|
</object>
|
||||||
|
</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-doom-pixel-size">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
|
||||||
|
</interface>
|
||||||
@@ -0,0 +1,150 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
-->
|
||||||
|
|
||||||
|
<interface domain="burn-my-windows">
|
||||||
|
|
||||||
|
<object class="GtkRevealer" id="energize-a-prefs">
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBox">
|
||||||
|
<property name="selection-mode">none</property>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Animation Time [ms]</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">0</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">
|
||||||
|
<object class="GtkAdjustment" id="energize-a-animation-time">
|
||||||
|
<property name="upper">10000</property>
|
||||||
|
<property name="lower">100</property>
|
||||||
|
<property name="step-increment">1</property>
|
||||||
|
<property name="page-increment">100</property>
|
||||||
|
</object>
|
||||||
|
</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-energize-a-animation-time">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Scale</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">2</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">
|
||||||
|
<object class="GtkAdjustment" id="energize-a-scale">
|
||||||
|
<property name="upper">10</property>
|
||||||
|
<property name="lower">0.1</property>
|
||||||
|
<property name="step-increment">0.01</property>
|
||||||
|
<property name="page-increment">0.1</property>
|
||||||
|
</object>
|
||||||
|
</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-energize-a-scale">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Color</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkColorButton" id="energize-a-color">
|
||||||
|
<property name="use_alpha">0</property>
|
||||||
|
<property name="show_editor">1</property>
|
||||||
|
<property name="margin-start">8</property>
|
||||||
|
<property name="margin-end">8</property>
|
||||||
|
<property name="width-request">250</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-energize-a-color">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
|
||||||
|
</interface>
|
||||||
@@ -0,0 +1,150 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
-->
|
||||||
|
|
||||||
|
<interface domain="burn-my-windows">
|
||||||
|
|
||||||
|
<object class="GtkRevealer" id="energize-b-prefs">
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBox">
|
||||||
|
<property name="selection-mode">none</property>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Animation Time [ms]</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">0</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">
|
||||||
|
<object class="GtkAdjustment" id="energize-b-animation-time">
|
||||||
|
<property name="upper">10000</property>
|
||||||
|
<property name="lower">100</property>
|
||||||
|
<property name="step-increment">1</property>
|
||||||
|
<property name="page-increment">100</property>
|
||||||
|
</object>
|
||||||
|
</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-energize-b-animation-time">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Scale</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">2</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">
|
||||||
|
<object class="GtkAdjustment" id="energize-b-scale">
|
||||||
|
<property name="upper">10</property>
|
||||||
|
<property name="lower">0.1</property>
|
||||||
|
<property name="step-increment">0.01</property>
|
||||||
|
<property name="page-increment">0.1</property>
|
||||||
|
</object>
|
||||||
|
</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-energize-b-scale">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Color</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkColorButton" id="energize-b-color">
|
||||||
|
<property name="use_alpha">0</property>
|
||||||
|
<property name="show_editor">1</property>
|
||||||
|
<property name="margin-start">8</property>
|
||||||
|
<property name="margin-end">8</property>
|
||||||
|
<property name="width-request">250</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-energize-b-color">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
|
||||||
|
</interface>
|
||||||
@@ -0,0 +1,295 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
-->
|
||||||
|
|
||||||
|
<interface domain="burn-my-windows">
|
||||||
|
|
||||||
|
<object class="GtkRevealer" id="fire-prefs">
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBox">
|
||||||
|
<property name="selection-mode">none</property>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Presets</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkMenuButton" id="fire-preset-button">
|
||||||
|
<property name="label" translatable="yes">Choose a Preset</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Animation Time [ms]</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">0</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">
|
||||||
|
<object class="GtkAdjustment" id="fire-animation-time">
|
||||||
|
<property name="upper">10000</property>
|
||||||
|
<property name="lower">100</property>
|
||||||
|
<property name="step-increment">1</property>
|
||||||
|
<property name="page-increment">100</property>
|
||||||
|
</object>
|
||||||
|
</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-fire-animation-time">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Scale</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">2</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">
|
||||||
|
<object class="GtkAdjustment" id="fire-scale">
|
||||||
|
<property name="upper">3</property>
|
||||||
|
<property name="lower">0.1</property>
|
||||||
|
<property name="step-increment">0.01</property>
|
||||||
|
<property name="page-increment">0.1</property>
|
||||||
|
</object>
|
||||||
|
</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-fire-scale">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Speed</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">2</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">
|
||||||
|
<object class="GtkAdjustment" id="fire-movement-speed">
|
||||||
|
<property name="upper">2.0</property>
|
||||||
|
<property name="lower">-2.0</property>
|
||||||
|
<property name="step-increment">0.01</property>
|
||||||
|
<property name="page-increment">0.1</property>
|
||||||
|
</object>
|
||||||
|
</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-fire-movement-speed">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<property name="orientation">vertical</property>
|
||||||
|
<property name="spacing">3</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">3D Noise</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Creates a more dynamic fire but requires more GPU power.</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
<style>
|
||||||
|
<class name="dim-label" />
|
||||||
|
<class name="caption" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkSwitch" id="fire-3d-noise">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="margin-start">8</property>
|
||||||
|
<property name="margin-end">8</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-fire-3d-noise">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Gradient</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkColorButton" id="fire-color-1">
|
||||||
|
<property name="use_alpha">1</property>
|
||||||
|
<property name="show_editor">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkColorButton" id="fire-color-2">
|
||||||
|
<property name="use_alpha">1</property>
|
||||||
|
<property name="show_editor">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkColorButton" id="fire-color-3">
|
||||||
|
<property name="use_alpha">1</property>
|
||||||
|
<property name="show_editor">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkColorButton" id="fire-color-4">
|
||||||
|
<property name="use_alpha">1</property>
|
||||||
|
<property name="show_editor">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkColorButton" id="fire-color-5">
|
||||||
|
<property name="use_alpha">1</property>
|
||||||
|
<property name="show_editor">1</property>
|
||||||
|
<property name="margin-end">8</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-fire-colors">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
|
||||||
|
</interface>
|
||||||
@@ -0,0 +1,252 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
-->
|
||||||
|
|
||||||
|
<interface domain="burn-my-windows">
|
||||||
|
|
||||||
|
<object class="GtkRevealer" id="glide-prefs">
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBox">
|
||||||
|
<property name="selection-mode">none</property>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Animation Time [ms]</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">0</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">
|
||||||
|
<object class="GtkAdjustment" id="glide-animation-time">
|
||||||
|
<property name="upper">2000</property>
|
||||||
|
<property name="lower">100</property>
|
||||||
|
<property name="step-increment">1</property>
|
||||||
|
<property name="page-increment">100</property>
|
||||||
|
</object>
|
||||||
|
</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-glide-animation-time">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Scale</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">2</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">
|
||||||
|
<object class="GtkAdjustment" id="glide-scale">
|
||||||
|
<property name="upper">1</property>
|
||||||
|
<property name="lower">0.1</property>
|
||||||
|
<property name="step-increment">0.01</property>
|
||||||
|
<property name="page-increment">0.1</property>
|
||||||
|
</object>
|
||||||
|
</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-glide-scale">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Squish</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">2</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">
|
||||||
|
<object class="GtkAdjustment" id="glide-squish">
|
||||||
|
<property name="upper">1</property>
|
||||||
|
<property name="lower">0</property>
|
||||||
|
<property name="step-increment">0.01</property>
|
||||||
|
<property name="page-increment">0.1</property>
|
||||||
|
</object>
|
||||||
|
</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-glide-squish">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Tilt</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">2</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">
|
||||||
|
<object class="GtkAdjustment" id="glide-tilt">
|
||||||
|
<property name="upper">1</property>
|
||||||
|
<property name="lower">-1</property>
|
||||||
|
<property name="step-increment">0.01</property>
|
||||||
|
<property name="page-increment">0.1</property>
|
||||||
|
</object>
|
||||||
|
</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-glide-tilt">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Shift</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">2</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">
|
||||||
|
<object class="GtkAdjustment" id="glide-shift">
|
||||||
|
<property name="upper">1</property>
|
||||||
|
<property name="lower">-1</property>
|
||||||
|
<property name="step-increment">0.01</property>
|
||||||
|
<property name="page-increment">0.1</property>
|
||||||
|
</object>
|
||||||
|
</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-glide-shift">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
|
||||||
|
</object>
|
||||||
|
|
||||||
|
</interface>
|
||||||
@@ -0,0 +1,242 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
-->
|
||||||
|
|
||||||
|
<interface domain="burn-my-windows">
|
||||||
|
|
||||||
|
<object class="GtkRevealer" id="glitch-prefs">
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBox">
|
||||||
|
<property name="selection-mode">none</property>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Animation Time [ms]</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">0</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">
|
||||||
|
<object class="GtkAdjustment" id="glitch-animation-time">
|
||||||
|
<property name="upper">2000</property>
|
||||||
|
<property name="lower">100</property>
|
||||||
|
<property name="step-increment">1</property>
|
||||||
|
<property name="page-increment">100</property>
|
||||||
|
</object>
|
||||||
|
</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-glitch-animation-time">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Scale</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">2</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">
|
||||||
|
<object class="GtkAdjustment" id="glitch-scale">
|
||||||
|
<property name="upper">10</property>
|
||||||
|
<property name="lower">0.1</property>
|
||||||
|
<property name="step-increment">0.01</property>
|
||||||
|
<property name="page-increment">0.1</property>
|
||||||
|
</object>
|
||||||
|
</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-glitch-scale">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Strength</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">2</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">
|
||||||
|
<object class="GtkAdjustment" id="glitch-strength">
|
||||||
|
<property name="upper">10</property>
|
||||||
|
<property name="lower">0.1</property>
|
||||||
|
<property name="step-increment">0.01</property>
|
||||||
|
<property name="page-increment">0.1</property>
|
||||||
|
</object>
|
||||||
|
</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-glitch-strength">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Speed</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">2</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">
|
||||||
|
<object class="GtkAdjustment" id="glitch-speed">
|
||||||
|
<property name="upper">10</property>
|
||||||
|
<property name="lower">0.1</property>
|
||||||
|
<property name="step-increment">0.01</property>
|
||||||
|
<property name="page-increment">0.1</property>
|
||||||
|
</object>
|
||||||
|
</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-glitch-speed">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Color</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkColorButton" id="glitch-color">
|
||||||
|
<property name="use_alpha">1</property>
|
||||||
|
<property name="show_editor">1</property>
|
||||||
|
<property name="margin-start">8</property>
|
||||||
|
<property name="margin-end">8</property>
|
||||||
|
<property name="width-request">250</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-glitch-color">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
|
||||||
|
</interface>
|
||||||
@@ -0,0 +1,288 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
-->
|
||||||
|
|
||||||
|
<interface domain="burn-my-windows">
|
||||||
|
|
||||||
|
<object class="GtkRevealer" id="hexagon-prefs">
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBox">
|
||||||
|
<property name="selection-mode">none</property>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Animation Time [ms]</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">0</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">
|
||||||
|
<object class="GtkAdjustment" id="hexagon-animation-time">
|
||||||
|
<property name="upper">10000</property>
|
||||||
|
<property name="lower">100</property>
|
||||||
|
<property name="step-increment">1</property>
|
||||||
|
<property name="page-increment">100</property>
|
||||||
|
</object>
|
||||||
|
</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-hexagon-animation-time">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Scale</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">2</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">
|
||||||
|
<object class="GtkAdjustment" id="hexagon-scale">
|
||||||
|
<property name="upper">10</property>
|
||||||
|
<property name="lower">0.1</property>
|
||||||
|
<property name="step-increment">0.01</property>
|
||||||
|
<property name="page-increment">0.1</property>
|
||||||
|
</object>
|
||||||
|
</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-hexagon-scale">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Mesh Line Width</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">1</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">
|
||||||
|
<object class="GtkAdjustment" id="hexagon-line-width">
|
||||||
|
<property name="upper">10</property>
|
||||||
|
<property name="lower">0</property>
|
||||||
|
<property name="step-increment">0.1</property>
|
||||||
|
<property name="page-increment">1</property>
|
||||||
|
</object>
|
||||||
|
</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-hexagon-line-width">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Line Color</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkColorButton" id="hexagon-line-color">
|
||||||
|
<property name="use_alpha">1</property>
|
||||||
|
<property name="show_editor">1</property>
|
||||||
|
<property name="margin-start">8</property>
|
||||||
|
<property name="margin-end">8</property>
|
||||||
|
<property name="width-request">250</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-hexagon-line-color">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Glow Color</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkColorButton" id="hexagon-glow-color">
|
||||||
|
<property name="use_alpha">1</property>
|
||||||
|
<property name="show_editor">1</property>
|
||||||
|
<property name="margin-start">8</property>
|
||||||
|
<property name="margin-end">8</property>
|
||||||
|
<property name="width-request">250</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-hexagon-glow-color">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<property name="orientation">vertical</property>
|
||||||
|
<property name="spacing">3</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Additive Blending</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">You may want to enable this for dark window themes.</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
<style>
|
||||||
|
<class name="dim-label" />
|
||||||
|
<class name="caption" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkSwitch" id="hexagon-additive-blending">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="margin-start">8</property>
|
||||||
|
<property name="margin-end">8</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-hexagon-additive-blending">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
|
||||||
|
</interface>
|
||||||
@@ -0,0 +1,251 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
-->
|
||||||
|
|
||||||
|
<interface domain="burn-my-windows">
|
||||||
|
|
||||||
|
<object class="GtkRevealer" id="incinerate-prefs">
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBox">
|
||||||
|
<property name="selection-mode">none</property>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Animation Time [ms]</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">0</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">
|
||||||
|
<object class="GtkAdjustment" id="incinerate-animation-time">
|
||||||
|
<property name="upper">10000</property>
|
||||||
|
<property name="lower">100</property>
|
||||||
|
<property name="step-increment">1</property>
|
||||||
|
<property name="page-increment">100</property>
|
||||||
|
</object>
|
||||||
|
</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-incinerate-animation-time">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Scale</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">2</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">
|
||||||
|
<object class="GtkAdjustment" id="incinerate-scale">
|
||||||
|
<property name="upper">10</property>
|
||||||
|
<property name="lower">0.1</property>
|
||||||
|
<property name="step-increment">0.01</property>
|
||||||
|
<property name="page-increment">0.1</property>
|
||||||
|
</object>
|
||||||
|
</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-incinerate-scale">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Turbulence</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">2</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">
|
||||||
|
<object class="GtkAdjustment" id="incinerate-turbulence">
|
||||||
|
<property name="upper">1</property>
|
||||||
|
<property name="lower">0</property>
|
||||||
|
<property name="step-increment">0.01</property>
|
||||||
|
<property name="page-increment">0.1</property>
|
||||||
|
</object>
|
||||||
|
</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-incinerate-turbulence">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<property name="orientation">vertical</property>
|
||||||
|
<property name="spacing">3</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Start at Pointer</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">If disabled, a random location will be chosen.</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
<style>
|
||||||
|
<class name="dim-label" />
|
||||||
|
<class name="caption" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkSwitch" id="incinerate-use-pointer">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="margin-start">8</property>
|
||||||
|
<property name="margin-end">8</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-incinerate-use-pointer">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Color</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkColorButton" id="incinerate-color">
|
||||||
|
<property name="use_alpha">0</property>
|
||||||
|
<property name="show_editor">1</property>
|
||||||
|
<property name="margin-start">8</property>
|
||||||
|
<property name="margin-end">8</property>
|
||||||
|
<property name="width-request">250</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-incinerate-color">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
|
||||||
|
</interface>
|
||||||
@@ -0,0 +1,279 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
-->
|
||||||
|
|
||||||
|
<interface domain="burn-my-windows">
|
||||||
|
|
||||||
|
<object class="GtkRevealer" id="matrix-prefs">
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBox">
|
||||||
|
<property name="selection-mode">none</property>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Animation Time [ms]</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">0</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">
|
||||||
|
<object class="GtkAdjustment" id="matrix-animation-time">
|
||||||
|
<property name="upper">10000</property>
|
||||||
|
<property name="lower">100</property>
|
||||||
|
<property name="step-increment">1</property>
|
||||||
|
<property name="page-increment">100</property>
|
||||||
|
</object>
|
||||||
|
</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-matrix-animation-time">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Scale</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">0</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">
|
||||||
|
<object class="GtkAdjustment" id="matrix-scale">
|
||||||
|
<property name="upper">50</property>
|
||||||
|
<property name="lower">5</property>
|
||||||
|
<property name="step-increment">1</property>
|
||||||
|
<property name="page-increment">5</property>
|
||||||
|
</object>
|
||||||
|
</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-matrix-scale">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Randomness</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">2</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">
|
||||||
|
<object class="GtkAdjustment" id="matrix-randomness">
|
||||||
|
<property name="upper">1.0</property>
|
||||||
|
<property name="lower">0.0</property>
|
||||||
|
<property name="step-increment">0.01</property>
|
||||||
|
<property name="page-increment">0.1</property>
|
||||||
|
</object>
|
||||||
|
</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-matrix-randomness">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Vertical Overshooting</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">2</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">
|
||||||
|
<object class="GtkAdjustment" id="matrix-overshoot">
|
||||||
|
<property name="upper">1.0</property>
|
||||||
|
<property name="lower">0.0</property>
|
||||||
|
<property name="step-increment">0.01</property>
|
||||||
|
<property name="page-increment">0.1</property>
|
||||||
|
</object>
|
||||||
|
</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-matrix-overshoot">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Trail Color</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkColorButton" id="matrix-trail-color">
|
||||||
|
<property name="use_alpha">0</property>
|
||||||
|
<property name="show_editor">1</property>
|
||||||
|
<property name="margin-start">8</property>
|
||||||
|
<property name="margin-end">8</property>
|
||||||
|
<property name="width-request">250</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-matrix-trail-color">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Tip Color</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkColorButton" id="matrix-tip-color">
|
||||||
|
<property name="use_alpha">0</property>
|
||||||
|
<property name="show_editor">1</property>
|
||||||
|
<property name="margin-start">8</property>
|
||||||
|
<property name="margin-end">8</property>
|
||||||
|
<property name="width-request">250</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-matrix-tip-color">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
</interface>
|
||||||
@@ -0,0 +1,113 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
-->
|
||||||
|
|
||||||
|
<interface domain="burn-my-windows">
|
||||||
|
|
||||||
|
<object class="GtkRevealer" id="paint-brush-prefs">
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBox">
|
||||||
|
<property name="selection-mode">none</property>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Animation Time [ms]</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">0</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">
|
||||||
|
<object class="GtkAdjustment" id="paint-brush-animation-time">
|
||||||
|
<property name="upper">10000</property>
|
||||||
|
<property name="lower">100</property>
|
||||||
|
<property name="step-increment">1</property>
|
||||||
|
<property name="page-increment">100</property>
|
||||||
|
</object>
|
||||||
|
</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-paint-brush-animation-time">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Brush Size</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">0</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">
|
||||||
|
<object class="GtkAdjustment" id="paint-brush-size">
|
||||||
|
<property name="upper">4</property>
|
||||||
|
<property name="lower">1</property>
|
||||||
|
<property name="step-increment">1</property>
|
||||||
|
<property name="page-increment">1</property>
|
||||||
|
</object>
|
||||||
|
</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-paint-brush-size">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
|
||||||
|
</interface>
|
||||||
@@ -0,0 +1,159 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
-->
|
||||||
|
|
||||||
|
<interface domain="burn-my-windows">
|
||||||
|
|
||||||
|
<object class="GtkRevealer" id="pixel-wheel-prefs">
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBox">
|
||||||
|
<property name="selection-mode">none</property>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Animation Time [ms]</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">0</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">
|
||||||
|
<object class="GtkAdjustment" id="pixel-wheel-animation-time">
|
||||||
|
<property name="upper">2000</property>
|
||||||
|
<property name="lower">100</property>
|
||||||
|
<property name="step-increment">1</property>
|
||||||
|
<property name="page-increment">100</property>
|
||||||
|
</object>
|
||||||
|
</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-pixel-wheel-animation-time">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Spoke Count</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">0</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">
|
||||||
|
<object class="GtkAdjustment" id="pixel-wheel-spoke-count">
|
||||||
|
<property name="upper">50</property>
|
||||||
|
<property name="lower">1</property>
|
||||||
|
<property name="step-increment">1</property>
|
||||||
|
<property name="page-increment">10</property>
|
||||||
|
</object>
|
||||||
|
</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-pixel-wheel-spoke-count">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Pixel Size</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">0</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">
|
||||||
|
<object class="GtkAdjustment" id="pixel-wheel-pixel-size">
|
||||||
|
<property name="upper">50</property>
|
||||||
|
<property name="lower">1</property>
|
||||||
|
<property name="step-increment">1</property>
|
||||||
|
<property name="page-increment">10</property>
|
||||||
|
</object>
|
||||||
|
</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-pixel-wheel-pixel-size">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
|
||||||
|
</interface>
|
||||||
@@ -0,0 +1,113 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
-->
|
||||||
|
|
||||||
|
<interface domain="burn-my-windows">
|
||||||
|
|
||||||
|
<object class="GtkRevealer" id="pixel-wipe-prefs">
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBox">
|
||||||
|
<property name="selection-mode">none</property>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Animation Time [ms]</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">0</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">
|
||||||
|
<object class="GtkAdjustment" id="pixel-wipe-animation-time">
|
||||||
|
<property name="upper">5000</property>
|
||||||
|
<property name="lower">100</property>
|
||||||
|
<property name="step-increment">1</property>
|
||||||
|
<property name="page-increment">100</property>
|
||||||
|
</object>
|
||||||
|
</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-pixel-wipe-animation-time">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Pixel Size</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">0</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">
|
||||||
|
<object class="GtkAdjustment" id="pixel-wipe-pixel-size">
|
||||||
|
<property name="upper">50</property>
|
||||||
|
<property name="lower">1</property>
|
||||||
|
<property name="step-increment">1</property>
|
||||||
|
<property name="page-increment">10</property>
|
||||||
|
</object>
|
||||||
|
</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-pixel-wipe-pixel-size">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
|
||||||
|
</interface>
|
||||||
@@ -0,0 +1,159 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
-->
|
||||||
|
|
||||||
|
<interface domain="burn-my-windows">
|
||||||
|
|
||||||
|
<object class="GtkRevealer" id="pixelate-prefs">
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBox">
|
||||||
|
<property name="selection-mode">none</property>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Animation Time [ms]</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">0</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">
|
||||||
|
<object class="GtkAdjustment" id="pixelate-animation-time">
|
||||||
|
<property name="upper">10000</property>
|
||||||
|
<property name="lower">100</property>
|
||||||
|
<property name="step-increment">1</property>
|
||||||
|
<property name="page-increment">100</property>
|
||||||
|
</object>
|
||||||
|
</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-pixelate-animation-time">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Noise</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">0</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">
|
||||||
|
<object class="GtkAdjustment" id="pixelate-noise">
|
||||||
|
<property name="upper">100</property>
|
||||||
|
<property name="lower">1</property>
|
||||||
|
<property name="step-increment">1</property>
|
||||||
|
<property name="page-increment">10</property>
|
||||||
|
</object>
|
||||||
|
</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-pixelate-noise">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Pixel Size</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">0</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">
|
||||||
|
<object class="GtkAdjustment" id="pixelate-pixel-size">
|
||||||
|
<property name="upper">50</property>
|
||||||
|
<property name="lower">1</property>
|
||||||
|
<property name="step-increment">1</property>
|
||||||
|
<property name="page-increment">10</property>
|
||||||
|
</object>
|
||||||
|
</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-pixelate-pixel-size">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
|
||||||
|
</interface>
|
||||||
@@ -0,0 +1,242 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
-->
|
||||||
|
|
||||||
|
<interface domain="burn-my-windows">
|
||||||
|
|
||||||
|
<object class="GtkRevealer" id="portal-prefs">
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBox">
|
||||||
|
<property name="selection-mode">none</property>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Animation Time [ms]</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">0</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">
|
||||||
|
<object class="GtkAdjustment" id="portal-animation-time">
|
||||||
|
<property name="upper">5000</property>
|
||||||
|
<property name="lower">500</property>
|
||||||
|
<property name="step-increment">1</property>
|
||||||
|
<property name="page-increment">100</property>
|
||||||
|
</object>
|
||||||
|
</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-portal-animation-time">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Whirling</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">2</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">
|
||||||
|
<object class="GtkAdjustment" id="portal-whirling">
|
||||||
|
<property name="upper">2</property>
|
||||||
|
<property name="lower">-2</property>
|
||||||
|
<property name="step-increment">0.1</property>
|
||||||
|
<property name="page-increment">1</property>
|
||||||
|
</object>
|
||||||
|
</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-portal-whirling">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Rotation Speed</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">2</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">
|
||||||
|
<object class="GtkAdjustment" id="portal-rotation-speed">
|
||||||
|
<property name="upper">2</property>
|
||||||
|
<property name="lower">-2</property>
|
||||||
|
<property name="step-increment">0.1</property>
|
||||||
|
<property name="page-increment">1</property>
|
||||||
|
</object>
|
||||||
|
</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-portal-rotation-speed">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Details</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">1</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">
|
||||||
|
<object class="GtkAdjustment" id="portal-details">
|
||||||
|
<property name="upper">100</property>
|
||||||
|
<property name="lower">1</property>
|
||||||
|
<property name="step-increment">1</property>
|
||||||
|
<property name="page-increment">10</property>
|
||||||
|
</object>
|
||||||
|
</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-portal-details">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Color</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkColorButton" id="portal-color">
|
||||||
|
<property name="use_alpha">0</property>
|
||||||
|
<property name="show_editor">1</property>
|
||||||
|
<property name="margin-start">8</property>
|
||||||
|
<property name="margin-end">8</property>
|
||||||
|
<property name="width-request">250</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-portal-color">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
|
||||||
|
</interface>
|
||||||
@@ -0,0 +1,475 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
-->
|
||||||
|
|
||||||
|
<interface domain="burn-my-windows">
|
||||||
|
<requires lib="gtk" version="4.0" />
|
||||||
|
|
||||||
|
<!-- This will be added to the header bar. -->
|
||||||
|
<object class="GtkMenuButton" id="menu-button">
|
||||||
|
<property name="menu-model">main-menu</property>
|
||||||
|
<property name="icon-name">heart-filled-symbolic</property>
|
||||||
|
</object>
|
||||||
|
|
||||||
|
<!-- This will be added to the header bar. -->
|
||||||
|
<object class="GtkBox" id="profile-button">
|
||||||
|
<property name="halign">center</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkMenuButton" id="choose-profile-button">
|
||||||
|
<property name="menu-model">profile-menu</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkToggleButton" id="edit-profile-button">
|
||||||
|
<property name="icon-name">bmw-edit-profile-symbolic</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<style>
|
||||||
|
<class name="linked" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
|
||||||
|
<object class="GtkStack" id="general-prefs">
|
||||||
|
<property name="transition-type">over-down-up</property>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox" id="effect-editor">
|
||||||
|
<property name="orientation">vertical</property>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkInfoBar" id="update-info">
|
||||||
|
<property name="message-type">info</property>
|
||||||
|
<property name="revealed">false</property>
|
||||||
|
<property name="show-close-button">true</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Burn-My-Windows has been updated!</property>
|
||||||
|
<property name="margin-start">6</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child type="action">
|
||||||
|
<object class="GtkButton" id="update-info-button">
|
||||||
|
<property name="label" translatable="yes">View Changelog</property>
|
||||||
|
<property name="action-name">prefs.changelog</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<action-widgets>
|
||||||
|
<action-widget response="-1">update-info-button</action-widget>
|
||||||
|
</action-widgets>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkScrolledWindow">
|
||||||
|
<property name="hscrollbar-policy">never</property>
|
||||||
|
<property name="vexpand">true</property>
|
||||||
|
<property name="child">
|
||||||
|
|
||||||
|
<object class="GtkBox">
|
||||||
|
<property name="orientation">vertical</property>
|
||||||
|
<property name="margin-top">20</property>
|
||||||
|
<property name="margin-bottom">20</property>
|
||||||
|
<property name="margin-start">20</property>
|
||||||
|
<property name="margin-end">20</property>
|
||||||
|
<property name="spacing">5</property>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<property name="orientation">vertical</property>
|
||||||
|
<property name="spacing">5</property>
|
||||||
|
<property name="hexpand">true</property>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Effect Selection</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<style>
|
||||||
|
<class name="heading" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">If multiple are selected, one is chosen randomly.</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<style>
|
||||||
|
<class name="linked" />
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="choose-all-effects-button">
|
||||||
|
<property name="label" translatable="yes">All</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="choose-no-effects-button">
|
||||||
|
<property name="label" translatable="yes">None</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkFrame">
|
||||||
|
<property name="margin-top">6</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBox" id="effects-group">
|
||||||
|
<property name="selection-mode">none</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
|
||||||
|
</property>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox" id="profile-editor">
|
||||||
|
<property name="orientation">vertical</property>
|
||||||
|
<property name="margin-top">20</property>
|
||||||
|
<property name="margin-bottom">20</property>
|
||||||
|
<property name="margin-start">20</property>
|
||||||
|
<property name="margin-end">20</property>
|
||||||
|
<property name="spacing">5</property>
|
||||||
|
<style>
|
||||||
|
<class name="background" />
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Effect Profile Constraints</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<style>
|
||||||
|
<class name="heading" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Define when the current effect settings should be used.</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkFrame">
|
||||||
|
<property name="margin-top">5</property>
|
||||||
|
<property name="margin-bottom">15</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBox">
|
||||||
|
<property name="selection-mode">none</property>
|
||||||
|
<property name="show-separators">1</property>
|
||||||
|
<style>
|
||||||
|
<class name="rich-list" />
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Application</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<style>
|
||||||
|
<class name="linked" />
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkEntry" id="profile-app">
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="placeholder-text" translatable="yes">Any</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="profile-choose-app-button">
|
||||||
|
<property name="icon-name">bmw-select-app-symbolic</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Animation Type</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkComboBoxText" id="profile-animation-type">
|
||||||
|
<property name="width-request">200</property>
|
||||||
|
<items>
|
||||||
|
<item translatable="yes">Any</item>
|
||||||
|
<item translatable="yes">Opening Windows</item>
|
||||||
|
<item translatable="yes">Closing Windows</item>
|
||||||
|
</items>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Window Type</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkComboBoxText" id="profile-window-type">
|
||||||
|
<property name="width-request">200</property>
|
||||||
|
<items>
|
||||||
|
<item translatable="yes">Any</item>
|
||||||
|
<item translatable="yes">Normal Windows</item>
|
||||||
|
<item translatable="yes">Dialog Windows</item>
|
||||||
|
</items>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Color Scheme</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkComboBoxText" id="profile-color-scheme">
|
||||||
|
<property name="width-request">200</property>
|
||||||
|
<items>
|
||||||
|
<item translatable="yes">Any</item>
|
||||||
|
<item translatable="yes">Default Color Scheme</item>
|
||||||
|
<item translatable="yes">Dark Color Scheme</item>
|
||||||
|
</items>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Power Mode</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkComboBoxText" id="profile-power-mode">
|
||||||
|
<property name="width-request">200</property>
|
||||||
|
<items>
|
||||||
|
<item translatable="yes">Any</item>
|
||||||
|
<item translatable="yes">On Battery</item>
|
||||||
|
<item translatable="yes">Plugged In</item>
|
||||||
|
</items>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Power Profile</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkComboBoxText" id="profile-power-profile">
|
||||||
|
<property name="width-request">200</property>
|
||||||
|
<items>
|
||||||
|
<item translatable="yes">Any</item>
|
||||||
|
<item translatable="yes">Power-Saver Mode</item>
|
||||||
|
<item translatable="yes">Balanced Mode</item>
|
||||||
|
<item translatable="yes">Performance Mode</item>
|
||||||
|
<item translatable="yes">Power Saver or Balanced</item>
|
||||||
|
<item translatable="yes">Balanced or Performance</item>
|
||||||
|
</items>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Advanced Profile Options</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<style>
|
||||||
|
<class name="heading" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkFrame">
|
||||||
|
<property name="margin-top">5</property>
|
||||||
|
<property name="margin-bottom">15</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBox">
|
||||||
|
<property name="selection-mode">none</property>
|
||||||
|
<property name="show-separators">1</property>
|
||||||
|
<style>
|
||||||
|
<class name="rich-list" />
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<property name="orientation">vertical</property>
|
||||||
|
<property name="spacing">3</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">High Priority</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Use this profile even if there are better matching profiles.</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
<property name="ellipsize">end</property>
|
||||||
|
<style>
|
||||||
|
<class name="dim-label" />
|
||||||
|
<class name="caption" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkSwitch" id="profile-high-priority">
|
||||||
|
<property name="valign">center</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton">
|
||||||
|
<property name="action-name">prefs.profile-delete</property>
|
||||||
|
<property name="label" translatable="yes">Delete this Profile...</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
|
||||||
|
</object>
|
||||||
|
|
||||||
|
</interface>
|
||||||
@@ -0,0 +1,150 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
-->
|
||||||
|
|
||||||
|
<interface domain="burn-my-windows">
|
||||||
|
|
||||||
|
<object class="GtkRevealer" id="snap-prefs">
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBox">
|
||||||
|
<property name="selection-mode">none</property>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Animation Time [ms]</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">0</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">
|
||||||
|
<object class="GtkAdjustment" id="snap-animation-time">
|
||||||
|
<property name="upper">10000</property>
|
||||||
|
<property name="lower">500</property>
|
||||||
|
<property name="step-increment">10</property>
|
||||||
|
<property name="page-increment">100</property>
|
||||||
|
</object>
|
||||||
|
</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-snap-animation-time">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Scale</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">2</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">
|
||||||
|
<object class="GtkAdjustment" id="snap-scale">
|
||||||
|
<property name="upper">20</property>
|
||||||
|
<property name="lower">0.1</property>
|
||||||
|
<property name="step-increment">0.01</property>
|
||||||
|
<property name="page-increment">0.1</property>
|
||||||
|
</object>
|
||||||
|
</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-snap-scale">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Color</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkColorButton" id="snap-color">
|
||||||
|
<property name="use_alpha">1</property>
|
||||||
|
<property name="show_editor">1</property>
|
||||||
|
<property name="margin-start">8</property>
|
||||||
|
<property name="margin-end">8</property>
|
||||||
|
<property name="width-request">250</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-snap-color">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
|
||||||
|
</interface>
|
||||||
@@ -0,0 +1,242 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
-->
|
||||||
|
|
||||||
|
<interface domain="burn-my-windows">
|
||||||
|
|
||||||
|
<object class="GtkRevealer" id="trex-prefs">
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBox">
|
||||||
|
<property name="selection-mode">none</property>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Animation Time [ms]</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">0</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">
|
||||||
|
<object class="GtkAdjustment" id="trex-animation-time">
|
||||||
|
<property name="upper">10000</property>
|
||||||
|
<property name="lower">100</property>
|
||||||
|
<property name="step-increment">1</property>
|
||||||
|
<property name="page-increment">100</property>
|
||||||
|
</object>
|
||||||
|
</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-trex-animation-time">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Claw Scratch Scale</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">1</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">
|
||||||
|
<object class="GtkAdjustment" id="trex-scratch-scale">
|
||||||
|
<property name="upper">10</property>
|
||||||
|
<property name="lower">0.1</property>
|
||||||
|
<property name="step-increment">0.1</property>
|
||||||
|
<property name="page-increment">1</property>
|
||||||
|
</object>
|
||||||
|
</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-trex-scratch-scale">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Claw Scratch Count</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">0</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">
|
||||||
|
<object class="GtkAdjustment" id="trex-scratch-count">
|
||||||
|
<property name="upper">50</property>
|
||||||
|
<property name="lower">1</property>
|
||||||
|
<property name="step-increment">1</property>
|
||||||
|
<property name="page-increment">10</property>
|
||||||
|
</object>
|
||||||
|
</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-trex-scratch-count">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Warp Effect</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">2</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">
|
||||||
|
<object class="GtkAdjustment" id="trex-scratch-warp">
|
||||||
|
<property name="upper">1</property>
|
||||||
|
<property name="lower">0</property>
|
||||||
|
<property name="step-increment">0.01</property>
|
||||||
|
<property name="page-increment">0.1</property>
|
||||||
|
</object>
|
||||||
|
</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-trex-scratch-warp">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Flash Color</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkColorButton" id="trex-scratch-color">
|
||||||
|
<property name="use_alpha">1</property>
|
||||||
|
<property name="show_editor">1</property>
|
||||||
|
<property name="margin-start">8</property>
|
||||||
|
<property name="margin-end">8</property>
|
||||||
|
<property name="width-request">250</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-trex-scratch-color">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
|
||||||
|
</interface>
|
||||||
@@ -0,0 +1,242 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
-->
|
||||||
|
|
||||||
|
<interface domain="burn-my-windows">
|
||||||
|
|
||||||
|
<object class="GtkRevealer" id="tv-glitch-prefs">
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBox">
|
||||||
|
<property name="selection-mode">none</property>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Animation Time [ms]</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">0</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">
|
||||||
|
<object class="GtkAdjustment" id="tv-glitch-animation-time">
|
||||||
|
<property name="upper">2000</property>
|
||||||
|
<property name="lower">100</property>
|
||||||
|
<property name="step-increment">1</property>
|
||||||
|
<property name="page-increment">100</property>
|
||||||
|
</object>
|
||||||
|
</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-tv-glitch-animation-time">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Scale</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">2</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">
|
||||||
|
<object class="GtkAdjustment" id="tv-glitch-scale">
|
||||||
|
<property name="upper">10</property>
|
||||||
|
<property name="lower">0.1</property>
|
||||||
|
<property name="step-increment">0.01</property>
|
||||||
|
<property name="page-increment">0.1</property>
|
||||||
|
</object>
|
||||||
|
</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-tv-glitch-scale">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Strength</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">2</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">
|
||||||
|
<object class="GtkAdjustment" id="tv-glitch-strength">
|
||||||
|
<property name="upper">10</property>
|
||||||
|
<property name="lower">0.1</property>
|
||||||
|
<property name="step-increment">0.01</property>
|
||||||
|
<property name="page-increment">0.1</property>
|
||||||
|
</object>
|
||||||
|
</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-tv-glitch-strength">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Speed</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">2</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">
|
||||||
|
<object class="GtkAdjustment" id="tv-glitch-speed">
|
||||||
|
<property name="upper">10</property>
|
||||||
|
<property name="lower">0.1</property>
|
||||||
|
<property name="step-increment">0.01</property>
|
||||||
|
<property name="page-increment">0.1</property>
|
||||||
|
</object>
|
||||||
|
</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-tv-glitch-speed">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Color</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkColorButton" id="tv-glitch-color">
|
||||||
|
<property name="use_alpha">1</property>
|
||||||
|
<property name="show_editor">1</property>
|
||||||
|
<property name="margin-start">8</property>
|
||||||
|
<property name="margin-end">8</property>
|
||||||
|
<property name="width-request">250</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-tv-glitch-color">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
|
||||||
|
</interface>
|
||||||
@@ -0,0 +1,104 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
-->
|
||||||
|
|
||||||
|
<interface domain="burn-my-windows">
|
||||||
|
|
||||||
|
<object class="GtkRevealer" id="tv-prefs">
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBox">
|
||||||
|
<property name="selection-mode">none</property>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Animation Time [ms]</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">0</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">
|
||||||
|
<object class="GtkAdjustment" id="tv-animation-time">
|
||||||
|
<property name="upper">10000</property>
|
||||||
|
<property name="lower">100</property>
|
||||||
|
<property name="step-increment">1</property>
|
||||||
|
<property name="page-increment">100</property>
|
||||||
|
</object>
|
||||||
|
</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-tv-animation-time">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Color</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkColorButton" id="tv-effect-color">
|
||||||
|
<property name="use_alpha">1</property>
|
||||||
|
<property name="show_editor">1</property>
|
||||||
|
<property name="margin-start">8</property>
|
||||||
|
<property name="margin-end">8</property>
|
||||||
|
<property name="width-request">250</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-tv-effect-color">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
|
||||||
|
</interface>
|
||||||
@@ -0,0 +1,156 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
SPDX-FileCopyrightText: Simon Schneegans <code@simonschneegans.de>
|
||||||
|
SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
-->
|
||||||
|
|
||||||
|
<interface domain="burn-my-windows">
|
||||||
|
|
||||||
|
<object class="GtkRevealer" id="wisps-prefs">
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBox">
|
||||||
|
<property name="selection-mode">none</property>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Animation Time [ms]</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">0</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">
|
||||||
|
<object class="GtkAdjustment" id="wisps-animation-time">
|
||||||
|
<property name="upper">10000</property>
|
||||||
|
<property name="lower">100</property>
|
||||||
|
<property name="step-increment">1</property>
|
||||||
|
<property name="page-increment">100</property>
|
||||||
|
</object>
|
||||||
|
</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-wisps-animation-time">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Scale</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkScale">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="draw-value">1</property>
|
||||||
|
<property name="digits">2</property>
|
||||||
|
<property name="value-pos">left</property>
|
||||||
|
<property name="width-request">300</property>
|
||||||
|
<property name="adjustment">
|
||||||
|
<object class="GtkAdjustment" id="wisps-scale">
|
||||||
|
<property name="upper">10</property>
|
||||||
|
<property name="lower">0.1</property>
|
||||||
|
<property name="step-increment">0.01</property>
|
||||||
|
<property name="page-increment">0.1</property>
|
||||||
|
</object>
|
||||||
|
</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-wisps-scale">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Color</property>
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkColorButton" id="wisps-color-1">
|
||||||
|
<property name="show_editor">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkColorButton" id="wisps-color-2">
|
||||||
|
<property name="show_editor">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkColorButton" id="wisps-color-3">
|
||||||
|
<property name="show_editor">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-wisps-colors">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text" translatable="yes">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
|
||||||
|
</interface>
|
||||||
@@ -14,8 +14,13 @@
|
|||||||
|
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
import Gio from 'gi://Gio';
|
const {Gio, GLib, GObject} = imports.gi;
|
||||||
import GLib from 'gi://GLib';
|
|
||||||
|
const _ = imports.gettext.domain('burn-my-windows').gettext;
|
||||||
|
|
||||||
|
const ExtensionUtils = imports.misc.extensionUtils;
|
||||||
|
const Me = imports.misc.extensionUtils.getCurrentExtension();
|
||||||
|
const utils = Me.imports.src.utils;
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////////////////
|
||||||
// Burn-My-Windows allows applying different sets of effect settings under specific //
|
// Burn-My-Windows allows applying different sets of effect settings under specific //
|
||||||
@@ -26,12 +31,10 @@ import GLib from 'gi://GLib';
|
|||||||
// via Gio.Settings objects. //
|
// via Gio.Settings objects. //
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
export class ProfileManager {
|
var ProfileManager = class {
|
||||||
// ------------------------------------------------------------------------- constructor
|
// ------------------------------------------------------------------------- constructor
|
||||||
|
|
||||||
constructor(metadata) {
|
constructor() {
|
||||||
this._metadata = metadata;
|
|
||||||
|
|
||||||
this._makeProfilesDir();
|
this._makeProfilesDir();
|
||||||
this.reloadProfiles();
|
this.reloadProfiles();
|
||||||
}
|
}
|
||||||
@@ -148,6 +151,58 @@ export class ProfileManager {
|
|||||||
return priority;
|
return priority;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Profiles are named according to their configuration. This method returns a localized
|
||||||
|
// string describing the settings of the profile.
|
||||||
|
getProfileName(settings) {
|
||||||
|
let items = [];
|
||||||
|
|
||||||
|
// If an app is configured, use it as first component for the profile's name.
|
||||||
|
const app = settings.get_string('profile-app');
|
||||||
|
if (app != '') {
|
||||||
|
items.push(app);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Now add components to the name for each non-default profile option. Make sure that
|
||||||
|
// these are the same strings as used in the UI files!
|
||||||
|
const addComponent = (settingsKey, options) => {
|
||||||
|
const option = settings.get_int(settingsKey);
|
||||||
|
if (option > 0) {
|
||||||
|
items.push(options[option - 1]);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
// clang-format off
|
||||||
|
addComponent('profile-animation-type', [_('Opening Windows'),
|
||||||
|
_('Closing Windows')]);
|
||||||
|
addComponent('profile-window-type', [_('Normal Windows'),
|
||||||
|
_('Dialog Windows')]);
|
||||||
|
addComponent('profile-color-scheme', [_('Default Color Scheme'),
|
||||||
|
_('Dark Color Scheme')]);
|
||||||
|
addComponent('profile-power-mode', [_('On Battery'),
|
||||||
|
_('Plugged In')]);
|
||||||
|
addComponent('profile-power-profile', [_('Power-Saver Mode'),
|
||||||
|
_('Balanced Mode'),
|
||||||
|
_('Performance Mode'),
|
||||||
|
_('Power Saver or Balanced'),
|
||||||
|
_('Balanced or Performance')]);
|
||||||
|
// clang-format on
|
||||||
|
|
||||||
|
// If the profile is a high-priority profile, also add this..
|
||||||
|
if (settings.get_boolean('profile-high-priority')) {
|
||||||
|
items.push(_('High Priority'));
|
||||||
|
}
|
||||||
|
|
||||||
|
let name = '';
|
||||||
|
|
||||||
|
if (items.length == 0) {
|
||||||
|
name = _('Standard Profile');
|
||||||
|
} else {
|
||||||
|
name = items.join(' · ');
|
||||||
|
}
|
||||||
|
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
// ----------------------------------------------------------------------- private stuff
|
// ----------------------------------------------------------------------- private stuff
|
||||||
|
|
||||||
// Creates the directory ~/.config/burn-my-windows/profiles if it does not yet exist.
|
// Creates the directory ~/.config/burn-my-windows/profiles if it does not yet exist.
|
||||||
@@ -166,7 +221,7 @@ export class ProfileManager {
|
|||||||
|
|
||||||
// Expect USER extensions to have a schemas/ subfolder, otherwise assume a
|
// Expect USER extensions to have a schemas/ subfolder, otherwise assume a
|
||||||
// SYSTEM extension that has been installed in the same prefix as the shell
|
// SYSTEM extension that has been installed in the same prefix as the shell
|
||||||
const schemaDir = this._metadata.dir.get_child('schemas');
|
const schemaDir = Me.dir.get_child('schemas');
|
||||||
let source;
|
let source;
|
||||||
if (schemaDir.query_exists(null)) {
|
if (schemaDir.query_exists(null)) {
|
||||||
source = Gio.SettingsSchemaSource.new_from_directory(
|
source = Gio.SettingsSchemaSource.new_from_directory(
|
||||||
|
|||||||
@@ -14,13 +14,13 @@
|
|||||||
|
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
import Gio from 'gi://Gio';
|
const {Gio, Shell, GObject, Clutter, Meta} = imports.gi;
|
||||||
import Shell from 'gi://Shell';
|
const ByteArray = imports.byteArray;
|
||||||
import GObject from 'gi://GObject';
|
|
||||||
import Clutter from 'gi://Clutter';
|
|
||||||
import Meta from 'gi://Meta';
|
|
||||||
|
|
||||||
import * as utils from './utils.js';
|
const Main = imports.ui.main;
|
||||||
|
const ExtensionUtils = imports.misc.extensionUtils;
|
||||||
|
const Me = imports.misc.extensionUtils.getCurrentExtension();
|
||||||
|
const utils = Me.imports.src.utils;
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////////////////
|
||||||
// This is the base class for all shaders of Burn-My-Windows. It automagically loads //
|
// This is the base class for all shaders of Burn-My-Windows. It automagically loads //
|
||||||
@@ -47,7 +47,7 @@ import * as utils from './utils.js';
|
|||||||
// used to clean up any resources.
|
// used to clean up any resources.
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
export var Shader = GObject.registerClass(
|
var Shader = GObject.registerClass(
|
||||||
{
|
{
|
||||||
Signals: {
|
Signals: {
|
||||||
'begin-animation': {
|
'begin-animation': {
|
||||||
@@ -191,8 +191,10 @@ export var Shader = GObject.registerClass(
|
|||||||
// to undo this. It is a pity that we have to do this here, as it is not really
|
// to undo this. It is a pity that we have to do this here, as it is not really
|
||||||
// required to be done each frame. But it's the only place where we can do it.
|
// required to be done each frame. But it's the only place where we can do it.
|
||||||
// https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2650
|
// https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2650
|
||||||
|
if (utils.shellVersionIsAtLeast(44, 2)) {
|
||||||
this.get_pipeline().set_blend(
|
this.get_pipeline().set_blend(
|
||||||
'RGBA = ADD (SRC_COLOR * (SRC_COLOR[A]), DST_COLOR * (1-SRC_COLOR[A]))');
|
'RGBA = ADD (SRC_COLOR * (SRC_COLOR[A]), DST_COLOR * (1-SRC_COLOR[A]))');
|
||||||
|
}
|
||||||
|
|
||||||
this.set_uniform_float(this._uProgress, 1, [this._progress]);
|
this.set_uniform_float(this._uProgress, 1, [this._progress]);
|
||||||
super.vfunc_paint_target(...params);
|
super.vfunc_paint_target(...params);
|
||||||
@@ -200,11 +202,18 @@ export var Shader = GObject.registerClass(
|
|||||||
|
|
||||||
// --------------------------------------------------------------------- private stuff
|
// --------------------------------------------------------------------- private stuff
|
||||||
|
|
||||||
|
// This loads the file at 'path' contained in the extension's resources to a
|
||||||
|
// JavaScript string.
|
||||||
|
_loadStringResource(path) {
|
||||||
|
const data = Gio.resources_lookup_data(path, 0);
|
||||||
|
return ByteArray.toString(ByteArray.fromGBytes(data));
|
||||||
|
}
|
||||||
|
|
||||||
// This loads a GLSL file from the extension's resources to a JavaScript string. The
|
// This loads a GLSL file from the extension's resources to a JavaScript string. The
|
||||||
// code from "common.glsl" is prepended automatically.
|
// code from "common.glsl" is prepended automatically.
|
||||||
_loadShaderResource(path) {
|
_loadShaderResource(path) {
|
||||||
let common = utils.getStringResource('/shaders/common.glsl');
|
let common = this._loadStringResource('/shaders/common.glsl');
|
||||||
let code = utils.getStringResource(path);
|
let code = this._loadStringResource(path);
|
||||||
|
|
||||||
// Add a trailing newline. Else the GLSL compiler complains...
|
// Add a trailing newline. Else the GLSL compiler complains...
|
||||||
return common + '\n' + code + '\n';
|
return common + '\n' + code + '\n';
|
||||||
|
|||||||
@@ -14,17 +14,18 @@
|
|||||||
|
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
import GObject from 'gi://GObject';
|
const GObject = imports.gi.GObject;
|
||||||
|
|
||||||
import {Shader} from './Shader.js';
|
const ExtensionUtils = imports.misc.extensionUtils;
|
||||||
|
const Me = imports.misc.extensionUtils.getCurrentExtension();
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////////////////
|
||||||
// Each effect of Burn-My-Windows owns an instance of this class. It is used to create //
|
// Each effect of Burn-My-Windows owns an instance of this class. It is used to created //
|
||||||
// shaders whenever a new one is required. It tries to re-use old shaders as much as //
|
// shaders whenever a new one is required. It tries to re-use old shaders as much as //
|
||||||
// possible in order to avoid memory leaks. //
|
// possible in order to avoid memory leaks. //
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
export default class ShaderFactory {
|
var ShaderFactory = class {
|
||||||
|
|
||||||
// Creates a new ShaderFactory. Requires the nick of the effect and a callback function
|
// Creates a new ShaderFactory. Requires the nick of the effect and a callback function
|
||||||
// which will be called whenever a new shader is created.
|
// which will be called whenever a new shader is created.
|
||||||
@@ -61,7 +62,8 @@ export default class ShaderFactory {
|
|||||||
// Only try to register the new type once.
|
// Only try to register the new type once.
|
||||||
if (GObject.type_from_name(typeName) == null) {
|
if (GObject.type_from_name(typeName) == null) {
|
||||||
const outerThis = this;
|
const outerThis = this;
|
||||||
GObject.registerClass({GTypeName: typeName}, class ShaderImp extends Shader {
|
GObject.registerClass({GTypeName: typeName},
|
||||||
|
class Shader extends Me.imports.src.Shader.Shader {
|
||||||
// This will actually load the GLSL source code from the resources.
|
// This will actually load the GLSL source code from the resources.
|
||||||
_init() {
|
_init() {
|
||||||
super._init(outerThis._nick);
|
super._init(outerThis._nick);
|
||||||
|
|||||||
@@ -15,13 +15,12 @@
|
|||||||
|
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
import Gio from 'gi://Gio';
|
const {Gio, GLib} = imports.gi;
|
||||||
import GLib from 'gi://GLib';
|
const Main = imports.ui.main;
|
||||||
|
const LookingGlass = imports.ui.lookingGlass;
|
||||||
|
|
||||||
import * as Main from 'resource:///org/gnome/shell/ui/main.js';
|
const Me = imports.misc.extensionUtils.getCurrentExtension();
|
||||||
import * as LookingGlass from 'resource:///org/gnome/shell/ui/lookingGlass.js';
|
const utils = Me.imports.src.utils;
|
||||||
|
|
||||||
import * as utils from './utils.js';
|
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////////////////
|
||||||
// This is based on the window-picking functionality of the Blur-My-Shell extension. //
|
// This is based on the window-picking functionality of the Blur-My-Shell extension. //
|
||||||
@@ -30,7 +29,7 @@ import * as utils from './utils.js';
|
|||||||
// picking. //
|
// picking. //
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
export class WindowPicker {
|
var WindowPicker = class WindowPicker {
|
||||||
// ------------------------------------------------------------------------- constructor
|
// ------------------------------------------------------------------------- constructor
|
||||||
|
|
||||||
constructor() {
|
constructor() {
|
||||||
|
|||||||
@@ -14,14 +14,12 @@
|
|||||||
|
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
import * as utils from '../utils.js';
|
const _ = imports.gettext.domain('burn-my-windows').gettext;
|
||||||
|
|
||||||
// We import the ShaderFactory only in the Shell process as it is not required in the
|
const ExtensionUtils = imports.misc.extensionUtils;
|
||||||
// preferences process. The preferences process does not create any shader instances, it
|
const Me = imports.misc.extensionUtils.getCurrentExtension();
|
||||||
// only uses the static metadata of the effect.
|
const utils = Me.imports.src.utils;
|
||||||
const ShaderFactory = await utils.importInShellOnly('./ShaderFactory.js');
|
const ShaderFactory = Me.imports.src.ShaderFactory.ShaderFactory;
|
||||||
|
|
||||||
const _ = await utils.importGettext();
|
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////////////////
|
||||||
// This effect hides the actor by violently sucking it into the void of magic. //
|
// This effect hides the actor by violently sucking it into the void of magic. //
|
||||||
@@ -30,14 +28,14 @@ const _ = await utils.importGettext();
|
|||||||
// The effect class can be used to get some metadata (like the effect's name or supported
|
// The effect class can be used to get some metadata (like the effect's name or supported
|
||||||
// GNOME Shell versions), to initialize the respective page of the settings dialog, as
|
// GNOME Shell versions), to initialize the respective page of the settings dialog, as
|
||||||
// well as to create the actual shader for the effect.
|
// well as to create the actual shader for the effect.
|
||||||
export default class Effect {
|
var Apparition = class {
|
||||||
|
|
||||||
// The constructor creates a ShaderFactory which will be used by extension.js to create
|
// The constructor creates a ShaderFactory which will be used by extension.js to create
|
||||||
// shader instances for this effect. The shaders will be automagically created using the
|
// shader instances for this effect. The shaders will be automagically created using the
|
||||||
// GLSL file in resources/shaders/<nick>.glsl. The callback will be called for each
|
// GLSL file in resources/shaders/<nick>.glsl. The callback will be called for each
|
||||||
// newly created shader instance.
|
// newly created shader instance.
|
||||||
constructor() {
|
constructor() {
|
||||||
this.shaderFactory = new ShaderFactory(Effect.getNick(), (shader) => {
|
this.shaderFactory = new ShaderFactory(this.getNick(), (shader) => {
|
||||||
// Store uniform locations of newly created shaders.
|
// Store uniform locations of newly created shaders.
|
||||||
shader._uSeed = shader.get_uniform_location('uSeed');
|
shader._uSeed = shader.get_uniform_location('uSeed');
|
||||||
shader._uShake = shader.get_uniform_location('uShake');
|
shader._uShake = shader.get_uniform_location('uShake');
|
||||||
@@ -62,7 +60,7 @@ export default class Effect {
|
|||||||
|
|
||||||
// The effect is not available on GNOME Shell 3.36 as it requires scaling of the window
|
// The effect is not available on GNOME Shell 3.36 as it requires scaling of the window
|
||||||
// actor.
|
// actor.
|
||||||
static getMinShellVersion() {
|
getMinShellVersion() {
|
||||||
return [3, 38];
|
return [3, 38];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -70,13 +68,13 @@ export default class Effect {
|
|||||||
// required. It should match the prefix of the settings keys which store whether the
|
// required. It should match the prefix of the settings keys which store whether the
|
||||||
// effect is enabled currently (e.g. '*-enable-effect'), and its animation time
|
// effect is enabled currently (e.g. '*-enable-effect'), and its animation time
|
||||||
// (e.g. '*-animation-time').
|
// (e.g. '*-animation-time').
|
||||||
static getNick() {
|
getNick() {
|
||||||
return 'apparition';
|
return 'apparition';
|
||||||
}
|
}
|
||||||
|
|
||||||
// This will be shown in the sidebar of the preferences dialog as well as in the
|
// This will be shown in the sidebar of the preferences dialog as well as in the
|
||||||
// drop-down menus where the user can choose the effect.
|
// drop-down menus where the user can choose the effect.
|
||||||
static getLabel() {
|
getLabel() {
|
||||||
return _('Apparition');
|
return _('Apparition');
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -84,7 +82,7 @@ export default class Effect {
|
|||||||
|
|
||||||
// This is called by the preferences dialog whenever a new effect profile is loaded. It
|
// This is called by the preferences dialog whenever a new effect profile is loaded. It
|
||||||
// binds all user interface elements to the respective settings keys of the profile.
|
// binds all user interface elements to the respective settings keys of the profile.
|
||||||
static bindPreferences(dialog) {
|
bindPreferences(dialog) {
|
||||||
dialog.bindAdjustment('apparition-randomness');
|
dialog.bindAdjustment('apparition-randomness');
|
||||||
dialog.bindAdjustment('apparition-animation-time');
|
dialog.bindAdjustment('apparition-animation-time');
|
||||||
dialog.bindAdjustment('apparition-twirl-intensity');
|
dialog.bindAdjustment('apparition-twirl-intensity');
|
||||||
@@ -97,7 +95,7 @@ export default class Effect {
|
|||||||
// The getActorScale() is called from extension.js to adjust the actor's size during the
|
// The getActorScale() is called from extension.js to adjust the actor's size during the
|
||||||
// animation. This is useful if the effect requires drawing something beyond the usual
|
// animation. This is useful if the effect requires drawing something beyond the usual
|
||||||
// bounds of the actor. This only works for GNOME 3.38+.
|
// bounds of the actor. This only works for GNOME 3.38+.
|
||||||
static getActorScale(settings, forOpening, actor) {
|
getActorScale(settings) {
|
||||||
return {x: 2.0, y: 2.0};
|
return {x: 2.0, y: 2.0};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,17 +14,12 @@
|
|||||||
|
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
import * as utils from '../utils.js';
|
const _ = imports.gettext.domain('burn-my-windows').gettext;
|
||||||
|
|
||||||
// We import some modules only in the Shell process as they are not available in the
|
const ExtensionUtils = imports.misc.extensionUtils;
|
||||||
// preferences process. They are used only in the creator function of the ShaderFactory
|
const Me = imports.misc.extensionUtils.getCurrentExtension();
|
||||||
// which is only called within GNOME Shell's process.
|
const utils = Me.imports.src.utils;
|
||||||
const ShaderFactory = await utils.importInShellOnly('./ShaderFactory.js');
|
const ShaderFactory = Me.imports.src.ShaderFactory.ShaderFactory;
|
||||||
const Clutter = await utils.importInShellOnly('gi://Clutter');
|
|
||||||
const GdkPixbuf = await utils.importInShellOnly('gi://GdkPixbuf');
|
|
||||||
const Cogl = await utils.importInShellOnly('gi://Cogl');
|
|
||||||
|
|
||||||
const _ = await utils.importGettext();
|
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////////////////
|
||||||
// This effect shatters the window into pieces. For an explanation how this works, look //
|
// This effect shatters the window into pieces. For an explanation how this works, look //
|
||||||
@@ -45,14 +40,18 @@ const _ = await utils.importGettext();
|
|||||||
// The effect class can be used to get some metadata (like the effect's name or supported
|
// The effect class can be used to get some metadata (like the effect's name or supported
|
||||||
// GNOME Shell versions), to initialize the respective page of the settings dialog, as
|
// GNOME Shell versions), to initialize the respective page of the settings dialog, as
|
||||||
// well as to create the actual shader for the effect.
|
// well as to create the actual shader for the effect.
|
||||||
export default class Effect {
|
var BrokenGlass = class {
|
||||||
|
|
||||||
// The constructor creates a ShaderFactory which will be used by extension.js to create
|
// The constructor creates a ShaderFactory which will be used by extension.js to create
|
||||||
// shader instances for this effect. The shaders will be automagically created using the
|
// shader instances for this effect. The shaders will be automagically created using the
|
||||||
// GLSL file in resources/shaders/<nick>.glsl. The callback will be called for each
|
// GLSL file in resources/shaders/<nick>.glsl. The callback will be called for each
|
||||||
// newly created shader instance.
|
// newly created shader instance.
|
||||||
constructor() {
|
constructor() {
|
||||||
this.shaderFactory = new ShaderFactory(Effect.getNick(), (shader) => {
|
this.shaderFactory = new ShaderFactory(this.getNick(), (shader) => {
|
||||||
|
// We import these modules in this function as they are not available in the
|
||||||
|
// preferences process. This callback is only called within GNOME Shell's process.
|
||||||
|
const {Clutter, GdkPixbuf, Cogl} = imports.gi;
|
||||||
|
|
||||||
// Create the texture in the first call.
|
// Create the texture in the first call.
|
||||||
if (!this._shardTexture) {
|
if (!this._shardTexture) {
|
||||||
const shardData = GdkPixbuf.Pixbuf.new_from_resource('/img/shards.png');
|
const shardData = GdkPixbuf.Pixbuf.new_from_resource('/img/shards.png');
|
||||||
@@ -119,7 +118,7 @@ export default class Effect {
|
|||||||
// ---------------------------------------------------------------------------- metadata
|
// ---------------------------------------------------------------------------- metadata
|
||||||
|
|
||||||
// This effect is only available on GNOME Shell 40+.
|
// This effect is only available on GNOME Shell 40+.
|
||||||
static getMinShellVersion() {
|
getMinShellVersion() {
|
||||||
return [40, 0];
|
return [40, 0];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -128,13 +127,13 @@ export default class Effect {
|
|||||||
// effect is enabled currently (e.g. '*-enable-effect'), and its animation time
|
// effect is enabled currently (e.g. '*-enable-effect'), and its animation time
|
||||||
// (e.g. '*-animation-time'). Also, the shader file and the settings UI files should be
|
// (e.g. '*-animation-time'). Also, the shader file and the settings UI files should be
|
||||||
// named likes this.
|
// named likes this.
|
||||||
static getNick() {
|
getNick() {
|
||||||
return 'broken-glass';
|
return 'broken-glass';
|
||||||
}
|
}
|
||||||
|
|
||||||
// This will be shown in the sidebar of the preferences dialog as well as in the
|
// This will be shown in the sidebar of the preferences dialog as well as in the
|
||||||
// drop-down menus where the user can choose the effect.
|
// drop-down menus where the user can choose the effect.
|
||||||
static getLabel() {
|
getLabel() {
|
||||||
return _('Broken Glass');
|
return _('Broken Glass');
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -142,7 +141,7 @@ export default class Effect {
|
|||||||
|
|
||||||
// This is called by the preferences dialog whenever a new effect profile is loaded. It
|
// This is called by the preferences dialog whenever a new effect profile is loaded. It
|
||||||
// binds all user interface elements to the respective settings keys of the profile.
|
// binds all user interface elements to the respective settings keys of the profile.
|
||||||
static bindPreferences(dialog) {
|
bindPreferences(dialog) {
|
||||||
dialog.bindAdjustment('broken-glass-animation-time');
|
dialog.bindAdjustment('broken-glass-animation-time');
|
||||||
dialog.bindAdjustment('broken-glass-scale');
|
dialog.bindAdjustment('broken-glass-scale');
|
||||||
dialog.bindAdjustment('broken-glass-gravity');
|
dialog.bindAdjustment('broken-glass-gravity');
|
||||||
@@ -155,7 +154,7 @@ export default class Effect {
|
|||||||
// The getActorScale() is called from extension.js to adjust the actor's size during the
|
// The getActorScale() is called from extension.js to adjust the actor's size during the
|
||||||
// animation. This is useful if the effect requires drawing something beyond the usual
|
// animation. This is useful if the effect requires drawing something beyond the usual
|
||||||
// bounds of the actor. This only works for GNOME 3.38+.
|
// bounds of the actor. This only works for GNOME 3.38+.
|
||||||
static getActorScale(settings, forOpening, actor) {
|
getActorScale(settings) {
|
||||||
return {x: 2.0, y: 2.0};
|
return {x: 2.0, y: 2.0};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,14 +14,14 @@
|
|||||||
|
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
import * as utils from '../utils.js';
|
const GObject = imports.gi.GObject;
|
||||||
|
|
||||||
// We import the ShaderFactory only in the Shell process as it is not required in the
|
const _ = imports.gettext.domain('burn-my-windows').gettext;
|
||||||
// preferences process. The preferences process does not create any shader instances, it
|
|
||||||
// only uses the static metadata of the effect.
|
|
||||||
const ShaderFactory = await utils.importInShellOnly('./ShaderFactory.js');
|
|
||||||
|
|
||||||
const _ = await utils.importGettext();
|
const ExtensionUtils = imports.misc.extensionUtils;
|
||||||
|
const Me = imports.misc.extensionUtils.getCurrentExtension();
|
||||||
|
const utils = Me.imports.src.utils;
|
||||||
|
const ShaderFactory = Me.imports.src.ShaderFactory.ShaderFactory;
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////////////////
|
||||||
// This effect melts your windows. Inspired by the legendary screen transitions of the //
|
// This effect melts your windows. Inspired by the legendary screen transitions of the //
|
||||||
@@ -31,13 +31,14 @@ const _ = await utils.importGettext();
|
|||||||
// The effect class can be used to get some metadata (like the effect's name or supported
|
// The effect class can be used to get some metadata (like the effect's name or supported
|
||||||
// GNOME Shell versions), to initialize the respective page of the settings dialog, as
|
// GNOME Shell versions), to initialize the respective page of the settings dialog, as
|
||||||
// well as to create the actual shader for the effect.
|
// well as to create the actual shader for the effect.
|
||||||
export default class Effect {
|
var Doom = class {
|
||||||
|
|
||||||
// The constructor creates a ShaderFactory which will be used by extension.js to create
|
// The constructor creates a ShaderFactory which will be used by extension.js to create
|
||||||
// shader instances for this effect. The shaders will be automagically created using the
|
// shader instances for this effect. The shaders will be automagically created using the
|
||||||
// GLSL file in resources/shaders/<nick>.glsl. The callback will be called for each
|
// GLSL file in resources/shaders/<nick>.glsl. The callback will be called for each
|
||||||
// newly created shader instance.
|
// newly created shader instance.
|
||||||
constructor() {
|
constructor() {
|
||||||
this.shaderFactory = new ShaderFactory(Effect.getNick(), (shader) => {
|
this.shaderFactory = new ShaderFactory(this.getNick(), (shader) => {
|
||||||
// Store uniform locations of newly created shaders.
|
// Store uniform locations of newly created shaders.
|
||||||
shader._uActorScale = shader.get_uniform_location('uActorScale');
|
shader._uActorScale = shader.get_uniform_location('uActorScale');
|
||||||
shader._uHorizontalScale = shader.get_uniform_location('uHorizontalScale');
|
shader._uHorizontalScale = shader.get_uniform_location('uHorizontalScale');
|
||||||
@@ -69,7 +70,7 @@ export default class Effect {
|
|||||||
|
|
||||||
// The effect is not available on GNOME Shell 3.36 as it requires scaling of the window
|
// The effect is not available on GNOME Shell 3.36 as it requires scaling of the window
|
||||||
// actor.
|
// actor.
|
||||||
static getMinShellVersion() {
|
getMinShellVersion() {
|
||||||
return [3, 38];
|
return [3, 38];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -77,13 +78,13 @@ export default class Effect {
|
|||||||
// required. It should match the prefix of the settings keys which store whether the
|
// required. It should match the prefix of the settings keys which store whether the
|
||||||
// effect is enabled currently (e.g. '*-enable-effect'), and its animation time
|
// effect is enabled currently (e.g. '*-enable-effect'), and its animation time
|
||||||
// (e.g. '*-animation-time').
|
// (e.g. '*-animation-time').
|
||||||
static getNick() {
|
getNick() {
|
||||||
return 'doom';
|
return 'doom';
|
||||||
}
|
}
|
||||||
|
|
||||||
// This will be shown in the sidebar of the preferences dialog as well as in the
|
// This will be shown in the sidebar of the preferences dialog as well as in the
|
||||||
// drop-down menus where the user can choose the effect.
|
// drop-down menus where the user can choose the effect.
|
||||||
static getLabel() {
|
getLabel() {
|
||||||
return _('Doom');
|
return _('Doom');
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -91,7 +92,7 @@ export default class Effect {
|
|||||||
|
|
||||||
// This is called by the preferences dialog whenever a new effect profile is loaded. It
|
// This is called by the preferences dialog whenever a new effect profile is loaded. It
|
||||||
// binds all user interface elements to the respective settings keys of the profile.
|
// binds all user interface elements to the respective settings keys of the profile.
|
||||||
static bindPreferences(dialog) {
|
bindPreferences(dialog) {
|
||||||
dialog.bindAdjustment('doom-animation-time');
|
dialog.bindAdjustment('doom-animation-time');
|
||||||
dialog.bindAdjustment('doom-horizontal-scale');
|
dialog.bindAdjustment('doom-horizontal-scale');
|
||||||
dialog.bindAdjustment('doom-vertical-scale');
|
dialog.bindAdjustment('doom-vertical-scale');
|
||||||
@@ -105,7 +106,7 @@ export default class Effect {
|
|||||||
// bounds of the actor. This only works for GNOME 3.38+.
|
// bounds of the actor. This only works for GNOME 3.38+.
|
||||||
// For this effect, we scale the actor vertically so that it covers the entire screen.
|
// For this effect, we scale the actor vertically so that it covers the entire screen.
|
||||||
// This ensures that the melted window will not be cut off.
|
// This ensures that the melted window will not be cut off.
|
||||||
static getActorScale(settings, forOpening, actor) {
|
getActorScale(settings, forOpening, actor) {
|
||||||
let actorScale = 2.0 * Math.max(1.0, global.stage.height / actor.height);
|
let actorScale = 2.0 * Math.max(1.0, global.stage.height / actor.height);
|
||||||
return {x: 1.0, y: actorScale};
|
return {x: 1.0, y: actorScale};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,15 +14,14 @@
|
|||||||
|
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
import * as utils from '../utils.js';
|
const GObject = imports.gi.GObject;
|
||||||
|
|
||||||
// We import some modules only in the Shell process as they are not available in the
|
const _ = imports.gettext.domain('burn-my-windows').gettext;
|
||||||
// preferences process. They are used only in the creator function of the ShaderFactory
|
|
||||||
// which is only called within GNOME Shell's process.
|
|
||||||
const ShaderFactory = await utils.importInShellOnly('./ShaderFactory.js');
|
|
||||||
const Clutter = await utils.importInShellOnly('gi://Clutter');
|
|
||||||
|
|
||||||
const _ = await utils.importGettext();
|
const ExtensionUtils = imports.misc.extensionUtils;
|
||||||
|
const Me = imports.misc.extensionUtils.getCurrentExtension();
|
||||||
|
const utils = Me.imports.src.utils;
|
||||||
|
const ShaderFactory = Me.imports.src.ShaderFactory.ShaderFactory;
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////////////////
|
||||||
// This effect looks a bit like the transporter effect from TOS. //
|
// This effect looks a bit like the transporter effect from TOS. //
|
||||||
@@ -31,14 +30,19 @@ const _ = await utils.importGettext();
|
|||||||
// The effect class can be used to get some metadata (like the effect's name or supported
|
// The effect class can be used to get some metadata (like the effect's name or supported
|
||||||
// GNOME Shell versions), to initialize the respective page of the settings dialog, as
|
// GNOME Shell versions), to initialize the respective page of the settings dialog, as
|
||||||
// well as to create the actual shader for the effect.
|
// well as to create the actual shader for the effect.
|
||||||
export default class Effect {
|
var EnergizeA = class {
|
||||||
|
|
||||||
// The constructor creates a ShaderFactory which will be used by extension.js to create
|
// The constructor creates a ShaderFactory which will be used by extension.js to create
|
||||||
// shader instances for this effect. The shaders will be automagically created using the
|
// shader instances for this effect. The shaders will be automagically created using the
|
||||||
// GLSL file in resources/shaders/<nick>.glsl. The callback will be called for each
|
// GLSL file in resources/shaders/<nick>.glsl. The callback will be called for each
|
||||||
// newly created shader instance.
|
// newly created shader instance.
|
||||||
constructor() {
|
constructor() {
|
||||||
this.shaderFactory = new ShaderFactory(Effect.getNick(), (shader) => {
|
this.shaderFactory = new ShaderFactory(this.getNick(), (shader) => {
|
||||||
|
// We import Clutter in this function as it is not available in the preferences
|
||||||
|
// process. This creator function of the ShaderFactory is only called within GNOME
|
||||||
|
// Shell's process.
|
||||||
|
const Clutter = imports.gi.Clutter;
|
||||||
|
|
||||||
// Store uniform locations of newly created shaders.
|
// Store uniform locations of newly created shaders.
|
||||||
shader._uColor = shader.get_uniform_location('uColor');
|
shader._uColor = shader.get_uniform_location('uColor');
|
||||||
shader._uScale = shader.get_uniform_location('uScale');
|
shader._uScale = shader.get_uniform_location('uScale');
|
||||||
@@ -58,7 +62,7 @@ export default class Effect {
|
|||||||
// ---------------------------------------------------------------------------- metadata
|
// ---------------------------------------------------------------------------- metadata
|
||||||
|
|
||||||
// The effect is available on all GNOME Shell versions supported by this extension.
|
// The effect is available on all GNOME Shell versions supported by this extension.
|
||||||
static getMinShellVersion() {
|
getMinShellVersion() {
|
||||||
return [3, 36];
|
return [3, 36];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -66,13 +70,13 @@ export default class Effect {
|
|||||||
// required. It should match the prefix of the settings keys which store whether the
|
// required. It should match the prefix of the settings keys which store whether the
|
||||||
// effect is enabled currently (e.g. '*-enable-effect'), and its animation time
|
// effect is enabled currently (e.g. '*-enable-effect'), and its animation time
|
||||||
// (e.g. '*-animation-time').
|
// (e.g. '*-animation-time').
|
||||||
static getNick() {
|
getNick() {
|
||||||
return 'energize-a';
|
return 'energize-a';
|
||||||
}
|
}
|
||||||
|
|
||||||
// This will be shown in the sidebar of the preferences dialog as well as in the
|
// This will be shown in the sidebar of the preferences dialog as well as in the
|
||||||
// drop-down menus where the user can choose the effect.
|
// drop-down menus where the user can choose the effect.
|
||||||
static getLabel() {
|
getLabel() {
|
||||||
return _('Energize A');
|
return _('Energize A');
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -80,7 +84,7 @@ export default class Effect {
|
|||||||
|
|
||||||
// This is called by the preferences dialog whenever a new effect profile is loaded. It
|
// This is called by the preferences dialog whenever a new effect profile is loaded. It
|
||||||
// binds all user interface elements to the respective settings keys of the profile.
|
// binds all user interface elements to the respective settings keys of the profile.
|
||||||
static bindPreferences(dialog) {
|
bindPreferences(dialog) {
|
||||||
dialog.bindAdjustment('energize-a-animation-time');
|
dialog.bindAdjustment('energize-a-animation-time');
|
||||||
dialog.bindAdjustment('energize-a-scale');
|
dialog.bindAdjustment('energize-a-scale');
|
||||||
dialog.bindColorButton('energize-a-color');
|
dialog.bindColorButton('energize-a-color');
|
||||||
@@ -91,7 +95,7 @@ export default class Effect {
|
|||||||
// The getActorScale() is called from extension.js to adjust the actor's size during the
|
// The getActorScale() is called from extension.js to adjust the actor's size during the
|
||||||
// animation. This is useful if the effect requires drawing something beyond the usual
|
// animation. This is useful if the effect requires drawing something beyond the usual
|
||||||
// bounds of the actor. This only works for GNOME 3.38+.
|
// bounds of the actor. This only works for GNOME 3.38+.
|
||||||
static getActorScale(settings, forOpening, actor) {
|
getActorScale(settings) {
|
||||||
return {x: 1.0, y: 1.0};
|
return {x: 1.0, y: 1.0};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -14,15 +14,14 @@
|
|||||||
|
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
import * as utils from '../utils.js';
|
const GObject = imports.gi.GObject;
|
||||||
|
|
||||||
// We import some modules only in the Shell process as they are not available in the
|
const _ = imports.gettext.domain('burn-my-windows').gettext;
|
||||||
// preferences process. They are used only in the creator function of the ShaderFactory
|
|
||||||
// which is only called within GNOME Shell's process.
|
|
||||||
const ShaderFactory = await utils.importInShellOnly('./ShaderFactory.js');
|
|
||||||
const Clutter = await utils.importInShellOnly('gi://Clutter');
|
|
||||||
|
|
||||||
const _ = await utils.importGettext();
|
const ExtensionUtils = imports.misc.extensionUtils;
|
||||||
|
const Me = imports.misc.extensionUtils.getCurrentExtension();
|
||||||
|
const utils = Me.imports.src.utils;
|
||||||
|
const ShaderFactory = Me.imports.src.ShaderFactory.ShaderFactory;
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////////////////
|
||||||
// This effect looks a bit like the transporter effect from TNG. //
|
// This effect looks a bit like the transporter effect from TNG. //
|
||||||
@@ -31,14 +30,19 @@ const _ = await utils.importGettext();
|
|||||||
// The effect class can be used to get some metadata (like the effect's name or supported
|
// The effect class can be used to get some metadata (like the effect's name or supported
|
||||||
// GNOME Shell versions), to initialize the respective page of the settings dialog, as
|
// GNOME Shell versions), to initialize the respective page of the settings dialog, as
|
||||||
// well as to create the actual shader for the effect.
|
// well as to create the actual shader for the effect.
|
||||||
export default class Effect {
|
var EnergizeB = class {
|
||||||
|
|
||||||
// The constructor creates a ShaderFactory which will be used by extension.js to create
|
// The constructor creates a ShaderFactory which will be used by extension.js to create
|
||||||
// shader instances for this effect. The shaders will be automagically created using the
|
// shader instances for this effect. The shaders will be automagically created using the
|
||||||
// GLSL file in resources/shaders/<nick>.glsl. The callback will be called for each
|
// GLSL file in resources/shaders/<nick>.glsl. The callback will be called for each
|
||||||
// newly created shader instance.
|
// newly created shader instance.
|
||||||
constructor() {
|
constructor() {
|
||||||
this.shaderFactory = new ShaderFactory(Effect.getNick(), (shader) => {
|
this.shaderFactory = new ShaderFactory(this.getNick(), (shader) => {
|
||||||
|
// We import Clutter in this function as it is not available in the preferences
|
||||||
|
// process. This creator function of the ShaderFactory is only called within GNOME
|
||||||
|
// Shell's process.
|
||||||
|
const Clutter = imports.gi.Clutter;
|
||||||
|
|
||||||
// Store uniform locations of newly created shaders.
|
// Store uniform locations of newly created shaders.
|
||||||
shader._uColor = shader.get_uniform_location('uColor');
|
shader._uColor = shader.get_uniform_location('uColor');
|
||||||
shader._uScale = shader.get_uniform_location('uScale');
|
shader._uScale = shader.get_uniform_location('uScale');
|
||||||
@@ -59,7 +63,7 @@ export default class Effect {
|
|||||||
// ---------------------------------------------------------------------------- metadata
|
// ---------------------------------------------------------------------------- metadata
|
||||||
|
|
||||||
// The effect is available on all GNOME Shell versions supported by this extension.
|
// The effect is available on all GNOME Shell versions supported by this extension.
|
||||||
static getMinShellVersion() {
|
getMinShellVersion() {
|
||||||
return [3, 36];
|
return [3, 36];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -67,13 +71,13 @@ export default class Effect {
|
|||||||
// required. It should match the prefix of the settings keys which store whether the
|
// required. It should match the prefix of the settings keys which store whether the
|
||||||
// effect is enabled currently (e.g. '*-enable-effect'), and its animation time
|
// effect is enabled currently (e.g. '*-enable-effect'), and its animation time
|
||||||
// (e.g. '*-animation-time').
|
// (e.g. '*-animation-time').
|
||||||
static getNick() {
|
getNick() {
|
||||||
return 'energize-b';
|
return 'energize-b';
|
||||||
}
|
}
|
||||||
|
|
||||||
// This will be shown in the sidebar of the preferences dialog as well as in the
|
// This will be shown in the sidebar of the preferences dialog as well as in the
|
||||||
// drop-down menus where the user can choose the effect.
|
// drop-down menus where the user can choose the effect.
|
||||||
static getLabel() {
|
getLabel() {
|
||||||
return _('Energize B');
|
return _('Energize B');
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -81,7 +85,7 @@ export default class Effect {
|
|||||||
|
|
||||||
// This is called by the preferences dialog whenever a new effect profile is loaded. It
|
// This is called by the preferences dialog whenever a new effect profile is loaded. It
|
||||||
// binds all user interface elements to the respective settings keys of the profile.
|
// binds all user interface elements to the respective settings keys of the profile.
|
||||||
static bindPreferences(dialog) {
|
bindPreferences(dialog) {
|
||||||
dialog.bindAdjustment('energize-b-animation-time');
|
dialog.bindAdjustment('energize-b-animation-time');
|
||||||
dialog.bindAdjustment('energize-b-scale');
|
dialog.bindAdjustment('energize-b-scale');
|
||||||
dialog.bindColorButton('energize-b-color');
|
dialog.bindColorButton('energize-b-color');
|
||||||
@@ -92,7 +96,7 @@ export default class Effect {
|
|||||||
// The getActorScale() is called from extension.js to adjust the actor's size during the
|
// The getActorScale() is called from extension.js to adjust the actor's size during the
|
||||||
// animation. This is useful if the effect requires drawing something beyond the usual
|
// animation. This is useful if the effect requires drawing something beyond the usual
|
||||||
// bounds of the actor. This only works for GNOME 3.38+.
|
// bounds of the actor. This only works for GNOME 3.38+.
|
||||||
static getActorScale(settings, forOpening, actor) {
|
getActorScale(settings) {
|
||||||
return {x: 1.0, y: 1.0};
|
return {x: 1.0, y: 1.0};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,17 +14,14 @@
|
|||||||
|
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
import Gio from 'gi://Gio';
|
const {Gio} = imports.gi;
|
||||||
|
|
||||||
import * as utils from '../utils.js';
|
const _ = imports.gettext.domain('burn-my-windows').gettext;
|
||||||
|
|
||||||
// We import some modules only in the Shell process as they are not available in the
|
const ExtensionUtils = imports.misc.extensionUtils;
|
||||||
// preferences process. They are used only in the creator function of the ShaderFactory
|
const Me = imports.misc.extensionUtils.getCurrentExtension();
|
||||||
// which is only called within GNOME Shell's process.
|
const utils = Me.imports.src.utils;
|
||||||
const ShaderFactory = await utils.importInShellOnly('./ShaderFactory.js');
|
const ShaderFactory = Me.imports.src.ShaderFactory.ShaderFactory;
|
||||||
const Clutter = await utils.importInShellOnly('gi://Clutter');
|
|
||||||
|
|
||||||
const _ = await utils.importGettext();
|
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////////////////
|
||||||
// This effect is a homage to the good old Compiz days. However, it is implemented //
|
// This effect is a homage to the good old Compiz days. However, it is implemented //
|
||||||
@@ -37,14 +34,20 @@ const _ = await utils.importGettext();
|
|||||||
// The effect class can be used to get some metadata (like the effect's name or supported
|
// The effect class can be used to get some metadata (like the effect's name or supported
|
||||||
// GNOME Shell versions), to initialize the respective page of the settings dialog, as
|
// GNOME Shell versions), to initialize the respective page of the settings dialog, as
|
||||||
// well as to create the actual shader for the effect.
|
// well as to create the actual shader for the effect.
|
||||||
export default class Effect {
|
var Fire = class {
|
||||||
|
|
||||||
|
|
||||||
// The constructor creates a ShaderFactory which will be used by extension.js to create
|
// The constructor creates a ShaderFactory which will be used by extension.js to create
|
||||||
// shader instances for this effect. The shaders will be automagically created using the
|
// shader instances for this effect. The shaders will be automagically created using the
|
||||||
// GLSL file in resources/shaders/<nick>.glsl. The callback will be called for each
|
// GLSL file in resources/shaders/<nick>.glsl. The callback will be called for each
|
||||||
// newly created shader instance.
|
// newly created shader instance.
|
||||||
constructor() {
|
constructor() {
|
||||||
this.shaderFactory = new ShaderFactory(Effect.getNick(), (shader) => {
|
this.shaderFactory = new ShaderFactory(this.getNick(), (shader) => {
|
||||||
|
// We import Clutter in this function as it is not available in the preferences
|
||||||
|
// process. This creator function of the ShaderFactory is only called within GNOME
|
||||||
|
// Shell's process.
|
||||||
|
const Clutter = imports.gi.Clutter;
|
||||||
|
|
||||||
// Store all uniform locations.
|
// Store all uniform locations.
|
||||||
shader._uGradient = [
|
shader._uGradient = [
|
||||||
shader.get_uniform_location('uGradient1'),
|
shader.get_uniform_location('uGradient1'),
|
||||||
@@ -79,7 +82,7 @@ export default class Effect {
|
|||||||
// ---------------------------------------------------------------------------- metadata
|
// ---------------------------------------------------------------------------- metadata
|
||||||
|
|
||||||
// The effect is available on all GNOME Shell versions supported by this extension.
|
// The effect is available on all GNOME Shell versions supported by this extension.
|
||||||
static getMinShellVersion() {
|
getMinShellVersion() {
|
||||||
return [3, 36];
|
return [3, 36];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -87,13 +90,13 @@ export default class Effect {
|
|||||||
// required. It should match the prefix of the settings keys which store whether the
|
// required. It should match the prefix of the settings keys which store whether the
|
||||||
// effect is enabled currently (e.g. '*-enable-effect'), and its animation time
|
// effect is enabled currently (e.g. '*-enable-effect'), and its animation time
|
||||||
// (e.g. '*-animation-time').
|
// (e.g. '*-animation-time').
|
||||||
static getNick() {
|
getNick() {
|
||||||
return 'fire';
|
return 'fire';
|
||||||
}
|
}
|
||||||
|
|
||||||
// This will be shown in the sidebar of the preferences dialog as well as in the
|
// This will be shown in the sidebar of the preferences dialog as well as in the
|
||||||
// drop-down menus where the user can choose the effect.
|
// drop-down menus where the user can choose the effect.
|
||||||
static getLabel() {
|
getLabel() {
|
||||||
return _('Fire');
|
return _('Fire');
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -101,7 +104,7 @@ export default class Effect {
|
|||||||
|
|
||||||
// This is called by the preferences dialog whenever a new effect profile is loaded. It
|
// This is called by the preferences dialog whenever a new effect profile is loaded. It
|
||||||
// binds all user interface elements to the respective settings keys of the profile.
|
// binds all user interface elements to the respective settings keys of the profile.
|
||||||
static bindPreferences(dialog) {
|
bindPreferences(dialog) {
|
||||||
|
|
||||||
// Bind all properties.
|
// Bind all properties.
|
||||||
dialog.bindAdjustment('fire-animation-time');
|
dialog.bindAdjustment('fire-animation-time');
|
||||||
@@ -115,8 +118,8 @@ export default class Effect {
|
|||||||
dialog.bindColorButton('fire-color-5');
|
dialog.bindColorButton('fire-color-5');
|
||||||
|
|
||||||
// Connect the buttons only once. The bindPreferences can be called multiple times...
|
// Connect the buttons only once. The bindPreferences can be called multiple times...
|
||||||
if (!Effect._isConnected) {
|
if (!this._isConnected) {
|
||||||
Effect._isConnected = true;
|
this._isConnected = true;
|
||||||
|
|
||||||
// The fire-gradient-reset button needs to be bound explicitly.
|
// The fire-gradient-reset button needs to be bound explicitly.
|
||||||
dialog.getBuilder().get_object('reset-fire-colors').connect('clicked', () => {
|
dialog.getBuilder().get_object('reset-fire-colors').connect('clicked', () => {
|
||||||
@@ -128,7 +131,7 @@ export default class Effect {
|
|||||||
});
|
});
|
||||||
|
|
||||||
// Initialize the fire-preset dropdown.
|
// Initialize the fire-preset dropdown.
|
||||||
Effect._createFirePresets(dialog);
|
this._createFirePresets(dialog);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -137,14 +140,14 @@ export default class Effect {
|
|||||||
// The getActorScale() is called from extension.js to adjust the actor's size during the
|
// The getActorScale() is called from extension.js to adjust the actor's size during the
|
||||||
// animation. This is useful if the effect requires drawing something beyond the usual
|
// animation. This is useful if the effect requires drawing something beyond the usual
|
||||||
// bounds of the actor. This only works for GNOME 3.38+.
|
// bounds of the actor. This only works for GNOME 3.38+.
|
||||||
static getActorScale(settings, forOpening, actor) {
|
getActorScale(settings) {
|
||||||
return {x: 1.0, y: 1.0};
|
return {x: 1.0, y: 1.0};
|
||||||
}
|
}
|
||||||
|
|
||||||
// ----------------------------------------------------------------------- private stuff
|
// ----------------------------------------------------------------------- private stuff
|
||||||
|
|
||||||
// This populates the preset dropdown menu for the fire options.
|
// This populates the preset dropdown menu for the fire options.
|
||||||
static _createFirePresets(dialog) {
|
_createFirePresets(dialog) {
|
||||||
dialog.getBuilder().get_object('fire-prefs').connect('realize', (widget) => {
|
dialog.getBuilder().get_object('fire-prefs').connect('realize', (widget) => {
|
||||||
const presets = [
|
const presets = [
|
||||||
{
|
{
|
||||||
@@ -225,7 +228,7 @@ export default class Effect {
|
|||||||
|
|
||||||
dialog.getBuilder().get_object('fire-preset-button').set_menu_model(menu);
|
dialog.getBuilder().get_object('fire-preset-button').set_menu_model(menu);
|
||||||
|
|
||||||
const root = widget.get_root();
|
const root = utils.isGTK4() ? widget.get_root() : widget.get_toplevel();
|
||||||
root.insert_action_group(groupName, group);
|
root.insert_action_group(groupName, group);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,14 +14,14 @@
|
|||||||
|
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
import * as utils from '../utils.js';
|
const GObject = imports.gi.GObject;
|
||||||
|
|
||||||
// We import the ShaderFactory only in the Shell process as it is not required in the
|
const _ = imports.gettext.domain('burn-my-windows').gettext;
|
||||||
// preferences process. The preferences process does not create any shader instances, it
|
|
||||||
// only uses the static metadata of the effect.
|
|
||||||
const ShaderFactory = await utils.importInShellOnly('./ShaderFactory.js');
|
|
||||||
|
|
||||||
const _ = await utils.importGettext();
|
const ExtensionUtils = imports.misc.extensionUtils;
|
||||||
|
const Me = imports.misc.extensionUtils.getCurrentExtension();
|
||||||
|
const utils = Me.imports.src.utils;
|
||||||
|
const ShaderFactory = Me.imports.src.ShaderFactory.ShaderFactory;
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////////////////
|
||||||
// This very simple effect fades the window to transparency with subtle 3D effects. //
|
// This very simple effect fades the window to transparency with subtle 3D effects. //
|
||||||
@@ -30,14 +30,14 @@ const _ = await utils.importGettext();
|
|||||||
// The effect class can be used to get some metadata (like the effect's name or supported
|
// The effect class can be used to get some metadata (like the effect's name or supported
|
||||||
// GNOME Shell versions), to initialize the respective page of the settings dialog, as
|
// GNOME Shell versions), to initialize the respective page of the settings dialog, as
|
||||||
// well as to create the actual shader for the effect.
|
// well as to create the actual shader for the effect.
|
||||||
export default class Effect {
|
var Glide = class {
|
||||||
|
|
||||||
// The constructor creates a ShaderFactory which will be used by extension.js to create
|
// The constructor creates a ShaderFactory which will be used by extension.js to create
|
||||||
// shader instances for this effect. The shaders will be automagically created using the
|
// shader instances for this effect. The shaders will be automagically created using the
|
||||||
// GLSL file in resources/shaders/<nick>.glsl. The callback will be called for each
|
// GLSL file in resources/shaders/<nick>.glsl. The callback will be called for each
|
||||||
// newly created shader instance.
|
// newly created shader instance.
|
||||||
constructor() {
|
constructor() {
|
||||||
this.shaderFactory = new ShaderFactory(Effect.getNick(), (shader) => {
|
this.shaderFactory = new ShaderFactory(this.getNick(), (shader) => {
|
||||||
// Store uniform locations of newly created shaders.
|
// Store uniform locations of newly created shaders.
|
||||||
shader._uScale = shader.get_uniform_location('uScale');
|
shader._uScale = shader.get_uniform_location('uScale');
|
||||||
shader._uSquish = shader.get_uniform_location('uSquish');
|
shader._uSquish = shader.get_uniform_location('uSquish');
|
||||||
@@ -60,7 +60,7 @@ export default class Effect {
|
|||||||
// ---------------------------------------------------------------------------- metadata
|
// ---------------------------------------------------------------------------- metadata
|
||||||
|
|
||||||
// The effect is available on all GNOME Shell versions supported by this extension.
|
// The effect is available on all GNOME Shell versions supported by this extension.
|
||||||
static getMinShellVersion() {
|
getMinShellVersion() {
|
||||||
return [3, 36];
|
return [3, 36];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -68,13 +68,13 @@ export default class Effect {
|
|||||||
// required. It should match the prefix of the settings keys which store whether the
|
// required. It should match the prefix of the settings keys which store whether the
|
||||||
// effect is enabled currently (e.g. '*-enable-effect'), and its animation time
|
// effect is enabled currently (e.g. '*-enable-effect'), and its animation time
|
||||||
// (e.g. '*-animation-time').
|
// (e.g. '*-animation-time').
|
||||||
static getNick() {
|
getNick() {
|
||||||
return 'glide';
|
return 'glide';
|
||||||
}
|
}
|
||||||
|
|
||||||
// This will be shown in the sidebar of the preferences dialog as well as in the
|
// This will be shown in the sidebar of the preferences dialog as well as in the
|
||||||
// drop-down menus where the user can choose the effect.
|
// drop-down menus where the user can choose the effect.
|
||||||
static getLabel() {
|
getLabel() {
|
||||||
return _('Glide');
|
return _('Glide');
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -82,7 +82,7 @@ export default class Effect {
|
|||||||
|
|
||||||
// This is called by the preferences dialog whenever a new effect profile is loaded. It
|
// This is called by the preferences dialog whenever a new effect profile is loaded. It
|
||||||
// binds all user interface elements to the respective settings keys of the profile.
|
// binds all user interface elements to the respective settings keys of the profile.
|
||||||
static bindPreferences(dialog) {
|
bindPreferences(dialog) {
|
||||||
dialog.bindAdjustment('glide-animation-time');
|
dialog.bindAdjustment('glide-animation-time');
|
||||||
dialog.bindAdjustment('glide-scale');
|
dialog.bindAdjustment('glide-scale');
|
||||||
dialog.bindAdjustment('glide-squish');
|
dialog.bindAdjustment('glide-squish');
|
||||||
@@ -95,7 +95,7 @@ export default class Effect {
|
|||||||
// The getActorScale() is called from extension.js to adjust the actor's size during the
|
// The getActorScale() is called from extension.js to adjust the actor's size during the
|
||||||
// animation. This is useful if the effect requires drawing something beyond the usual
|
// animation. This is useful if the effect requires drawing something beyond the usual
|
||||||
// bounds of the actor. This only works for GNOME 3.38+.
|
// bounds of the actor. This only works for GNOME 3.38+.
|
||||||
static getActorScale(settings, forOpening, actor) {
|
getActorScale(settings) {
|
||||||
return {x: 1.0, y: 1.0};
|
return {x: 1.0, y: 1.0};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,15 +14,14 @@
|
|||||||
|
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
import * as utils from '../utils.js';
|
const GObject = imports.gi.GObject;
|
||||||
|
|
||||||
// We import some modules only in the Shell process as they are not available in the
|
const _ = imports.gettext.domain('burn-my-windows').gettext;
|
||||||
// preferences process. They are used only in the creator function of the ShaderFactory
|
|
||||||
// which is only called within GNOME Shell's process.
|
|
||||||
const ShaderFactory = await utils.importInShellOnly('./ShaderFactory.js');
|
|
||||||
const Clutter = await utils.importInShellOnly('gi://Clutter');
|
|
||||||
|
|
||||||
const _ = await utils.importGettext();
|
const ExtensionUtils = imports.misc.extensionUtils;
|
||||||
|
const Me = imports.misc.extensionUtils.getCurrentExtension();
|
||||||
|
const utils = Me.imports.src.utils;
|
||||||
|
const ShaderFactory = Me.imports.src.ShaderFactory.ShaderFactory;
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////////////////
|
||||||
// This effect applies some intentional graphics issues to your windows. //
|
// This effect applies some intentional graphics issues to your windows. //
|
||||||
@@ -31,14 +30,19 @@ const _ = await utils.importGettext();
|
|||||||
// The effect class can be used to get some metadata (like the effect's name or supported
|
// The effect class can be used to get some metadata (like the effect's name or supported
|
||||||
// GNOME Shell versions), to initialize the respective page of the settings dialog, as
|
// GNOME Shell versions), to initialize the respective page of the settings dialog, as
|
||||||
// well as to create the actual shader for the effect.
|
// well as to create the actual shader for the effect.
|
||||||
export default class Effect {
|
var Glitch = class {
|
||||||
|
|
||||||
// The constructor creates a ShaderFactory which will be used by extension.js to create
|
// The constructor creates a ShaderFactory which will be used by extension.js to create
|
||||||
// shader instances for this effect. The shaders will be automagically created using the
|
// shader instances for this effect. The shaders will be automagically created using the
|
||||||
// GLSL file in resources/shaders/<nick>.glsl. The callback will be called for each
|
// GLSL file in resources/shaders/<nick>.glsl. The callback will be called for each
|
||||||
// newly created shader instance.
|
// newly created shader instance.
|
||||||
constructor() {
|
constructor() {
|
||||||
this.shaderFactory = new ShaderFactory(Effect.getNick(), (shader) => {
|
this.shaderFactory = new ShaderFactory(this.getNick(), (shader) => {
|
||||||
|
// We import Clutter in this function as it is not available in the preferences
|
||||||
|
// process. This creator function of the ShaderFactory is only called within GNOME
|
||||||
|
// Shell's process.
|
||||||
|
const Clutter = imports.gi.Clutter;
|
||||||
|
|
||||||
// Store uniform locations of newly created shaders.
|
// Store uniform locations of newly created shaders.
|
||||||
shader._uSeed = shader.get_uniform_location('uSeed');
|
shader._uSeed = shader.get_uniform_location('uSeed');
|
||||||
shader._uColor = shader.get_uniform_location('uColor');
|
shader._uColor = shader.get_uniform_location('uColor');
|
||||||
@@ -64,7 +68,7 @@ export default class Effect {
|
|||||||
// ---------------------------------------------------------------------------- metadata
|
// ---------------------------------------------------------------------------- metadata
|
||||||
|
|
||||||
// The effect is available on all GNOME Shell versions supported by this extension.
|
// The effect is available on all GNOME Shell versions supported by this extension.
|
||||||
static getMinShellVersion() {
|
getMinShellVersion() {
|
||||||
return [3, 36];
|
return [3, 36];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -72,13 +76,13 @@ export default class Effect {
|
|||||||
// required. It should match the prefix of the settings keys which store whether the
|
// required. It should match the prefix of the settings keys which store whether the
|
||||||
// effect is enabled currently (e.g. '*-enable-effect'), and its animation time
|
// effect is enabled currently (e.g. '*-enable-effect'), and its animation time
|
||||||
// (e.g. '*-animation-time').
|
// (e.g. '*-animation-time').
|
||||||
static getNick() {
|
getNick() {
|
||||||
return 'glitch';
|
return 'glitch';
|
||||||
}
|
}
|
||||||
|
|
||||||
// This will be shown in the sidebar of the preferences dialog as well as in the
|
// This will be shown in the sidebar of the preferences dialog as well as in the
|
||||||
// drop-down menus where the user can choose the effect.
|
// drop-down menus where the user can choose the effect.
|
||||||
static getLabel() {
|
getLabel() {
|
||||||
return _('Glitch');
|
return _('Glitch');
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -86,7 +90,7 @@ export default class Effect {
|
|||||||
|
|
||||||
// This is called by the preferences dialog whenever a new effect profile is loaded. It
|
// This is called by the preferences dialog whenever a new effect profile is loaded. It
|
||||||
// binds all user interface elements to the respective settings keys of the profile.
|
// binds all user interface elements to the respective settings keys of the profile.
|
||||||
static bindPreferences(dialog) {
|
bindPreferences(dialog) {
|
||||||
dialog.bindAdjustment('glitch-animation-time');
|
dialog.bindAdjustment('glitch-animation-time');
|
||||||
dialog.bindAdjustment('glitch-scale');
|
dialog.bindAdjustment('glitch-scale');
|
||||||
dialog.bindAdjustment('glitch-speed');
|
dialog.bindAdjustment('glitch-speed');
|
||||||
@@ -99,7 +103,7 @@ export default class Effect {
|
|||||||
// The getActorScale() is called from extension.js to adjust the actor's size during the
|
// The getActorScale() is called from extension.js to adjust the actor's size during the
|
||||||
// animation. This is useful if the effect requires drawing something beyond the usual
|
// animation. This is useful if the effect requires drawing something beyond the usual
|
||||||
// bounds of the actor. This only works for GNOME 3.38+.
|
// bounds of the actor. This only works for GNOME 3.38+.
|
||||||
static getActorScale(settings, forOpening, actor) {
|
getActorScale(settings) {
|
||||||
return {x: 1.0, y: 1.0};
|
return {x: 1.0, y: 1.0};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -14,15 +14,14 @@
|
|||||||
|
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
import * as utils from '../utils.js';
|
const GObject = imports.gi.GObject;
|
||||||
|
|
||||||
// We import some modules only in the Shell process as they are not available in the
|
const _ = imports.gettext.domain('burn-my-windows').gettext;
|
||||||
// preferences process. They are used only in the creator function of the ShaderFactory
|
|
||||||
// which is only called within GNOME Shell's process.
|
|
||||||
const ShaderFactory = await utils.importInShellOnly('./ShaderFactory.js');
|
|
||||||
const Clutter = await utils.importInShellOnly('gi://Clutter');
|
|
||||||
|
|
||||||
const _ = await utils.importGettext();
|
const ExtensionUtils = imports.misc.extensionUtils;
|
||||||
|
const Me = imports.misc.extensionUtils.getCurrentExtension();
|
||||||
|
const utils = Me.imports.src.utils;
|
||||||
|
const ShaderFactory = Me.imports.src.ShaderFactory.ShaderFactory;
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////////////////
|
||||||
// This effect overlays a glowing hexagonal grid over the window. The grid cells then //
|
// This effect overlays a glowing hexagonal grid over the window. The grid cells then //
|
||||||
@@ -32,14 +31,19 @@ const _ = await utils.importGettext();
|
|||||||
// The effect class can be used to get some metadata (like the effect's name or supported
|
// The effect class can be used to get some metadata (like the effect's name or supported
|
||||||
// GNOME Shell versions), to initialize the respective page of the settings dialog, as
|
// GNOME Shell versions), to initialize the respective page of the settings dialog, as
|
||||||
// well as to create the actual shader for the effect.
|
// well as to create the actual shader for the effect.
|
||||||
export default class Effect {
|
var Hexagon = class {
|
||||||
|
|
||||||
// The constructor creates a ShaderFactory which will be used by extension.js to create
|
// The constructor creates a ShaderFactory which will be used by extension.js to create
|
||||||
// shader instances for this effect. The shaders will be automagically created using the
|
// shader instances for this effect. The shaders will be automagically created using the
|
||||||
// GLSL file in resources/shaders/<nick>.glsl. The callback will be called for each
|
// GLSL file in resources/shaders/<nick>.glsl. The callback will be called for each
|
||||||
// newly created shader instance.
|
// newly created shader instance.
|
||||||
constructor() {
|
constructor() {
|
||||||
this.shaderFactory = new ShaderFactory(Effect.getNick(), (shader) => {
|
this.shaderFactory = new ShaderFactory(this.getNick(), (shader) => {
|
||||||
|
// We import Clutter in this function as it is not available in the preferences
|
||||||
|
// process. This creator function of the ShaderFactory is only called within GNOME
|
||||||
|
// Shell's process.
|
||||||
|
const Clutter = imports.gi.Clutter;
|
||||||
|
|
||||||
// Store uniform locations of newly created shaders.
|
// Store uniform locations of newly created shaders.
|
||||||
shader._uAdditiveBlending = shader.get_uniform_location('uAdditiveBlending');
|
shader._uAdditiveBlending = shader.get_uniform_location('uAdditiveBlending');
|
||||||
shader._uSeed = shader.get_uniform_location('uSeed');
|
shader._uSeed = shader.get_uniform_location('uSeed');
|
||||||
@@ -72,7 +76,7 @@ export default class Effect {
|
|||||||
// ---------------------------------------------------------------------------- metadata
|
// ---------------------------------------------------------------------------- metadata
|
||||||
|
|
||||||
// The effect is available on all GNOME Shell versions supported by this extension.
|
// The effect is available on all GNOME Shell versions supported by this extension.
|
||||||
static getMinShellVersion() {
|
getMinShellVersion() {
|
||||||
return [3, 36];
|
return [3, 36];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -80,13 +84,13 @@ export default class Effect {
|
|||||||
// required. It should match the prefix of the settings keys which store whether the
|
// required. It should match the prefix of the settings keys which store whether the
|
||||||
// effect is enabled currently (e.g. '*-enable-effect'), and its animation time
|
// effect is enabled currently (e.g. '*-enable-effect'), and its animation time
|
||||||
// (e.g. '*-animation-time').
|
// (e.g. '*-animation-time').
|
||||||
static getNick() {
|
getNick() {
|
||||||
return 'hexagon';
|
return 'hexagon';
|
||||||
}
|
}
|
||||||
|
|
||||||
// This will be shown in the sidebar of the preferences dialog as well as in the
|
// This will be shown in the sidebar of the preferences dialog as well as in the
|
||||||
// drop-down menus where the user can choose the effect.
|
// drop-down menus where the user can choose the effect.
|
||||||
static getLabel() {
|
getLabel() {
|
||||||
return _('Hexagon');
|
return _('Hexagon');
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -94,7 +98,7 @@ export default class Effect {
|
|||||||
|
|
||||||
// This is called by the preferences dialog whenever a new effect profile is loaded. It
|
// This is called by the preferences dialog whenever a new effect profile is loaded. It
|
||||||
// binds all user interface elements to the respective settings keys of the profile.
|
// binds all user interface elements to the respective settings keys of the profile.
|
||||||
static bindPreferences(dialog) {
|
bindPreferences(dialog) {
|
||||||
dialog.bindAdjustment('hexagon-animation-time');
|
dialog.bindAdjustment('hexagon-animation-time');
|
||||||
dialog.bindAdjustment('hexagon-scale');
|
dialog.bindAdjustment('hexagon-scale');
|
||||||
dialog.bindAdjustment('hexagon-line-width');
|
dialog.bindAdjustment('hexagon-line-width');
|
||||||
@@ -108,7 +112,7 @@ export default class Effect {
|
|||||||
// The getActorScale() is called from extension.js to adjust the actor's size during the
|
// The getActorScale() is called from extension.js to adjust the actor's size during the
|
||||||
// animation. This is useful if the effect requires drawing something beyond the usual
|
// animation. This is useful if the effect requires drawing something beyond the usual
|
||||||
// bounds of the actor. This only works for GNOME 3.38+.
|
// bounds of the actor. This only works for GNOME 3.38+.
|
||||||
static getActorScale(settings, forOpening, actor) {
|
getActorScale(settings) {
|
||||||
return {x: 1.0, y: 1.0};
|
return {x: 1.0, y: 1.0};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,15 +14,14 @@
|
|||||||
|
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
import * as utils from '../utils.js';
|
const GObject = imports.gi.GObject;
|
||||||
|
|
||||||
// We import some modules only in the Shell process as they are not available in the
|
const _ = imports.gettext.domain('burn-my-windows').gettext;
|
||||||
// preferences process. They are used only in the creator function of the ShaderFactory
|
|
||||||
// which is only called within GNOME Shell's process.
|
|
||||||
const ShaderFactory = await utils.importInShellOnly('./ShaderFactory.js');
|
|
||||||
const Clutter = await utils.importInShellOnly('gi://Clutter');
|
|
||||||
|
|
||||||
const _ = await utils.importGettext();
|
const ExtensionUtils = imports.misc.extensionUtils;
|
||||||
|
const Me = imports.misc.extensionUtils.getCurrentExtension();
|
||||||
|
const utils = Me.imports.src.utils;
|
||||||
|
const ShaderFactory = Me.imports.src.ShaderFactory.ShaderFactory;
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////////////////
|
||||||
// This effect burns windows to ashes. The fire starts at a random position at the //
|
// This effect burns windows to ashes. The fire starts at a random position at the //
|
||||||
@@ -32,14 +31,18 @@ const _ = await utils.importGettext();
|
|||||||
// The effect class can be used to get some metadata (like the effect's name or supported
|
// The effect class can be used to get some metadata (like the effect's name or supported
|
||||||
// GNOME Shell versions), to initialize the respective page of the settings dialog, as
|
// GNOME Shell versions), to initialize the respective page of the settings dialog, as
|
||||||
// well as to create the actual shader for the effect.
|
// well as to create the actual shader for the effect.
|
||||||
export default class Effect {
|
var Incinerate = class {
|
||||||
|
|
||||||
// The constructor creates a ShaderFactory which will be used by extension.js to create
|
// The constructor creates a ShaderFactory which will be used by extension.js to create
|
||||||
// shader instances for this effect. The shaders will be automagically created using the
|
// shader instances for this effect. The shaders will be automagically created using the
|
||||||
// GLSL file in resources/shaders/<nick>.glsl. The callback will be called for each
|
// GLSL file in resources/shaders/<nick>.glsl. The callback will be called for each
|
||||||
// newly created shader instance.
|
// newly created shader instance.
|
||||||
constructor() {
|
constructor() {
|
||||||
this.shaderFactory = new ShaderFactory(Effect.getNick(), (shader) => {
|
this.shaderFactory = new ShaderFactory(this.getNick(), (shader) => {
|
||||||
|
// We import these modules in this function as they are not available in the
|
||||||
|
// preferences process. This callback is only called within GNOME Shell's process.
|
||||||
|
const {Clutter} = imports.gi;
|
||||||
|
|
||||||
// Store uniform locations of newly created shaders.
|
// Store uniform locations of newly created shaders.
|
||||||
shader._uSeed = shader.get_uniform_location('uSeed');
|
shader._uSeed = shader.get_uniform_location('uSeed');
|
||||||
shader._uColor = shader.get_uniform_location('uColor');
|
shader._uColor = shader.get_uniform_location('uColor');
|
||||||
@@ -110,7 +113,7 @@ export default class Effect {
|
|||||||
// ---------------------------------------------------------------------------- metadata
|
// ---------------------------------------------------------------------------- metadata
|
||||||
|
|
||||||
// This effect is available on all supported GNOME Shell versions.
|
// This effect is available on all supported GNOME Shell versions.
|
||||||
static getMinShellVersion() {
|
getMinShellVersion() {
|
||||||
return [3, 36];
|
return [3, 36];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -118,13 +121,13 @@ export default class Effect {
|
|||||||
// required. It should match the prefix of the settings keys which store whether the
|
// required. It should match the prefix of the settings keys which store whether the
|
||||||
// effect is enabled currently (e.g. '*-enable-effect'), and its animation time
|
// effect is enabled currently (e.g. '*-enable-effect'), and its animation time
|
||||||
// (e.g. '*-animation-time').
|
// (e.g. '*-animation-time').
|
||||||
static getNick() {
|
getNick() {
|
||||||
return 'incinerate';
|
return 'incinerate';
|
||||||
}
|
}
|
||||||
|
|
||||||
// This will be shown in the sidebar of the preferences dialog as well as in the
|
// This will be shown in the sidebar of the preferences dialog as well as in the
|
||||||
// drop-down menus where the user can choose the effect.
|
// drop-down menus where the user can choose the effect.
|
||||||
static getLabel() {
|
getLabel() {
|
||||||
return _('Incinerate');
|
return _('Incinerate');
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -132,7 +135,7 @@ export default class Effect {
|
|||||||
|
|
||||||
// This is called by the preferences dialog whenever a new effect profile is loaded. It
|
// This is called by the preferences dialog whenever a new effect profile is loaded. It
|
||||||
// binds all user interface elements to the respective settings keys of the profile.
|
// binds all user interface elements to the respective settings keys of the profile.
|
||||||
static bindPreferences(dialog) {
|
bindPreferences(dialog) {
|
||||||
dialog.bindAdjustment('incinerate-animation-time');
|
dialog.bindAdjustment('incinerate-animation-time');
|
||||||
dialog.bindAdjustment('incinerate-scale');
|
dialog.bindAdjustment('incinerate-scale');
|
||||||
dialog.bindAdjustment('incinerate-turbulence');
|
dialog.bindAdjustment('incinerate-turbulence');
|
||||||
@@ -145,7 +148,7 @@ export default class Effect {
|
|||||||
// The getActorScale() is called from extension.js to adjust the actor's size during the
|
// The getActorScale() is called from extension.js to adjust the actor's size during the
|
||||||
// animation. This is useful if the effect requires drawing something beyond the usual
|
// animation. This is useful if the effect requires drawing something beyond the usual
|
||||||
// bounds of the actor. This only works for GNOME 3.38+.
|
// bounds of the actor. This only works for GNOME 3.38+.
|
||||||
static getActorScale(settings, forOpening, actor) {
|
getActorScale(settings) {
|
||||||
return {x: 1.0, y: 1.0};
|
return {x: 1.0, y: 1.0};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -14,17 +14,14 @@
|
|||||||
|
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
import * as utils from '../utils.js';
|
const GObject = imports.gi.GObject;
|
||||||
|
|
||||||
// We import some modules only in the Shell process as they are not available in the
|
const _ = imports.gettext.domain('burn-my-windows').gettext;
|
||||||
// preferences process. They are used only in the creator function of the ShaderFactory
|
|
||||||
// which is only called within GNOME Shell's process.
|
|
||||||
const ShaderFactory = await utils.importInShellOnly('./ShaderFactory.js');
|
|
||||||
const Clutter = await utils.importInShellOnly('gi://Clutter');
|
|
||||||
const GdkPixbuf = await utils.importInShellOnly('gi://GdkPixbuf');
|
|
||||||
const Cogl = await utils.importInShellOnly('gi://Cogl');
|
|
||||||
|
|
||||||
const _ = await utils.importGettext();
|
const ExtensionUtils = imports.misc.extensionUtils;
|
||||||
|
const Me = imports.misc.extensionUtils.getCurrentExtension();
|
||||||
|
const utils = Me.imports.src.utils;
|
||||||
|
const ShaderFactory = Me.imports.src.ShaderFactory.ShaderFactory;
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////////////////
|
||||||
// The Matrix shader multiplies a grid of random letters with some gradients which are //
|
// The Matrix shader multiplies a grid of random letters with some gradients which are //
|
||||||
@@ -37,14 +34,18 @@ const _ = await utils.importGettext();
|
|||||||
// The effect class can be used to get some metadata (like the effect's name or supported
|
// The effect class can be used to get some metadata (like the effect's name or supported
|
||||||
// GNOME Shell versions), to initialize the respective page of the settings dialog, as
|
// GNOME Shell versions), to initialize the respective page of the settings dialog, as
|
||||||
// well as to create the actual shader for the effect.
|
// well as to create the actual shader for the effect.
|
||||||
export default class Effect {
|
var Matrix = class {
|
||||||
|
|
||||||
// The constructor creates a ShaderFactory which will be used by extension.js to create
|
// The constructor creates a ShaderFactory which will be used by extension.js to create
|
||||||
// shader instances for this effect. The shaders will be automagically created using the
|
// shader instances for this effect. The shaders will be automagically created using the
|
||||||
// GLSL file in resources/shaders/<nick>.glsl. The callback will be called for each
|
// GLSL file in resources/shaders/<nick>.glsl. The callback will be called for each
|
||||||
// newly created shader instance.
|
// newly created shader instance.
|
||||||
constructor() {
|
constructor() {
|
||||||
this.shaderFactory = new ShaderFactory(Effect.getNick(), (shader) => {
|
this.shaderFactory = new ShaderFactory(this.getNick(), (shader) => {
|
||||||
|
// We import these modules in this function as they are not available in the
|
||||||
|
// preferences process. This callback is only called within GNOME Shell's process.
|
||||||
|
const {Clutter, GdkPixbuf, Cogl} = imports.gi;
|
||||||
|
|
||||||
// Create the texture in the first call.
|
// Create the texture in the first call.
|
||||||
if (!this._fontTexture) {
|
if (!this._fontTexture) {
|
||||||
const fontData = GdkPixbuf.Pixbuf.new_from_resource('/img/matrixFont.png');
|
const fontData = GdkPixbuf.Pixbuf.new_from_resource('/img/matrixFont.png');
|
||||||
@@ -95,7 +96,7 @@ export default class Effect {
|
|||||||
// ---------------------------------------------------------------------------- metadata
|
// ---------------------------------------------------------------------------- metadata
|
||||||
|
|
||||||
// This effect is only available on GNOME Shell 40+.
|
// This effect is only available on GNOME Shell 40+.
|
||||||
static getMinShellVersion() {
|
getMinShellVersion() {
|
||||||
return [40, 0];
|
return [40, 0];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -103,13 +104,13 @@ export default class Effect {
|
|||||||
// required. It should match the prefix of the settings keys which store whether the
|
// required. It should match the prefix of the settings keys which store whether the
|
||||||
// effect is enabled currently (e.g. '*-enable-effect'), and its animation time
|
// effect is enabled currently (e.g. '*-enable-effect'), and its animation time
|
||||||
// (e.g. '*-animation-time').
|
// (e.g. '*-animation-time').
|
||||||
static getNick() {
|
getNick() {
|
||||||
return 'matrix';
|
return 'matrix';
|
||||||
}
|
}
|
||||||
|
|
||||||
// This will be shown in the sidebar of the preferences dialog as well as in the
|
// This will be shown in the sidebar of the preferences dialog as well as in the
|
||||||
// drop-down menus where the user can choose the effect.
|
// drop-down menus where the user can choose the effect.
|
||||||
static getLabel() {
|
getLabel() {
|
||||||
return _('Matrix');
|
return _('Matrix');
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -117,7 +118,7 @@ export default class Effect {
|
|||||||
|
|
||||||
// This is called by the preferences dialog whenever a new effect profile is loaded. It
|
// This is called by the preferences dialog whenever a new effect profile is loaded. It
|
||||||
// binds all user interface elements to the respective settings keys of the profile.
|
// binds all user interface elements to the respective settings keys of the profile.
|
||||||
static bindPreferences(dialog) {
|
bindPreferences(dialog) {
|
||||||
dialog.bindAdjustment('matrix-animation-time');
|
dialog.bindAdjustment('matrix-animation-time');
|
||||||
dialog.bindAdjustment('matrix-scale');
|
dialog.bindAdjustment('matrix-scale');
|
||||||
dialog.bindAdjustment('matrix-randomness');
|
dialog.bindAdjustment('matrix-randomness');
|
||||||
@@ -131,7 +132,7 @@ export default class Effect {
|
|||||||
// The getActorScale() is called from extension.js to adjust the actor's size during the
|
// The getActorScale() is called from extension.js to adjust the actor's size during the
|
||||||
// animation. This is useful if the effect requires drawing something beyond the usual
|
// animation. This is useful if the effect requires drawing something beyond the usual
|
||||||
// bounds of the actor. This only works for GNOME 3.38+.
|
// bounds of the actor. This only works for GNOME 3.38+.
|
||||||
static getActorScale(settings, forOpening, actor) {
|
getActorScale(settings) {
|
||||||
return {x: 1.0, y: 1.0 + settings.get_double('matrix-overshoot')};
|
return {x: 1.0, y: 1.0 + settings.get_double('matrix-overshoot')};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,17 +14,14 @@
|
|||||||
|
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
import * as utils from '../utils.js';
|
const GObject = imports.gi.GObject;
|
||||||
|
|
||||||
// We import some modules only in the Shell process as they are not available in the
|
const _ = imports.gettext.domain('burn-my-windows').gettext;
|
||||||
// preferences process. They are used only in the creator function of the ShaderFactory
|
|
||||||
// which is only called within GNOME Shell's process.
|
|
||||||
const ShaderFactory = await utils.importInShellOnly('./ShaderFactory.js');
|
|
||||||
const Clutter = await utils.importInShellOnly('gi://Clutter');
|
|
||||||
const GdkPixbuf = await utils.importInShellOnly('gi://GdkPixbuf');
|
|
||||||
const Cogl = await utils.importInShellOnly('gi://Cogl');
|
|
||||||
|
|
||||||
const _ = await utils.importGettext();
|
const ExtensionUtils = imports.misc.extensionUtils;
|
||||||
|
const Me = imports.misc.extensionUtils.getCurrentExtension();
|
||||||
|
const utils = Me.imports.src.utils;
|
||||||
|
const ShaderFactory = Me.imports.src.ShaderFactory.ShaderFactory;
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////////////////
|
||||||
// This effect paints your windows with a thick paint brush. //
|
// This effect paints your windows with a thick paint brush. //
|
||||||
@@ -35,14 +32,18 @@ const _ = await utils.importGettext();
|
|||||||
// The effect class can be used to get some metadata (like the effect's name or supported
|
// The effect class can be used to get some metadata (like the effect's name or supported
|
||||||
// GNOME Shell versions), to initialize the respective page of the settings dialog, as
|
// GNOME Shell versions), to initialize the respective page of the settings dialog, as
|
||||||
// well as to create the actual shader for the effect.
|
// well as to create the actual shader for the effect.
|
||||||
export default class Effect {
|
var PaintBrush = class {
|
||||||
|
|
||||||
// The constructor creates a ShaderFactory which will be used by extension.js to create
|
// The constructor creates a ShaderFactory which will be used by extension.js to create
|
||||||
// shader instances for this effect. The shaders will be automagically created using the
|
// shader instances for this effect. The shaders will be automagically created using the
|
||||||
// GLSL file in resources/shaders/<nick>.glsl. The callback will be called for each
|
// GLSL file in resources/shaders/<nick>.glsl. The callback will be called for each
|
||||||
// newly created shader instance.
|
// newly created shader instance.
|
||||||
constructor() {
|
constructor() {
|
||||||
this.shaderFactory = new ShaderFactory(Effect.getNick(), (shader) => {
|
this.shaderFactory = new ShaderFactory(this.getNick(), (shader) => {
|
||||||
|
// We import these modules in this function as they are not available in the
|
||||||
|
// preferences process. This callback is only called within GNOME Shell's process.
|
||||||
|
const {Clutter, GdkPixbuf, Cogl} = imports.gi;
|
||||||
|
|
||||||
// Create the texture in the first call.
|
// Create the texture in the first call.
|
||||||
if (!this._brushTexture) {
|
if (!this._brushTexture) {
|
||||||
const brushData = GdkPixbuf.Pixbuf.new_from_resource('/img/brush.png');
|
const brushData = GdkPixbuf.Pixbuf.new_from_resource('/img/brush.png');
|
||||||
@@ -83,7 +84,7 @@ export default class Effect {
|
|||||||
// ---------------------------------------------------------------------------- metadata
|
// ---------------------------------------------------------------------------- metadata
|
||||||
|
|
||||||
// This effect is only available on GNOME Shell 40+.
|
// This effect is only available on GNOME Shell 40+.
|
||||||
static getMinShellVersion() {
|
getMinShellVersion() {
|
||||||
return [40, 0];
|
return [40, 0];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -91,13 +92,13 @@ export default class Effect {
|
|||||||
// required. It should match the prefix of the settings keys which store whether the
|
// required. It should match the prefix of the settings keys which store whether the
|
||||||
// effect is enabled currently (e.g. '*-enable-effect'), and its animation time
|
// effect is enabled currently (e.g. '*-enable-effect'), and its animation time
|
||||||
// (e.g. '*-animation-time').
|
// (e.g. '*-animation-time').
|
||||||
static getNick() {
|
getNick() {
|
||||||
return 'paint-brush';
|
return 'paint-brush';
|
||||||
}
|
}
|
||||||
|
|
||||||
// This will be shown in the sidebar of the preferences dialog as well as in the
|
// This will be shown in the sidebar of the preferences dialog as well as in the
|
||||||
// drop-down menus where the user can choose the effect.
|
// drop-down menus where the user can choose the effect.
|
||||||
static getLabel() {
|
getLabel() {
|
||||||
return _('Paint Brush');
|
return _('Paint Brush');
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -105,7 +106,7 @@ export default class Effect {
|
|||||||
|
|
||||||
// This is called by the preferences dialog whenever a new effect profile is loaded. It
|
// This is called by the preferences dialog whenever a new effect profile is loaded. It
|
||||||
// binds all user interface elements to the respective settings keys of the profile.
|
// binds all user interface elements to the respective settings keys of the profile.
|
||||||
static bindPreferences(dialog) {
|
bindPreferences(dialog) {
|
||||||
dialog.bindAdjustment('paint-brush-animation-time');
|
dialog.bindAdjustment('paint-brush-animation-time');
|
||||||
dialog.bindAdjustment('paint-brush-size');
|
dialog.bindAdjustment('paint-brush-size');
|
||||||
}
|
}
|
||||||
@@ -115,7 +116,7 @@ export default class Effect {
|
|||||||
// The getActorScale() is called from extension.js to adjust the actor's size during the
|
// The getActorScale() is called from extension.js to adjust the actor's size during the
|
||||||
// animation. This is useful if the effect requires drawing something beyond the usual
|
// animation. This is useful if the effect requires drawing something beyond the usual
|
||||||
// bounds of the actor. This only works for GNOME 3.38+.
|
// bounds of the actor. This only works for GNOME 3.38+.
|
||||||
static getActorScale(settings, forOpening, actor) {
|
getActorScale(settings) {
|
||||||
return {x: 1.0, y: 1.0};
|
return {x: 1.0, y: 1.0};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,14 +14,14 @@
|
|||||||
|
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
import * as utils from '../utils.js';
|
const GObject = imports.gi.GObject;
|
||||||
|
|
||||||
// We import the ShaderFactory only in the Shell process as it is not required in the
|
const _ = imports.gettext.domain('burn-my-windows').gettext;
|
||||||
// preferences process. The preferences process does not create any shader instances, it
|
|
||||||
// only uses the static metadata of the effect.
|
|
||||||
const ShaderFactory = await utils.importInShellOnly('./ShaderFactory.js');
|
|
||||||
|
|
||||||
const _ = await utils.importGettext();
|
const ExtensionUtils = imports.misc.extensionUtils;
|
||||||
|
const Me = imports.misc.extensionUtils.getCurrentExtension();
|
||||||
|
const utils = Me.imports.src.utils;
|
||||||
|
const ShaderFactory = Me.imports.src.ShaderFactory.ShaderFactory;
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////////////////
|
||||||
// This simple effect pixelates the window texture and hides the pixels in a wheel-like //
|
// This simple effect pixelates the window texture and hides the pixels in a wheel-like //
|
||||||
@@ -31,14 +31,14 @@ const _ = await utils.importGettext();
|
|||||||
// The effect class can be used to get some metadata (like the effect's name or supported
|
// The effect class can be used to get some metadata (like the effect's name or supported
|
||||||
// GNOME Shell versions), to initialize the respective page of the settings dialog, as
|
// GNOME Shell versions), to initialize the respective page of the settings dialog, as
|
||||||
// well as to create the actual shader for the effect.
|
// well as to create the actual shader for the effect.
|
||||||
export default class Effect {
|
var PixelWheel = class {
|
||||||
|
|
||||||
// The constructor creates a ShaderFactory which will be used by extension.js to create
|
// The constructor creates a ShaderFactory which will be used by extension.js to create
|
||||||
// shader instances for this effect. The shaders will be automagically created using the
|
// shader instances for this effect. The shaders will be automagically created using the
|
||||||
// GLSL file in resources/shaders/<nick>.glsl. The callback will be called for each
|
// GLSL file in resources/shaders/<nick>.glsl. The callback will be called for each
|
||||||
// newly created shader instance.
|
// newly created shader instance.
|
||||||
constructor() {
|
constructor() {
|
||||||
this.shaderFactory = new ShaderFactory(Effect.getNick(), (shader) => {
|
this.shaderFactory = new ShaderFactory(this.getNick(), (shader) => {
|
||||||
// Store uniform locations of newly created shaders.
|
// Store uniform locations of newly created shaders.
|
||||||
shader._uPixelSize = shader.get_uniform_location('uPixelSize');
|
shader._uPixelSize = shader.get_uniform_location('uPixelSize');
|
||||||
shader._uSpokeCount = shader.get_uniform_location('uSpokeCount');
|
shader._uSpokeCount = shader.get_uniform_location('uSpokeCount');
|
||||||
@@ -56,7 +56,7 @@ export default class Effect {
|
|||||||
// ---------------------------------------------------------------------------- metadata
|
// ---------------------------------------------------------------------------- metadata
|
||||||
|
|
||||||
// The effect is available on all GNOME Shell versions supported by this extension.
|
// The effect is available on all GNOME Shell versions supported by this extension.
|
||||||
static getMinShellVersion() {
|
getMinShellVersion() {
|
||||||
return [3, 36];
|
return [3, 36];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -64,13 +64,13 @@ export default class Effect {
|
|||||||
// required. It should match the prefix of the settings keys which store whether the
|
// required. It should match the prefix of the settings keys which store whether the
|
||||||
// effect is enabled currently (e.g. '*-enable-effect'), and its animation time
|
// effect is enabled currently (e.g. '*-enable-effect'), and its animation time
|
||||||
// (e.g. '*-animation-time').
|
// (e.g. '*-animation-time').
|
||||||
static getNick() {
|
getNick() {
|
||||||
return 'pixel-wheel';
|
return 'pixel-wheel';
|
||||||
}
|
}
|
||||||
|
|
||||||
// This will be shown in the sidebar of the preferences dialog as well as in the
|
// This will be shown in the sidebar of the preferences dialog as well as in the
|
||||||
// drop-down menus where the user can choose the effect.
|
// drop-down menus where the user can choose the effect.
|
||||||
static getLabel() {
|
getLabel() {
|
||||||
return _('Pixel Wheel');
|
return _('Pixel Wheel');
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -78,7 +78,7 @@ export default class Effect {
|
|||||||
|
|
||||||
// This is called by the preferences dialog whenever a new effect profile is loaded. It
|
// This is called by the preferences dialog whenever a new effect profile is loaded. It
|
||||||
// binds all user interface elements to the respective settings keys of the profile.
|
// binds all user interface elements to the respective settings keys of the profile.
|
||||||
static bindPreferences(dialog) {
|
bindPreferences(dialog) {
|
||||||
dialog.bindAdjustment('pixel-wheel-animation-time');
|
dialog.bindAdjustment('pixel-wheel-animation-time');
|
||||||
dialog.bindAdjustment('pixel-wheel-pixel-size');
|
dialog.bindAdjustment('pixel-wheel-pixel-size');
|
||||||
dialog.bindAdjustment('pixel-wheel-spoke-count');
|
dialog.bindAdjustment('pixel-wheel-spoke-count');
|
||||||
@@ -89,7 +89,7 @@ export default class Effect {
|
|||||||
// The getActorScale() is called from extension.js to adjust the actor's size during the
|
// The getActorScale() is called from extension.js to adjust the actor's size during the
|
||||||
// animation. This is useful if the effect requires drawing something beyond the usual
|
// animation. This is useful if the effect requires drawing something beyond the usual
|
||||||
// bounds of the actor. This only works for GNOME 3.38+.
|
// bounds of the actor. This only works for GNOME 3.38+.
|
||||||
static getActorScale(settings, forOpening, actor) {
|
getActorScale(settings) {
|
||||||
return {x: 1.0, y: 1.0};
|
return {x: 1.0, y: 1.0};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,14 +14,14 @@
|
|||||||
|
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
import * as utils from '../utils.js';
|
const GObject = imports.gi.GObject;
|
||||||
|
|
||||||
// We import the ShaderFactory only in the Shell process as it is not required in the
|
const _ = imports.gettext.domain('burn-my-windows').gettext;
|
||||||
// preferences process. The preferences process does not create any shader instances, it
|
|
||||||
// only uses the static metadata of the effect.
|
|
||||||
const ShaderFactory = await utils.importInShellOnly('./ShaderFactory.js');
|
|
||||||
|
|
||||||
const _ = await utils.importGettext();
|
const ExtensionUtils = imports.misc.extensionUtils;
|
||||||
|
const Me = imports.misc.extensionUtils.getCurrentExtension();
|
||||||
|
const utils = Me.imports.src.utils;
|
||||||
|
const ShaderFactory = Me.imports.src.ShaderFactory.ShaderFactory;
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////////////////
|
||||||
// This effect pixelates the window texture and hides the pixels radially, starting //
|
// This effect pixelates the window texture and hides the pixels radially, starting //
|
||||||
@@ -31,14 +31,14 @@ const _ = await utils.importGettext();
|
|||||||
// The effect class can be used to get some metadata (like the effect's name or supported
|
// The effect class can be used to get some metadata (like the effect's name or supported
|
||||||
// GNOME Shell versions), to initialize the respective page of the settings dialog, as
|
// GNOME Shell versions), to initialize the respective page of the settings dialog, as
|
||||||
// well as to create the actual shader for the effect.
|
// well as to create the actual shader for the effect.
|
||||||
export default class Effect {
|
var PixelWipe = class {
|
||||||
|
|
||||||
// The constructor creates a ShaderFactory which will be used by extension.js to create
|
// The constructor creates a ShaderFactory which will be used by extension.js to create
|
||||||
// shader instances for this effect. The shaders will be automagically created using the
|
// shader instances for this effect. The shaders will be automagically created using the
|
||||||
// GLSL file in resources/shaders/<nick>.glsl. The callback will be called for each
|
// GLSL file in resources/shaders/<nick>.glsl. The callback will be called for each
|
||||||
// newly created shader instance.
|
// newly created shader instance.
|
||||||
constructor() {
|
constructor() {
|
||||||
this.shaderFactory = new ShaderFactory(Effect.getNick(), (shader) => {
|
this.shaderFactory = new ShaderFactory(this.getNick(), (shader) => {
|
||||||
// Store uniform locations of newly created shaders.
|
// Store uniform locations of newly created shaders.
|
||||||
shader._uPixelSize = shader.get_uniform_location('uPixelSize');
|
shader._uPixelSize = shader.get_uniform_location('uPixelSize');
|
||||||
shader._uStartPos = shader.get_uniform_location('uStartPos');
|
shader._uStartPos = shader.get_uniform_location('uStartPos');
|
||||||
@@ -82,7 +82,7 @@ export default class Effect {
|
|||||||
// ---------------------------------------------------------------------------- metadata
|
// ---------------------------------------------------------------------------- metadata
|
||||||
|
|
||||||
// The effect is available on all GNOME Shell versions supported by this extension.
|
// The effect is available on all GNOME Shell versions supported by this extension.
|
||||||
static getMinShellVersion() {
|
getMinShellVersion() {
|
||||||
return [3, 36];
|
return [3, 36];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -90,13 +90,13 @@ export default class Effect {
|
|||||||
// required. It should match the prefix of the settings keys which store whether the
|
// required. It should match the prefix of the settings keys which store whether the
|
||||||
// effect is enabled currently (e.g. '*-enable-effect'), and its animation time
|
// effect is enabled currently (e.g. '*-enable-effect'), and its animation time
|
||||||
// (e.g. '*-animation-time').
|
// (e.g. '*-animation-time').
|
||||||
static getNick() {
|
getNick() {
|
||||||
return 'pixel-wipe';
|
return 'pixel-wipe';
|
||||||
}
|
}
|
||||||
|
|
||||||
// This will be shown in the sidebar of the preferences dialog as well as in the
|
// This will be shown in the sidebar of the preferences dialog as well as in the
|
||||||
// drop-down menus where the user can choose the effect.
|
// drop-down menus where the user can choose the effect.
|
||||||
static getLabel() {
|
getLabel() {
|
||||||
return _('Pixel Wipe');
|
return _('Pixel Wipe');
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -104,7 +104,7 @@ export default class Effect {
|
|||||||
|
|
||||||
// This is called by the preferences dialog whenever a new effect profile is loaded. It
|
// This is called by the preferences dialog whenever a new effect profile is loaded. It
|
||||||
// binds all user interface elements to the respective settings keys of the profile.
|
// binds all user interface elements to the respective settings keys of the profile.
|
||||||
static bindPreferences(dialog) {
|
bindPreferences(dialog) {
|
||||||
dialog.bindAdjustment('pixel-wipe-animation-time');
|
dialog.bindAdjustment('pixel-wipe-animation-time');
|
||||||
dialog.bindAdjustment('pixel-wipe-pixel-size');
|
dialog.bindAdjustment('pixel-wipe-pixel-size');
|
||||||
}
|
}
|
||||||
@@ -114,7 +114,7 @@ export default class Effect {
|
|||||||
// The getActorScale() is called from extension.js to adjust the actor's size during the
|
// The getActorScale() is called from extension.js to adjust the actor's size during the
|
||||||
// animation. This is useful if the effect requires drawing something beyond the usual
|
// animation. This is useful if the effect requires drawing something beyond the usual
|
||||||
// bounds of the actor. This only works for GNOME 3.38+.
|
// bounds of the actor. This only works for GNOME 3.38+.
|
||||||
static getActorScale(settings, forOpening, actor) {
|
getActorScale(settings) {
|
||||||
return {x: 1.0, y: 1.0};
|
return {x: 1.0, y: 1.0};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,14 +14,14 @@
|
|||||||
|
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
import * as utils from '../utils.js';
|
const GObject = imports.gi.GObject;
|
||||||
|
|
||||||
// We import the ShaderFactory only in the Shell process as it is not required in the
|
const _ = imports.gettext.domain('burn-my-windows').gettext;
|
||||||
// preferences process. The preferences process does not create any shader instances, it
|
|
||||||
// only uses the static metadata of the effect.
|
|
||||||
const ShaderFactory = await utils.importInShellOnly('./ShaderFactory.js');
|
|
||||||
|
|
||||||
const _ = await utils.importGettext();
|
const ExtensionUtils = imports.misc.extensionUtils;
|
||||||
|
const Me = imports.misc.extensionUtils.getCurrentExtension();
|
||||||
|
const utils = Me.imports.src.utils;
|
||||||
|
const ShaderFactory = Me.imports.src.ShaderFactory.ShaderFactory;
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////////////////
|
||||||
// This very simple effect pixelates the window texture and randomly hides pixels until //
|
// This very simple effect pixelates the window texture and randomly hides pixels until //
|
||||||
@@ -31,14 +31,14 @@ const _ = await utils.importGettext();
|
|||||||
// The effect class can be used to get some metadata (like the effect's name or supported
|
// The effect class can be used to get some metadata (like the effect's name or supported
|
||||||
// GNOME Shell versions), to initialize the respective page of the settings dialog, as
|
// GNOME Shell versions), to initialize the respective page of the settings dialog, as
|
||||||
// well as to create the actual shader for the effect.
|
// well as to create the actual shader for the effect.
|
||||||
export default class Effect {
|
var Pixelate = class {
|
||||||
|
|
||||||
// The constructor creates a ShaderFactory which will be used by extension.js to create
|
// The constructor creates a ShaderFactory which will be used by extension.js to create
|
||||||
// shader instances for this effect. The shaders will be automagically created using the
|
// shader instances for this effect. The shaders will be automagically created using the
|
||||||
// GLSL file in resources/shaders/<nick>.glsl. The callback will be called for each
|
// GLSL file in resources/shaders/<nick>.glsl. The callback will be called for each
|
||||||
// newly created shader instance.
|
// newly created shader instance.
|
||||||
constructor() {
|
constructor() {
|
||||||
this.shaderFactory = new ShaderFactory(Effect.getNick(), (shader) => {
|
this.shaderFactory = new ShaderFactory(this.getNick(), (shader) => {
|
||||||
// Store uniform locations of newly created shaders.
|
// Store uniform locations of newly created shaders.
|
||||||
shader._uNoise = shader.get_uniform_location('uNoise');
|
shader._uNoise = shader.get_uniform_location('uNoise');
|
||||||
shader._uPixelSize = shader.get_uniform_location('uPixelSize');
|
shader._uPixelSize = shader.get_uniform_location('uPixelSize');
|
||||||
@@ -56,7 +56,7 @@ export default class Effect {
|
|||||||
// ---------------------------------------------------------------------------- metadata
|
// ---------------------------------------------------------------------------- metadata
|
||||||
|
|
||||||
// The effect is available on all GNOME Shell versions supported by this extension.
|
// The effect is available on all GNOME Shell versions supported by this extension.
|
||||||
static getMinShellVersion() {
|
getMinShellVersion() {
|
||||||
return [3, 36];
|
return [3, 36];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -64,13 +64,13 @@ export default class Effect {
|
|||||||
// required. It should match the prefix of the settings keys which store whether the
|
// required. It should match the prefix of the settings keys which store whether the
|
||||||
// effect is enabled currently (e.g. '*-enable-effect'), and its animation time
|
// effect is enabled currently (e.g. '*-enable-effect'), and its animation time
|
||||||
// (e.g. '*-animation-time').
|
// (e.g. '*-animation-time').
|
||||||
static getNick() {
|
getNick() {
|
||||||
return 'pixelate';
|
return 'pixelate';
|
||||||
}
|
}
|
||||||
|
|
||||||
// This will be shown in the sidebar of the preferences dialog as well as in the
|
// This will be shown in the sidebar of the preferences dialog as well as in the
|
||||||
// drop-down menus where the user can choose the effect.
|
// drop-down menus where the user can choose the effect.
|
||||||
static getLabel() {
|
getLabel() {
|
||||||
return _('Pixelate');
|
return _('Pixelate');
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -78,7 +78,7 @@ export default class Effect {
|
|||||||
|
|
||||||
// This is called by the preferences dialog whenever a new effect profile is loaded. It
|
// This is called by the preferences dialog whenever a new effect profile is loaded. It
|
||||||
// binds all user interface elements to the respective settings keys of the profile.
|
// binds all user interface elements to the respective settings keys of the profile.
|
||||||
static bindPreferences(dialog) {
|
bindPreferences(dialog) {
|
||||||
dialog.bindAdjustment('pixelate-animation-time');
|
dialog.bindAdjustment('pixelate-animation-time');
|
||||||
dialog.bindAdjustment('pixelate-noise');
|
dialog.bindAdjustment('pixelate-noise');
|
||||||
dialog.bindAdjustment('pixelate-pixel-size');
|
dialog.bindAdjustment('pixelate-pixel-size');
|
||||||
@@ -89,7 +89,7 @@ export default class Effect {
|
|||||||
// The getActorScale() is called from extension.js to adjust the actor's size during the
|
// The getActorScale() is called from extension.js to adjust the actor's size during the
|
||||||
// animation. This is useful if the effect requires drawing something beyond the usual
|
// animation. This is useful if the effect requires drawing something beyond the usual
|
||||||
// bounds of the actor. This only works for GNOME 3.38+.
|
// bounds of the actor. This only works for GNOME 3.38+.
|
||||||
static getActorScale(settings, forOpening, actor) {
|
getActorScale(settings) {
|
||||||
return {x: 1.0, y: 1.0};
|
return {x: 1.0, y: 1.0};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,15 +14,14 @@
|
|||||||
|
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
import * as utils from '../utils.js';
|
const GObject = imports.gi.GObject;
|
||||||
|
|
||||||
// We import some modules only in the Shell process as they are not available in the
|
const _ = imports.gettext.domain('burn-my-windows').gettext;
|
||||||
// preferences process. They are used only in the creator function of the ShaderFactory
|
|
||||||
// which is only called within GNOME Shell's process.
|
|
||||||
const ShaderFactory = await utils.importInShellOnly('./ShaderFactory.js');
|
|
||||||
const Clutter = await utils.importInShellOnly('gi://Clutter');
|
|
||||||
|
|
||||||
const _ = await utils.importGettext();
|
const ExtensionUtils = imports.misc.extensionUtils;
|
||||||
|
const Me = imports.misc.extensionUtils.getCurrentExtension();
|
||||||
|
const utils = Me.imports.src.utils;
|
||||||
|
const ShaderFactory = Me.imports.src.ShaderFactory.ShaderFactory;
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////////////////
|
||||||
// This ridiculous effect teleports your windows from and to alternative dimensions. //
|
// This ridiculous effect teleports your windows from and to alternative dimensions. //
|
||||||
@@ -32,14 +31,19 @@ const _ = await utils.importGettext();
|
|||||||
// The effect class can be used to get some metadata (like the effect's name or supported
|
// The effect class can be used to get some metadata (like the effect's name or supported
|
||||||
// GNOME Shell versions), to initialize the respective page of the settings dialog, as
|
// GNOME Shell versions), to initialize the respective page of the settings dialog, as
|
||||||
// well as to create the actual shader for the effect.
|
// well as to create the actual shader for the effect.
|
||||||
export default class Effect {
|
var Portal = class {
|
||||||
|
|
||||||
// The constructor creates a ShaderFactory which will be used by extension.js to create
|
// The constructor creates a ShaderFactory which will be used by extension.js to create
|
||||||
// shader instances for this effect. The shaders will be automagically created using the
|
// shader instances for this effect. The shaders will be automagically created using the
|
||||||
// GLSL file in resources/shaders/<nick>.glsl. The callback will be called for each
|
// GLSL file in resources/shaders/<nick>.glsl. The callback will be called for each
|
||||||
// newly created shader instance.
|
// newly created shader instance.
|
||||||
constructor() {
|
constructor() {
|
||||||
this.shaderFactory = new ShaderFactory(Effect.getNick(), (shader) => {
|
this.shaderFactory = new ShaderFactory(this.getNick(), (shader) => {
|
||||||
|
// We import Clutter in this function as it is not available in the preferences
|
||||||
|
// process. This creator function of the ShaderFactory is only called within GNOME
|
||||||
|
// Shell's process.
|
||||||
|
const Clutter = imports.gi.Clutter;
|
||||||
|
|
||||||
// Store uniform locations of newly created shaders.
|
// Store uniform locations of newly created shaders.
|
||||||
shader._uSeed = shader.get_uniform_location('uSeed');
|
shader._uSeed = shader.get_uniform_location('uSeed');
|
||||||
shader._uColor = shader.get_uniform_location('uColor');
|
shader._uColor = shader.get_uniform_location('uColor');
|
||||||
@@ -66,7 +70,7 @@ export default class Effect {
|
|||||||
// ---------------------------------------------------------------------------- metadata
|
// ---------------------------------------------------------------------------- metadata
|
||||||
|
|
||||||
// The effect is available on all GNOME Shell versions supported by this extension.
|
// The effect is available on all GNOME Shell versions supported by this extension.
|
||||||
static getMinShellVersion() {
|
getMinShellVersion() {
|
||||||
return [3, 36];
|
return [3, 36];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -74,13 +78,13 @@ export default class Effect {
|
|||||||
// required. It should match the prefix of the settings keys which store whether the
|
// required. It should match the prefix of the settings keys which store whether the
|
||||||
// effect is enabled currently (e.g. '*-enable-effect'), and its animation time
|
// effect is enabled currently (e.g. '*-enable-effect'), and its animation time
|
||||||
// (e.g. '*-animation-time').
|
// (e.g. '*-animation-time').
|
||||||
static getNick() {
|
getNick() {
|
||||||
return 'portal';
|
return 'portal';
|
||||||
}
|
}
|
||||||
|
|
||||||
// This will be shown in the sidebar of the preferences dialog as well as in the
|
// This will be shown in the sidebar of the preferences dialog as well as in the
|
||||||
// drop-down menus where the user can choose the effect.
|
// drop-down menus where the user can choose the effect.
|
||||||
static getLabel() {
|
getLabel() {
|
||||||
return _('Portal');
|
return _('Portal');
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -88,7 +92,7 @@ export default class Effect {
|
|||||||
|
|
||||||
// This is called by the preferences dialog whenever a new effect profile is loaded. It
|
// This is called by the preferences dialog whenever a new effect profile is loaded. It
|
||||||
// binds all user interface elements to the respective settings keys of the profile.
|
// binds all user interface elements to the respective settings keys of the profile.
|
||||||
static bindPreferences(dialog) {
|
bindPreferences(dialog) {
|
||||||
dialog.bindAdjustment('portal-animation-time');
|
dialog.bindAdjustment('portal-animation-time');
|
||||||
dialog.bindAdjustment('portal-rotation-speed');
|
dialog.bindAdjustment('portal-rotation-speed');
|
||||||
dialog.bindAdjustment('portal-whirling');
|
dialog.bindAdjustment('portal-whirling');
|
||||||
@@ -101,7 +105,7 @@ export default class Effect {
|
|||||||
// The getActorScale() is called from extension.js to adjust the actor's size during the
|
// The getActorScale() is called from extension.js to adjust the actor's size during the
|
||||||
// animation. This is useful if the effect requires drawing something beyond the usual
|
// animation. This is useful if the effect requires drawing something beyond the usual
|
||||||
// bounds of the actor. This only works for GNOME 3.38+.
|
// bounds of the actor. This only works for GNOME 3.38+.
|
||||||
static getActorScale(settings, forOpening, actor) {
|
getActorScale(settings) {
|
||||||
return {x: 1.0, y: 1.0};
|
return {x: 1.0, y: 1.0};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,17 +14,14 @@
|
|||||||
|
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
import * as utils from '../utils.js';
|
const GObject = imports.gi.GObject;
|
||||||
|
|
||||||
// We import some modules only in the Shell process as they are not available in the
|
const _ = imports.gettext.domain('burn-my-windows').gettext;
|
||||||
// preferences process. They are used only in the creator function of the ShaderFactory
|
|
||||||
// which is only called within GNOME Shell's process.
|
|
||||||
const ShaderFactory = await utils.importInShellOnly('./ShaderFactory.js');
|
|
||||||
const Clutter = await utils.importInShellOnly('gi://Clutter');
|
|
||||||
const GdkPixbuf = await utils.importInShellOnly('gi://GdkPixbuf');
|
|
||||||
const Cogl = await utils.importInShellOnly('gi://Cogl');
|
|
||||||
|
|
||||||
const _ = await utils.importGettext();
|
const ExtensionUtils = imports.misc.extensionUtils;
|
||||||
|
const Me = imports.misc.extensionUtils.getCurrentExtension();
|
||||||
|
const utils = Me.imports.src.utils;
|
||||||
|
const ShaderFactory = Me.imports.src.ShaderFactory.ShaderFactory;
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////////////////
|
||||||
// This effects dissolves your windows into a cloud of dust. For this, it uses an //
|
// This effects dissolves your windows into a cloud of dust. For this, it uses an //
|
||||||
@@ -39,14 +36,18 @@ const _ = await utils.importGettext();
|
|||||||
// The effect class can be used to get some metadata (like the effect's name or supported
|
// The effect class can be used to get some metadata (like the effect's name or supported
|
||||||
// GNOME Shell versions), to initialize the respective page of the settings dialog, as
|
// GNOME Shell versions), to initialize the respective page of the settings dialog, as
|
||||||
// well as to create the actual shader for the effect.
|
// well as to create the actual shader for the effect.
|
||||||
export default class Effect {
|
var SnapOfDisintegration = class {
|
||||||
|
|
||||||
// The constructor creates a ShaderFactory which will be used by extension.js to create
|
// The constructor creates a ShaderFactory which will be used by extension.js to create
|
||||||
// shader instances for this effect. The shaders will be automagically created using the
|
// shader instances for this effect. The shaders will be automagically created using the
|
||||||
// GLSL file in resources/shaders/<nick>.glsl. The callback will be called for each
|
// GLSL file in resources/shaders/<nick>.glsl. The callback will be called for each
|
||||||
// newly created shader instance.
|
// newly created shader instance.
|
||||||
constructor() {
|
constructor() {
|
||||||
this.shaderFactory = new ShaderFactory(Effect.getNick(), (shader) => {
|
this.shaderFactory = new ShaderFactory(this.getNick(), (shader) => {
|
||||||
|
// We import these modules in this function as they are not available in the
|
||||||
|
// preferences process. This callback is only called within GNOME Shell's process.
|
||||||
|
const {Clutter, GdkPixbuf, Cogl} = imports.gi;
|
||||||
|
|
||||||
// Create the texture in the first call.
|
// Create the texture in the first call.
|
||||||
if (!this._dustTexture) {
|
if (!this._dustTexture) {
|
||||||
const dustData = GdkPixbuf.Pixbuf.new_from_resource('/img/dust.png');
|
const dustData = GdkPixbuf.Pixbuf.new_from_resource('/img/dust.png');
|
||||||
@@ -95,7 +96,7 @@ export default class Effect {
|
|||||||
// ---------------------------------------------------------------------------- metadata
|
// ---------------------------------------------------------------------------- metadata
|
||||||
|
|
||||||
// This effect is only available on GNOME Shell 40+.
|
// This effect is only available on GNOME Shell 40+.
|
||||||
static getMinShellVersion() {
|
getMinShellVersion() {
|
||||||
return [40, 0];
|
return [40, 0];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -103,13 +104,13 @@ export default class Effect {
|
|||||||
// required. It should match the prefix of the settings keys which store whether the
|
// required. It should match the prefix of the settings keys which store whether the
|
||||||
// effect is enabled currently (e.g. '*-enable-effect'), and its animation time
|
// effect is enabled currently (e.g. '*-enable-effect'), and its animation time
|
||||||
// (e.g. '*-animation-time').
|
// (e.g. '*-animation-time').
|
||||||
static getNick() {
|
getNick() {
|
||||||
return 'snap';
|
return 'snap';
|
||||||
}
|
}
|
||||||
|
|
||||||
// This will be shown in the sidebar of the preferences dialog as well as in the
|
// This will be shown in the sidebar of the preferences dialog as well as in the
|
||||||
// drop-down menus where the user can choose the effect.
|
// drop-down menus where the user can choose the effect.
|
||||||
static getLabel() {
|
getLabel() {
|
||||||
return _('Snap of Disintegration');
|
return _('Snap of Disintegration');
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -117,7 +118,7 @@ export default class Effect {
|
|||||||
|
|
||||||
// This is called by the preferences dialog whenever a new effect profile is loaded. It
|
// This is called by the preferences dialog whenever a new effect profile is loaded. It
|
||||||
// binds all user interface elements to the respective settings keys of the profile.
|
// binds all user interface elements to the respective settings keys of the profile.
|
||||||
static bindPreferences(dialog) {
|
bindPreferences(dialog) {
|
||||||
dialog.bindAdjustment('snap-animation-time');
|
dialog.bindAdjustment('snap-animation-time');
|
||||||
dialog.bindAdjustment('snap-scale');
|
dialog.bindAdjustment('snap-scale');
|
||||||
dialog.bindColorButton('snap-color');
|
dialog.bindColorButton('snap-color');
|
||||||
@@ -128,7 +129,7 @@ export default class Effect {
|
|||||||
// The getActorScale() is called from extension.js to adjust the actor's size during the
|
// The getActorScale() is called from extension.js to adjust the actor's size during the
|
||||||
// animation. This is useful if the effect requires drawing something beyond the usual
|
// animation. This is useful if the effect requires drawing something beyond the usual
|
||||||
// bounds of the actor. This only works for GNOME 3.38+.
|
// bounds of the actor. This only works for GNOME 3.38+.
|
||||||
static getActorScale(settings, forOpening, actor) {
|
getActorScale(settings) {
|
||||||
return {x: 1.2, y: 1.2};
|
return {x: 1.2, y: 1.2};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,17 +14,14 @@
|
|||||||
|
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
import * as utils from '../utils.js';
|
const GObject = imports.gi.GObject;
|
||||||
|
|
||||||
// We import some modules only in the Shell process as they are not available in the
|
const _ = imports.gettext.domain('burn-my-windows').gettext;
|
||||||
// preferences process. They are used only in the creator function of the ShaderFactory
|
|
||||||
// which is only called within GNOME Shell's process.
|
|
||||||
const ShaderFactory = await utils.importInShellOnly('./ShaderFactory.js');
|
|
||||||
const Clutter = await utils.importInShellOnly('gi://Clutter');
|
|
||||||
const GdkPixbuf = await utils.importInShellOnly('gi://GdkPixbuf');
|
|
||||||
const Cogl = await utils.importInShellOnly('gi://Cogl');
|
|
||||||
|
|
||||||
const _ = await utils.importGettext();
|
const ExtensionUtils = imports.misc.extensionUtils;
|
||||||
|
const Me = imports.misc.extensionUtils.getCurrentExtension();
|
||||||
|
const utils = Me.imports.src.utils;
|
||||||
|
const ShaderFactory = Me.imports.src.ShaderFactory.ShaderFactory;
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////////////////
|
||||||
// This effect tears your windows apart with a series of violent scratches! //
|
// This effect tears your windows apart with a series of violent scratches! //
|
||||||
@@ -35,14 +32,18 @@ const _ = await utils.importGettext();
|
|||||||
// The effect class can be used to get some metadata (like the effect's name or supported
|
// The effect class can be used to get some metadata (like the effect's name or supported
|
||||||
// GNOME Shell versions), to initialize the respective page of the settings dialog, as
|
// GNOME Shell versions), to initialize the respective page of the settings dialog, as
|
||||||
// well as to create the actual shader for the effect.
|
// well as to create the actual shader for the effect.
|
||||||
export default class Effect {
|
var TRexAttack = class {
|
||||||
|
|
||||||
// The constructor creates a ShaderFactory which will be used by extension.js to create
|
// The constructor creates a ShaderFactory which will be used by extension.js to create
|
||||||
// shader instances for this effect. The shaders will be automagically created using the
|
// shader instances for this effect. The shaders will be automagically created using the
|
||||||
// GLSL file in resources/shaders/<nick>.glsl. The callback will be called for each
|
// GLSL file in resources/shaders/<nick>.glsl. The callback will be called for each
|
||||||
// newly created shader instance.
|
// newly created shader instance.
|
||||||
constructor() {
|
constructor() {
|
||||||
this.shaderFactory = new ShaderFactory(Effect.getNick(), (shader) => {
|
this.shaderFactory = new ShaderFactory(this.getNick(), (shader) => {
|
||||||
|
// We import these modules in this function as they are not available in the
|
||||||
|
// preferences process. This callback is only called within GNOME Shell's process.
|
||||||
|
const {Clutter, GdkPixbuf, Cogl} = imports.gi;
|
||||||
|
|
||||||
// Create the texture in the first call.
|
// Create the texture in the first call.
|
||||||
if (!this._clawTexture) {
|
if (!this._clawTexture) {
|
||||||
const clawData = GdkPixbuf.Pixbuf.new_from_resource('/img/claws.png');
|
const clawData = GdkPixbuf.Pixbuf.new_from_resource('/img/claws.png');
|
||||||
@@ -93,7 +94,7 @@ export default class Effect {
|
|||||||
// ---------------------------------------------------------------------------- metadata
|
// ---------------------------------------------------------------------------- metadata
|
||||||
|
|
||||||
// This effect is only available on GNOME Shell 40+.
|
// This effect is only available on GNOME Shell 40+.
|
||||||
static getMinShellVersion() {
|
getMinShellVersion() {
|
||||||
return [40, 0];
|
return [40, 0];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -101,13 +102,13 @@ export default class Effect {
|
|||||||
// required. It should match the prefix of the settings keys which store whether the
|
// required. It should match the prefix of the settings keys which store whether the
|
||||||
// effect is enabled currently (e.g. '*-enable-effect'), and its animation time
|
// effect is enabled currently (e.g. '*-enable-effect'), and its animation time
|
||||||
// (e.g. '*-animation-time').
|
// (e.g. '*-animation-time').
|
||||||
static getNick() {
|
getNick() {
|
||||||
return 'trex';
|
return 'trex';
|
||||||
}
|
}
|
||||||
|
|
||||||
// This will be shown in the sidebar of the preferences dialog as well as in the
|
// This will be shown in the sidebar of the preferences dialog as well as in the
|
||||||
// drop-down menus where the user can choose the effect.
|
// drop-down menus where the user can choose the effect.
|
||||||
static getLabel() {
|
getLabel() {
|
||||||
return _('T-Rex Attack');
|
return _('T-Rex Attack');
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -115,7 +116,7 @@ export default class Effect {
|
|||||||
|
|
||||||
// This is called by the preferences dialog whenever a new effect profile is loaded. It
|
// This is called by the preferences dialog whenever a new effect profile is loaded. It
|
||||||
// binds all user interface elements to the respective settings keys of the profile.
|
// binds all user interface elements to the respective settings keys of the profile.
|
||||||
static bindPreferences(dialog) {
|
bindPreferences(dialog) {
|
||||||
dialog.bindAdjustment('trex-animation-time');
|
dialog.bindAdjustment('trex-animation-time');
|
||||||
dialog.bindColorButton('trex-scratch-color');
|
dialog.bindColorButton('trex-scratch-color');
|
||||||
dialog.bindAdjustment('trex-scratch-scale');
|
dialog.bindAdjustment('trex-scratch-scale');
|
||||||
@@ -128,7 +129,7 @@ export default class Effect {
|
|||||||
// The getActorScale() is called from extension.js to adjust the actor's size during the
|
// The getActorScale() is called from extension.js to adjust the actor's size during the
|
||||||
// animation. This is useful if the effect requires drawing something beyond the usual
|
// animation. This is useful if the effect requires drawing something beyond the usual
|
||||||
// bounds of the actor. This only works for GNOME 3.38+.
|
// bounds of the actor. This only works for GNOME 3.38+.
|
||||||
static getActorScale(settings, forOpening, actor) {
|
getActorScale(settings) {
|
||||||
const scale = 1.0 + 0.5 * settings.get_double('trex-scratch-warp');
|
const scale = 1.0 + 0.5 * settings.get_double('trex-scratch-warp');
|
||||||
return {x: scale, y: scale};
|
return {x: scale, y: scale};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,15 +14,14 @@
|
|||||||
|
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
import * as utils from '../utils.js';
|
const GObject = imports.gi.GObject;
|
||||||
|
|
||||||
// We import some modules only in the Shell process as they are not available in the
|
const _ = imports.gettext.domain('burn-my-windows').gettext;
|
||||||
// preferences process. They are used only in the creator function of the ShaderFactory
|
|
||||||
// which is only called within GNOME Shell's process.
|
|
||||||
const ShaderFactory = await utils.importInShellOnly('./ShaderFactory.js');
|
|
||||||
const Clutter = await utils.importInShellOnly('gi://Clutter');
|
|
||||||
|
|
||||||
const _ = await utils.importGettext();
|
const ExtensionUtils = imports.misc.extensionUtils;
|
||||||
|
const Me = imports.misc.extensionUtils.getCurrentExtension();
|
||||||
|
const utils = Me.imports.src.utils;
|
||||||
|
const ShaderFactory = Me.imports.src.ShaderFactory.ShaderFactory;
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////////////////
|
||||||
// This effect hides the actor by making it first transparent from top and bottom //
|
// This effect hides the actor by making it first transparent from top and bottom //
|
||||||
@@ -33,14 +32,19 @@ const _ = await utils.importGettext();
|
|||||||
// The effect class can be used to get some metadata (like the effect's name or supported
|
// The effect class can be used to get some metadata (like the effect's name or supported
|
||||||
// GNOME Shell versions), to initialize the respective page of the settings dialog, as
|
// GNOME Shell versions), to initialize the respective page of the settings dialog, as
|
||||||
// well as to create the actual shader for the effect.
|
// well as to create the actual shader for the effect.
|
||||||
export default class Effect {
|
var TVEffect = class {
|
||||||
|
|
||||||
// The constructor creates a ShaderFactory which will be used by extension.js to create
|
// The constructor creates a ShaderFactory which will be used by extension.js to create
|
||||||
// shader instances for this effect. The shaders will be automagically created using the
|
// shader instances for this effect. The shaders will be automagically created using the
|
||||||
// GLSL file in resources/shaders/<nick>.glsl. The callback will be called for each
|
// GLSL file in resources/shaders/<nick>.glsl. The callback will be called for each
|
||||||
// newly created shader instance.
|
// newly created shader instance.
|
||||||
constructor() {
|
constructor() {
|
||||||
this.shaderFactory = new ShaderFactory(Effect.getNick(), (shader) => {
|
this.shaderFactory = new ShaderFactory(this.getNick(), (shader) => {
|
||||||
|
// We import Clutter in this function as it is not available in the preferences
|
||||||
|
// process. This creator function of the ShaderFactory is only called within GNOME
|
||||||
|
// Shell's process.
|
||||||
|
const Clutter = imports.gi.Clutter;
|
||||||
|
|
||||||
// Store uniform locations of newly created shaders.
|
// Store uniform locations of newly created shaders.
|
||||||
shader._uColor = shader.get_uniform_location('uColor');
|
shader._uColor = shader.get_uniform_location('uColor');
|
||||||
|
|
||||||
@@ -56,7 +60,7 @@ export default class Effect {
|
|||||||
// ---------------------------------------------------------------------------- metadata
|
// ---------------------------------------------------------------------------- metadata
|
||||||
|
|
||||||
// The effect is available on all GNOME Shell versions supported by this extension.
|
// The effect is available on all GNOME Shell versions supported by this extension.
|
||||||
static getMinShellVersion() {
|
getMinShellVersion() {
|
||||||
return [3, 36];
|
return [3, 36];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -64,13 +68,13 @@ export default class Effect {
|
|||||||
// required. It should match the prefix of the settings keys which store whether the
|
// required. It should match the prefix of the settings keys which store whether the
|
||||||
// effect is enabled currently (e.g. '*-enable-effect'), and its animation time
|
// effect is enabled currently (e.g. '*-enable-effect'), and its animation time
|
||||||
// (e.g. '*-animation-time').
|
// (e.g. '*-animation-time').
|
||||||
static getNick() {
|
getNick() {
|
||||||
return 'tv';
|
return 'tv';
|
||||||
}
|
}
|
||||||
|
|
||||||
// This will be shown in the sidebar of the preferences dialog as well as in the
|
// This will be shown in the sidebar of the preferences dialog as well as in the
|
||||||
// drop-down menus where the user can choose the effect.
|
// drop-down menus where the user can choose the effect.
|
||||||
static getLabel() {
|
getLabel() {
|
||||||
return _('TV Effect');
|
return _('TV Effect');
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -78,7 +82,7 @@ export default class Effect {
|
|||||||
|
|
||||||
// This is called by the preferences dialog whenever a new effect profile is loaded. It
|
// This is called by the preferences dialog whenever a new effect profile is loaded. It
|
||||||
// binds all user interface elements to the respective settings keys of the profile.
|
// binds all user interface elements to the respective settings keys of the profile.
|
||||||
static bindPreferences(dialog) {
|
bindPreferences(dialog) {
|
||||||
dialog.bindAdjustment('tv-animation-time');
|
dialog.bindAdjustment('tv-animation-time');
|
||||||
dialog.bindColorButton('tv-effect-color');
|
dialog.bindColorButton('tv-effect-color');
|
||||||
}
|
}
|
||||||
@@ -88,7 +92,7 @@ export default class Effect {
|
|||||||
// The getActorScale() is called from extension.js to adjust the actor's size during the
|
// The getActorScale() is called from extension.js to adjust the actor's size during the
|
||||||
// animation. This is useful if the effect requires drawing something beyond the usual
|
// animation. This is useful if the effect requires drawing something beyond the usual
|
||||||
// bounds of the actor. This only works for GNOME 3.38+.
|
// bounds of the actor. This only works for GNOME 3.38+.
|
||||||
static getActorScale(settings, forOpening, actor) {
|
getActorScale(settings) {
|
||||||
return {x: 1.0, y: 1.0};
|
return {x: 1.0, y: 1.0};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,15 +14,14 @@
|
|||||||
|
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
import * as utils from '../utils.js';
|
const GObject = imports.gi.GObject;
|
||||||
|
|
||||||
// We import some modules only in the Shell process as they are not available in the
|
const _ = imports.gettext.domain('burn-my-windows').gettext;
|
||||||
// preferences process. They are used only in the creator function of the ShaderFactory
|
|
||||||
// which is only called within GNOME Shell's process.
|
|
||||||
const ShaderFactory = await utils.importInShellOnly('./ShaderFactory.js');
|
|
||||||
const Clutter = await utils.importInShellOnly('gi://Clutter');
|
|
||||||
|
|
||||||
const _ = await utils.importGettext();
|
const ExtensionUtils = imports.misc.extensionUtils;
|
||||||
|
const Me = imports.misc.extensionUtils.getCurrentExtension();
|
||||||
|
const utils = Me.imports.src.utils;
|
||||||
|
const ShaderFactory = Me.imports.src.ShaderFactory.ShaderFactory;
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////////////////
|
||||||
// This effect combines the Glitch and the TV Effect. Credits go to Kurt Wilson //
|
// This effect combines the Glitch and the TV Effect. Credits go to Kurt Wilson //
|
||||||
@@ -32,14 +31,19 @@ const _ = await utils.importGettext();
|
|||||||
// The effect class can be used to get some metadata (like the effect's name or supported
|
// The effect class can be used to get some metadata (like the effect's name or supported
|
||||||
// GNOME Shell versions), to initialize the respective page of the settings dialog, as
|
// GNOME Shell versions), to initialize the respective page of the settings dialog, as
|
||||||
// well as to create the actual shader for the effect.
|
// well as to create the actual shader for the effect.
|
||||||
export default class Effect {
|
var TVGlitch = class {
|
||||||
|
|
||||||
// The constructor creates a ShaderFactory which will be used by extension.js to create
|
// The constructor creates a ShaderFactory which will be used by extension.js to create
|
||||||
// shader instances for this effect. The shaders will be automagically created using the
|
// shader instances for this effect. The shaders will be automagically created using the
|
||||||
// GLSL file in resources/shaders/<nick>.glsl. The callback will be called for each
|
// GLSL file in resources/shaders/<nick>.glsl. The callback will be called for each
|
||||||
// newly created shader instance.
|
// newly created shader instance.
|
||||||
constructor() {
|
constructor() {
|
||||||
this.shaderFactory = new ShaderFactory(Effect.getNick(), (shader) => {
|
this.shaderFactory = new ShaderFactory(this.getNick(), (shader) => {
|
||||||
|
// We import Clutter in this function as it is not available in the preferences
|
||||||
|
// process. This creator function of the ShaderFactory is only called within GNOME
|
||||||
|
// Shell's process.
|
||||||
|
const Clutter = imports.gi.Clutter;
|
||||||
|
|
||||||
// Store uniform locations of newly created shaders.
|
// Store uniform locations of newly created shaders.
|
||||||
shader._uSeed = shader.get_uniform_location('uSeed');
|
shader._uSeed = shader.get_uniform_location('uSeed');
|
||||||
shader._uColor = shader.get_uniform_location('uColor');
|
shader._uColor = shader.get_uniform_location('uColor');
|
||||||
@@ -65,7 +69,7 @@ export default class Effect {
|
|||||||
// ---------------------------------------------------------------------------- metadata
|
// ---------------------------------------------------------------------------- metadata
|
||||||
|
|
||||||
// The effect is available on all GNOME Shell versions supported by this extension.
|
// The effect is available on all GNOME Shell versions supported by this extension.
|
||||||
static getMinShellVersion() {
|
getMinShellVersion() {
|
||||||
return [3, 36];
|
return [3, 36];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -73,13 +77,13 @@ export default class Effect {
|
|||||||
// required. It should match the prefix of the settings keys which store whether the
|
// required. It should match the prefix of the settings keys which store whether the
|
||||||
// effect is enabled currently (e.g. '*-close-effect'), and its animation time
|
// effect is enabled currently (e.g. '*-close-effect'), and its animation time
|
||||||
// (e.g. '*-animation-time').
|
// (e.g. '*-animation-time').
|
||||||
static getNick() {
|
getNick() {
|
||||||
return 'tv-glitch';
|
return 'tv-glitch';
|
||||||
}
|
}
|
||||||
|
|
||||||
// This will be shown in the sidebar of the preferences dialog as well as in the
|
// This will be shown in the sidebar of the preferences dialog as well as in the
|
||||||
// drop-down menus where the user can choose the effect.
|
// drop-down menus where the user can choose the effect.
|
||||||
static getLabel() {
|
getLabel() {
|
||||||
return _('TV Glitch');
|
return _('TV Glitch');
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -87,7 +91,7 @@ export default class Effect {
|
|||||||
|
|
||||||
// This is called by the preferences dialog whenever a new effect profile is loaded. It
|
// This is called by the preferences dialog whenever a new effect profile is loaded. It
|
||||||
// binds all user interface elements to the respective settings keys of the profile.
|
// binds all user interface elements to the respective settings keys of the profile.
|
||||||
static bindPreferences(dialog) {
|
bindPreferences(dialog) {
|
||||||
dialog.bindAdjustment('tv-glitch-animation-time');
|
dialog.bindAdjustment('tv-glitch-animation-time');
|
||||||
dialog.bindAdjustment('tv-glitch-scale');
|
dialog.bindAdjustment('tv-glitch-scale');
|
||||||
dialog.bindAdjustment('tv-glitch-speed');
|
dialog.bindAdjustment('tv-glitch-speed');
|
||||||
@@ -100,7 +104,7 @@ export default class Effect {
|
|||||||
// The getActorScale() is called from extension.js to adjust the actor's size during the
|
// The getActorScale() is called from extension.js to adjust the actor's size during the
|
||||||
// animation. This is useful if the effect requires drawing something beyond the usual
|
// animation. This is useful if the effect requires drawing something beyond the usual
|
||||||
// bounds of the actor. This only works for GNOME 3.38+.
|
// bounds of the actor. This only works for GNOME 3.38+.
|
||||||
static getActorScale(settings, forOpening, actor) {
|
getActorScale(settings) {
|
||||||
return {x: 1.0, y: 1.0};
|
return {x: 1.0, y: 1.0};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,15 +14,14 @@
|
|||||||
|
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
import * as utils from '../utils.js';
|
const GObject = imports.gi.GObject;
|
||||||
|
|
||||||
// We import some modules only in the Shell process as they are not available in the
|
const _ = imports.gettext.domain('burn-my-windows').gettext;
|
||||||
// preferences process. They are used only in the creator function of the ShaderFactory
|
|
||||||
// which is only called within GNOME Shell's process.
|
|
||||||
const ShaderFactory = await utils.importInShellOnly('./ShaderFactory.js');
|
|
||||||
const Clutter = await utils.importInShellOnly('gi://Clutter');
|
|
||||||
|
|
||||||
const _ = await utils.importGettext();
|
const ExtensionUtils = imports.misc.extensionUtils;
|
||||||
|
const Me = imports.misc.extensionUtils.getCurrentExtension();
|
||||||
|
const utils = Me.imports.src.utils;
|
||||||
|
const ShaderFactory = Me.imports.src.ShaderFactory.ShaderFactory;
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////////////////
|
||||||
// This effect lets your windows be carried to the realm of dreams by some little //
|
// This effect lets your windows be carried to the realm of dreams by some little //
|
||||||
@@ -32,14 +31,19 @@ const _ = await utils.importGettext();
|
|||||||
// The effect class can be used to get some metadata (like the effect's name or supported
|
// The effect class can be used to get some metadata (like the effect's name or supported
|
||||||
// GNOME Shell versions), to initialize the respective page of the settings dialog, as
|
// GNOME Shell versions), to initialize the respective page of the settings dialog, as
|
||||||
// well as to create the actual shader for the effect.
|
// well as to create the actual shader for the effect.
|
||||||
export default class Effect {
|
var Wisps = class {
|
||||||
|
|
||||||
// The constructor creates a ShaderFactory which will be used by extension.js to create
|
// The constructor creates a ShaderFactory which will be used by extension.js to create
|
||||||
// shader instances for this effect. The shaders will be automagically created using the
|
// shader instances for this effect. The shaders will be automagically created using the
|
||||||
// GLSL file in resources/shaders/<nick>.glsl. The callback will be called for each
|
// GLSL file in resources/shaders/<nick>.glsl. The callback will be called for each
|
||||||
// newly created shader instance.
|
// newly created shader instance.
|
||||||
constructor() {
|
constructor() {
|
||||||
this.shaderFactory = new ShaderFactory(Effect.getNick(), (shader) => {
|
this.shaderFactory = new ShaderFactory(this.getNick(), (shader) => {
|
||||||
|
// We import Clutter in this function as it is not available in the preferences
|
||||||
|
// process. This creator function of the ShaderFactory is only called within GNOME
|
||||||
|
// Shell's process.
|
||||||
|
const Clutter = imports.gi.Clutter;
|
||||||
|
|
||||||
// Store uniform locations of newly created shaders.
|
// Store uniform locations of newly created shaders.
|
||||||
shader._uSeed = shader.get_uniform_location('uSeed');
|
shader._uSeed = shader.get_uniform_location('uSeed');
|
||||||
shader._uScale = shader.get_uniform_location('uScale');
|
shader._uScale = shader.get_uniform_location('uScale');
|
||||||
@@ -68,20 +72,20 @@ export default class Effect {
|
|||||||
// ---------------------------------------------------------------------------- metadata
|
// ---------------------------------------------------------------------------- metadata
|
||||||
|
|
||||||
// The effect is available on all GNOME Shell versions supported by this extension.
|
// The effect is available on all GNOME Shell versions supported by this extension.
|
||||||
static getMinShellVersion() {
|
getMinShellVersion() {
|
||||||
return [3, 36];
|
return [3, 36];
|
||||||
}
|
}
|
||||||
|
|
||||||
// This will be called in various places where a unique identifier for this effect is
|
// This will be called in various places where a unique identifier for this effect is
|
||||||
// required. It should match the prefix of the settings keys which store whether the
|
// required. It should match the prefix of the settings keys which store whether the
|
||||||
// effect is enabled currently (e.g. the '*-enable-effect').
|
// effect is enabled currently (e.g. the '*-enable-effect').
|
||||||
static getNick() {
|
getNick() {
|
||||||
return 'wisps';
|
return 'wisps';
|
||||||
}
|
}
|
||||||
|
|
||||||
// This will be shown in the sidebar of the preferences dialog as well as in the
|
// This will be shown in the sidebar of the preferences dialog as well as in the
|
||||||
// drop-down menus where the user can choose the effect.
|
// drop-down menus where the user can choose the effect.
|
||||||
static getLabel() {
|
getLabel() {
|
||||||
return _('Wisps');
|
return _('Wisps');
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -89,7 +93,7 @@ export default class Effect {
|
|||||||
|
|
||||||
// This is called by the preferences dialog whenever a new effect profile is loaded. It
|
// This is called by the preferences dialog whenever a new effect profile is loaded. It
|
||||||
// binds all user interface elements to the respective settings keys of the profile.
|
// binds all user interface elements to the respective settings keys of the profile.
|
||||||
static bindPreferences(dialog) {
|
bindPreferences(dialog) {
|
||||||
dialog.bindAdjustment('wisps-animation-time');
|
dialog.bindAdjustment('wisps-animation-time');
|
||||||
dialog.bindAdjustment('wisps-scale');
|
dialog.bindAdjustment('wisps-scale');
|
||||||
dialog.bindColorButton('wisps-color-1');
|
dialog.bindColorButton('wisps-color-1');
|
||||||
@@ -114,7 +118,7 @@ export default class Effect {
|
|||||||
// The getActorScale() is called from extension.js to adjust the actor's size during the
|
// The getActorScale() is called from extension.js to adjust the actor's size during the
|
||||||
// animation. This is useful if the effect requires drawing something beyond the usual
|
// animation. This is useful if the effect requires drawing something beyond the usual
|
||||||
// bounds of the actor. This only works for GNOME 3.38+.
|
// bounds of the actor. This only works for GNOME 3.38+.
|
||||||
static getActorScale(settings, forOpening, actor) {
|
getActorScale(settings) {
|
||||||
return {x: 1.0, y: 1.0};
|
return {x: 1.0, y: 1.0};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,13 +14,15 @@
|
|||||||
|
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
import {ProfileManager} from './ProfileManager.js';
|
const ExtensionUtils = imports.misc.extensionUtils;
|
||||||
import * as utils from './utils.js';
|
const Me = imports.misc.extensionUtils.getCurrentExtension();
|
||||||
|
const ProfileManager = Me.imports.src.ProfileManager.ProfileManager;
|
||||||
|
const utils = Me.imports.src.utils;
|
||||||
|
|
||||||
// Migrating from pre-27 versions is pretty involved. Before, all settings were stored in
|
// Migrating from pre-27 versions is pretty involved. Before, all settings were stored in
|
||||||
// the standard Gio.Settings backend. Now, there are effect profiles. Depending on the
|
// the standard Gio.Settings backend. Now, there are effect profiles. Depending on the
|
||||||
// settings one or two profiles may be required.
|
// settings one or two profiles may be required.
|
||||||
export async function fromVersion26() {
|
async function fromVersion26() {
|
||||||
return utils
|
return utils
|
||||||
.executeCommand(['dconf', 'dump', '/org/gnome/shell/extensions/burn-my-windows/'])
|
.executeCommand(['dconf', 'dump', '/org/gnome/shell/extensions/burn-my-windows/'])
|
||||||
.catch(r => utils.debug('Failed to get old settings for effect migration: ' + r))
|
.catch(r => utils.debug('Failed to get old settings for effect migration: ' + r))
|
||||||
|
|||||||
@@ -14,52 +14,101 @@
|
|||||||
|
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
import Gio from 'gi://Gio';
|
const {Gtk, Gio} = imports.gi;
|
||||||
import GLib from 'gi://GLib';
|
const ByteArray = imports.byteArray;
|
||||||
|
|
||||||
|
// libadwaita is available starting with GNOME Shell 42.
|
||||||
|
let Adw = null;
|
||||||
|
try {
|
||||||
|
Adw = imports.gi.Adw;
|
||||||
|
} catch (e) {
|
||||||
|
// Nothing to do.
|
||||||
|
}
|
||||||
|
|
||||||
|
// Returns the given argument, except for "alpha", "beta", and "rc". In these cases -3,
|
||||||
|
// -2, and -1 are returned respectively.
|
||||||
|
function toNumericVersion(x) {
|
||||||
|
switch (x) {
|
||||||
|
case 'alpha':
|
||||||
|
return -3;
|
||||||
|
case 'beta':
|
||||||
|
return -2;
|
||||||
|
case 'rc':
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
return x;
|
||||||
|
}
|
||||||
|
|
||||||
|
const Config = imports.misc.config;
|
||||||
|
const [GS_MAJOR, GS_MINOR] = Config.PACKAGE_VERSION.split('.').map(toNumericVersion);
|
||||||
|
|
||||||
|
const ExtensionUtils = imports.misc.extensionUtils;
|
||||||
|
const Me = imports.misc.extensionUtils.getCurrentExtension();
|
||||||
|
|
||||||
|
const _ = imports.gettext.domain('burn-my-windows').gettext;
|
||||||
|
|
||||||
// This method can be used to write a message to GNOME Shell's log. This is enhances
|
// This method can be used to write a message to GNOME Shell's log. This is enhances
|
||||||
// the standard log() functionality by prepending the extension's name and the location
|
// the standard log() functionality by prepending the extension's name and the location
|
||||||
// where the message was logged. As the extensions name is part of the location, you
|
// where the message was logged. As the extensions name is part of the location, you
|
||||||
// can more effectively watch the log output of GNOME Shell:
|
// can more effectively watch the log output of GNOME Shell:
|
||||||
// journalctl -f -o cat | grep -E 'burn-my-windows|'
|
// journalctl -f -o cat | grep -E 'particle-effects|'
|
||||||
export function debug(message) {
|
// This method is based on a similar script from the Fly-Pie GNOME Shell extension which
|
||||||
|
// os published under the MIT License (https://github.com/Schneegans/Fly-Pie).
|
||||||
|
function debug(message) {
|
||||||
const stack = new Error().stack.split('\n');
|
const stack = new Error().stack.split('\n');
|
||||||
|
|
||||||
// Remove debug() function call from stack.
|
// Remove debug() function call from stack.
|
||||||
stack.shift();
|
stack.shift();
|
||||||
|
|
||||||
// Find the index of the extension directory in the stack entry. We do not want to
|
// Find the index of the extension directory (e.g. particles@schneegans.github.com) in
|
||||||
// print the entire absolute file path.
|
// the stack entry. We do not want to print the entire absolute file path.
|
||||||
const extensionRoot = stack[0].indexOf('burn-my-windows@schneegans.github.com');
|
const extensionRoot = stack[0].indexOf(Me.metadata.uuid);
|
||||||
|
|
||||||
console.log('[' + stack[0].slice(extensionRoot) + '] ' + message);
|
log('[' + stack[0].slice(extensionRoot) + '] ' + message);
|
||||||
}
|
}
|
||||||
|
|
||||||
// This method can be used to import a module in the GNOME Shell process only. This
|
// This method simply returns true if we are currently using GTK4.
|
||||||
// is useful if you want to use a module in extension.js, but not in the preferences
|
function isGTK4() {
|
||||||
// process. This method returns null if it is called in the preferences process.
|
return Gtk.get_major_version() == 4;
|
||||||
export async function importInShellOnly(module) {
|
|
||||||
if (typeof global !== 'undefined') {
|
|
||||||
return (await import(module)).default;
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// This method can be used to import gettext. This is done differently in the
|
// Starting with GNOME Shell 42, the settings dialog uses libadwaita (at least most of
|
||||||
// GNOME Shell process and in the preferences process.
|
// the time - it seems that pop!_OS does not support libadwaita even on GNOME 42).
|
||||||
export async function importGettext() {
|
function isADW() {
|
||||||
if (typeof global === 'undefined') {
|
return Adw && shellVersionIsAtLeast(42, 'beta');
|
||||||
return (await import('resource:///org/gnome/Shell/Extensions/js/extensions/prefs.js'))
|
}
|
||||||
.gettext;
|
|
||||||
|
// This method returns 'gtk3', 'gtk4', or 'adw' depending on the currently used GTK / and
|
||||||
|
// or libadwaita version.
|
||||||
|
function getUIDir() {
|
||||||
|
return isADW() ? 'adw' : (isGTK4() ? 'gtk4' : 'gtk3');
|
||||||
|
}
|
||||||
|
|
||||||
|
// This method returns true if the current GNOME Shell version matches the given
|
||||||
|
// arguments.
|
||||||
|
function shellVersionIs(major, minor) {
|
||||||
|
return GS_MAJOR == major && GS_MINOR == toNumericVersion(minor);
|
||||||
|
}
|
||||||
|
|
||||||
|
// This method returns true if the current GNOME Shell version is at least as high as the
|
||||||
|
// given arguments. Supports "alpha" and "beta" for the minor version number.
|
||||||
|
function shellVersionIsAtLeast(major, minor) {
|
||||||
|
if (GS_MAJOR > major) {
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
return (await import('resource:///org/gnome/shell/extensions/extension.js')).gettext;
|
|
||||||
|
if (GS_MAJOR == major) {
|
||||||
|
return GS_MINOR >= toNumericVersion(minor);
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Reads the contents of a file contained in the global resources archive. The data
|
// Reads the contents of a file contained in the global resources archive. The data
|
||||||
// is returned as a string.
|
// is returned as a string.
|
||||||
export function getStringResource(path) {
|
function getStringResource(path) {
|
||||||
const data = Gio.resources_lookup_data(path, 0);
|
const data = Gio.resources_lookup_data(path, 0);
|
||||||
return new TextDecoder().decode(data.get_data());
|
return ByteArray.toString(ByteArray.fromGBytes(data));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Executes a command asynchronously and returns the output from 'stdout' on success or
|
// Executes a command asynchronously and returns the output from 'stdout' on success or
|
||||||
@@ -67,7 +116,7 @@ export function getStringResource(path) {
|
|||||||
// 'stdin' and cancellable can be used to stop the process before it finishes.
|
// 'stdin' and cancellable can be used to stop the process before it finishes.
|
||||||
// This is directly taken from here:
|
// This is directly taken from here:
|
||||||
// https://gjs.guide/guides/gio/subprocesses.html#complete-examples
|
// https://gjs.guide/guides/gio/subprocesses.html#complete-examples
|
||||||
export async function executeCommand(argv, input = null, cancellable = null) {
|
async function executeCommand(argv, input = null, cancellable = null) {
|
||||||
let cancelId = 0;
|
let cancelId = 0;
|
||||||
let flags = (Gio.SubprocessFlags.STDOUT_PIPE | Gio.SubprocessFlags.STDERR_PIPE);
|
let flags = (Gio.SubprocessFlags.STDOUT_PIPE | Gio.SubprocessFlags.STDERR_PIPE);
|
||||||
|
|
||||||
|
|||||||
@@ -134,7 +134,7 @@ do_in_pod 'echo "export GSK_RENDERER=cairo" >> .bash_profile'
|
|||||||
# ----------------------------------------------------- wait for the container to start up
|
# ----------------------------------------------------- wait for the container to start up
|
||||||
|
|
||||||
echo "Waiting for D-Bus."
|
echo "Waiting for D-Bus."
|
||||||
sleep 5
|
do_in_pod wait-user-bus.sh > /dev/null 2>&1
|
||||||
|
|
||||||
|
|
||||||
# ----------------------------------------------------- install the to-be-tested extension
|
# ----------------------------------------------------- install the to-be-tested extension
|
||||||
|
|||||||
|
After Width: | Height: | Size: 196 B |
|
After Width: | Height: | Size: 196 B |
|
After Width: | Height: | Size: 196 B |
|
After Width: | Height: | Size: 196 B |
|
After Width: | Height: | Size: 355 B |
|
After Width: | Height: | Size: 355 B |
|
Before Width: | Height: | Size: 355 B |
|
Before Width: | Height: | Size: 355 B After Width: | Height: | Size: 355 B |
|
After Width: | Height: | Size: 196 B |
|
After Width: | Height: | Size: 196 B |
|
After Width: | Height: | Size: 196 B |
|
After Width: | Height: | Size: 196 B |
|
After Width: | Height: | Size: 355 B |
|
After Width: | Height: | Size: 355 B |
|
Before Width: | Height: | Size: 355 B |
|
Before Width: | Height: | Size: 355 B After Width: | Height: | Size: 355 B |
|
After Width: | Height: | Size: 196 B |
|
After Width: | Height: | Size: 196 B |
|
After Width: | Height: | Size: 196 B |
|
After Width: | Height: | Size: 196 B |