Compare commits
517 Commits
v3
...
feature/chameleon
| Author | SHA1 | Date | |
|---|---|---|---|
| 38f67dc8cd | |||
| 703f990f7f | |||
| 8d8779130c | |||
| 83658510af | |||
| 76aa003d99 | |||
| 1a14b8bd56 | |||
| de190b4fd9 | |||
| 812fa6612a | |||
| 18a43390b6 | |||
| 6af87f727d | |||
| 8dbfa5fdb1 | |||
| e0d9ed5677 | |||
| 6e65f29bb3 | |||
| eb597cffbe | |||
| be88a682b9 | |||
| fa09a1f40a | |||
| 1262089e82 | |||
| 0da73cf675 | |||
| a228dc7b2e | |||
| e6a6a0d831 | |||
| 0fb05c66eb | |||
| e1017b7707 | |||
| cb4b87811e | |||
| 1ccc34f766 | |||
| 1fe20971f8 | |||
| 7ee6e2c58c | |||
| 7b8d6e18b2 | |||
| 84d5ad9caf | |||
| 46cc997e2a | |||
| 829cc49e3c | |||
| a134449706 | |||
| 5b89db0c4b | |||
| 351838b121 | |||
| f59d354729 | |||
| 9d7d912261 | |||
| 77d5de7b8e | |||
| 2238a744f3 | |||
| 539fd59e9b | |||
| a42e2736db | |||
| 2eca2c7374 | |||
| 2bd897fe0e | |||
| 1347fc4d11 | |||
| afaeebd0ab | |||
| 7e33e1ce4a | |||
| 2f1c38afc2 | |||
| 295aa1e362 | |||
| d224d14db1 | |||
| 478ba77288 | |||
| 3175c289b5 | |||
| 78679ef139 | |||
| fa8e3a17c1 | |||
| 88a56998d6 | |||
| 6555a8f02c | |||
| a28e406da4 | |||
| 317eaa2969 | |||
| 61bea04018 | |||
| 6ebc975a20 | |||
| 9f8f2afead | |||
| 472317612c | |||
| e9b82d0b78 | |||
| 07929e1775 | |||
| e20bcd46d7 | |||
| 3b0be6236c | |||
| 27d2a43c99 | |||
| 06aa705f43 | |||
| fa9941ce5b | |||
| c0b1115b23 | |||
| 2ba7b181da | |||
| e2e3425720 | |||
| b7d72d35ed | |||
| 256e6db158 | |||
| e0aebca055 | |||
| cde4e73645 | |||
| 83b583dd13 | |||
| c459d06f53 | |||
| c49615a504 | |||
| 6605fd0cae | |||
| 6bf5970b90 | |||
| 57e8e0384b | |||
| c82f5dabd8 | |||
| 7cecc9e160 | |||
| 9b2e57cba0 | |||
| 2dac407959 | |||
| 9c1139b3af | |||
| ab990b1a05 | |||
| d0f624ab5f | |||
| b2a4aec1c3 | |||
| 999b6800a9 | |||
| 77505c5aa9 | |||
| 1a1e952804 | |||
| de5ddc8622 | |||
| 08ffdef229 | |||
| d7e56483c0 | |||
| 6a2f72f406 | |||
| 9809d7b0d6 | |||
| 359f61e1f4 | |||
| 74a3cc281d | |||
| 26ac1dce6c | |||
| 82be8aa32f | |||
| bebe7d95b0 | |||
| 1b3d76d35e | |||
| 2282f44dfa | |||
| dc849112b8 | |||
| b6a419a0d7 | |||
| e802f41d44 | |||
| b29598643d | |||
| eb4b6d72e3 | |||
| d38e6b6e7a | |||
| ba52acebc9 | |||
| b6a3e5d941 | |||
| f11d36d295 | |||
| cf1721bae1 | |||
| 0603540315 | |||
| 4de12d426c | |||
| c8cf476501 | |||
| a7aef913fc | |||
| 7d0a75cd59 | |||
| a166072168 | |||
| 47f8222349 | |||
| 4942418120 | |||
| a0d087be33 | |||
| dd80db09e9 | |||
| 653d680347 | |||
| ee584ab15e | |||
| 82e2738f33 | |||
| 45d52842cf | |||
| f738f648d8 | |||
| 0cf53c5a5d | |||
| 6f5bcc6681 | |||
| 1a84ad337d | |||
| 6a003f8bfb | |||
| adc906006b | |||
| 9b46b9b009 | |||
| d24dc6030d | |||
| 26e4a32fe4 | |||
| 376a3899e9 | |||
| 486f6b4c74 | |||
| c43579974d | |||
| fbd02bb22c | |||
| beddd689c7 | |||
| 77310f9e65 | |||
| 28c1cb6d72 | |||
| 9bdcea1dea | |||
| 5e737ffd3a | |||
| 474f6cff25 | |||
| 35c91cf925 | |||
| 0facae304b | |||
| 31fa0f54bd | |||
| 6c2f9d1553 | |||
| 81a0e18c79 | |||
| 3caf2a176d | |||
| b48b6bb39b | |||
| 69aadfd643 | |||
| 59c01999b2 | |||
| c431437c34 | |||
| 312be215a0 | |||
| e1fcfb5d25 | |||
| 4410aeac3b | |||
| f77aeded5e | |||
| 1d0dd3e8da | |||
| cc916886c5 | |||
| 41648f2496 | |||
| 8b79995723 | |||
| f35cda20a8 | |||
| 73c237aaa4 | |||
| 2cc1c9655e | |||
| e47c85e365 | |||
| b8a0a158d8 | |||
| 29ea1de206 | |||
| 2637390557 | |||
| 9b513f7e2b | |||
| 97fe06a98f | |||
| 1a3568e80d | |||
| 62363d7bd9 | |||
| ecdb6d605f | |||
| 41fcaf04ff | |||
| 0886007e98 | |||
| 4a82e7f580 | |||
| 78d30e82c6 | |||
| 664bd3b5dc | |||
| 737e88a23b | |||
| 6d10c6f031 | |||
| 1fb5e8584a | |||
| 563d72531e | |||
| 39baed1b29 | |||
| 318558240c | |||
| bda68175a0 | |||
| 3a37aa3dce | |||
| ef2bef9f87 | |||
| c99ea6617e | |||
| c7c4f18af6 | |||
| ff1490f8c6 | |||
| 0be73d8b2f | |||
| 9266655493 | |||
| 513bbd8b85 | |||
| 6c891a60e7 | |||
| 2115c31359 | |||
| 855f8870e3 | |||
| 16d7e3c195 | |||
| 5133f82041 | |||
| 91a60e9813 | |||
| 511e447f24 | |||
| 31e8cf9405 | |||
| 0fd8832b36 | |||
| f111a6c3bb | |||
| eb1d8f6ac6 | |||
| d05635b9c2 | |||
| dad19c5505 | |||
| 5406c88a7b | |||
| 39f79507ac | |||
| 78ff080dce | |||
| 6d85ce893b | |||
| f9b82c6086 | |||
| 432a0a7998 | |||
| e22eb79ccd | |||
| d92183eff4 | |||
| 92fe4d0179 | |||
| 6e1a643e22 | |||
| 207d79c66c | |||
| 88c9dacb31 | |||
| a9493a6765 | |||
| fdea3cd148 | |||
| 79851e9eca | |||
| c993e02447 | |||
| ee12f50d85 | |||
| 784e2f3d9e | |||
| 1128370b83 | |||
| 289bf81046 | |||
| 11030d4552 | |||
| 013d2fbcdf | |||
| 98724af986 | |||
| bd05a3c6b6 | |||
| 28916e4901 | |||
| 3ad2ddd516 | |||
| 3f41dd0f94 | |||
| fa6c7b566a | |||
| 531dfdb162 | |||
| 571af02170 | |||
| 4aaf6a1823 | |||
| 086f17f8b6 | |||
| 7d1e175f54 | |||
| 321df91031 | |||
| e9e34c4984 | |||
| d627048146 | |||
| e56a56d11c | |||
| 5a858b3270 | |||
| 58a97d03a3 | |||
| 87b6fb7bd2 | |||
| 47580a5935 | |||
| 50c86229c0 | |||
| 805680b4e5 | |||
| 4e0c7a312d | |||
| c3949f961d | |||
| 3b164d5128 | |||
| 27305238df | |||
| 3894e4c97a | |||
| 0c4ed02e26 | |||
| 95d7e4932b | |||
| 1dadccd9b5 | |||
| 57960ef0c8 | |||
| fea441000d | |||
| 65969ce7a6 | |||
| e92ab9fe18 | |||
| b92c4613c1 | |||
| 59cf2f89ca | |||
| 58244cfbb4 | |||
| 9d324bfff3 | |||
| 357c506370 | |||
| b95fbac409 | |||
| a3fa8254f7 | |||
| f9b6f1ffbc | |||
| fc902f2a73 | |||
| 1692be778c | |||
| d014ec2841 | |||
| 6ff16dc693 | |||
| c41bef6413 | |||
| bcb7619d37 | |||
| f87a0a649b | |||
| 51ba0d06ab | |||
| dcaa28c200 | |||
| 765cf6d54c | |||
| 7b7b5cbb46 | |||
| bc2f39fac8 | |||
| c9000fcad7 | |||
| 6914771bb5 | |||
| e2d9015490 | |||
| acff1da6c2 | |||
| 68712fb842 | |||
| 5ff2632499 | |||
| 1b79cd4aa4 | |||
| a8d75de4c9 | |||
| 38458e4a4c | |||
| c107083cde | |||
| f5e58b100f | |||
| bf95e349da | |||
| f1b764062b | |||
| 6b218d049f | |||
| b6cb78330d | |||
| 28754a93c2 | |||
| ba79b5b611 | |||
| 638613a190 | |||
| 9b59dd942c | |||
| 20dce532ae | |||
| 8e53dc6117 | |||
| 7875060375 | |||
| 14ba603f22 | |||
| 982a2c76c3 | |||
| 799e1e6b24 | |||
| 3c046bd2ef | |||
| 0f9103d1f0 | |||
| 783f5c695d | |||
| 8475ae29ba | |||
| 242625ee9f | |||
| b2f11f494d | |||
| fd5871b924 | |||
| a5f7769e58 | |||
| 4e29c751ed | |||
| 58a8213233 | |||
| 55727f7c2b | |||
| 33ac6fa80c | |||
| 07cbe89ffd | |||
| 61fbdcbc49 | |||
| 8bdfb822a1 | |||
| ff97d7292c | |||
| c998896cc1 | |||
| 98fc36d039 | |||
| cf0b268019 | |||
| e2153bece1 | |||
| c7001de666 | |||
| 3985697573 | |||
| 8f8f4dc7c0 | |||
| 156cefcd1d | |||
| 0b9c2a252f | |||
| 627b1c5bfe | |||
| 4409337cc3 | |||
| c91a1203fb | |||
| 458731e391 | |||
| 5c0d6afddc | |||
| 69bec85d76 | |||
| 3d9b0b7560 | |||
| e0f1e13e9c | |||
| b8db5daa12 | |||
| c21313dd34 | |||
| 0c0547f4dd | |||
| 6c73574edc | |||
| afae41694c | |||
| 70ce055b0c | |||
| 8fae06ea14 | |||
| 333b60bf4e | |||
| 07220fa2b9 | |||
| 8714de6269 | |||
| 8effb279a6 | |||
| 6b90b944bc | |||
| c01d775289 | |||
| 4cc2d4b68f | |||
| 06e0d5340d | |||
| 85629bb55e | |||
| c4a1d7a113 | |||
| 87b765c60f | |||
| f363ec4b41 | |||
| 382097f7e6 | |||
| ee37015d6d | |||
| 5244ac65f3 | |||
| b873772419 | |||
| 5287ac2614 | |||
| 6b2e67a9ec | |||
| 5a800c14a7 | |||
| bb9f57fe83 | |||
| e48da54b82 | |||
| c55b3712a4 | |||
| d2de984354 | |||
| 7271141623 | |||
| e273b309f1 | |||
| d75a3a0881 | |||
| 4349a3246a | |||
| b6fc32ee0d | |||
| de67afb711 | |||
| c478a0f6c6 | |||
| 5bade13636 | |||
| 76c79ea0f3 | |||
| 0beea22d20 | |||
| c78a21d2b9 | |||
| c7c28184eb | |||
| 04b8d1060a | |||
| 264ed8e720 | |||
| 4baf45c2b1 | |||
| 82a55211e8 | |||
| eeca6cb06e | |||
| adacc616a0 | |||
| 3cf99ec2bb | |||
| e545ba11a7 | |||
| 5358e8907a | |||
| 5c79220504 | |||
| b3d26649a6 | |||
| 3228106ddf | |||
| 286b47e69c | |||
| 8a240766ed | |||
| 314090e0d0 | |||
| 466365fcc7 | |||
| 0772dfab90 | |||
| 5782aded97 | |||
| b74f307fa9 | |||
| f3b2417496 | |||
| 70a15dec53 | |||
| 5b588aa9e0 | |||
| 7e1e1e2e67 | |||
| 9c07f4ef3d | |||
| 458a382f16 | |||
| 63515a3d8d | |||
| 67186eb37d | |||
| 871cb8489f | |||
| 3e61368087 | |||
| 03c10308f9 | |||
| f04295b32b | |||
| 9cd43a9c56 | |||
| 46887df950 | |||
| b726064e65 | |||
| f8b17eadea | |||
| 578063f8f8 | |||
| 9e230d4df7 | |||
| a99b682bf9 | |||
| 7ec9609d7a | |||
| e3f0288eaf | |||
| c81316bfe9 | |||
| d6fed235c2 | |||
| 875ef391a7 | |||
| 1af87cd5e3 | |||
| 93bdd8c1a1 | |||
| 088290f8ba | |||
| db80b34fad | |||
| 8c1157f808 | |||
| 5396e1f18d | |||
| c154115192 | |||
| 91daabd791 | |||
| a3571e3879 | |||
| 3dd5ff1b36 | |||
| 564ba8ed28 | |||
| 3c582755f3 | |||
| fddbaffeb3 | |||
| 8dd1d70f86 | |||
| 2e9cb26086 | |||
| b5f911802d | |||
| 935e922707 | |||
| aeec220a5e | |||
| 17fae262c5 | |||
| a331736eb3 | |||
| c439727ddd | |||
| 2b073d34bd | |||
| 15b0237e54 | |||
| 466d449dc4 | |||
| f92b8d058a | |||
| 0a9e04ce09 | |||
| 022fc8f77e | |||
| 820b3f75ea | |||
| d5f20f32ca | |||
| 2ffb9c9717 | |||
| 719540d020 | |||
| e479b86664 | |||
| 6b68fd6715 | |||
| 27fec7adea | |||
| 3630e461a9 | |||
| d14e9750cf | |||
| d44f021348 | |||
| 681afb4793 | |||
| 5682a5cdf8 | |||
| 8c7e3abbeb | |||
| 7e05588682 | |||
| 13d02da36b | |||
| 552dc3b0c7 | |||
| 976533ccc8 | |||
| 403fac3367 | |||
| b916f9677e | |||
| 4965ca8735 | |||
| c9bfdc4bf9 | |||
| 54fa765766 | |||
| 37cd1fb7cc | |||
| 5d845e09c1 | |||
| f758f4db82 | |||
| b410536fc2 | |||
| db636a7cfe | |||
| 8c6c1bc7bd | |||
| 976e713a2b | |||
| 7dea28a145 | |||
| 918a12060c | |||
| 11a3562533 | |||
| 68c851c9e0 | |||
| 03db97fdda | |||
| 0ee171aae0 | |||
| 9c9b9657e8 | |||
| fdd21a44b8 | |||
| cd3b91a191 | |||
| 333195559d | |||
| b5fe644782 | |||
| 13201620de | |||
| a3711e8606 | |||
| 3c83f7c5bc | |||
| cb2224ca56 | |||
| 49ec9d8de2 | |||
| 9b2ef55871 | |||
| b0aaf402f6 | |||
| aa33667cae | |||
| c5aa8b9268 | |||
| a994a3e80d | |||
| c160bb92bd | |||
| d91fb2f1b4 | |||
| 404db45ba9 | |||
| 46a2f3310d | |||
| 5628545c00 | |||
| 9e374d04d0 | |||
| 32a57cc523 | |||
| ca024872db | |||
| 547db3a2b8 | |||
| 75b803d523 | |||
| 9f27626c72 | |||
| a338a2f1b2 | |||
| 3149371a04 | |||
| e32b11a010 |
@@ -1,4 +1,7 @@
|
|||||||
BasedOnStyle: Google
|
BasedOnStyle: Google
|
||||||
AlignConsecutiveAssignments: true
|
AlignConsecutiveAssignments: true
|
||||||
|
AlignAfterOpenBracket: Align
|
||||||
|
ContinuationIndentWidth: 2
|
||||||
KeepEmptyLinesAtTheStartOfBlocks: true
|
KeepEmptyLinesAtTheStartOfBlocks: true
|
||||||
|
SortIncludes: false
|
||||||
ColumnLimit: 90
|
ColumnLimit: 90
|
||||||
@@ -6,7 +6,7 @@ open_collective: # Replace with a single Open Collective username
|
|||||||
ko_fi: # Replace with a single Ko-fi username
|
ko_fi: # Replace with a single Ko-fi username
|
||||||
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
|
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
|
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
|
||||||
liberapay: # Replace with a single Liberapay username
|
liberapay: # Schneegans
|
||||||
issuehunt: # Replace with a single IssueHunt username
|
issuehunt: # Replace with a single IssueHunt username
|
||||||
otechie: # Replace with a single Otechie username
|
otechie: # Replace with a single Otechie username
|
||||||
custom: ['https://www.paypal.com/donate/?hosted_button_id=3F7UFL8KLVPXE']
|
custom: ['https://www.paypal.com/donate/?hosted_button_id=3F7UFL8KLVPXE']
|
||||||
|
|||||||
@@ -17,14 +17,13 @@ Steps to reproduce the behavior:
|
|||||||
4. See error
|
4. See error
|
||||||
|
|
||||||
You may also check the output of GNOME Shell for any error messages.
|
You may also check the output of GNOME Shell for any error messages.
|
||||||
This can be done with the following terminal command:
|
This can be done with the following terminal command.
|
||||||
|
Execute this in a terminal and observe the output while reproducing the bug.
|
||||||
|
|
||||||
|
```bash
|
||||||
journalctl -f -o cat | grep -E 'burn-my-windows|'
|
journalctl -f -o cat | grep -E 'burn-my-windows|'
|
||||||
```
|
```
|
||||||
|
|
||||||
## Expected Behavior
|
|
||||||
A clear and concise description of what you expected to happen.
|
|
||||||
|
|
||||||
## System
|
## System
|
||||||
_Please complete the following information:_
|
_Please complete the following information:_
|
||||||
- Linux distribution [e.g. Ubuntu 21.04]
|
- Linux distribution [e.g. Ubuntu 21.04]
|
||||||
|
|||||||
@@ -1,16 +1,14 @@
|
|||||||
---
|
---
|
||||||
name: Feature Request
|
name: General Feature Request
|
||||||
about: Suggest an idea for the Burn-My-Windows Extension.
|
about: Suggest an idea for the Burn-My-Windows Extension.
|
||||||
title: ''
|
title: ''
|
||||||
labels: enhancement
|
labels: 'feature request'
|
||||||
assignees: ''
|
assignees: ''
|
||||||
---
|
---
|
||||||
|
|
||||||
## The Motivation
|
## The Idea
|
||||||
A clear and concise description of use-case.
|
A clear and concise description of your idea.
|
||||||
|
If applicable, feel free to add screenshots or mock-ups to illustrate your idea!
|
||||||
## The Solution
|
|
||||||
A clear and concise description of what you want to happen.
|
|
||||||
|
|
||||||
## The Alternatives
|
## The Alternatives
|
||||||
A clear and concise description of any alternative solutions or features you've considered.
|
Are there alternative solutions or features you've considered?
|
||||||
|
|||||||
@@ -0,0 +1,17 @@
|
|||||||
|
---
|
||||||
|
name: New Effect
|
||||||
|
about: Suggest a new effect for the Burn-My-Windows Extension.
|
||||||
|
title: ''
|
||||||
|
labels: 'new effect'
|
||||||
|
assignees: ''
|
||||||
|
---
|
||||||
|
|
||||||
|
## The Idea
|
||||||
|
Please describe your idea as detailed as possible.
|
||||||
|
It would be great if you could add a drawing or any other kind of mock-up to illustrate your idea!
|
||||||
|
|
||||||
|
## Window Closing vs. Window Opening
|
||||||
|
Make sure to describe how the effect could be reversed, so how should a window disappear and how should it appear.
|
||||||
|
|
||||||
|
## References
|
||||||
|
It would be great if you could provide some video references (e.g. YouTube links) if your idea is based on something which - for example - exists in movies.
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
name: Badges
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
update-badges:
|
||||||
|
name: Update Badges
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout Repository
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
- name: Download cloc
|
||||||
|
run: sudo apt-get update -y && sudo apt-get install -y cloc
|
||||||
|
- name: Get the Numbers
|
||||||
|
run: |
|
||||||
|
echo "CODE_LINES=$(scripts/cloc.sh --loc)" >> $GITHUB_ENV
|
||||||
|
echo "COMMENT_LINES=$(scripts/cloc.sh --percentage)" >> $GITHUB_ENV
|
||||||
|
- name: Create Lines-of-Code-Badge
|
||||||
|
uses: schneegans/dynamic-badges-action@v1.3.0
|
||||||
|
with:
|
||||||
|
auth: ${{ secrets.GIST_SECRET }}
|
||||||
|
gistID: 8cf45f23253ff09b21196e7271378762
|
||||||
|
filename: loc.json
|
||||||
|
label: Lines of Code
|
||||||
|
message: ${{ env.CODE_LINES }}
|
||||||
|
color: lightgrey
|
||||||
|
labelColor: 303030
|
||||||
|
- name: Create Comments-Badge
|
||||||
|
uses: schneegans/dynamic-badges-action@v1.3.0
|
||||||
|
with:
|
||||||
|
auth: ${{ secrets.GIST_SECRET }}
|
||||||
|
gistID: 8cf45f23253ff09b21196e7271378762
|
||||||
|
filename: comments.json
|
||||||
|
label: Comments
|
||||||
|
message: ${{ env.COMMENT_LINES }}%
|
||||||
|
valColorRange: ${{ env.COMMENT_LINES }}
|
||||||
|
maxColorRange: 50
|
||||||
|
minColorRange: 0
|
||||||
|
labelColor: 303030
|
||||||
@@ -76,7 +76,35 @@ jobs:
|
|||||||
( contains(github.ref, 'main') && !contains(github.event.head_commit.message, '[no-ci]') ) ||
|
( contains(github.ref, 'main') && !contains(github.event.head_commit.message, '[no-ci]') ) ||
|
||||||
( contains(github.ref, 'develop') && !contains(github.event.head_commit.message, '[no-ci]') ) ||
|
( contains(github.ref, 'develop') && !contains(github.event.head_commit.message, '[no-ci]') ) ||
|
||||||
contains(github.event.head_commit.message, '[run-ci]')
|
contains(github.event.head_commit.message, '[run-ci]')
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
version:
|
||||||
|
- '32'
|
||||||
|
- '33'
|
||||||
|
- '34'
|
||||||
|
- '35'
|
||||||
|
- '36'
|
||||||
|
session:
|
||||||
|
#- 'gnome-xsession' Disabled for now as it miraculously fails on GitHub. Locally, all tests pass...
|
||||||
|
- 'gnome-wayland-nested'
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
|
- name: Download Dependencies
|
||||||
|
run: |
|
||||||
|
sudo apt update -qq
|
||||||
|
sudo apt install gettext -qq
|
||||||
- name: Build Burn-My-Windows
|
- name: Build Burn-My-Windows
|
||||||
run: make
|
run: make
|
||||||
|
- name: Test Burn-My-Windows
|
||||||
|
run: sudo $GITHUB_WORKSPACE/tests/run-test.sh -v ${{ matrix.version }} -s ${{ matrix.session }}
|
||||||
|
- uses: actions/upload-artifact@v2
|
||||||
|
if: failure()
|
||||||
|
with:
|
||||||
|
name: log_${{ matrix.version }}_${{ matrix.session }}
|
||||||
|
path: fail.log
|
||||||
|
- uses: actions/upload-artifact@v2
|
||||||
|
if: failure()
|
||||||
|
with:
|
||||||
|
name: screen_${{ matrix.version }}_${{ matrix.session }}
|
||||||
|
path: fail.png
|
||||||
@@ -6,7 +6,7 @@ on:
|
|||||||
- '**'
|
- '**'
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
source_code:
|
extension_bundle:
|
||||||
name: Extension Bundle
|
name: Extension Bundle
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
@@ -20,10 +20,9 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
make zip
|
make zip
|
||||||
- name: Upload Release
|
- name: Upload Release
|
||||||
uses: svenstaro/upload-release-action@v1-release
|
uses: svenstaro/upload-release-action@2.2.1
|
||||||
with:
|
with:
|
||||||
repo_token: ${{ secrets.GITHUB_TOKEN }}
|
repo_token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
file: burn-my-windows@schneegans.github.com.zip
|
file: burn-my-windows@schneegans.github.com.zip
|
||||||
asset_name: burn-my-windows@schneegans.github.com.zip
|
|
||||||
tag: ${{ github.ref }}
|
tag: ${{ github.ref }}
|
||||||
overwrite: true
|
overwrite: true
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
*~
|
*~
|
||||||
*.zip
|
*.zip
|
||||||
|
*.blend1
|
||||||
|
*.blend2
|
||||||
|
*.blend3
|
||||||
|
/locale
|
||||||
/schemas/gschemas.compiled
|
/schemas/gschemas.compiled
|
||||||
/resources/burn-my-windows.gresource
|
/resources/burn-my-windows.gresource
|
||||||
/resources/burn-my-windows.gresource.xml
|
/resources/burn-my-windows.gresource.xml
|
||||||
@@ -1,51 +1,111 @@
|
|||||||
SHELL := /bin/bash
|
SHELL := /bin/bash
|
||||||
|
|
||||||
JS_FILES = $(shell find -type f -and \( -name "*.js" \))
|
# We define these here to make the makefile easier to port to another extension.
|
||||||
|
NAME := burn-my-windows
|
||||||
|
DOMAIN := schneegans.github.com
|
||||||
|
ZIP_NAME := $(NAME)@$(DOMAIN).zip
|
||||||
|
|
||||||
|
# Some of the recipes below depend on some of these files.
|
||||||
|
JS_FILES = $(shell find -type f -and \( -name "*.js" \))
|
||||||
|
UI_FILES = $(shell find -type f -and \( -name "*.ui" \))
|
||||||
RESOURCE_FILES = $(shell find resources -mindepth 2 -type f)
|
RESOURCE_FILES = $(shell find resources -mindepth 2 -type f)
|
||||||
|
LOCALES_PO = $(wildcard po/*.po)
|
||||||
|
LOCALES_MO = $(patsubst po/%.po,locale/%/LC_MESSAGES/$(NAME).mo,$(LOCALES_PO))
|
||||||
|
|
||||||
.PHONY: zip install uninstall clean
|
# These files will be included in the extension zip file.
|
||||||
|
ZIP_CONTENT = $(JS_FILES) $(LOCALES_MO) resources/$(NAME).gresource \
|
||||||
|
schemas/gschemas.compiled metadata.json LICENSE
|
||||||
|
|
||||||
zip: burn-my-windows@schneegans.github.com.zip
|
# These seven recipes can be invoked by the user.
|
||||||
|
.PHONY: zip install uninstall pot clean test references
|
||||||
|
|
||||||
install: burn-my-windows@schneegans.github.com.zip
|
# The zip recipes only bundles the extension without installing it.
|
||||||
gnome-extensions install "burn-my-windows@schneegans.github.com.zip" --force
|
zip: $(ZIP_NAME)
|
||||||
|
|
||||||
|
# The install recipes creates the extension zip and installs it.
|
||||||
|
install: $(ZIP_NAME)
|
||||||
|
gnome-extensions install "$(ZIP_NAME)" --force
|
||||||
@echo "Extension installed successfully! Now restart the Shell ('Alt'+'F2', then 'r')."
|
@echo "Extension installed successfully! Now restart the Shell ('Alt'+'F2', then 'r')."
|
||||||
|
|
||||||
|
# This uninstalls the previously installed extension.
|
||||||
uninstall:
|
uninstall:
|
||||||
gnome-extensions uninstall "burn-my-windows@schneegans.github.com"
|
gnome-extensions uninstall "$(NAME)@$(DOMAIN)"
|
||||||
|
|
||||||
|
# Use gettext to generate a translation template file.
|
||||||
|
pot: $(JS_FILES) $(UI_FILES)
|
||||||
|
@echo "Generating '$(NAME).pot'..."
|
||||||
|
@xgettext --from-code=UTF-8 \
|
||||||
|
--add-comments=Translators \
|
||||||
|
--copyright-holder="Simon Schneegans" \
|
||||||
|
--package-name="$(NAME)" \
|
||||||
|
--output=po/$(NAME).pot \
|
||||||
|
$(JS_FILES) $(UI_FILES)
|
||||||
|
|
||||||
|
# This runs several tests in containerized versions of GNOME Shell.
|
||||||
|
test:
|
||||||
|
@ for version in 32 33 34 35 36 ; do \
|
||||||
|
for session in "gnome-xsession" "gnome-wayland-nested" ; do \
|
||||||
|
echo ; \
|
||||||
|
echo "Running Tests on Fedora $$version ($$session)." ; \
|
||||||
|
echo ; \
|
||||||
|
./tests/run-test.sh -s $$session -v $$version ; \
|
||||||
|
done \
|
||||||
|
done
|
||||||
|
|
||||||
|
# This re-generates all reference images required by the tests.
|
||||||
|
references:
|
||||||
|
@ for version in 32 33 34 35 36 ; do \
|
||||||
|
for session in "gnome-xsession" "gnome-wayland-nested" ; do \
|
||||||
|
echo ; \
|
||||||
|
echo "Generating References for Fedora $$version ($$session)." ; \
|
||||||
|
echo ; \
|
||||||
|
./tests/generate-references.sh -s $$session -v $$version ; \
|
||||||
|
done \
|
||||||
|
done
|
||||||
|
|
||||||
|
# This removes all temporary files created with the other recipes.
|
||||||
clean:
|
clean:
|
||||||
rm -rf \
|
rm -rf $(ZIP_NAME) \
|
||||||
burn-my-windows@schneegans.github.com.zip \
|
resources/$(NAME).gresource \
|
||||||
resources/burn-my-windows.gresource \
|
resources/$(NAME).gresource.xml \
|
||||||
resources/burn-my-windows.gresource.xml \
|
schemas/gschemas.compiled \
|
||||||
schemas/gschemas.compiled
|
locale
|
||||||
|
|
||||||
burn-my-windows@schneegans.github.com.zip: schemas/gschemas.compiled resources/burn-my-windows.gresource $(JS_FILES)
|
# This bundles the extension and checks whether it is small enough to be uploaded to
|
||||||
@# Check if the VERSION variable was passed and set version to it
|
# extensions.gnome.org. We do not use "gnome-extensions pack" for this, as this is not
|
||||||
@if [[ "$(VERSION)" != "" ]]; then \
|
# readily available on the GitHub runners.
|
||||||
sed -i "s| \"version\":.*| \"version\": $(VERSION)|g" metadata.json; \
|
$(ZIP_NAME): $(ZIP_CONTENT)
|
||||||
fi
|
|
||||||
@# TODO Maybe echo version number of the release that was built, in order to facilitate double-checking before publishing it?
|
|
||||||
|
|
||||||
@echo "Packing zip file..."
|
@echo "Packing zip file..."
|
||||||
@rm --force burn-my-windows@schneegans.github.com.zip
|
@rm --force $(ZIP_NAME)
|
||||||
@zip -r burn-my-windows@schneegans.github.com.zip -- *.js resources/burn-my-windows.gresource schemas/gschemas.compiled metadata.json LICENSE
|
@zip $(ZIP_NAME) -- $(ZIP_CONTENT)
|
||||||
|
|
||||||
@#Check if the zip size is too big to be uploaded
|
@#Check if the zip size is too big to be uploaded
|
||||||
@if [[ "$$(stat -c %s burn-my-windows@schneegans.github.com.zip)" -gt 4096000 ]]; then \
|
@SIZE=$$(unzip -Zt $(ZIP_NAME) | awk '{print $$3}') ; \
|
||||||
echo "ERROR! The extension is too big to be uploaded to the extensions website, keep it smaller than 4096 KB!"; exit 1; \
|
if [[ $$SIZE -gt 5242880 ]]; then \
|
||||||
fi
|
echo "ERROR! The extension is too big to be uploaded to" \
|
||||||
|
"the extensions website, keep it smaller than 5 MB!"; \
|
||||||
|
exit 1; \
|
||||||
|
fi
|
||||||
|
|
||||||
resources/burn-my-windows.gresource: resources/burn-my-windows.gresource.xml
|
# Compiles the gschemas.compiled file from the gschema.xml file.
|
||||||
|
schemas/gschemas.compiled: schemas/org.gnome.shell.extensions.$(NAME).gschema.xml
|
||||||
|
@echo "Compiling schemas..."
|
||||||
|
@glib-compile-schemas schemas
|
||||||
|
|
||||||
|
# Compiles the gresource file from the gresources.xml.
|
||||||
|
resources/$(NAME).gresource: resources/$(NAME).gresource.xml
|
||||||
@echo "Compiling resources..."
|
@echo "Compiling resources..."
|
||||||
@glib-compile-resources --sourcedir="resources" --generate resources/burn-my-windows.gresource.xml
|
@glib-compile-resources --sourcedir="resources" --generate resources/$(NAME).gresource.xml
|
||||||
|
|
||||||
resources/burn-my-windows.gresource.xml: $(RESOURCE_FILES)
|
# Generates the gresources.xml based on all files in the resources subdirectory.
|
||||||
|
resources/$(NAME).gresource.xml: $(RESOURCE_FILES)
|
||||||
@echo "Creating resources xml..."
|
@echo "Creating resources xml..."
|
||||||
@FILES=$$(find "resources" -mindepth 2 -type f -printf "%P\n" | xargs -i echo "<file>{}</file>") ; \
|
@FILES=$$(find "resources" -mindepth 2 -type f -printf "%P\n" | xargs -i echo "<file>{}</file>") ; \
|
||||||
echo "<?xml version='1.0' encoding='UTF-8'?><gresources><gresource> $$FILES </gresource></gresources>" > resources/burn-my-windows.gresource.xml
|
echo "<?xml version='1.0' encoding='UTF-8'?><gresources><gresource> $$FILES </gresource></gresources>" \
|
||||||
|
> resources/$(NAME).gresource.xml
|
||||||
|
|
||||||
schemas/gschemas.compiled: schemas/org.gnome.shell.extensions.burn-my-windows.gschema.xml
|
# Compiles all *.po files to *.mo files.
|
||||||
@echo "Compiling schemas..."
|
locale/%/LC_MESSAGES/$(NAME).mo: po/%.po
|
||||||
@glib-compile-schemas schemas
|
@echo "Compiling $@"
|
||||||
|
@mkdir -p locale/$*/LC_MESSAGES
|
||||||
|
@msgfmt -c -o $@ $<
|
||||||
|
|||||||
@@ -1,18 +1,76 @@
|
|||||||
<p align="center">
|
<p align="center">
|
||||||
<img src ="docs/pics/teaser.gif" />
|
<a href="https://www.youtube.com/watch?v=L2aaNF_rPHo"><img src ="docs/pics/teaser.jpg" /></a>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
# Set your Windows on Fire!
|
<h1 align="center">🔥 Set GNOME Shell on Fire!</h1>
|
||||||
|
|
||||||
|
<p align="center">
|
||||||
|
<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="LICENSE"><img src="https://img.shields.io/badge/License-GPLv3-blue.svg?labelColor=303030" /></a>
|
<a href="LICENSE"><img src="https://img.shields.io/badge/License-GPLv3-blue.svg?labelColor=303030" /></a>
|
||||||
<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>
|
<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/comments.json" /></a>
|
||||||
|
</p>
|
||||||
|
|
||||||
When I released the [Desktop Cube Extension](https://github.com/Schneegans/Desktop-Cube/), 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/), 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)!
|
||||||
|
|
||||||
|
For a list of things changed in previous releases, you can have a look at the [changelog](docs/changelog.md)!
|
||||||
|
|
||||||
## Installation
|
|
||||||
|
Effect | Preview
|
||||||
|
-----|--------
|
||||||
|
**Apparition** <br> This effect hides your windows by violently sucking them into the void of magic! <br><br> _Only available in GNOME Shell 3.38+_ | <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! <br><br> _Only available in GNOME Shell 40+_ | <img src ="docs/pics/glass.gif" />
|
||||||
|
**Energize A** <br> Beam your windows away! | <img src ="docs/pics/energizeA.gif" />
|
||||||
|
**Energize B** <br> Using different transporter technology results in an alternative visual effect. | <img src ="docs/pics/energizeB.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" />
|
||||||
|
**Hexagon** <br> With glowing lines and hexagon-shaped tiles, this effect looks very sci-fi. | <img src ="docs/pics/hexagon.gif" />
|
||||||
|
**Matrix** <br> Turn your windows into a shower of green letters! The color is actually configurable. <br><br> _Only available in GNOME Shell 40+_ | <img src ="docs/pics/matrix.gif" />
|
||||||
|
**Snap of Disintegration** <br> Dissolve your windows into a cloud of dust. <br><br> _Only available in GNOME Shell 40+_ | <img src ="docs/pics/snap.gif" />
|
||||||
|
**T-Rex Attack** <br> Destroy your windows with a series of violent slashes! <br><br> _Only available in GNOME Shell 40+_ | <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" />
|
||||||
|
**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)
|
||||||
|
|
||||||
|
|
||||||
|
## 💞 These People _love_ this Extension
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
<h3 align="center">🥇 Current Gold Sponsors</h3>
|
||||||
|
<p align="center">
|
||||||
|
<a href="https://github.com/dennis1248">Dennis ten Hoove</a><br>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h3 align="center">🥈 Current Silver Sponsors</h3>
|
||||||
|
<p align="center">
|
||||||
|
<a href="https://github.com/danielheadbang">@danielheadbang</a><br>
|
||||||
|
<a href="https://twitter.com/tjiiik">tj3k</a><br>
|
||||||
|
<a href="https://github.com/MRR-dev">@MRR-dev</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/AngelBrielez'>Angel Brielez</a>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h3 align="center">🏅 Previous Sponsors and One-Time Donators</h3>
|
||||||
|
<p align="center">
|
||||||
|
<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 extensions: [🧊 Desktop-Cube](https://github.com/Schneegans/Desktop-Cube) or [🍰 Fly-Pie](https://github.com/Schneegans/Fly-Pie/)!
|
||||||
|
|
||||||
|
## ⬇️ Installation
|
||||||
|
|
||||||
You can either install the Burn-My-Windows extension from extensions.gnome.org (a), download a stable release
|
You can either install the Burn-My-Windows extension from extensions.gnome.org (a), download a stable release
|
||||||
from GitHub (b) or clone the latest version directly with `git` (c).
|
from GitHub (b) or clone the latest version directly with `git` (c).
|
||||||
@@ -74,7 +132,8 @@ gnome-extensions enable burn-my-windows@schneegans.github.com
|
|||||||
## :octocat: I want to contribute!
|
## :octocat: I want to contribute!
|
||||||
|
|
||||||
That's great!
|
That's great!
|
||||||
Here are some basic rulles to get you started:
|
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:
|
||||||
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!
|
||||||
|
|||||||
@@ -0,0 +1,7 @@
|
|||||||
|
# Notes for `claws.blend`
|
||||||
|
|
||||||
|
This is the source file for `resources/img/claws.png`. To generate the image, the animation in `claws.blend` is rendered to 256 PNG files and then combined using this command:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
convert *.png -average claws.png
|
||||||
|
```
|
||||||
|
After Width: | Height: | Size: 968 KiB |
|
After Width: | Height: | Size: 30 KiB |
@@ -0,0 +1,374 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
width="512"
|
||||||
|
height="512"
|
||||||
|
viewBox="0 0 135.46666 135.46667"
|
||||||
|
version="1.1"
|
||||||
|
id="svg5"
|
||||||
|
inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20)"
|
||||||
|
sodipodi:docname="matrixFont.svg"
|
||||||
|
inkscape:export-filename="/home/simon/Linux-Projects/Burn-My-Windows/resources/img/matrixFont.png"
|
||||||
|
inkscape:export-xdpi="96"
|
||||||
|
inkscape:export-ydpi="96"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg">
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="namedview7"
|
||||||
|
pagecolor="#000000"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1.0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:pageopacity="1"
|
||||||
|
inkscape:pagecheckerboard="0"
|
||||||
|
inkscape:document-units="mm"
|
||||||
|
showgrid="true"
|
||||||
|
units="px"
|
||||||
|
inkscape:zoom="3.2650549"
|
||||||
|
inkscape:cx="194.33058"
|
||||||
|
inkscape:cy="126.49098"
|
||||||
|
inkscape:window-width="1920"
|
||||||
|
inkscape:window-height="1131"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="32"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:current-layer="layer1">
|
||||||
|
<inkscape:grid
|
||||||
|
type="xygrid"
|
||||||
|
id="grid8183"
|
||||||
|
empspacing="2"
|
||||||
|
spacingx="4.2333333"
|
||||||
|
spacingy="4.2333333"
|
||||||
|
color="#cbcbff"
|
||||||
|
opacity="0.1254902"
|
||||||
|
empcolor="#ffffff"
|
||||||
|
empopacity="0.25098039" />
|
||||||
|
</sodipodi:namedview>
|
||||||
|
<defs
|
||||||
|
id="defs2">
|
||||||
|
<filter
|
||||||
|
inkscape:collect="always"
|
||||||
|
style="color-interpolation-filters:sRGB"
|
||||||
|
id="filter972"
|
||||||
|
x="-0.014295474"
|
||||||
|
y="-0.01399304"
|
||||||
|
width="1.0285909"
|
||||||
|
height="1.0279861">
|
||||||
|
<feGaussianBlur
|
||||||
|
inkscape:collect="always"
|
||||||
|
stdDeviation="0.78384108"
|
||||||
|
id="feGaussianBlur970" />
|
||||||
|
</filter>
|
||||||
|
<filter
|
||||||
|
inkscape:collect="always"
|
||||||
|
style="color-interpolation-filters:sRGB"
|
||||||
|
id="filter974"
|
||||||
|
x="-0.024387008"
|
||||||
|
y="-0.023871079"
|
||||||
|
width="1.048774"
|
||||||
|
height="1.0477422">
|
||||||
|
<feGaussianBlur
|
||||||
|
inkscape:collect="always"
|
||||||
|
stdDeviation="1.3371742"
|
||||||
|
id="feGaussianBlur976" />
|
||||||
|
</filter>
|
||||||
|
</defs>
|
||||||
|
<g
|
||||||
|
inkscape:label="Layer 1"
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer1">
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
style="font-weight:300;font-size:7.60522px;line-height:1.112;font-family:'Open Sans';-inkscape-font-specification:'Open Sans Light';letter-spacing:3.89202px;opacity:1;mix-blend-mode:normal;stroke-width:0.190131;filter:url(#filter972)"
|
||||||
|
x="1.7241572"
|
||||||
|
y="6.4795361"
|
||||||
|
id="text968"
|
||||||
|
inkscape:export-filename="/home/simon/Linux-Projects/Burn-My-Windows/resources/img/text3003.png"
|
||||||
|
inkscape:export-xdpi="96"
|
||||||
|
inkscape:export-ydpi="96"><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
|
||||||
|
x="1.7241572"
|
||||||
|
y="6.4795361"
|
||||||
|
id="tspan934">ABCDEFGHIJKLMNOP</tspan><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
|
||||||
|
x="1.7241572"
|
||||||
|
y="14.946301"
|
||||||
|
id="tspan936">QRSTUVWXYZabcdef</tspan><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
|
||||||
|
x="1.7241572"
|
||||||
|
y="23.413067"
|
||||||
|
id="tspan938">ghijklmnopqrstuv</tspan><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
|
||||||
|
x="1.7241572"
|
||||||
|
y="31.879831"
|
||||||
|
id="tspan940">wxyzÀÁÂÃÄÅÆÇÈÉÊË</tspan><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
|
||||||
|
x="1.7241572"
|
||||||
|
y="40.346596"
|
||||||
|
id="tspan942">ÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜ</tspan><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
|
||||||
|
x="1.7241572"
|
||||||
|
y="48.813362"
|
||||||
|
id="tspan944">ÝÞßàáâãäåæçèéêëì</tspan><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
|
||||||
|
x="1.7241572"
|
||||||
|
y="57.280125"
|
||||||
|
id="tspan946">íîïðΑαΒβΓγΔδΕεΖζ</tspan><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
|
||||||
|
x="1.7241572"
|
||||||
|
y="65.746887"
|
||||||
|
id="tspan948">ΗηΘθΙιΚκΛλΜμΝνΞξ</tspan><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
|
||||||
|
x="1.7241572"
|
||||||
|
y="74.213654"
|
||||||
|
id="tspan950">ΟοΠπΡρΣσΤτΥυΦφΧχ</tspan><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
|
||||||
|
x="1.7241572"
|
||||||
|
y="82.68042"
|
||||||
|
id="tspan952">ΨψΩω1234567890Аа</tspan><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
|
||||||
|
x="1.7241572"
|
||||||
|
y="91.147186"
|
||||||
|
id="tspan954">БбВвГгДдЕеЖжЗзИи</tspan><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
|
||||||
|
x="1.7241572"
|
||||||
|
y="99.613953"
|
||||||
|
id="tspan956">ЙйКкЛлМмНнОоПпРр</tspan><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
|
||||||
|
x="1.7241572"
|
||||||
|
y="108.08072"
|
||||||
|
id="tspan958">СсТтУуФфХхЦцЧчШш</tspan><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
|
||||||
|
x="1.7241572"
|
||||||
|
y="116.54748"
|
||||||
|
id="tspan960">ЩщЬьЭэЮюЯя!"#$%&</tspan><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
|
||||||
|
x="1.7241572"
|
||||||
|
y="125.01424"
|
||||||
|
id="tspan962">()*+,-/:;<=>?@©§</tspan><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
|
||||||
|
x="1.7241572"
|
||||||
|
y="133.48102"
|
||||||
|
id="tspan964">[\]{|}~ªº¿®¬½¼¡¶</tspan><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
|
||||||
|
x="1.7241572"
|
||||||
|
y="141.94777"
|
||||||
|
id="tspan966" /></text>
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
style="font-weight:300;font-size:7.60522px;line-height:1.112;font-family:'Open Sans';-inkscape-font-specification:'Open Sans Light';letter-spacing:3.89202px;opacity:1;stroke-width:0.190131"
|
||||||
|
x="1.7241572"
|
||||||
|
y="6.4795361"
|
||||||
|
id="text94444"><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
|
||||||
|
x="1.7241572"
|
||||||
|
y="6.4795361"
|
||||||
|
id="tspan94410">ABCDEFGHIJKLMNOP</tspan><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
|
||||||
|
x="1.7241572"
|
||||||
|
y="14.946301"
|
||||||
|
id="tspan94412">QRSTUVWXYZabcdef</tspan><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
|
||||||
|
x="1.7241572"
|
||||||
|
y="23.413067"
|
||||||
|
id="tspan94414">ghijklmnopqrstuv</tspan><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
|
||||||
|
x="1.7241572"
|
||||||
|
y="31.879831"
|
||||||
|
id="tspan94416">wxyzÀÁÂÃÄÅÆÇÈÉÊË</tspan><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
|
||||||
|
x="1.7241572"
|
||||||
|
y="40.346596"
|
||||||
|
id="tspan94418">ÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜ</tspan><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
|
||||||
|
x="1.7241572"
|
||||||
|
y="48.813362"
|
||||||
|
id="tspan94420">ÝÞßàáâãäåæçèéêëì</tspan><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
|
||||||
|
x="1.7241572"
|
||||||
|
y="57.280125"
|
||||||
|
id="tspan94422">íîïðΑαΒβΓγΔδΕεΖζ</tspan><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
|
||||||
|
x="1.7241572"
|
||||||
|
y="65.746887"
|
||||||
|
id="tspan94424">ΗηΘθΙιΚκΛλΜμΝνΞξ</tspan><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
|
||||||
|
x="1.7241572"
|
||||||
|
y="74.213654"
|
||||||
|
id="tspan94426">ΟοΠπΡρΣσΤτΥυΦφΧχ</tspan><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
|
||||||
|
x="1.7241572"
|
||||||
|
y="82.68042"
|
||||||
|
id="tspan94428">ΨψΩω1234567890Аа</tspan><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
|
||||||
|
x="1.7241572"
|
||||||
|
y="91.147186"
|
||||||
|
id="tspan94430">БбВвГгДдЕеЖжЗзИи</tspan><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
|
||||||
|
x="1.7241572"
|
||||||
|
y="99.613953"
|
||||||
|
id="tspan94432">ЙйКкЛлМмНнОоПпРр</tspan><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
|
||||||
|
x="1.7241572"
|
||||||
|
y="108.08072"
|
||||||
|
id="tspan94434">СсТтУуФфХхЦцЧчШш</tspan><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
|
||||||
|
x="1.7241572"
|
||||||
|
y="116.54748"
|
||||||
|
id="tspan94436">ЩщЬьЭэЮюЯя!"#$%&</tspan><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
|
||||||
|
x="1.7241572"
|
||||||
|
y="125.01424"
|
||||||
|
id="tspan94438">()*+,-/:;<=>?@©§</tspan><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
|
||||||
|
x="1.7241572"
|
||||||
|
y="133.48102"
|
||||||
|
id="tspan94440">[\]{|}~ªº¿®¬½¼¡¶</tspan><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
|
||||||
|
x="1.7241572"
|
||||||
|
y="141.94777"
|
||||||
|
id="tspan94442" /></text>
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
style="font-weight:300;font-size:7.60522px;line-height:1.112;font-family:'Open Sans';-inkscape-font-specification:'Open Sans Light';letter-spacing:3.89202px;opacity:1;mix-blend-mode:normal;stroke-width:0.190131;filter:url(#filter974)"
|
||||||
|
x="1.7241572"
|
||||||
|
y="6.4795361"
|
||||||
|
id="text3003"
|
||||||
|
inkscape:export-filename="/home/simon/Linux-Projects/Burn-My-Windows/resources/img/text3003.png"
|
||||||
|
inkscape:export-xdpi="96"
|
||||||
|
inkscape:export-ydpi="96"><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
|
||||||
|
x="1.7241572"
|
||||||
|
y="6.4795361"
|
||||||
|
id="tspan30643">ABCDEFGHIJKLMNOP</tspan><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
|
||||||
|
x="1.7241572"
|
||||||
|
y="14.946301"
|
||||||
|
id="tspan40072">QRSTUVWXYZabcdef</tspan><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
|
||||||
|
x="1.7241572"
|
||||||
|
y="23.413067"
|
||||||
|
id="tspan42210">ghijklmnopqrstuv</tspan><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
|
||||||
|
x="1.7241572"
|
||||||
|
y="31.879831"
|
||||||
|
id="tspan43166">wxyzÀÁÂÃÄÅÆÇÈÉÊË</tspan><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
|
||||||
|
x="1.7241572"
|
||||||
|
y="40.346596"
|
||||||
|
id="tspan43762">ÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜ</tspan><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
|
||||||
|
x="1.7241572"
|
||||||
|
y="48.813362"
|
||||||
|
id="tspan44946">ÝÞßàáâãäåæçèéêëì</tspan><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
|
||||||
|
x="1.7241572"
|
||||||
|
y="57.280125"
|
||||||
|
id="tspan48062">íîïðΑαΒβΓγΔδΕεΖζ</tspan><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
|
||||||
|
x="1.7241572"
|
||||||
|
y="65.746887"
|
||||||
|
id="tspan56533">ΗηΘθΙιΚκΛλΜμΝνΞξ</tspan><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
|
||||||
|
x="1.7241572"
|
||||||
|
y="74.213654"
|
||||||
|
id="tspan58635">ΟοΠπΡρΣσΤτΥυΦφΧχ</tspan><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
|
||||||
|
x="1.7241572"
|
||||||
|
y="82.68042"
|
||||||
|
id="tspan61169">ΨψΩω1234567890Аа</tspan><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
|
||||||
|
x="1.7241572"
|
||||||
|
y="91.147186"
|
||||||
|
id="tspan67243">БбВвГгДдЕеЖжЗзИи</tspan><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
|
||||||
|
x="1.7241572"
|
||||||
|
y="99.613953"
|
||||||
|
id="tspan69399">ЙйКкЛлМмНнОоПпРр</tspan><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
|
||||||
|
x="1.7241572"
|
||||||
|
y="108.08072"
|
||||||
|
id="tspan70763">СсТтУуФфХхЦцЧчШш</tspan><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
|
||||||
|
x="1.7241572"
|
||||||
|
y="116.54748"
|
||||||
|
id="tspan72709">ЩщЬьЭэЮюЯя!"#$%&</tspan><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
|
||||||
|
x="1.7241572"
|
||||||
|
y="125.01424"
|
||||||
|
id="tspan77955">()*+,-/:;<=>?@©§</tspan><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
|
||||||
|
x="1.7241572"
|
||||||
|
y="133.48102"
|
||||||
|
id="tspan77957">[\]{|}~ªº¿®¬½¼¡¶</tspan><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:monospace;-inkscape-font-specification:monospace;fill:#ffffff;fill-opacity:1;stroke-width:0.190131"
|
||||||
|
x="1.7241572"
|
||||||
|
y="141.94777"
|
||||||
|
id="tspan75487" /></text>
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
style="font-weight:300;font-size:10.5833px;line-height:1.25;font-family:'Open Sans';-inkscape-font-specification:'Open Sans Light';stroke-width:0.264583"
|
||||||
|
x="169.33333"
|
||||||
|
y="29.009251"
|
||||||
|
id="text17385"><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
id="tspan17383"
|
||||||
|
style="stroke-width:0.264583"
|
||||||
|
x="169.33333"
|
||||||
|
y="29.009251" /></text>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 21 KiB |
|
After Width: | Height: | Size: 4.1 MiB |
@@ -1,6 +1,215 @@
|
|||||||
# Changelog of the Burn-My-Windows Extension
|
# Changelog of the Burn-My-Windows Extension
|
||||||
|
|
||||||
## [Burn My Window 3](https://github.com/schneegans/Burn-My-Windows/releases/tag/v3)
|
## [Burn My Windows 16](https://github.com/schneegans/Burn-My-Windows/releases/tag/v16)
|
||||||
|
|
||||||
|
**Release Date:** TBD
|
||||||
|
|
||||||
|
#### Enhancements
|
||||||
|
|
||||||
|
* The standard uniforms of all shaders have been updated: The window size is now passed as a `vec2` and there is a new `bool uForOpening` which is set to `true` if a window-open animation is ongoing, to `false` otherwise.
|
||||||
|
* Refactored how the size and opacity transitions of the window actors are set up. Effects can now only specify a desired actor scale which will not change during the animation. All dynamic scaling and fading must be implemented in the shaders now.
|
||||||
|
* The shaders are now aware of the actual window size (e.g. excluding the area where the shadow is drawn). For instance, this fixes the drawing of the effects outside the window bounds for `libadwaita` apps.
|
||||||
|
|
||||||
|
#### Bug Fixes
|
||||||
|
|
||||||
|
* **Fixed a major memory leak**. Now, shaders are not re-created anymore whenever a window is opened or closed. Instead, previously created shaders are re-used as often as possible. This requires that all settings are set as uniform values (previously they were injected into the shader source) which in turn requires that `Shell.GLSLEffect` is used instead of `Clutter.ShaderEffect`. This change also requires that all shaders now work with straight instead of premultiplied alpha. Anyways, a lot needed to be refactored for this fix and I hope that it did not bring too many visual changes.
|
||||||
|
* Fixed the window-close animation of windows which were opened before the session was started (e.g. before GNOME Shell has been restarted).
|
||||||
|
* There seem to be cases were `libadwaita` is not available on GNOME 42 (e.g. Pop!_OS 22.04 beta). The preferences dialog now tries to fallback to the GTK4-only variant if `libadwaita` is not available.
|
||||||
|
|
||||||
|
## [Burn My Windows 15](https://github.com/schneegans/Burn-My-Windows/releases/tag/v15)
|
||||||
|
|
||||||
|
**Release Date:** 2022-04-06
|
||||||
|
|
||||||
|
#### New Features
|
||||||
|
|
||||||
|
* **New Effect: Apparition.** This effect hides the window by violently sucking it into the void of magic. This is available only for GNOME Shell 3.38 and newer.
|
||||||
|
* **New Effect: Hexagon.** With glowing lines and hexagon-shaped tiles, this effect looks very sci-fi. This is available for GNOME Shell 3.36 and newer.
|
||||||
|
* **New Effect: Snap of Disintegration.** This was requested quite frequently! Dissolve your windows into a cloud of dust. This is available only for GNOME Shell 40 and newer.
|
||||||
|
|
||||||
|
#### Bug Fixes
|
||||||
|
|
||||||
|
* Disabled the buggy "Shatter from pointer" option of the Broken Glass effect when opening windows (it only makes sense for closing windows).
|
||||||
|
|
||||||
|
## [Burn My Windows 14](https://github.com/schneegans/Burn-My-Windows/releases/tag/v14)
|
||||||
|
|
||||||
|
**Release Date:** 2022-03-29
|
||||||
|
|
||||||
|
#### Enhancements
|
||||||
|
|
||||||
|
* Reduced the lower animation time limits for all effects to 100 ms. This should now allow for very snappy animations!
|
||||||
|
* A completely new Russian translation. Thank you, ANIGO R.!
|
||||||
|
|
||||||
|
#### Bug Fixes
|
||||||
|
|
||||||
|
* Fixed the version check for GNOME Shell `42.rc` (before it only worked on `42.alpha` and `42.beta`)
|
||||||
|
|
||||||
|
|
||||||
|
## [Burn My Windows 13](https://github.com/schneegans/Burn-My-Windows/releases/tag/v13)
|
||||||
|
|
||||||
|
**Release Date:** 2022-03-27
|
||||||
|
|
||||||
|
#### Enhancements
|
||||||
|
|
||||||
|
* The continuous integration tests have been significantly enhanced. Now, all window-open and window-close animations are visually tested on all supported GNOME versions and on X11 / Wayland (summing up to a total of 136 test cases).
|
||||||
|
* Many translation updates, including a completely new Turkish and Chinese translation. A BIG THANKS to all translators!
|
||||||
|
|
||||||
|
#### Other Changes
|
||||||
|
|
||||||
|
* Removed the Liberapay donation option as it does not work properly.
|
||||||
|
|
||||||
|
#### Bug Fixes
|
||||||
|
|
||||||
|
* Fixed the version check for GNOME Shell 42.
|
||||||
|
|
||||||
|
## [Burn My Windows 12](https://github.com/schneegans/Burn-My-Windows/releases/tag/v12)
|
||||||
|
|
||||||
|
**Release Date:** 2022-02-19
|
||||||
|
|
||||||
|
#### New Features
|
||||||
|
|
||||||
|
* Added initial support for GNOME Shell 42.
|
||||||
|
* The preferences dialog now uses libadwaita on GNOME Shell 42.
|
||||||
|
|
||||||
|
#### Enhancements
|
||||||
|
|
||||||
|
* Added [Liberapay](https://liberapay.com/Schneegans) to the sponsorship options.
|
||||||
|
|
||||||
|
## [Burn My Windows 11](https://github.com/schneegans/Burn-My-Windows/releases/tag/v11)
|
||||||
|
|
||||||
|
**Release Date:** 2022-02-03
|
||||||
|
|
||||||
|
#### New Features
|
||||||
|
|
||||||
|
* Added an about-dialog which shows all translators and sponsors.
|
||||||
|
|
||||||
|
#### Enhancements
|
||||||
|
|
||||||
|
* There are several new translations! Thanks a lot to all the translators! We now have translations for:
|
||||||
|
* German
|
||||||
|
* English
|
||||||
|
* Czech
|
||||||
|
* Dutch
|
||||||
|
* French
|
||||||
|
* Italian
|
||||||
|
* Norwegian Bokmål
|
||||||
|
* Spanish
|
||||||
|
* A new issue template for suggesting new effects has been added.
|
||||||
|
|
||||||
|
#### Fixes
|
||||||
|
|
||||||
|
* Fixed an issue which caused corrupted windows when trying to maximize windows while the window-open animation was still running (#82, #86, #91).
|
||||||
|
|
||||||
|
## [Burn My Windows 10](https://github.com/schneegans/Burn-My-Windows/releases/tag/v10)
|
||||||
|
|
||||||
|
**Release Date:** 2022-01-31
|
||||||
|
|
||||||
|
#### New Features
|
||||||
|
|
||||||
|
<a href="https://youtu.be/L2aaNF_rPHo"><img align="right" src ="pics/bmw10.jpg" /></a>
|
||||||
|
|
||||||
|
* **Effects for Window Opening.** You can now select effects which are applied on newly opened windows! I expect that there are some bugs left, so please [report any issue you find](https://github.com/Schneegans/Burn-My-Windows/issues)!
|
||||||
|
* **New Effect: Broken Glass.** Shatter your windows into a shower sharp shards! This effect can be configured so that the shards fly away from your mouse pointer position!
|
||||||
|
* **Preview Buttons** have been added to the effect-configuration pages of the preferences dialog. These can be used to, well, preview the current settings (without having to enable the effect first).
|
||||||
|
* **Translations!** It is now possible to [translate the preferences dialog](https://hosted.weblate.org/engage/burn-my-windows/). There is already a finished German translation, and in-progress translations to Italian and Norwegian Bokmål.
|
||||||
|
* **A "Vertical Overshooting" option** was added to the Matrix Effect: This can add some vertical variation to the start and end position of the letter drops.
|
||||||
|
|
||||||
|
#### Other Enhancements
|
||||||
|
|
||||||
|
* Added a menu entry with a link to the guide for creating new effect types.
|
||||||
|
* Thanks to improved timing, the default animation time of several effects could be reduced.
|
||||||
|
* The README now shows the current lines of code and the current comment percentage using my [dynamic-badges-action](https://github.com/Schneegans/dynamic-badges-action).
|
||||||
|
* **Add advanced CI tests:** For each commit to `main`, it is now tested whether the extension can be installed and if the preferences dialog can be shown on GNOME Shell 3.36, 3.38, 40, and 41. Both, X11 and Wayland are checked.
|
||||||
|
|
||||||
|
## [Burn My Windows 9](https://github.com/schneegans/Burn-My-Windows/releases/tag/v9)
|
||||||
|
|
||||||
|
**Release Date:** 2022-01-18
|
||||||
|
|
||||||
|
#### Fixes
|
||||||
|
|
||||||
|
* Improved compatibility with [Show Application View When Workspace Empty ](https://extensions.gnome.org/extension/2036/show-application-view-when-workspace-empty/) (#54).
|
||||||
|
* Fixed a crash which happened when the window-close icon in the overview was clicked twice (#49).
|
||||||
|
|
||||||
|
## [Burn My Windows 8](https://github.com/schneegans/Burn-My-Windows/releases/tag/v8)
|
||||||
|
|
||||||
|
**Release Date:** 2022-01-17
|
||||||
|
|
||||||
|
#### New Features
|
||||||
|
|
||||||
|
* **Random effects!** You can now select a set of effects of which one will be chosen randomly whenever you close a window. **This changes how effects are selected, so you will have to re-select your desired effect(s)**.
|
||||||
|
* **New Effect: Energize A.** Beam your windows away!
|
||||||
|
* **New Effect: Energize B.** Using different transporter technology results in an alternative visual effect.
|
||||||
|
* **New Effect: Wisps.** These little fairies carry your windows to the realm of dreams!
|
||||||
|
* Each effect has its own "Animation Time" setting now. The global animation time has been replaced by those, so **you may have to adjust the sliders to match your previous settings**.
|
||||||
|
|
||||||
|
#### Other Enhancements
|
||||||
|
|
||||||
|
* A [guide for creating new effects](how-to-create-new-effects.md) has been added.
|
||||||
|
* The source code has received a **major refactoring**. This will make the addition of new effects much easier in the future.
|
||||||
|
* The **layout of the settings dialog** has been reworked to make it easier to expand it in the future.
|
||||||
|
* The lower limit of the **animation time of the TV Effect** has been reduced.
|
||||||
|
* The T-Rex-Attack effect is not shown in fully transparent regions of a window any more.
|
||||||
|
* The shaders now use a different noise implementation which produces better 3D noise.
|
||||||
|
|
||||||
|
#### Fixes
|
||||||
|
|
||||||
|
* The extension now works even if GNOME Shell's animations are disabled globally.
|
||||||
|
|
||||||
|
|
||||||
|
## [Burn My Windows 7](https://github.com/schneegans/Burn-My-Windows/releases/tag/v7)
|
||||||
|
|
||||||
|
**Release Date:** 2022-01-03
|
||||||
|
|
||||||
|
#### New Features
|
||||||
|
|
||||||
|
* An option to use a 3D noise for the fire shader has been added. This will add some more temporal variation to the flames at the cost of slightly decreased rendering performance.
|
||||||
|
* A changelog entry has been added to the menu of the preferences dialog.
|
||||||
|
|
||||||
|
#### Fixes
|
||||||
|
|
||||||
|
* Resolve copyright issues by using a MIT-licensed noise implementation.
|
||||||
|
|
||||||
|
|
||||||
|
## [Burn My Windows 6](https://github.com/schneegans/Burn-My-Windows/releases/tag/v6)
|
||||||
|
|
||||||
|
**Release Date:** 2022-01-02
|
||||||
|
|
||||||
|
#### Fixes
|
||||||
|
|
||||||
|
* Removed a debug log message.
|
||||||
|
|
||||||
|
## [Burn My Windows 5](https://github.com/schneegans/Burn-My-Windows/releases/tag/v5)
|
||||||
|
|
||||||
|
**Release Date:** 2022-01-02
|
||||||
|
|
||||||
|
#### New Features
|
||||||
|
|
||||||
|
* Added a new ridiculous close-animation: the T-Rex-Attack!
|
||||||
|
* Added a new simple close-animation: the TV-Effect!
|
||||||
|
* Added a menu to the preferences dialog with links for bug reporting and donations.
|
||||||
|
|
||||||
|
#### Other Enhancements
|
||||||
|
|
||||||
|
* The fire shader now uses a `smoothstep` to make it less blocky.
|
||||||
|
|
||||||
|
#### Bug Fixes
|
||||||
|
|
||||||
|
* Fixed a bug which messed up the overview of GNOME Shell 3.36.
|
||||||
|
|
||||||
|
## [Burn My Windows 4](https://github.com/schneegans/Burn-My-Windows/releases/tag/v4)
|
||||||
|
|
||||||
|
**Release Date:** 2021-12-25
|
||||||
|
|
||||||
|
#### New Features
|
||||||
|
|
||||||
|
* Added a new Matrix shader which dissolves your windows in a shower of green letters. You can switch between the fire and the matrix shader in the settings. Sadly, this effect cannot be available under GNOME 3.3x as it was apparently impossible to set textures for a `Clutter.ShaderEffect` in GJS back then.
|
||||||
|
* Added a setting to apply the animation also for closing dialog windows.
|
||||||
|
|
||||||
|
#### Other Enhancements
|
||||||
|
|
||||||
|
* Refactored the code a lot to make it easier to add new shader effects in the future.
|
||||||
|
* Tweaked timing of the fire shader. Previously, the fire became invisible quite quickly. Due to this new animation timing, the default animation time has been reduced to 1500 ms.
|
||||||
|
|
||||||
|
## [Burn My Windows 3](https://github.com/schneegans/Burn-My-Windows/releases/tag/v3)
|
||||||
|
|
||||||
**Release Date:** 2021-12-20
|
**Release Date:** 2021-12-20
|
||||||
|
|
||||||
@@ -8,7 +217,7 @@
|
|||||||
|
|
||||||
* Add support for GNOME 3.36 and GNOME 3.38.
|
* Add support for GNOME 3.36 and GNOME 3.38.
|
||||||
|
|
||||||
## [Burn My Window 2](https://github.com/schneegans/Burn-My-Windows/releases/tag/v2)
|
## [Burn My Windows 2](https://github.com/schneegans/Burn-My-Windows/releases/tag/v2)
|
||||||
|
|
||||||
**Release Date:** 2021-12-16
|
**Release Date:** 2021-12-16
|
||||||
|
|
||||||
@@ -18,7 +227,7 @@
|
|||||||
* Added the possibility to adjust flame speed and scale.
|
* Added the possibility to adjust flame speed and scale.
|
||||||
* Added some fire presets.
|
* Added some fire presets.
|
||||||
|
|
||||||
## [Burn My Window 1](https://github.com/schneegans/Burn-My-Windows/releases/tag/v1)
|
## [Burn My Windows 1](https://github.com/schneegans/Burn-My-Windows/releases/tag/v1)
|
||||||
|
|
||||||
**Release Date:** 2021-12-14
|
**Release Date:** 2021-12-14
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,570 @@
|
|||||||
|
# 🔥 Creating a new Effect for Burn-My-Windows
|
||||||
|
|
||||||
|
The extension is very modular and with a bit of creativity and GLSL knowledge, you can easily create your own effects.
|
||||||
|
If you are happy with your results, please open a pull request so that we can include your effect in the next version of Burn-My-Windows!
|
||||||
|
|
||||||
|
### Before you Start
|
||||||
|
|
||||||
|
First you should [fork the repository](https://github.com/Schneegans/Burn-My-Windows/fork) and clone it to your PC.
|
||||||
|
Afterwards, use a terminal in the directory of the cloned repository to install the extension.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
make install
|
||||||
|
```
|
||||||
|
|
||||||
|
_:information_source: Whenever you changed something in the source code, you will have to call this command and restart GNOME Shell with <kbd>Alt</kbd> + <kbd>F2</kbd>, <kbd>r</kbd> + <kbd>Enter</kbd>.
|
||||||
|
Or logout / login if you are on Wayland to see the changes._
|
||||||
|
|
||||||
|
### Debugging
|
||||||
|
|
||||||
|
Debugging GNOME Shell extensions is a bit difficult.
|
||||||
|
Most of the time, you will print messages to a log in order to understand what is going on.
|
||||||
|
To make this a bit more convenient, Burn-My-Windows includes the method `utils.debug("Hello World")`.
|
||||||
|
With this, each line will be prefixed with the extension's name, which will make spotting log messages more easy. You can use the following command to watch the log output; it will highlight all messages from Burn-My-Windows:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
journalctl -f -o cat | grep -E 'burn-my-windows|'
|
||||||
|
```
|
||||||
|
|
||||||
|
## Adding a new Effect
|
||||||
|
|
||||||
|
For the sake of this tutorial, we will create a **"Simple Fade"** effect.
|
||||||
|
Of course, you can replace any occurrence of this name and its nick `simple-fade` with your custom effect name.
|
||||||
|
|
||||||
|
Three simple steps are required to create a new effect.
|
||||||
|
You will have to ...
|
||||||
|
|
||||||
|
1. add preferences keys for enabling the effect,
|
||||||
|
2. create an additional effects class, and finally
|
||||||
|
3. register the new effect in two places.
|
||||||
|
|
||||||
|
### 1. Expanding the Schema
|
||||||
|
|
||||||
|
For enabling the new effect, the boolean settings keys `simple-fade-open-effect`, `simple-fade-close-effect`, and `simple-fade-animation-time` are required.
|
||||||
|
In this example, we also add a floating point value for storing another property of the effect - we will use them later in the tutorial.
|
||||||
|
Just copy the XML code below to the file [`schemas/org.gnome.shell.extensions.burn-my-windows.gschema.xml`](../schemas/org.gnome.shell.extensions.burn-my-windows.gschema.xml).
|
||||||
|
Just remember to replace `simple-fade` with your custom name!
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
|
||||||
|
<!-- Simple Fade Effect Options -->
|
||||||
|
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
|
||||||
|
|
||||||
|
<key name="simple-fade-close-effect" type="b">
|
||||||
|
<default>false</default>
|
||||||
|
<summary>Simple Fade Close Effect</summary>
|
||||||
|
<description>Use the Simple Fade effect for window closing.</description>
|
||||||
|
</key>
|
||||||
|
|
||||||
|
<key name="simple-fade-open-effect" type="b">
|
||||||
|
<default>false</default>
|
||||||
|
<summary>Simple Fade Open Effect</summary>
|
||||||
|
<description>Use the Simple Fade effect for window opening.</description>
|
||||||
|
</key>
|
||||||
|
|
||||||
|
<key name="simple-fade-animation-time" type="i">
|
||||||
|
<default>1500</default>
|
||||||
|
<summary>Simple Fade Animation Time</summary>
|
||||||
|
<description>The time the Simple Fade effect takes.</description>
|
||||||
|
</key>
|
||||||
|
|
||||||
|
<key name="simple-fade-width" type="d">
|
||||||
|
<default>0.1</default>
|
||||||
|
<summary>Simple Fade Width</summary>
|
||||||
|
<description>Width of the fading effect.</description>
|
||||||
|
</key>
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. Creating the Effect Class
|
||||||
|
|
||||||
|
You will have to create a new GLSL file called `resources/shaders/simple-fade.glsl` and a new JavaScript source file called `src/SimpleFade.js`.
|
||||||
|
Simply paste the following source code to the respective file.
|
||||||
|
Please study this code carefully, all of it is explained with inline comments.
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>Expand this to show the GLSL code.</summary>
|
||||||
|
|
||||||
|
```glsl
|
||||||
|
// The code below injects some standard uniforms which will be updated during the
|
||||||
|
// animation. This includes:
|
||||||
|
// bool uForOpening: True if a window-open animation is ongoing, false otherwise.
|
||||||
|
// sampler2D uTexture: Contains the texture of the window.
|
||||||
|
// float uProgress: A value which transitions from 0 to 1 during the entire animation.
|
||||||
|
// float uTime: A steadily increasing value in seconds.
|
||||||
|
// vec2 uSize: The size of uTexture in pixels.
|
||||||
|
// float uPadding: The empty area around the actual window (e.g. where the shadow is drawn).
|
||||||
|
#include "common/uniforms.glsl"
|
||||||
|
|
||||||
|
// The width of the fading effect is loaded from the settings.
|
||||||
|
uniform float uFadeWidth;
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
// Get the color from the window texture.
|
||||||
|
cogl_color_out = texture2D(uTexture, cogl_tex_coord_in[0].st);
|
||||||
|
|
||||||
|
// Shell.GLSLEffect uses straight alpha. So we have to convert from premultiplied.
|
||||||
|
if (cogl_color_out.a > 0) {
|
||||||
|
cogl_color_out.rgb /= cogl_color_out.a;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Radial distance from window edge to the window's center.
|
||||||
|
float dist = length(cogl_tex_coord_in[0].st - 0.5) * 2.0 / sqrt(2.0);
|
||||||
|
|
||||||
|
// This gradually dissolves from [1..0] from the outside to the center. We
|
||||||
|
// switch the direction for opening and closing.
|
||||||
|
float progress = uForOpening ? 1.0 - uProgress : uProgress;
|
||||||
|
float mask = (1.0 - progress * (1.0 + uFadeWidth) - dist + uFadeWidth) / uFadeWidth;
|
||||||
|
|
||||||
|
// Make the mask smoother.
|
||||||
|
mask = smoothstep(0, 1, mask);
|
||||||
|
|
||||||
|
// Apply the mask to the output.
|
||||||
|
cogl_color_out.a *= mask;
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>Expand this to show the JavaScript code.</summary>
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
//////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// ) ( //
|
||||||
|
// ( /( ( ( ) ( ( ( ( )\ ) ( ( //
|
||||||
|
// )\()) ))\ )( ( ( )\ ) )\))( )\ ( (()/( ( )\))( ( //
|
||||||
|
// ((_)\ /((_|()\ )\ ) )\ '(()/( ((_)()((_) )\ ) ((_)))\((_)()\ )\ //
|
||||||
|
// | |(_|_))( ((_)_(_/( _((_)) )(_)) _(()((_|_)_(_/( _| |((_)(()((_|(_) //
|
||||||
|
// | '_ \ || | '_| ' \)) | ' \()| || | \ V V / | ' \)) _` / _ \ V V (_-< //
|
||||||
|
// |_.__/\_,_|_| |_||_| |_|_|_| \_, | \_/\_/|_|_||_|\__,_\___/\_/\_//__/ //
|
||||||
|
// |__/ //
|
||||||
|
// Copyright (c) 2021 Simon Schneegans //
|
||||||
|
// Released under the GPLv3 or later. See LICENSE file for details. //
|
||||||
|
//////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
const GObject = imports.gi.GObject;
|
||||||
|
|
||||||
|
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;
|
||||||
|
const ShaderFactory = Me.imports.src.ShaderFactory.ShaderFactory;
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// This effect ... //
|
||||||
|
// <- Please add a description of your effect here -> //
|
||||||
|
//////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
// 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
|
||||||
|
// well as to create the actual shader for the effect.
|
||||||
|
var SimpleFade = class {
|
||||||
|
|
||||||
|
// 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
|
||||||
|
// GLSL file in resources/shaders/<nick>.glsl. The callback will be called for each
|
||||||
|
// newly created shader instance.
|
||||||
|
constructor() {
|
||||||
|
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.
|
||||||
|
shader._uForOpening = shader.get_uniform_location('uForOpening');
|
||||||
|
shader._uFadeWidth = shader.get_uniform_location('uFadeWidth');
|
||||||
|
|
||||||
|
// Write all uniform values at the start of each animation.
|
||||||
|
shader.connect('begin-animation', (shader, settings) => {
|
||||||
|
shader.set_uniform_float(shader._uForOpening, 1, [forOpening]);
|
||||||
|
shader.set_uniform_float(shader._uFadeWidth, 1, [settings.get_double('simple-fade-width')]);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// ---------------------------------------------------------------------------- metadata
|
||||||
|
|
||||||
|
// The effect is available on all GNOME Shell versions supported by this extension.
|
||||||
|
getMinShellVersion() {
|
||||||
|
return [3, 36];
|
||||||
|
}
|
||||||
|
|
||||||
|
// 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
|
||||||
|
// effect is enabled currently (e.g. '*-close-effect'), and its animation time
|
||||||
|
// (e.g. '*-animation-time').
|
||||||
|
getNick() {
|
||||||
|
return 'simple-fade';
|
||||||
|
}
|
||||||
|
|
||||||
|
// 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.
|
||||||
|
getLabel() {
|
||||||
|
return _('Simple Fade Effect');
|
||||||
|
}
|
||||||
|
|
||||||
|
// -------------------------------------------------------------------- API for prefs.js
|
||||||
|
|
||||||
|
// This is called by the preferences dialog. It loads the settings page for this effect,
|
||||||
|
// binds all properties to the settings and appends the page to the main stack of the
|
||||||
|
// preferences dialog.
|
||||||
|
getPreferences(dialog) {
|
||||||
|
// Empty for now... Code is added here later in the tutorial!
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ---------------------------------------------------------------- API for extension.js
|
||||||
|
|
||||||
|
// 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
|
||||||
|
// bounds of the actor. This only works for GNOME 3.38+.
|
||||||
|
getActorScale(settings) {
|
||||||
|
return {x: 1.0, y: 1.0};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
||||||
|
### 3. Registering the new Effect
|
||||||
|
|
||||||
|
You will have to register the new effect in two files.
|
||||||
|
Both, [`extension.js`](../extension.js) and [`prefs.js`](../prefs.js) define an array in the beginning where you have to add an import to your new effect.
|
||||||
|
Like this:
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
const ALL_EFFECTS = [
|
||||||
|
...
|
||||||
|
new Me.imports.src.SimpleFade.SimpleFade(),
|
||||||
|
...
|
||||||
|
];
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
### 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>.
|
||||||
|
Or logout / login if you are on Wayland.
|
||||||
|
You can open the extension's preferences and choose the new effect!
|
||||||
|
However, there are no configuration options yet.
|
||||||
|
It is also not possible to adjust the animation time setting.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
gnome-extensions prefs burn-my-windows@schneegans.github.com
|
||||||
|
```
|
||||||
|
|
||||||
|
## Adding a Preferences Page
|
||||||
|
|
||||||
|
There should be two sliders in this example: The animation duration and the width of the fading gradient.
|
||||||
|
|
||||||
|
If your effect supports GNOME Shell 3.3x _and_ GNOME Shell 40+, you will have to provide two `*.ui` files for this.
|
||||||
|
This is because starting with GNOME Shell 40, the preference dialog uses GTK4, before it used to use GTK3.
|
||||||
|
Usually, there are only a few minor differences between the two files.
|
||||||
|
We will load the respective file in the `getPreferences()` method of your new effect class.
|
||||||
|
|
||||||
|
Just save the code below to `resources/ui/gtk3/SimpleFade.ui` and `resources/ui/gtk4/SimpleFade.ui` respectively.
|
||||||
|
Remember to replace any occurrence of `simple-fade` with your effect's nick-name!
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>Expand this to show the GTK3 code.</summary>
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<interface>
|
||||||
|
|
||||||
|
<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="GtkBox" id="simple-fade-prefs">
|
||||||
|
<property name="orientation">vertical</property>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkFrame">
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBox">
|
||||||
|
<property name="selection-mode">none</property>
|
||||||
|
<style>
|
||||||
|
<class name="rich-list" />
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="margin-start">10</property>
|
||||||
|
<property name="margin-end">10</property>
|
||||||
|
<property name="margin-top">10</property>
|
||||||
|
<property name="margin-bottom">10</property>
|
||||||
|
<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="margin-start">10</property>
|
||||||
|
<property name="margin-end">10</property>
|
||||||
|
<property name="margin-top">10</property>
|
||||||
|
<property name="margin-bottom">10</property>
|
||||||
|
<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>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
|
||||||
|
</interface>
|
||||||
|
```
|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>Expand this to show the GTK4 code.</summary>
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<interface>
|
||||||
|
|
||||||
|
<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="GtkBox" id="simple-fade-prefs">
|
||||||
|
<property name="orientation">vertical</property>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkFrame">
|
||||||
|
<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">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>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
|
||||||
|
</interface>
|
||||||
|
```
|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
||||||
|
### Loading the Preferences Page
|
||||||
|
|
||||||
|
In order to load the above `*.ui` files, add the following code to your effect's `getPreferences()` method.
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
static getPreferences(dialog) {
|
||||||
|
|
||||||
|
// Add the settings page to the builder.
|
||||||
|
dialog.getBuilder().add_from_resource(`/ui/${utils.getGTKString()}/SimpleFade.ui`);
|
||||||
|
|
||||||
|
// These connect the settings to the UI elements. Have a look at prefs.js
|
||||||
|
// on how to bind other types of UI elements.
|
||||||
|
dialog.bindAdjustment('simple-fade-animation-time');
|
||||||
|
dialog.bindAdjustment('simple-fade-width');
|
||||||
|
|
||||||
|
// Finally, return the new settings page.
|
||||||
|
return dialog.getBuilder().get_object('simple-fade-prefs');
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Once this is in place, you can kill the extension-preferences process and re-open the settings.
|
||||||
|
It is not required to reload GNOME Shell for developing the preferences dialog!
|
||||||
|
Here's a handy one-liner to do this:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
make install && pkill -f '.Extensions' && sleep 2 ; gnome-extensions prefs burn-my-windows@schneegans.github.com
|
||||||
|
```
|
||||||
|
|
||||||
|
## Summing Up
|
||||||
|
|
||||||
|
That's it!
|
||||||
|
If you have any questions, feel free to [ask them on the discussions board](https://github.com/Schneegans/Burn-My-Windows/discussions).
|
||||||
|
If you are happy with your effect, submit a pull request, and it may get included in the next version!
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
# Preview GIFs
|
||||||
|
|
||||||
|
The preview GIFs are recorded with OBS Studio at 1920x1080, cut to a length of exactly two seconds and converted to a GIF with the following command:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
gifski --fps 30 -W 400 -H 225 -o effect.gif effect.mp4
|
||||||
|
```
|
||||||
|
After Width: | Height: | Size: 415 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 38 KiB |
|
After Width: | Height: | Size: 1.0 MiB |
|
After Width: | Height: | Size: 958 KiB |
|
After Width: | Height: | Size: 949 KiB |
|
After Width: | Height: | Size: 1.1 MiB |
|
After Width: | Height: | Size: 615 KiB |
|
After Width: | Height: | Size: 625 KiB |
|
After Width: | Height: | Size: 928 KiB |
|
Before Width: | Height: | Size: 1.7 MiB |
|
After Width: | Height: | Size: 136 KiB |
|
After Width: | Height: | Size: 936 KiB |
|
After Width: | Height: | Size: 203 KiB |
|
After Width: | Height: | Size: 821 KiB |
@@ -13,21 +13,31 @@
|
|||||||
|
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
const {Clutter} = imports.gi;
|
const {Clutter, Gio, Meta} = imports.gi;
|
||||||
|
|
||||||
const Workspace = imports.ui.workspace.Workspace;
|
const Main = imports.ui.main;
|
||||||
const WindowManager = imports.ui.windowManager.WindowManager;
|
const Workspace = imports.ui.workspace.Workspace;
|
||||||
const WINDOW_REPOSITIONING_DELAY = imports.ui.workspace.WINDOW_REPOSITIONING_DELAY;
|
const WindowManager = imports.ui.windowManager.WindowManager;
|
||||||
|
|
||||||
|
// The WindowPreview class is only available on GNOME Shell 3.38+;
|
||||||
|
let WindowPreview = null;
|
||||||
|
try {
|
||||||
|
WindowPreview = imports.ui.windowPreview.WindowPreview;
|
||||||
|
} catch (error) {
|
||||||
|
// Nothing to be done, we are on GNOME Shell 3.36.
|
||||||
|
}
|
||||||
|
|
||||||
const ExtensionUtils = imports.misc.extensionUtils;
|
const ExtensionUtils = imports.misc.extensionUtils;
|
||||||
const Me = imports.misc.extensionUtils.getCurrentExtension();
|
const Me = imports.misc.extensionUtils.getCurrentExtension();
|
||||||
const utils = Me.imports.utils;
|
const utils = Me.imports.src.utils;
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////////////////
|
||||||
// This extensions modifies the window-close animation to look like the window was set //
|
// This extensions modifies the window-close and window-open animations with all kinds //
|
||||||
// on fire. While this is definitely a homage to the good old Compiz plugin, it is //
|
// of effects. The effects are implemented using GLSL shaders which are applied to the //
|
||||||
// implemented differently. While Compiz used a particle system, this extension uses a //
|
// window's Clutter.Actor. The extension is actually very simple, much of the //
|
||||||
// perlin noise shader. //
|
// complexity comes from the fact that GNOME Shell usually does not show an animation //
|
||||||
|
// when a window is closed in the overview. Several methods need to be monkey-patched //
|
||||||
|
// to get this working. For more details, read the other comments in this file... //
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
class Extension {
|
class Extension {
|
||||||
@@ -38,266 +48,505 @@ class Extension {
|
|||||||
// from GNOME Tweaks, when you log in or when the screen is unlocked.
|
// from GNOME Tweaks, when you log in or when the screen is unlocked.
|
||||||
enable() {
|
enable() {
|
||||||
|
|
||||||
|
// New effects must be registered here and in prefs.js.
|
||||||
|
this._ALL_EFFECTS = [
|
||||||
|
new Me.imports.src.Apparition.Apparition(),
|
||||||
|
new Me.imports.src.BrokenGlass.BrokenGlass(),
|
||||||
|
new Me.imports.src.EnergizeA.EnergizeA(),
|
||||||
|
new Me.imports.src.EnergizeB.EnergizeB(),
|
||||||
|
new Me.imports.src.Fire.Fire(),
|
||||||
|
new Me.imports.src.Hexagon.Hexagon(),
|
||||||
|
new Me.imports.src.Matrix.Matrix(),
|
||||||
|
new Me.imports.src.SnapOfDisintegration.SnapOfDisintegration(),
|
||||||
|
new Me.imports.src.TRexAttack.TRexAttack(),
|
||||||
|
new Me.imports.src.TVEffect.TVEffect(),
|
||||||
|
new Me.imports.src.Wisps.Wisps(),
|
||||||
|
];
|
||||||
|
|
||||||
|
// Load all of our resources.
|
||||||
|
this._resources = Gio.Resource.load(Me.path + '/resources/burn-my-windows.gresource');
|
||||||
|
Gio.resources_register(this._resources);
|
||||||
|
|
||||||
// Store a reference to the settings object.
|
// Store a reference to the settings object.
|
||||||
this._settings = ExtensionUtils.getSettings();
|
this._settings = ExtensionUtils.getSettings();
|
||||||
|
|
||||||
// We will monkey-patch these three methods. Let's store the original ones.
|
// We will use extensionThis to refer to the extension inside the patched methods.
|
||||||
this._origWindowRemoved = Workspace.prototype._windowRemoved;
|
|
||||||
this._origDoRemoveWindow = Workspace.prototype._doRemoveWindow;
|
|
||||||
this._origShouldAnimateActor = WindowManager.prototype._shouldAnimateActor;
|
|
||||||
|
|
||||||
// We may also override these animation times.
|
|
||||||
this._origDestroyTime = imports.ui.windowManager.DESTROY_WINDOW_ANIMATION_TIME;
|
|
||||||
|
|
||||||
const loadAnimationTimes = () => {
|
|
||||||
imports.ui.windowManager.DESTROY_WINDOW_ANIMATION_TIME =
|
|
||||||
this._settings.get_int('destroy-animation-time');
|
|
||||||
};
|
|
||||||
|
|
||||||
this._settings.connect('changed::destroy-animation-time', loadAnimationTimes);
|
|
||||||
loadAnimationTimes();
|
|
||||||
|
|
||||||
// We will use extensionThis to refer to the extension inside the patched methods of
|
|
||||||
// the WorkspacesView.
|
|
||||||
const extensionThis = this;
|
const extensionThis = this;
|
||||||
|
|
||||||
// These three method overrides are mega-hacky! They are only required to make the
|
// We will monkey-patch these methods. Let's store the original ones.
|
||||||
// fire animation work in the overview. Usually, windows are not faded when closed
|
this._origAddWindowClone = Workspace.prototype._addWindowClone;
|
||||||
// from the overview (why?). With these overrides we make sure that they are actually
|
this._origWindowRemoved = Workspace.prototype._windowRemoved;
|
||||||
// faded out. To do this, _windowRemoved and _doRemoveWindow now check whether there
|
this._origDoRemoveWindow = Workspace.prototype._doRemoveWindow;
|
||||||
// is a transition ongoing (via extensionThis._shouldDestroy). If that's the case,
|
this._origShouldAnimateActor = WindowManager.prototype._shouldAnimateActor;
|
||||||
// they methods do nothing. Are the actors removed in the end? I hope so. The
|
this._origWaitForOverviewToHide = WindowManager.prototype._waitForOverviewToHide;
|
||||||
// _destroyWindow of the WindowManager sets the transitions up and should take care of
|
this._origDestroyWindowDone = WindowManager.prototype._destroyWindowDone;
|
||||||
// removing the actors at the end of the transitions.
|
|
||||||
// https://gitlab.gnome.org/GNOME/gnome-shell/-/blob/main/js/ui/workspace.js#L1299
|
// We will also override these animation times.
|
||||||
|
this._origWindowTime = imports.ui.windowManager.DESTROY_WINDOW_ANIMATION_TIME;
|
||||||
|
this._origDialogTime = imports.ui.windowManager.DIALOG_DESTROY_WINDOW_ANIMATION_TIME;
|
||||||
|
|
||||||
|
|
||||||
|
// ------------------------------------------------ patching the window-open animation
|
||||||
|
|
||||||
|
// Here we add an effect to the window-open animation. This is done whenever a new
|
||||||
|
// window is created. Usually, there is no real window animation for opening windows
|
||||||
|
// in the overview - only the window's clone is animated - but thanks to the hacks
|
||||||
|
// below, we can show the real animations in the overview.
|
||||||
|
|
||||||
|
// If a window is created the transitions are set up in the async _mapWindow of the
|
||||||
|
// WindowManager:
|
||||||
|
// https://gitlab.gnome.org/GNOME/gnome-shell/-/blob/main/js/ui/windowManager.js#L1452
|
||||||
|
// AFAIK, overriding this method is not possible as it's called by a signal to
|
||||||
|
// which it is bound via the bind() method. To tweak the async transition
|
||||||
|
// anyways, we override the actors ease() method once - the next time it will be
|
||||||
|
// called by the _mapWindow(), we will intercept it!
|
||||||
|
this._windowCreatedConnection =
|
||||||
|
global.display.connect('window-created', (d, metaWin) => {
|
||||||
|
let actor = metaWin.get_compositor_private();
|
||||||
|
|
||||||
|
const orig = actor.ease;
|
||||||
|
actor.ease = function(...params) {
|
||||||
|
orig.apply(actor, params);
|
||||||
|
actor.ease = orig;
|
||||||
|
|
||||||
|
// There are cases where the ease() is called prior to mapping the actor. If
|
||||||
|
// the actor is not yet mapped, we defer the effect creation.
|
||||||
|
if (actor.mapped) {
|
||||||
|
extensionThis._setupEffect(actor, true);
|
||||||
|
} else {
|
||||||
|
const connectionID = actor.connect('notify::mapped', () => {
|
||||||
|
extensionThis._setupEffect(actor, true);
|
||||||
|
actor.disconnect(connectionID);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
|
// Some of the effects require that the window's actor is enlarged to provide a bigger
|
||||||
|
// canvas to draw the effects. Outside the overview we can simply increase the scale
|
||||||
|
// of the actor. However, if we are in the overview, we have to enlarge the clone of
|
||||||
|
// the window as well.
|
||||||
|
Workspace.prototype._addWindowClone = function(...params) {
|
||||||
|
const result = extensionThis._origAddWindowClone.apply(this, params);
|
||||||
|
|
||||||
|
// The parameters of this method changed a bit through the versions...
|
||||||
|
let realWindow, clone;
|
||||||
|
|
||||||
|
if (utils.shellVersionIs(3, 36)) {
|
||||||
|
clone = result[0];
|
||||||
|
realWindow = clone.realWindow;
|
||||||
|
} else if (utils.shellVersionIs(3, 38)) {
|
||||||
|
clone = result._windowContainer;
|
||||||
|
realWindow = params[0].get_compositor_private();
|
||||||
|
} else {
|
||||||
|
clone = result.window_container;
|
||||||
|
realWindow = params[0].get_compositor_private();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Syncing the real window's scale with the scale of its clone only works on GNOME
|
||||||
|
// Shell 3.38+. So effects cannot scale windows in the overview of GNOME 3.36...
|
||||||
|
if (utils.shellVersionIsAtLeast(3, 38)) {
|
||||||
|
const xID = realWindow.connect('notify::scale-x', () => {
|
||||||
|
if (realWindow.scale_x > 0 && clone.allocation.get_size()[0] > 0) {
|
||||||
|
clone.scale_x = realWindow.scale_x;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
const yID = realWindow.connect('notify::scale-y', () => {
|
||||||
|
if (realWindow.scale_y > 0 && clone.allocation.get_size()[1] > 0) {
|
||||||
|
clone.scale_y = realWindow.scale_y;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
clone.connect('destroy', () => {
|
||||||
|
realWindow.disconnect(xID);
|
||||||
|
realWindow.disconnect(yID);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// 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#L1405
|
||||||
|
if (utils.shellVersionIs(3, 36)) {
|
||||||
|
clone.connect('destroy', () => this._doRemoveWindow(clone.metaWindow));
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
};
|
||||||
|
|
||||||
|
// Usually, windows are faded in after the overview is completely hidden. We enable
|
||||||
|
// window-open animations by not waiting for this.
|
||||||
|
WindowManager.prototype._waitForOverviewToHide = async function() {
|
||||||
|
return Promise.resolve();
|
||||||
|
};
|
||||||
|
|
||||||
|
// Here comes the ULTRA-HACK: The method below is called (amongst others) by the
|
||||||
|
// _destroyWindow and _mapWindow methods of the WindowManager. Usually, it returns
|
||||||
|
// false when we are in the overview. This prevents the window animations. As we
|
||||||
|
// cannot monkey-patch the _destroyWindow or _mapWindow methods themselves, we check
|
||||||
|
// inside the method below whether it was called by either of those. If so, we return
|
||||||
|
// true. Let's see if this breaks stuff left and right...
|
||||||
|
// https://gitlab.gnome.org/GNOME/gnome-shell/-/blob/main/js/ui/windowManager.js#L1124
|
||||||
|
WindowManager.prototype._shouldAnimateActor = function(...params) {
|
||||||
|
const caller = (new Error()).stack.split('\n')[1];
|
||||||
|
if (caller.includes('_destroyWindow@') || caller.includes('_mapWindow@')) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return extensionThis._origShouldAnimateActor.apply(this, params);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
// ----------------------------------------------- patching the window-close animation
|
||||||
|
|
||||||
|
// The signal handler below and the following patch are all which is required outside
|
||||||
|
// of the overview. All other hacks further below are just required to defer the
|
||||||
|
// window-hiding in the overview until the effect is finished.
|
||||||
|
|
||||||
|
// The close animation is set up in WindowManager's _destroyWindow:
|
||||||
|
// https://gitlab.gnome.org/GNOME/gnome-shell/-/blob/main/js/ui/windowManager.js#L1541
|
||||||
|
// As we cannot monkey-patch the _destroyWindow itself, we connect to the 'destroy'
|
||||||
|
// signal of the window manager and tweak the animation to our needs.
|
||||||
|
this._destroyConnection = global.window_manager.connect('destroy', (wm, actor) => {
|
||||||
|
this._setupEffect(actor, false);
|
||||||
|
});
|
||||||
|
|
||||||
|
// Once the window-close animation is is finished, the window manager's
|
||||||
|
// _destroyWindowDone is called. We use this to free the effect so that it can be
|
||||||
|
// re-used in future.
|
||||||
|
// https://gitlab.gnome.org/GNOME/gnome-shell/-/blob/main/js/ui/windowManager.js#L1541
|
||||||
|
WindowManager.prototype._destroyWindowDone = function(shellwm, actor) {
|
||||||
|
if (this._destroying.has(actor)) {
|
||||||
|
const shader = actor.get_effect('burn-my-windows-effect');
|
||||||
|
if (shader) {
|
||||||
|
actor.remove_effect(shader);
|
||||||
|
shader.returnToFactory();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Call the original method.
|
||||||
|
extensionThis._origDestroyWindowDone.apply(this, [shellwm, actor]);
|
||||||
|
};
|
||||||
|
|
||||||
|
// These three method overrides are mega-hacky! Usually, windows are not faded when
|
||||||
|
// closed from the overview (why?). With these overrides we make sure that they are
|
||||||
|
// actually faded out. To do this, _windowRemoved and _doRemoveWindow now check
|
||||||
|
// whether there is a transition ongoing (via extensionThis._shouldDestroy). If that's
|
||||||
|
// the case, these methods do nothing. Are the actors removed in the end? I hope so.
|
||||||
|
// The _destroyWindow of the WindowManager sets the transitions up and should take
|
||||||
|
// care of removing the actors at the end of the transitions.
|
||||||
|
// https://gitlab.gnome.org/GNOME/gnome-shell/-/blob/main/js/ui/workspace.js#L1301
|
||||||
Workspace.prototype._windowRemoved = function(ws, metaWin) {
|
Workspace.prototype._windowRemoved = function(ws, metaWin) {
|
||||||
if (extensionThis._shouldDestroy(this, metaWin)) {
|
if (extensionThis._shouldDestroy(this, metaWin)) {
|
||||||
extensionThis._origWindowRemoved.apply(this, [ws, metaWin]);
|
extensionThis._origWindowRemoved.apply(this, [ws, metaWin]);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// https://gitlab.gnome.org/GNOME/gnome-shell/-/blob/main/js/ui/workspace.js#L1178
|
// https://gitlab.gnome.org/GNOME/gnome-shell/-/blob/main/js/ui/workspace.js#L1180
|
||||||
Workspace.prototype._doRemoveWindow = function(metaWin) {
|
Workspace.prototype._doRemoveWindow = function(metaWin) {
|
||||||
if (extensionThis._shouldDestroy(this, metaWin)) {
|
if (extensionThis._shouldDestroy(this, metaWin)) {
|
||||||
extensionThis._origDoRemoveWindow.apply(this, [metaWin]);
|
extensionThis._origDoRemoveWindow.apply(this, [metaWin]);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// Here comes the ULTRA-HACK: The method below is called (amongst others) by the
|
// With the code below, we hide the window-overlay (icon, label, close button) in the
|
||||||
// _destroyWindow method of the WindowManager. Usually, it returns false when we are
|
// overview once the close-animation is running. As the WindowPreview class is only
|
||||||
// in the overview. This prevents the window-close animation. As we cannot
|
// available on GNOME 3.38 and beyond, we cannot hide the overlay on GNOME 3.36.
|
||||||
// monkey-patch the _destroyWindow method itself, we check inside the method below
|
if (WindowPreview) {
|
||||||
// whether it was called by _destroyWindow. If so, we return true. Let's see if this
|
|
||||||
// breaks stuff left and right...
|
|
||||||
// https://gitlab.gnome.org/GNOME/gnome-shell/-/blob/main/js/ui/windowManager.js#L1125
|
|
||||||
WindowManager.prototype._shouldAnimateActor = function(actor, types) {
|
|
||||||
if ((new Error()).stack.split('\n')[1].includes('_destroyWindow@')) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return extensionThis._origShouldAnimateActor.apply(this, [actor, types]);
|
|
||||||
};
|
|
||||||
|
|
||||||
// The close animation is set up in WindowManager's _destroyWindow:
|
// We will monkey-patch these methods.
|
||||||
// https://gitlab.gnome.org/GNOME/gnome-shell/-/blob/main/js/ui/windowManager.js#L1549
|
this._origDeleteAll = WindowPreview.prototype._deleteAll;
|
||||||
// As we cannot monkey-patch the _destroyWindow itself, we connect to the 'destroy'
|
this._origRestack = WindowPreview.prototype._restack;
|
||||||
// signal of the window manager and tweak the animation to our needs.
|
this._origInit = WindowPreview.prototype._init;
|
||||||
this._destroyConnection = global.window_manager.connect('destroy', (wm, actor) => {
|
|
||||||
// The _destroyWindow method of WindowManager, which was called right before this
|
|
||||||
// one, set up the window close animation. This usually fades-out the window and
|
|
||||||
// scales it a bit down. If no transition is in progress, something unexpected
|
|
||||||
// happened. We rather try not to burn the window!
|
|
||||||
const transition = actor.get_transition('opacity');
|
|
||||||
if (!transition) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// If there's a transition in progress, we re-target these transitions so that the
|
// Whenever a WindowPreview is created, we connect to the referenced Meta.Window's
|
||||||
// window is neither scaled nor faded.
|
// 'unmanaged' signal to hide the overlay.
|
||||||
const tweakTransition = (property, value) => {
|
WindowPreview.prototype._init = function(...params) {
|
||||||
const transition = actor.get_transition(property);
|
extensionThis._origInit.apply(this, params);
|
||||||
if (transition) {
|
|
||||||
transition.set_to(value);
|
// Hide the window's icon, name, and close button.
|
||||||
transition.set_progress_mode(Clutter.AnimationMode.EASE_OUT_QUAD);
|
const connectionID = this.metaWindow.connect('unmanaged', () => {
|
||||||
|
if (this.window_container) {
|
||||||
|
this.overlayEnabled = false;
|
||||||
|
this._icon.visible = false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// Make sure to not call the callback above if the Meta.Window was not unmanaged
|
||||||
|
// before leaving the overview.
|
||||||
|
this.connect('destroy', () => {
|
||||||
|
this.metaWindow.disconnect(connectionID);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
// The _deleteAll is called when the user clicks the X in the overview. We should
|
||||||
|
// not attempt to close windows twice. Due to the animation in the overview, the
|
||||||
|
// close button can be clicked twice which normally would lead to a crash.
|
||||||
|
WindowPreview.prototype._deleteAll = function() {
|
||||||
|
if (!this._closeRequested) {
|
||||||
|
extensionThis._origDeleteAll.apply(this);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
tweakTransition('opacity', 255);
|
// This is required, else WindowPreview's _restack() which is called by the
|
||||||
tweakTransition('scale-x', 1);
|
// "this.overlayEnabled = false", sometimes tries to access an already delete
|
||||||
tweakTransition('scale-y', 1);
|
// WindowPreview.
|
||||||
|
WindowPreview.prototype._restack = function() {
|
||||||
// Instead, we add a cool fire shader to our window actor! The noise implementation
|
if (!this._closeRequested) {
|
||||||
// is from https://www.shadertoy.com/view/3tcBzH (CC-BY-NC-SA).
|
extensionThis._origRestack.apply(this);
|
||||||
const shader = new Clutter.ShaderEffect({
|
|
||||||
shader_type: Clutter.ShaderType.FRAGMENT_SHADER,
|
|
||||||
});
|
|
||||||
|
|
||||||
// Load the gradient values from the settings. We directly inject the values in the
|
|
||||||
// GLSL code below. The shader is compiled once for each window-closing anyways. In
|
|
||||||
// the future, we my want to prevent this frequent recompilations of shaders,
|
|
||||||
// though.
|
|
||||||
const gradient = [];
|
|
||||||
for (let i = 1; i <= 5; i++) {
|
|
||||||
const color =
|
|
||||||
Clutter.Color.from_string(this._settings.get_string('fire-color-' + i))[1];
|
|
||||||
gradient.push(`vec4(${color.red / 255}, ${color.green / 255}, ${
|
|
||||||
color.blue / 255}, ${color.alpha / 255})`);
|
|
||||||
}
|
|
||||||
|
|
||||||
shader.set_shader_source(`
|
|
||||||
uniform sampler2D texture;
|
|
||||||
uniform float progress;
|
|
||||||
uniform float time;
|
|
||||||
uniform int sizeX;
|
|
||||||
uniform int sizeY;
|
|
||||||
|
|
||||||
// These may be configurable in the future.
|
|
||||||
const float EDGE_BLEND = 70;
|
|
||||||
const float BURN_RANGE = 0.1;
|
|
||||||
const float BURN_TIME = 0.2;
|
|
||||||
const vec2 FIRE_SCALE = vec2(400, 600) * ${
|
|
||||||
this._settings.get_double('flame-scale')};
|
|
||||||
const float FIRE_SPEED = ${this._settings.get_double('flame-movement-speed')};
|
|
||||||
|
|
||||||
float rand(vec2 co) {
|
|
||||||
return fract(sin(dot(co.xy ,vec2(12.9898,78.233))) * 43758.5453);
|
|
||||||
}
|
}
|
||||||
|
};
|
||||||
float hermite(float t) {
|
}
|
||||||
return t * t * (3.0 - 2.0 * t);
|
|
||||||
}
|
|
||||||
|
|
||||||
float noiseImpl(vec2 co, float frequency) {
|
|
||||||
vec2 v = vec2(co.x * frequency, co.y * frequency);
|
|
||||||
|
|
||||||
float ix1 = floor(v.x);
|
|
||||||
float iy1 = floor(v.y);
|
|
||||||
float ix2 = floor(v.x + 1.0);
|
|
||||||
float iy2 = floor(v.y + 1.0);
|
|
||||||
|
|
||||||
float fx = hermite(fract(v.x));
|
|
||||||
float fy = hermite(fract(v.y));
|
|
||||||
|
|
||||||
float fade1 = mix(rand(vec2(ix1, iy1)), rand(vec2(ix2, iy1)), fx);
|
|
||||||
float fade2 = mix(rand(vec2(ix1, iy2)), rand(vec2(ix2, iy2)), fx);
|
|
||||||
|
|
||||||
return mix(fade1, fade2, fy);
|
|
||||||
}
|
|
||||||
|
|
||||||
float pNoise(vec2 co, float freq, int steps, float persistence) {
|
|
||||||
float value = 0.0;
|
|
||||||
float ampl = 1.0;
|
|
||||||
float sum = 0.0;
|
|
||||||
for(int i=0 ; i<steps ; i++) {
|
|
||||||
sum += ampl;
|
|
||||||
value += noiseImpl(co, freq) * ampl;
|
|
||||||
freq *= 2.0;
|
|
||||||
ampl *= persistence;
|
|
||||||
}
|
|
||||||
return value / sum;
|
|
||||||
}
|
|
||||||
|
|
||||||
vec4 getFireColor(float v) {
|
|
||||||
const float steps[5] = float[](0.0, 0.2, 0.35, 0.5, 0.8);
|
|
||||||
const vec4 colors[5] = vec4[](
|
|
||||||
${gradient[0]},
|
|
||||||
${gradient[1]},
|
|
||||||
${gradient[2]},
|
|
||||||
${gradient[3]},
|
|
||||||
${gradient[4]}
|
|
||||||
);
|
|
||||||
|
|
||||||
if (v < steps[0]) {
|
|
||||||
return colors[0];
|
|
||||||
}
|
|
||||||
|
|
||||||
for (int i=0; i<4; ++i) {
|
|
||||||
if (v <= steps[i+1]) {
|
|
||||||
return mix(colors[i], colors[i+1], vec4(v - steps[i])/(steps[i+1]-steps[i]));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return colors[4];
|
|
||||||
}
|
|
||||||
|
|
||||||
void main(void) {
|
|
||||||
float burnProgress = clamp(progress/BURN_TIME, 0, 1);
|
|
||||||
float afterBurnProgress = clamp((progress-BURN_TIME)/(1-BURN_TIME), 0, 1);
|
|
||||||
|
|
||||||
// Gradient from top to bottom.
|
|
||||||
float t = cogl_tex_coord_in[0].t * (1 - BURN_RANGE);
|
|
||||||
|
|
||||||
// Visible part of the window. Gradually dissolves towards the bottom.
|
|
||||||
float alpha = 1 - clamp((burnProgress - t) / BURN_RANGE, 0, 1);
|
|
||||||
|
|
||||||
// Get window texture.
|
|
||||||
cogl_color_out = texture2D(texture, cogl_tex_coord_in[0].st) * alpha;
|
|
||||||
|
|
||||||
// Gradient from top burning window.
|
|
||||||
float mask = clamp(t*(1-alpha)/burnProgress, 0, 1);
|
|
||||||
|
|
||||||
// Fade-out when the window burned down.
|
|
||||||
if (progress > BURN_TIME) {
|
|
||||||
mask *= mix(1, 1-t, afterBurnProgress) * pow(1-afterBurnProgress, 2);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Fade at window borders.
|
|
||||||
vec2 pos = cogl_tex_coord_in[0].st * vec2(sizeX, sizeY);
|
|
||||||
mask *= clamp(pos.x / EDGE_BLEND, 0, 1);
|
|
||||||
mask *= clamp(pos.y / EDGE_BLEND, 0, 1);
|
|
||||||
mask *= clamp((sizeX - pos.x) / EDGE_BLEND, 0, 1);
|
|
||||||
mask *= clamp((sizeY - pos.y) / EDGE_BLEND, 0, 1);
|
|
||||||
|
|
||||||
vec2 firePos = pos / FIRE_SCALE;
|
|
||||||
firePos.y += time * FIRE_SPEED;
|
|
||||||
float noise = pNoise(firePos, 10.0, 5, 0.5);
|
|
||||||
|
|
||||||
// Modulate noise by mask and map to color.
|
|
||||||
vec4 color = getFireColor(noise*mask);
|
|
||||||
color.rgb *= color.a;
|
|
||||||
|
|
||||||
// cogl_color_out = vec4(mask);
|
|
||||||
cogl_color_out += color;
|
|
||||||
}
|
|
||||||
`);
|
|
||||||
|
|
||||||
actor.add_effect(shader);
|
|
||||||
|
|
||||||
// Update uniforms at each frame.
|
|
||||||
transition.connect('new-frame', (t) => {
|
|
||||||
shader.set_uniform_value('progress', t.get_progress());
|
|
||||||
shader.set_uniform_value('time', 0.001 * t.get_elapsed_time());
|
|
||||||
shader.set_uniform_value('sizeX', actor.width);
|
|
||||||
shader.set_uniform_value('sizeY', actor.height);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 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.
|
||||||
disable() {
|
disable() {
|
||||||
|
|
||||||
// Restore the original behavior.
|
// Free all effect resources.
|
||||||
|
this._ALL_EFFECTS = [];
|
||||||
|
|
||||||
|
// Unregister our resources.
|
||||||
|
Gio.resources_unregister(this._resources);
|
||||||
|
|
||||||
|
// Restore the original window-open and window-close animations.
|
||||||
global.window_manager.disconnect(this._destroyConnection);
|
global.window_manager.disconnect(this._destroyConnection);
|
||||||
|
global.display.disconnect(this._windowCreatedConnection);
|
||||||
|
|
||||||
Workspace.prototype._windowRemoved = this._origWindowRemoved;
|
Workspace.prototype._addWindowClone = this._origAddWindowClone;
|
||||||
Workspace.prototype._doRemoveWindow = this._origDoRemoveWindow;
|
Workspace.prototype._windowRemoved = this._origWindowRemoved;
|
||||||
WindowManager.prototype._shouldAnimateActor = this._origShouldAnimateActor;
|
Workspace.prototype._doRemoveWindow = this._origDoRemoveWindow;
|
||||||
|
WindowManager.prototype._shouldAnimateActor = this._origShouldAnimateActor;
|
||||||
|
WindowManager.prototype._waitForOverviewToHide = this._origWaitForOverviewToHide;
|
||||||
|
WindowManager.prototype._destroyWindowDone = this._origDestroyWindowDone;
|
||||||
|
|
||||||
imports.ui.windowManager.DESTROY_WINDOW_ANIMATION_TIME = this._origDestroyTime;
|
imports.ui.windowManager.DESTROY_WINDOW_ANIMATION_TIME = this._origWindowTime;
|
||||||
|
imports.ui.windowManager.DIALOG_DESTROY_WINDOW_ANIMATION_TIME = this._origDialogTime;
|
||||||
|
|
||||||
|
if (WindowPreview) {
|
||||||
|
WindowPreview.prototype._deleteAll = this._origDeleteAll;
|
||||||
|
WindowPreview.prototype._restack = this._origRestack;
|
||||||
|
WindowPreview.prototype._init = this._origInit;
|
||||||
|
}
|
||||||
|
|
||||||
this._settings = null;
|
this._settings = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
// ----------------------------------------------------------------------- private stuff
|
// ----------------------------------------------------------------------- private stuff
|
||||||
|
|
||||||
|
// This method adds one of the configured effects to the given actor. If forOpening is
|
||||||
|
// set to true, a effect from the enabled window-open animations is chosen, else an
|
||||||
|
// enabled window-close animation is used. This will also tweak the transitions of the
|
||||||
|
// given actor (e.g. scale it up if required).
|
||||||
|
_setupEffect(actor, forOpening) {
|
||||||
|
|
||||||
|
// Only add effects to normal windows and dialog windows.
|
||||||
|
const isNormalWindow = actor.meta_window.window_type == Meta.WindowType.NORMAL;
|
||||||
|
const isDialogWindow =
|
||||||
|
actor.meta_window.window_type == Meta.WindowType.MODAL_DIALOG ||
|
||||||
|
actor.meta_window.window_type == Meta.WindowType.DIALOG;
|
||||||
|
|
||||||
|
if (!isNormalWindow && !isDialogWindow) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// We do nothing if a dialog got closed and we should not burn them.
|
||||||
|
const shouldDestroyDialogs = this._settings.get_boolean('destroy-dialogs');
|
||||||
|
|
||||||
|
// If an effect is to be previewed, we have to affect dialogs es well. This is
|
||||||
|
// because the preview window is a dialog window...
|
||||||
|
const action = forOpening ? 'open' : 'close';
|
||||||
|
const previewNick = this._settings.get_string(action + '-preview-effect');
|
||||||
|
|
||||||
|
if (isDialogWindow && !shouldDestroyDialogs && previewNick == '') {
|
||||||
|
this._fixAnimationTimes(isDialogWindow, forOpening, null);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// There is the weird case where an animation is already ongoing. This happens when a
|
||||||
|
// window is closed which has been created before the session was started (e.g. when
|
||||||
|
// GNOME Shell has been restarted in the meantime).
|
||||||
|
const oldShader = actor.get_effect('burn-my-windows-effect');
|
||||||
|
if (oldShader) {
|
||||||
|
actor.remove_effect(oldShader);
|
||||||
|
oldShader.returnToFactory();
|
||||||
|
}
|
||||||
|
|
||||||
|
// ------------------------------------------------------------------ choose an effect
|
||||||
|
|
||||||
|
// Now we chose a random effect from all enabled effects.
|
||||||
|
let effect = null;
|
||||||
|
|
||||||
|
// First we check if an effect is to be previewed.
|
||||||
|
if (previewNick != '') {
|
||||||
|
effect = this._ALL_EFFECTS.find(effect => effect.getNick() == previewNick);
|
||||||
|
|
||||||
|
// Only preview the effect once.
|
||||||
|
this._settings.set_string(action + '-preview-effect', '');
|
||||||
|
|
||||||
|
}
|
||||||
|
// Else we choose a random effect from all enabled effects.
|
||||||
|
else {
|
||||||
|
|
||||||
|
// Therefore, we first create a list of all currently enabled effects.
|
||||||
|
const enabled = this._ALL_EFFECTS.filter(effect => {
|
||||||
|
return this._settings.get_boolean(`${effect.getNick()}-${action}-effect`);
|
||||||
|
});
|
||||||
|
|
||||||
|
// And then choose a random effect.
|
||||||
|
if (enabled.length > 0) {
|
||||||
|
effect = enabled[Math.floor(Math.random() * enabled.length)];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// If nothing was enabled, we have to do nothing :)
|
||||||
|
if (effect == null) {
|
||||||
|
this._fixAnimationTimes(isDialogWindow, forOpening, null);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ----------------------------------------------------------- tweak actor transitions
|
||||||
|
|
||||||
|
// If we are currently performing integration test, all animations are set to a fixed
|
||||||
|
// duration and show a fixed frame from the middle of the animation.
|
||||||
|
const testMode = this._settings.get_boolean('test-mode');
|
||||||
|
|
||||||
|
// The following is used to tweak the ongoing transitions of a window actor. Usually
|
||||||
|
// 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
|
||||||
|
// actorScale.
|
||||||
|
const actorScale = effect.getActorScale(this._settings);
|
||||||
|
|
||||||
|
// To make things deterministic during testing, we set the effect duration to 5
|
||||||
|
// seconds.
|
||||||
|
const duration =
|
||||||
|
testMode ? 5000 : this._settings.get_int(effect.getNick() + '-animation-time');
|
||||||
|
|
||||||
|
// All animations are relative to the window's center.
|
||||||
|
actor.set_pivot_point(0.5, 0.5);
|
||||||
|
|
||||||
|
|
||||||
|
// We tweak the opacity and scale of the actor. If there is no ongoing transition for
|
||||||
|
// a property, a new one is set up.
|
||||||
|
const config = {'opacity': 255, 'scale-x': actorScale.x, 'scale-y': actorScale.y};
|
||||||
|
|
||||||
|
for (const property in config) {
|
||||||
|
let transition = actor.get_transition(property);
|
||||||
|
|
||||||
|
// If there is currently no ongoing transition, we create a new one. Clutter does
|
||||||
|
// not like to create transitions with the same start and end value - however, we
|
||||||
|
// need at least one transition for our progress value in the shader. So we trick
|
||||||
|
// Clutter by creating an arbitrary transition first and then modifying the start
|
||||||
|
// and end values according to our config object.
|
||||||
|
if (!transition) {
|
||||||
|
actor.set_property(property, 0);
|
||||||
|
actor.save_easing_state();
|
||||||
|
actor.set_easing_duration(1000);
|
||||||
|
actor.set_property(property, 1);
|
||||||
|
actor.restore_easing_state();
|
||||||
|
|
||||||
|
// Now there should be a transition!
|
||||||
|
transition = actor.get_transition(property);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Tweak the transition according to the config object. For some reason, there are
|
||||||
|
// rare cases, where no transition is set up. This happens from time to time...
|
||||||
|
if (transition) {
|
||||||
|
transition.set_duration(duration);
|
||||||
|
transition.set_to(config[property]);
|
||||||
|
transition.set_from(config[property]);
|
||||||
|
transition.set_progress_mode(Clutter.AnimationMode.LINEAR);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Once the transitions are finished, we restore the original actor size.
|
||||||
|
if (forOpening) {
|
||||||
|
const connectionID = actor.connect('transitions-completed', () => {
|
||||||
|
actor.scale_x = 1.0;
|
||||||
|
actor.scale_y = 1.0;
|
||||||
|
actor.disconnect(connectionID);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// -------------------------------------------------------------------- add the shader
|
||||||
|
|
||||||
|
// Now add a cool shader to our window actor!
|
||||||
|
const shader = effect.shaderFactory.getShader();
|
||||||
|
|
||||||
|
// There should always be an opacity transition going on...
|
||||||
|
const transition = actor.get_transition('opacity');
|
||||||
|
|
||||||
|
if (!transition) {
|
||||||
|
this._fixAnimationTimes(isDialogWindow, forOpening, null);
|
||||||
|
utils.debug('Cannot setup shader without opacity transition.')
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Assign the effect to the window actor!
|
||||||
|
actor.add_effect_with_name('burn-my-windows-effect', shader);
|
||||||
|
|
||||||
|
// Set one-time uniforms.
|
||||||
|
shader.beginAnimation(this._settings, forOpening, actor);
|
||||||
|
|
||||||
|
// Set other uniforms each frame.
|
||||||
|
transition.connect('new-frame', (t) => {
|
||||||
|
if (testMode) {
|
||||||
|
shader.updateAnimation(0.5, 0.001 * duration * 0.5);
|
||||||
|
} else {
|
||||||
|
shader.updateAnimation(t.get_progress(), 0.001 * t.get_elapsed_time());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// Remove the effect if the animation finished or was interrupted.
|
||||||
|
if (forOpening) {
|
||||||
|
transition.connect('stopped', () => {
|
||||||
|
const oldShader = actor.get_effect('burn-my-windows-effect');
|
||||||
|
if (oldShader) {
|
||||||
|
actor.remove_effect(oldShader);
|
||||||
|
oldShader.returnToFactory();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// Finally, ensure that all animation times are set properly so that other extensions
|
||||||
|
// may guess how long it will take until windows are gone :)
|
||||||
|
this._fixAnimationTimes(isDialogWindow, forOpening, duration);
|
||||||
|
}
|
||||||
|
|
||||||
|
// The code below is not necessary for Burn-My-Windows to function. However, there
|
||||||
|
// are some extensions such as "Show Application View When Workspace Empty"
|
||||||
|
// https://extensions.gnome.org/extension/2036/show-application-view-when-workspace-empty/
|
||||||
|
// which do something *after* a window was closed. As the window-close animation
|
||||||
|
// duration depends on the used effect, this may vary each time a window is
|
||||||
|
// closed. We set the currently used time here, so that others can get an idea how
|
||||||
|
// long this will take...
|
||||||
|
_fixAnimationTimes(isDialogWindow, forOpening, duration) {
|
||||||
|
if (!forOpening) {
|
||||||
|
if (isDialogWindow) {
|
||||||
|
imports.ui.windowManager.DIALOG_DESTROY_WINDOW_ANIMATION_TIME =
|
||||||
|
duration != null ? duration : this._origDialogTime;
|
||||||
|
} else {
|
||||||
|
imports.ui.windowManager.DESTROY_WINDOW_ANIMATION_TIME =
|
||||||
|
duration != null ? duration : this._origWindowTime;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// This is required to enable window-close animations in the overview. See the comment
|
||||||
|
// for Workspace.prototype._windowRemoved above for an explanation.
|
||||||
_shouldDestroy(workspace, metaWindow) {
|
_shouldDestroy(workspace, metaWindow) {
|
||||||
const index = workspace._lookupIndex(metaWindow);
|
const index = workspace._lookupIndex(metaWindow);
|
||||||
if (index == -1) {
|
if (index == -1) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
const actor = workspace._windows[index]._windowActor;
|
// This was called "realWindow" in GNOME 3.36.
|
||||||
if (!actor.get_transition('opacity')) {
|
const propertyName = utils.shellVersionIs(3, 36) ? 'realWindow' : '_windowActor';
|
||||||
|
const actor = workspace._windows[index][propertyName];
|
||||||
|
if (!actor.get_transition('scale-y')) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"uuid": "burn-my-windows@schneegans.github.com",
|
"uuid": "burn-my-windows@schneegans.github.com",
|
||||||
"description": "Disintegrate your apps the old-school way.",
|
"description": "Disintegrate your windows with style.",
|
||||||
"name": "Burn My Windows",
|
"name": "Burn My Windows",
|
||||||
"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",
|
||||||
@@ -8,8 +8,9 @@
|
|||||||
"3.36",
|
"3.36",
|
||||||
"3.38",
|
"3.38",
|
||||||
"40",
|
"40",
|
||||||
"41"
|
"41",
|
||||||
|
"42"
|
||||||
],
|
],
|
||||||
"url": "https://github.com/Schneegans/Burn-My-Windows",
|
"url": "https://github.com/Schneegans/Burn-My-Windows",
|
||||||
"version": 3
|
"version": 16
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,363 @@
|
|||||||
|
# SOME DESCRIPTIVE TITLE.
|
||||||
|
# Copyright (C) YEAR Simon Schneegans
|
||||||
|
# This file is distributed under the same license as the burn-my-windows package.
|
||||||
|
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||||
|
#
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: burn-my-windows\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2022-04-05 09:22+0200\n"
|
||||||
|
"PO-Revision-Date: 2022-05-17 19:18+0000\n"
|
||||||
|
"Last-Translator: fawaz006 <fawaz27000@hotmail.com>\n"
|
||||||
|
"Language-Team: Arabic <https://hosted.weblate.org/projects/burn-my-windows/"
|
||||||
|
"core/ar/>\n"
|
||||||
|
"Language: ar\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 "
|
||||||
|
"&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n"
|
||||||
|
"X-Generator: Weblate 4.13-dev\n"
|
||||||
|
|
||||||
|
#: prefs.js:112
|
||||||
|
msgid "Effect Options"
|
||||||
|
msgstr "خيارات التأثير"
|
||||||
|
|
||||||
|
#: prefs.js:140
|
||||||
|
msgid "Go Back"
|
||||||
|
msgstr "عُد"
|
||||||
|
|
||||||
|
#: prefs.js:182
|
||||||
|
msgid "General Options"
|
||||||
|
msgstr "خيارات عامة"
|
||||||
|
|
||||||
|
#: prefs.js:276
|
||||||
|
msgid "Gold Sponsors"
|
||||||
|
msgstr "الرعاة الذهبيون"
|
||||||
|
|
||||||
|
#: prefs.js:279
|
||||||
|
msgid "Silver Sponsors"
|
||||||
|
msgstr "الرعاة الفضيون"
|
||||||
|
|
||||||
|
#: prefs.js:282
|
||||||
|
msgid "Bronze Sponsors"
|
||||||
|
msgstr "الرعاة البرونزيون"
|
||||||
|
|
||||||
|
#: prefs.js:285
|
||||||
|
msgid "Past Sponsors"
|
||||||
|
msgstr "الرعاة السابقون"
|
||||||
|
|
||||||
|
#. Translators: %s will be replaced by the effect's name.
|
||||||
|
#: prefs.js:510
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Preview for %s"
|
||||||
|
msgstr "معاينة لـ %s"
|
||||||
|
|
||||||
|
#: prefs.js:532
|
||||||
|
msgid "Close this Window to Preview the Effect!"
|
||||||
|
msgstr "أغلق هذه النافذة لمعاينة التأثير!"
|
||||||
|
|
||||||
|
#: src/BrokenGlass.js:57
|
||||||
|
msgid "Broken Glass"
|
||||||
|
msgstr "زجاج المكسور"
|
||||||
|
|
||||||
|
#: src/TVEffect.js:56
|
||||||
|
msgid "TV Effect"
|
||||||
|
msgstr "تأثير التلفزيون"
|
||||||
|
|
||||||
|
#: src/TRexAttack.js:56
|
||||||
|
msgid "T-Rex Attack"
|
||||||
|
msgstr "هجوم تي ريكس"
|
||||||
|
|
||||||
|
#: src/SnapOfDisintegration.js:60
|
||||||
|
msgid "Snap of Disintegration"
|
||||||
|
msgstr "الانفجار القطع"
|
||||||
|
|
||||||
|
#: src/Wisps.js:55
|
||||||
|
msgid "Wisps"
|
||||||
|
msgstr "قطع"
|
||||||
|
|
||||||
|
#: src/Fire.js:58
|
||||||
|
msgid "Fire"
|
||||||
|
msgstr "نار"
|
||||||
|
|
||||||
|
#: src/Fire.js:130
|
||||||
|
msgid "Default Fire"
|
||||||
|
msgstr "النار الافتراضية"
|
||||||
|
|
||||||
|
#: src/Fire.js:140
|
||||||
|
msgid "Hell Fire"
|
||||||
|
msgstr "نار حارقة"
|
||||||
|
|
||||||
|
#: src/Fire.js:150
|
||||||
|
msgid "Dark and Smutty"
|
||||||
|
msgstr "داكن وقذر"
|
||||||
|
|
||||||
|
#: src/Fire.js:160
|
||||||
|
msgid "Cold Breeze"
|
||||||
|
msgstr "نسيم بارد"
|
||||||
|
|
||||||
|
#: src/Fire.js:170
|
||||||
|
msgid "Santa is Coming"
|
||||||
|
msgstr "سانتا قادم"
|
||||||
|
|
||||||
|
#: src/Hexagon.js:53
|
||||||
|
msgid "Hexagon"
|
||||||
|
msgstr "سداسي الزوايا"
|
||||||
|
|
||||||
|
#: src/EnergizeA.js:54
|
||||||
|
msgid "Energize A"
|
||||||
|
msgstr "تنشيط أ"
|
||||||
|
|
||||||
|
#: src/Apparition.js:57
|
||||||
|
msgid "Apparition"
|
||||||
|
msgstr "شبح"
|
||||||
|
|
||||||
|
#: src/EnergizeB.js:54
|
||||||
|
msgid "Energize B"
|
||||||
|
msgstr "تنشيط ب"
|
||||||
|
|
||||||
|
#: src/Matrix.js:58
|
||||||
|
msgid "Matrix"
|
||||||
|
msgstr "ماتركس"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:6
|
||||||
|
msgid "Visit Homepage"
|
||||||
|
msgstr "قم بزيارة الصفحة الرئيسية"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:10
|
||||||
|
msgid "View Changelog"
|
||||||
|
msgstr "مشاهدة ملف Changelog"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:16
|
||||||
|
msgid "Report a Bug"
|
||||||
|
msgstr "الإبلاغ عن خلل"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:20
|
||||||
|
msgid "Create an Effect"
|
||||||
|
msgstr "انشاء تأثير"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:24
|
||||||
|
msgid "Translate"
|
||||||
|
msgstr "ترجم"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:28
|
||||||
|
msgid "Donate"
|
||||||
|
msgstr "تبرع"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:41
|
||||||
|
msgid "About Burn-My-Windows"
|
||||||
|
msgstr "حول Burn-My-Windows"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:24 resources/ui/gtk4/BrokenGlass.ui:24
|
||||||
|
#: resources/ui/gtk4/Wisps.ui:24 resources/ui/gtk4/Fire.ui:49
|
||||||
|
#: resources/ui/gtk4/SnapOfDisintegration.ui:24
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:24 resources/ui/gtk4/TVEffect.ui:24
|
||||||
|
#: resources/ui/gtk4/EnergizeA.ui:24 resources/ui/gtk4/Hexagon.ui:24
|
||||||
|
#: resources/ui/gtk4/EnergizeB.ui:24 resources/ui/gtk4/Apparition.ui:24
|
||||||
|
#: resources/ui/gtk3/Wisps.ui:42 resources/ui/gtk3/Fire.ui:93
|
||||||
|
#: resources/ui/gtk3/TVEffect.ui:35 resources/ui/gtk3/EnergizeA.ui:42
|
||||||
|
#: resources/ui/gtk3/Hexagon.ui:49 resources/ui/gtk3/EnergizeB.ui:42
|
||||||
|
#: resources/ui/gtk3/Apparition.ui:63
|
||||||
|
msgid "Animation Time [ms]"
|
||||||
|
msgstr "المدة [م,ث]"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:52 resources/ui/gtk4/Matrix.ui:98
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:144 resources/ui/gtk4/Matrix.ui:190
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:224 resources/ui/gtk4/Matrix.ui:258
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:52 resources/ui/gtk4/BrokenGlass.ui:98
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:144 resources/ui/gtk4/BrokenGlass.ui:190
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:244 resources/ui/gtk4/Wisps.ui:52
|
||||||
|
#: resources/ui/gtk4/Wisps.ui:98 resources/ui/gtk4/Wisps.ui:132
|
||||||
|
#: resources/ui/gtk4/Fire.ui:77 resources/ui/gtk4/Fire.ui:123
|
||||||
|
#: resources/ui/gtk4/Fire.ui:169 resources/ui/gtk4/Fire.ui:222
|
||||||
|
#: resources/ui/gtk4/Fire.ui:280 resources/ui/gtk4/TRexAttack.ui:52
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:98 resources/ui/gtk4/TRexAttack.ui:144
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:190 resources/ui/gtk4/TRexAttack.ui:224
|
||||||
|
#: resources/ui/gtk4/TVEffect.ui:52 resources/ui/gtk4/TVEffect.ui:86
|
||||||
|
#: resources/ui/gtk4/EnergizeA.ui:52 resources/ui/gtk4/EnergizeA.ui:98
|
||||||
|
#: resources/ui/gtk4/EnergizeA.ui:132 resources/ui/gtk4/Hexagon.ui:52
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:98 resources/ui/gtk4/Hexagon.ui:144
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:178 resources/ui/gtk4/Hexagon.ui:212
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:265 resources/ui/gtk4/EnergizeB.ui:52
|
||||||
|
#: resources/ui/gtk4/EnergizeB.ui:98 resources/ui/gtk4/EnergizeB.ui:132
|
||||||
|
#: resources/ui/gtk4/prefs.ui:166 resources/ui/gtk4/Apparition.ui:52
|
||||||
|
#: resources/ui/gtk4/Apparition.ui:98 resources/ui/gtk4/Apparition.ui:144
|
||||||
|
#: resources/ui/gtk4/Apparition.ui:190 resources/ui/gtk4/Apparition.ui:236
|
||||||
|
#: resources/ui/gtk3/Wisps.ui:68 resources/ui/gtk3/Wisps.ui:117
|
||||||
|
#: resources/ui/gtk3/Wisps.ui:160 resources/ui/gtk3/Fire.ui:119
|
||||||
|
#: resources/ui/gtk3/Fire.ui:167 resources/ui/gtk3/Fire.ui:215
|
||||||
|
#: resources/ui/gtk3/Fire.ui:277 resources/ui/gtk3/Fire.ui:345
|
||||||
|
#: resources/ui/gtk3/TVEffect.ui:61 resources/ui/gtk3/TVEffect.ui:104
|
||||||
|
#: resources/ui/gtk3/EnergizeA.ui:68 resources/ui/gtk3/EnergizeA.ui:117
|
||||||
|
#: resources/ui/gtk3/EnergizeA.ui:160 resources/ui/gtk3/Hexagon.ui:75
|
||||||
|
#: resources/ui/gtk3/Hexagon.ui:124 resources/ui/gtk3/Hexagon.ui:173
|
||||||
|
#: resources/ui/gtk3/Hexagon.ui:216 resources/ui/gtk3/Hexagon.ui:259
|
||||||
|
#: resources/ui/gtk3/Hexagon.ui:321 resources/ui/gtk3/EnergizeB.ui:68
|
||||||
|
#: resources/ui/gtk3/EnergizeB.ui:117 resources/ui/gtk3/EnergizeB.ui:160
|
||||||
|
#: resources/ui/gtk3/prefs.ui:219 resources/ui/gtk3/Apparition.ui:89
|
||||||
|
#: resources/ui/gtk3/Apparition.ui:138 resources/ui/gtk3/Apparition.ui:187
|
||||||
|
#: resources/ui/gtk3/Apparition.ui:236 resources/ui/gtk3/Apparition.ui:285
|
||||||
|
msgid "Reset to Default Value"
|
||||||
|
msgstr "إعادة التعيين إلى القيمة الافتراضية"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:70 resources/ui/gtk4/BrokenGlass.ui:70
|
||||||
|
#: resources/ui/gtk4/Wisps.ui:70 resources/ui/gtk4/Fire.ui:95
|
||||||
|
#: resources/ui/gtk4/SnapOfDisintegration.ui:70
|
||||||
|
#: resources/ui/gtk4/EnergizeA.ui:70 resources/ui/gtk4/Hexagon.ui:70
|
||||||
|
#: resources/ui/gtk4/EnergizeB.ui:70 resources/ui/gtk3/Wisps.ui:91
|
||||||
|
#: resources/ui/gtk3/Fire.ui:141 resources/ui/gtk3/EnergizeA.ui:91
|
||||||
|
#: resources/ui/gtk3/Hexagon.ui:98 resources/ui/gtk3/EnergizeB.ui:91
|
||||||
|
msgid "Scale"
|
||||||
|
msgstr "مقاس"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:116 resources/ui/gtk4/Apparition.ui:70
|
||||||
|
#: resources/ui/gtk3/Apparition.ui:112
|
||||||
|
msgid "Randomness"
|
||||||
|
msgstr "العشوائية"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:162
|
||||||
|
msgid "Vertical Overshooting"
|
||||||
|
msgstr "تجاوز رأسي"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:208
|
||||||
|
msgid "Trail Color"
|
||||||
|
msgstr "لون الممر"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:242
|
||||||
|
msgid "Tip Color"
|
||||||
|
msgstr "لون الحافة"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:116
|
||||||
|
msgid "Gravity"
|
||||||
|
msgstr "الجاذبية"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:162
|
||||||
|
msgid "Blow Force"
|
||||||
|
msgstr "قوة النفخ"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:212
|
||||||
|
msgid "Shatter From Pointer Location"
|
||||||
|
msgstr "تتحطم من موقع المؤشر"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:221
|
||||||
|
msgid ""
|
||||||
|
"The shards will fly away from where your mouse pointer was when closing the "
|
||||||
|
"window."
|
||||||
|
msgstr "ستنتقل القطع بعيدًا عن مكان وجود مؤشر الماوس عند إغلاق النافذة."
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Wisps.ui:116 resources/ui/gtk4/SnapOfDisintegration.ui:116
|
||||||
|
#: resources/ui/gtk4/TVEffect.ui:70 resources/ui/gtk4/EnergizeA.ui:116
|
||||||
|
#: resources/ui/gtk4/EnergizeB.ui:116 resources/ui/gtk3/Wisps.ui:139
|
||||||
|
#: resources/ui/gtk3/TVEffect.ui:83 resources/ui/gtk3/EnergizeA.ui:139
|
||||||
|
#: resources/ui/gtk3/EnergizeB.ui:139
|
||||||
|
msgid "Color"
|
||||||
|
msgstr "اللون"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Fire.ui:25 resources/ui/gtk3/Fire.ui:49
|
||||||
|
msgid "Presets"
|
||||||
|
msgstr "الإعدادات المسبقة"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Fire.ui:141 resources/ui/gtk3/Fire.ui:189
|
||||||
|
msgid "Speed"
|
||||||
|
msgstr "السرعة"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Fire.ui:191 resources/ui/gtk3/Fire.ui:241
|
||||||
|
msgid "3D Noise"
|
||||||
|
msgstr "ضوضاء ثلاثية الأبعاد"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Fire.ui:200 resources/ui/gtk3/Fire.ui:250
|
||||||
|
msgid "Creates a more dynamic fire but requires more GPU power."
|
||||||
|
msgstr ""
|
||||||
|
"يُنشئ حريقًا أكثر ديناميكية ولكنه يتطلب المزيد من طاقة وحدة معالجة الرسومات."
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Fire.ui:240 resources/ui/gtk3/Fire.ui:300
|
||||||
|
msgid "Gradient"
|
||||||
|
msgstr "ميل"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:70
|
||||||
|
msgid "Claw Scratch Scale"
|
||||||
|
msgstr "حجم خدش المخلب"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:116
|
||||||
|
msgid "Claw Scratch Count"
|
||||||
|
msgstr "عدد خدوش المخلب"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:162
|
||||||
|
msgid "Warp Effect"
|
||||||
|
msgstr "تأثير الاعوجاج"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:208
|
||||||
|
msgid "Flash Color"
|
||||||
|
msgstr "ألوان مضيئة"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/effectPage.ui:37 resources/ui/gtk3/effectPage.ui:37
|
||||||
|
msgid "Preview this Effect"
|
||||||
|
msgstr "معاينة هذا التأثير"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:116 resources/ui/gtk3/Hexagon.ui:147
|
||||||
|
msgid "Mesh Line Width"
|
||||||
|
msgstr "عرض خط الشبكة"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:162 resources/ui/gtk3/Hexagon.ui:195
|
||||||
|
msgid "Line Color"
|
||||||
|
msgstr "لون السطر"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:196 resources/ui/gtk3/Hexagon.ui:238
|
||||||
|
msgid "Glow Color"
|
||||||
|
msgstr "توهج اللون"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:234 resources/ui/gtk3/Hexagon.ui:285
|
||||||
|
msgid "Additive Blending"
|
||||||
|
msgstr "مزج مضاف"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:243 resources/ui/gtk3/Hexagon.ui:294
|
||||||
|
msgid "You may want to enable this for dark window themes."
|
||||||
|
msgstr "قد ترغب في تمكين هذا لسمات النوافذ المظلمة."
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:28 resources/ui/gtk3/prefs.ui:35
|
||||||
|
msgid "Welcome to Burn-My-Windows!"
|
||||||
|
msgstr "مرحبًا بك في Burn-My-Windows!"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:39 resources/ui/gtk3/prefs.ui:46
|
||||||
|
msgid "If you like this extension, recommend it to your friends :)"
|
||||||
|
msgstr "إذا كنت تحب هذا الامتداد، فوصي به لأصدقائك :)"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:66 resources/ui/gtk3/prefs.ui:74
|
||||||
|
msgid "Open Window Animation"
|
||||||
|
msgstr "افتح نافذة التأثيرات"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:75 resources/ui/gtk4/prefs.ui:119
|
||||||
|
#: resources/ui/gtk3/prefs.ui:83 resources/ui/gtk3/prefs.ui:147
|
||||||
|
msgid "If multiple are selected, one is chosen randomly."
|
||||||
|
msgstr "إذا تم تحديد عدة خيارات، يتم اختيار واحد بشكل عشوائي."
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:90 resources/ui/gtk4/prefs.ui:134
|
||||||
|
#: resources/ui/gtk3/prefs.ui:104 resources/ui/gtk3/prefs.ui:168
|
||||||
|
msgid "Choose Effects"
|
||||||
|
msgstr "اختر التأثيرات"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:110 resources/ui/gtk3/prefs.ui:138
|
||||||
|
msgid "Close Window Animation"
|
||||||
|
msgstr "إغلاق التأثيرات للنافذة"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:150 resources/ui/gtk3/prefs.ui:198
|
||||||
|
msgid "Also Add Effects to Dialogs"
|
||||||
|
msgstr "أضف أيضًا تأثيرات إلى الحوارات"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Apparition.ui:116 resources/ui/gtk3/Apparition.ui:161
|
||||||
|
msgid "Twirl Intensity"
|
||||||
|
msgstr "شدة الدوران"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Apparition.ui:162 resources/ui/gtk3/Apparition.ui:210
|
||||||
|
msgid "Shake Intensity"
|
||||||
|
msgstr "شدة ألاهتزاز"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Apparition.ui:208 resources/ui/gtk3/Apparition.ui:259
|
||||||
|
msgid "Suction Intensity"
|
||||||
|
msgstr "شدة السحب"
|
||||||
|
|
||||||
|
#: resources/ui/gtk3/Fire.ui:63
|
||||||
|
msgid "Choose a Preset"
|
||||||
|
msgstr "اختر إعدادًا مسبقًا"
|
||||||
@@ -0,0 +1,359 @@
|
|||||||
|
# SOME DESCRIPTIVE TITLE.
|
||||||
|
# Copyright (C) YEAR Simon Schneegans
|
||||||
|
# This file is distributed under the same license as the burn-my-windows package.
|
||||||
|
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||||
|
#
|
||||||
|
#, fuzzy
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: burn-my-windows\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2022-04-05 09:22+0200\n"
|
||||||
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
"Language: \n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=CHARSET\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
|
||||||
|
#: prefs.js:112
|
||||||
|
msgid "Effect Options"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: prefs.js:140
|
||||||
|
msgid "Go Back"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: prefs.js:182
|
||||||
|
msgid "General Options"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: prefs.js:276
|
||||||
|
msgid "Gold Sponsors"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: prefs.js:279
|
||||||
|
msgid "Silver Sponsors"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: prefs.js:282
|
||||||
|
msgid "Bronze Sponsors"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: prefs.js:285
|
||||||
|
msgid "Past Sponsors"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Translators: %s will be replaced by the effect's name.
|
||||||
|
#: prefs.js:510
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Preview for %s"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: prefs.js:532
|
||||||
|
msgid "Close this Window to Preview the Effect!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/BrokenGlass.js:57
|
||||||
|
msgid "Broken Glass"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/TVEffect.js:56
|
||||||
|
msgid "TV Effect"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/TRexAttack.js:56
|
||||||
|
msgid "T-Rex Attack"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/SnapOfDisintegration.js:60
|
||||||
|
msgid "Snap of Disintegration"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Wisps.js:55
|
||||||
|
msgid "Wisps"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Fire.js:58
|
||||||
|
msgid "Fire"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Fire.js:130
|
||||||
|
msgid "Default Fire"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Fire.js:140
|
||||||
|
msgid "Hell Fire"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Fire.js:150
|
||||||
|
msgid "Dark and Smutty"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Fire.js:160
|
||||||
|
msgid "Cold Breeze"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Fire.js:170
|
||||||
|
msgid "Santa is Coming"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Hexagon.js:53
|
||||||
|
msgid "Hexagon"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/EnergizeA.js:54
|
||||||
|
msgid "Energize A"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Apparition.js:57
|
||||||
|
msgid "Apparition"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/EnergizeB.js:54
|
||||||
|
msgid "Energize B"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Matrix.js:58
|
||||||
|
msgid "Matrix"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:6
|
||||||
|
msgid "Visit Homepage"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:10
|
||||||
|
msgid "View Changelog"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:16
|
||||||
|
msgid "Report a Bug"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:20
|
||||||
|
msgid "Create an Effect"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:24
|
||||||
|
msgid "Translate"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:28
|
||||||
|
msgid "Donate"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:41
|
||||||
|
msgid "About Burn-My-Windows"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:24 resources/ui/gtk4/BrokenGlass.ui:24
|
||||||
|
#: resources/ui/gtk4/Wisps.ui:24 resources/ui/gtk4/Fire.ui:49
|
||||||
|
#: resources/ui/gtk4/SnapOfDisintegration.ui:24
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:24 resources/ui/gtk4/TVEffect.ui:24
|
||||||
|
#: resources/ui/gtk4/EnergizeA.ui:24 resources/ui/gtk4/Hexagon.ui:24
|
||||||
|
#: resources/ui/gtk4/EnergizeB.ui:24 resources/ui/gtk4/Apparition.ui:24
|
||||||
|
#: resources/ui/gtk3/Wisps.ui:42 resources/ui/gtk3/Fire.ui:93
|
||||||
|
#: resources/ui/gtk3/TVEffect.ui:35 resources/ui/gtk3/EnergizeA.ui:42
|
||||||
|
#: resources/ui/gtk3/Hexagon.ui:49 resources/ui/gtk3/EnergizeB.ui:42
|
||||||
|
#: resources/ui/gtk3/Apparition.ui:63
|
||||||
|
msgid "Animation Time [ms]"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:52 resources/ui/gtk4/Matrix.ui:98
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:144 resources/ui/gtk4/Matrix.ui:190
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:224 resources/ui/gtk4/Matrix.ui:258
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:52 resources/ui/gtk4/BrokenGlass.ui:98
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:144 resources/ui/gtk4/BrokenGlass.ui:190
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:244 resources/ui/gtk4/Wisps.ui:52
|
||||||
|
#: resources/ui/gtk4/Wisps.ui:98 resources/ui/gtk4/Wisps.ui:132
|
||||||
|
#: resources/ui/gtk4/Fire.ui:77 resources/ui/gtk4/Fire.ui:123
|
||||||
|
#: resources/ui/gtk4/Fire.ui:169 resources/ui/gtk4/Fire.ui:222
|
||||||
|
#: resources/ui/gtk4/Fire.ui:280 resources/ui/gtk4/TRexAttack.ui:52
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:98 resources/ui/gtk4/TRexAttack.ui:144
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:190 resources/ui/gtk4/TRexAttack.ui:224
|
||||||
|
#: resources/ui/gtk4/TVEffect.ui:52 resources/ui/gtk4/TVEffect.ui:86
|
||||||
|
#: resources/ui/gtk4/EnergizeA.ui:52 resources/ui/gtk4/EnergizeA.ui:98
|
||||||
|
#: resources/ui/gtk4/EnergizeA.ui:132 resources/ui/gtk4/Hexagon.ui:52
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:98 resources/ui/gtk4/Hexagon.ui:144
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:178 resources/ui/gtk4/Hexagon.ui:212
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:265 resources/ui/gtk4/EnergizeB.ui:52
|
||||||
|
#: resources/ui/gtk4/EnergizeB.ui:98 resources/ui/gtk4/EnergizeB.ui:132
|
||||||
|
#: resources/ui/gtk4/prefs.ui:166 resources/ui/gtk4/Apparition.ui:52
|
||||||
|
#: resources/ui/gtk4/Apparition.ui:98 resources/ui/gtk4/Apparition.ui:144
|
||||||
|
#: resources/ui/gtk4/Apparition.ui:190 resources/ui/gtk4/Apparition.ui:236
|
||||||
|
#: resources/ui/gtk3/Wisps.ui:68 resources/ui/gtk3/Wisps.ui:117
|
||||||
|
#: resources/ui/gtk3/Wisps.ui:160 resources/ui/gtk3/Fire.ui:119
|
||||||
|
#: resources/ui/gtk3/Fire.ui:167 resources/ui/gtk3/Fire.ui:215
|
||||||
|
#: resources/ui/gtk3/Fire.ui:277 resources/ui/gtk3/Fire.ui:345
|
||||||
|
#: resources/ui/gtk3/TVEffect.ui:61 resources/ui/gtk3/TVEffect.ui:104
|
||||||
|
#: resources/ui/gtk3/EnergizeA.ui:68 resources/ui/gtk3/EnergizeA.ui:117
|
||||||
|
#: resources/ui/gtk3/EnergizeA.ui:160 resources/ui/gtk3/Hexagon.ui:75
|
||||||
|
#: resources/ui/gtk3/Hexagon.ui:124 resources/ui/gtk3/Hexagon.ui:173
|
||||||
|
#: resources/ui/gtk3/Hexagon.ui:216 resources/ui/gtk3/Hexagon.ui:259
|
||||||
|
#: resources/ui/gtk3/Hexagon.ui:321 resources/ui/gtk3/EnergizeB.ui:68
|
||||||
|
#: resources/ui/gtk3/EnergizeB.ui:117 resources/ui/gtk3/EnergizeB.ui:160
|
||||||
|
#: resources/ui/gtk3/prefs.ui:219 resources/ui/gtk3/Apparition.ui:89
|
||||||
|
#: resources/ui/gtk3/Apparition.ui:138 resources/ui/gtk3/Apparition.ui:187
|
||||||
|
#: resources/ui/gtk3/Apparition.ui:236 resources/ui/gtk3/Apparition.ui:285
|
||||||
|
msgid "Reset to Default Value"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:70 resources/ui/gtk4/BrokenGlass.ui:70
|
||||||
|
#: resources/ui/gtk4/Wisps.ui:70 resources/ui/gtk4/Fire.ui:95
|
||||||
|
#: resources/ui/gtk4/SnapOfDisintegration.ui:70
|
||||||
|
#: resources/ui/gtk4/EnergizeA.ui:70 resources/ui/gtk4/Hexagon.ui:70
|
||||||
|
#: resources/ui/gtk4/EnergizeB.ui:70 resources/ui/gtk3/Wisps.ui:91
|
||||||
|
#: resources/ui/gtk3/Fire.ui:141 resources/ui/gtk3/EnergizeA.ui:91
|
||||||
|
#: resources/ui/gtk3/Hexagon.ui:98 resources/ui/gtk3/EnergizeB.ui:91
|
||||||
|
msgid "Scale"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:116 resources/ui/gtk4/Apparition.ui:70
|
||||||
|
#: resources/ui/gtk3/Apparition.ui:112
|
||||||
|
msgid "Randomness"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:162
|
||||||
|
msgid "Vertical Overshooting"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:208
|
||||||
|
msgid "Trail Color"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:242
|
||||||
|
msgid "Tip Color"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:116
|
||||||
|
msgid "Gravity"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:162
|
||||||
|
msgid "Blow Force"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:212
|
||||||
|
msgid "Shatter From Pointer Location"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:221
|
||||||
|
msgid ""
|
||||||
|
"The shards will fly away from where your mouse pointer was when closing the "
|
||||||
|
"window."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Wisps.ui:116 resources/ui/gtk4/SnapOfDisintegration.ui:116
|
||||||
|
#: resources/ui/gtk4/TVEffect.ui:70 resources/ui/gtk4/EnergizeA.ui:116
|
||||||
|
#: resources/ui/gtk4/EnergizeB.ui:116 resources/ui/gtk3/Wisps.ui:139
|
||||||
|
#: resources/ui/gtk3/TVEffect.ui:83 resources/ui/gtk3/EnergizeA.ui:139
|
||||||
|
#: resources/ui/gtk3/EnergizeB.ui:139
|
||||||
|
msgid "Color"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Fire.ui:25 resources/ui/gtk3/Fire.ui:49
|
||||||
|
msgid "Presets"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Fire.ui:141 resources/ui/gtk3/Fire.ui:189
|
||||||
|
msgid "Speed"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Fire.ui:191 resources/ui/gtk3/Fire.ui:241
|
||||||
|
msgid "3D Noise"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Fire.ui:200 resources/ui/gtk3/Fire.ui:250
|
||||||
|
msgid "Creates a more dynamic fire but requires more GPU power."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Fire.ui:240 resources/ui/gtk3/Fire.ui:300
|
||||||
|
msgid "Gradient"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:70
|
||||||
|
msgid "Claw Scratch Scale"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:116
|
||||||
|
msgid "Claw Scratch Count"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:162
|
||||||
|
msgid "Warp Effect"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:208
|
||||||
|
msgid "Flash Color"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/effectPage.ui:37 resources/ui/gtk3/effectPage.ui:37
|
||||||
|
msgid "Preview this Effect"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:116 resources/ui/gtk3/Hexagon.ui:147
|
||||||
|
msgid "Mesh Line Width"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:162 resources/ui/gtk3/Hexagon.ui:195
|
||||||
|
msgid "Line Color"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:196 resources/ui/gtk3/Hexagon.ui:238
|
||||||
|
msgid "Glow Color"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:234 resources/ui/gtk3/Hexagon.ui:285
|
||||||
|
msgid "Additive Blending"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:243 resources/ui/gtk3/Hexagon.ui:294
|
||||||
|
msgid "You may want to enable this for dark window themes."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:28 resources/ui/gtk3/prefs.ui:35
|
||||||
|
msgid "Welcome to Burn-My-Windows!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:39 resources/ui/gtk3/prefs.ui:46
|
||||||
|
msgid "If you like this extension, recommend it to your friends :)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:66 resources/ui/gtk3/prefs.ui:74
|
||||||
|
msgid "Open Window Animation"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:75 resources/ui/gtk4/prefs.ui:119
|
||||||
|
#: resources/ui/gtk3/prefs.ui:83 resources/ui/gtk3/prefs.ui:147
|
||||||
|
msgid "If multiple are selected, one is chosen randomly."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:90 resources/ui/gtk4/prefs.ui:134
|
||||||
|
#: resources/ui/gtk3/prefs.ui:104 resources/ui/gtk3/prefs.ui:168
|
||||||
|
msgid "Choose Effects"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:110 resources/ui/gtk3/prefs.ui:138
|
||||||
|
msgid "Close Window Animation"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:150 resources/ui/gtk3/prefs.ui:198
|
||||||
|
msgid "Also Add Effects to Dialogs"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Apparition.ui:116 resources/ui/gtk3/Apparition.ui:161
|
||||||
|
msgid "Twirl Intensity"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Apparition.ui:162 resources/ui/gtk3/Apparition.ui:210
|
||||||
|
msgid "Shake Intensity"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Apparition.ui:208 resources/ui/gtk3/Apparition.ui:259
|
||||||
|
msgid "Suction Intensity"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk3/Fire.ui:63
|
||||||
|
msgid "Choose a Preset"
|
||||||
|
msgstr ""
|
||||||
@@ -0,0 +1,368 @@
|
|||||||
|
# SOME DESCRIPTIVE TITLE.
|
||||||
|
# Copyright (C) YEAR Simon Schneegans
|
||||||
|
# This file is distributed under the same license as the Burn-My-Windows package.
|
||||||
|
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||||
|
#
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Burn-My-Windows\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2022-04-05 09:22+0200\n"
|
||||||
|
"PO-Revision-Date: 2022-02-02 19:55+0000\n"
|
||||||
|
"Last-Translator: Jiří Doubravský <jiri.doubravsky@gmail.com>\n"
|
||||||
|
"Language-Team: Czech <https://hosted.weblate.org/projects/burn-my-windows/"
|
||||||
|
"core/cs/>\n"
|
||||||
|
"Language: cs\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
|
||||||
|
"X-Generator: Weblate 4.11-dev\n"
|
||||||
|
|
||||||
|
#: prefs.js:112
|
||||||
|
msgid "Effect Options"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: prefs.js:140
|
||||||
|
msgid "Go Back"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: prefs.js:182
|
||||||
|
msgid "General Options"
|
||||||
|
msgstr "Obecné možnosti"
|
||||||
|
|
||||||
|
#: prefs.js:276
|
||||||
|
msgid "Gold Sponsors"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: prefs.js:279
|
||||||
|
msgid "Silver Sponsors"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: prefs.js:282
|
||||||
|
msgid "Bronze Sponsors"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: prefs.js:285
|
||||||
|
msgid "Past Sponsors"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. Translators: %s will be replaced by the effect's name.
|
||||||
|
#: prefs.js:510
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Preview for %s"
|
||||||
|
msgstr "Náhled %s"
|
||||||
|
|
||||||
|
#: prefs.js:532
|
||||||
|
msgid "Close this Window to Preview the Effect!"
|
||||||
|
msgstr "Zavřete toto okno, pokud chcete vidět efekt!"
|
||||||
|
|
||||||
|
#: src/BrokenGlass.js:57
|
||||||
|
msgid "Broken Glass"
|
||||||
|
msgstr "Střepy"
|
||||||
|
|
||||||
|
#: src/TVEffect.js:56
|
||||||
|
msgid "TV Effect"
|
||||||
|
msgstr "Televize"
|
||||||
|
|
||||||
|
#: src/TRexAttack.js:56
|
||||||
|
msgid "T-Rex Attack"
|
||||||
|
msgstr "Tyrannosaurus"
|
||||||
|
|
||||||
|
#: src/SnapOfDisintegration.js:60
|
||||||
|
msgid "Snap of Disintegration"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Wisps.js:55
|
||||||
|
msgid "Wisps"
|
||||||
|
msgstr "Obláčky"
|
||||||
|
|
||||||
|
#: src/Fire.js:58
|
||||||
|
msgid "Fire"
|
||||||
|
msgstr "Oheň"
|
||||||
|
|
||||||
|
#: src/Fire.js:130
|
||||||
|
msgid "Default Fire"
|
||||||
|
msgstr "Výchozí oheň"
|
||||||
|
|
||||||
|
#: src/Fire.js:140
|
||||||
|
msgid "Hell Fire"
|
||||||
|
msgstr "Pekelný oheň"
|
||||||
|
|
||||||
|
#: src/Fire.js:150
|
||||||
|
msgid "Dark and Smutty"
|
||||||
|
msgstr "Temný"
|
||||||
|
|
||||||
|
#: src/Fire.js:160
|
||||||
|
msgid "Cold Breeze"
|
||||||
|
msgstr "Studený vánek"
|
||||||
|
|
||||||
|
#: src/Fire.js:170
|
||||||
|
msgid "Santa is Coming"
|
||||||
|
msgstr "Santa přichází"
|
||||||
|
|
||||||
|
#: src/Hexagon.js:53
|
||||||
|
msgid "Hexagon"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/EnergizeA.js:54
|
||||||
|
msgid "Energize A"
|
||||||
|
msgstr "Energizovat A"
|
||||||
|
|
||||||
|
#: src/Apparition.js:57
|
||||||
|
msgid "Apparition"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/EnergizeB.js:54
|
||||||
|
msgid "Energize B"
|
||||||
|
msgstr "Energizovat B"
|
||||||
|
|
||||||
|
#: src/Matrix.js:58
|
||||||
|
msgid "Matrix"
|
||||||
|
msgstr "Matrix"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:6
|
||||||
|
msgid "Visit Homepage"
|
||||||
|
msgstr "Navštívit web"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:10
|
||||||
|
msgid "View Changelog"
|
||||||
|
msgstr "Zobrazit historii změn"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:16
|
||||||
|
msgid "Report a Bug"
|
||||||
|
msgstr "Ohlásit chybu"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:20
|
||||||
|
msgid "Create an Effect"
|
||||||
|
msgstr "Vytvořit efekt"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:24
|
||||||
|
msgid "Translate"
|
||||||
|
msgstr "Přeložit"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:28
|
||||||
|
msgid "Donate"
|
||||||
|
msgstr "Přispět"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:41
|
||||||
|
msgid "About Burn-My-Windows"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:24 resources/ui/gtk4/BrokenGlass.ui:24
|
||||||
|
#: resources/ui/gtk4/Wisps.ui:24 resources/ui/gtk4/Fire.ui:49
|
||||||
|
#: resources/ui/gtk4/SnapOfDisintegration.ui:24
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:24 resources/ui/gtk4/TVEffect.ui:24
|
||||||
|
#: resources/ui/gtk4/EnergizeA.ui:24 resources/ui/gtk4/Hexagon.ui:24
|
||||||
|
#: resources/ui/gtk4/EnergizeB.ui:24 resources/ui/gtk4/Apparition.ui:24
|
||||||
|
#: resources/ui/gtk3/Wisps.ui:42 resources/ui/gtk3/Fire.ui:93
|
||||||
|
#: resources/ui/gtk3/TVEffect.ui:35 resources/ui/gtk3/EnergizeA.ui:42
|
||||||
|
#: resources/ui/gtk3/Hexagon.ui:49 resources/ui/gtk3/EnergizeB.ui:42
|
||||||
|
#: resources/ui/gtk3/Apparition.ui:63
|
||||||
|
msgid "Animation Time [ms]"
|
||||||
|
msgstr "Délka animace [ms]"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:52 resources/ui/gtk4/Matrix.ui:98
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:144 resources/ui/gtk4/Matrix.ui:190
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:224 resources/ui/gtk4/Matrix.ui:258
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:52 resources/ui/gtk4/BrokenGlass.ui:98
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:144 resources/ui/gtk4/BrokenGlass.ui:190
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:244 resources/ui/gtk4/Wisps.ui:52
|
||||||
|
#: resources/ui/gtk4/Wisps.ui:98 resources/ui/gtk4/Wisps.ui:132
|
||||||
|
#: resources/ui/gtk4/Fire.ui:77 resources/ui/gtk4/Fire.ui:123
|
||||||
|
#: resources/ui/gtk4/Fire.ui:169 resources/ui/gtk4/Fire.ui:222
|
||||||
|
#: resources/ui/gtk4/Fire.ui:280 resources/ui/gtk4/TRexAttack.ui:52
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:98 resources/ui/gtk4/TRexAttack.ui:144
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:190 resources/ui/gtk4/TRexAttack.ui:224
|
||||||
|
#: resources/ui/gtk4/TVEffect.ui:52 resources/ui/gtk4/TVEffect.ui:86
|
||||||
|
#: resources/ui/gtk4/EnergizeA.ui:52 resources/ui/gtk4/EnergizeA.ui:98
|
||||||
|
#: resources/ui/gtk4/EnergizeA.ui:132 resources/ui/gtk4/Hexagon.ui:52
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:98 resources/ui/gtk4/Hexagon.ui:144
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:178 resources/ui/gtk4/Hexagon.ui:212
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:265 resources/ui/gtk4/EnergizeB.ui:52
|
||||||
|
#: resources/ui/gtk4/EnergizeB.ui:98 resources/ui/gtk4/EnergizeB.ui:132
|
||||||
|
#: resources/ui/gtk4/prefs.ui:166 resources/ui/gtk4/Apparition.ui:52
|
||||||
|
#: resources/ui/gtk4/Apparition.ui:98 resources/ui/gtk4/Apparition.ui:144
|
||||||
|
#: resources/ui/gtk4/Apparition.ui:190 resources/ui/gtk4/Apparition.ui:236
|
||||||
|
#: resources/ui/gtk3/Wisps.ui:68 resources/ui/gtk3/Wisps.ui:117
|
||||||
|
#: resources/ui/gtk3/Wisps.ui:160 resources/ui/gtk3/Fire.ui:119
|
||||||
|
#: resources/ui/gtk3/Fire.ui:167 resources/ui/gtk3/Fire.ui:215
|
||||||
|
#: resources/ui/gtk3/Fire.ui:277 resources/ui/gtk3/Fire.ui:345
|
||||||
|
#: resources/ui/gtk3/TVEffect.ui:61 resources/ui/gtk3/TVEffect.ui:104
|
||||||
|
#: resources/ui/gtk3/EnergizeA.ui:68 resources/ui/gtk3/EnergizeA.ui:117
|
||||||
|
#: resources/ui/gtk3/EnergizeA.ui:160 resources/ui/gtk3/Hexagon.ui:75
|
||||||
|
#: resources/ui/gtk3/Hexagon.ui:124 resources/ui/gtk3/Hexagon.ui:173
|
||||||
|
#: resources/ui/gtk3/Hexagon.ui:216 resources/ui/gtk3/Hexagon.ui:259
|
||||||
|
#: resources/ui/gtk3/Hexagon.ui:321 resources/ui/gtk3/EnergizeB.ui:68
|
||||||
|
#: resources/ui/gtk3/EnergizeB.ui:117 resources/ui/gtk3/EnergizeB.ui:160
|
||||||
|
#: resources/ui/gtk3/prefs.ui:219 resources/ui/gtk3/Apparition.ui:89
|
||||||
|
#: resources/ui/gtk3/Apparition.ui:138 resources/ui/gtk3/Apparition.ui:187
|
||||||
|
#: resources/ui/gtk3/Apparition.ui:236 resources/ui/gtk3/Apparition.ui:285
|
||||||
|
msgid "Reset to Default Value"
|
||||||
|
msgstr "Obnovit výchozí hodnoty"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:70 resources/ui/gtk4/BrokenGlass.ui:70
|
||||||
|
#: resources/ui/gtk4/Wisps.ui:70 resources/ui/gtk4/Fire.ui:95
|
||||||
|
#: resources/ui/gtk4/SnapOfDisintegration.ui:70
|
||||||
|
#: resources/ui/gtk4/EnergizeA.ui:70 resources/ui/gtk4/Hexagon.ui:70
|
||||||
|
#: resources/ui/gtk4/EnergizeB.ui:70 resources/ui/gtk3/Wisps.ui:91
|
||||||
|
#: resources/ui/gtk3/Fire.ui:141 resources/ui/gtk3/EnergizeA.ui:91
|
||||||
|
#: resources/ui/gtk3/Hexagon.ui:98 resources/ui/gtk3/EnergizeB.ui:91
|
||||||
|
msgid "Scale"
|
||||||
|
msgstr "Měřítko"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:116 resources/ui/gtk4/Apparition.ui:70
|
||||||
|
#: resources/ui/gtk3/Apparition.ui:112
|
||||||
|
msgid "Randomness"
|
||||||
|
msgstr "Nahodilost"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:162
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Vertical Overshooting"
|
||||||
|
msgstr "Vertikální přestřelení"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:208
|
||||||
|
msgid "Trail Color"
|
||||||
|
msgstr "Barva ohonu"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:242
|
||||||
|
msgid "Tip Color"
|
||||||
|
msgstr "Barva hrotu"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:116
|
||||||
|
msgid "Gravity"
|
||||||
|
msgstr "Gravitace"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:162
|
||||||
|
msgid "Blow Force"
|
||||||
|
msgstr "Síla úderu"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:212
|
||||||
|
msgid "Shatter From Pointer Location"
|
||||||
|
msgstr "Roztříštění od místa ukazatele"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:221
|
||||||
|
msgid ""
|
||||||
|
"The shards will fly away from where your mouse pointer was when closing the "
|
||||||
|
"window."
|
||||||
|
msgstr "Střepy odletí z místa, kde byl ukazatel myši při zavírání okna."
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Wisps.ui:116 resources/ui/gtk4/SnapOfDisintegration.ui:116
|
||||||
|
#: resources/ui/gtk4/TVEffect.ui:70 resources/ui/gtk4/EnergizeA.ui:116
|
||||||
|
#: resources/ui/gtk4/EnergizeB.ui:116 resources/ui/gtk3/Wisps.ui:139
|
||||||
|
#: resources/ui/gtk3/TVEffect.ui:83 resources/ui/gtk3/EnergizeA.ui:139
|
||||||
|
#: resources/ui/gtk3/EnergizeB.ui:139
|
||||||
|
msgid "Color"
|
||||||
|
msgstr "Barva"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Fire.ui:25 resources/ui/gtk3/Fire.ui:49
|
||||||
|
msgid "Presets"
|
||||||
|
msgstr "Předvolby"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Fire.ui:141 resources/ui/gtk3/Fire.ui:189
|
||||||
|
msgid "Speed"
|
||||||
|
msgstr "Rychlost"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Fire.ui:191 resources/ui/gtk3/Fire.ui:241
|
||||||
|
msgid "3D Noise"
|
||||||
|
msgstr "3D šum"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Fire.ui:200 resources/ui/gtk3/Fire.ui:250
|
||||||
|
msgid "Creates a more dynamic fire but requires more GPU power."
|
||||||
|
msgstr "Vytvoří dynamičtejší efekt, ale potřebuje k tomu silnější GPU"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Fire.ui:240 resources/ui/gtk3/Fire.ui:300
|
||||||
|
msgid "Gradient"
|
||||||
|
msgstr "Přechod"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:70
|
||||||
|
msgid "Claw Scratch Scale"
|
||||||
|
msgstr "Velikost škrábanců od drápů"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:116
|
||||||
|
msgid "Claw Scratch Count"
|
||||||
|
msgstr "Počet škrábanců"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:162
|
||||||
|
msgid "Warp Effect"
|
||||||
|
msgstr "Efekt zakřivení"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:208
|
||||||
|
msgid "Flash Color"
|
||||||
|
msgstr "Barva blesku"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/effectPage.ui:37 resources/ui/gtk3/effectPage.ui:37
|
||||||
|
msgid "Preview this Effect"
|
||||||
|
msgstr "Náhled efektu"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:116 resources/ui/gtk3/Hexagon.ui:147
|
||||||
|
msgid "Mesh Line Width"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:162 resources/ui/gtk3/Hexagon.ui:195
|
||||||
|
msgid "Line Color"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:196 resources/ui/gtk3/Hexagon.ui:238
|
||||||
|
msgid "Glow Color"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:234 resources/ui/gtk3/Hexagon.ui:285
|
||||||
|
msgid "Additive Blending"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:243 resources/ui/gtk3/Hexagon.ui:294
|
||||||
|
msgid "You may want to enable this for dark window themes."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:28 resources/ui/gtk3/prefs.ui:35
|
||||||
|
msgid "Welcome to Burn-My-Windows!"
|
||||||
|
msgstr "Vítá Vás Burn-My-Windows!"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:39 resources/ui/gtk3/prefs.ui:46
|
||||||
|
msgid "If you like this extension, recommend it to your friends :)"
|
||||||
|
msgstr "Pokud se vám líbí tento doplňek, doporučte jej přátelům :-)"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:66 resources/ui/gtk3/prefs.ui:74
|
||||||
|
msgid "Open Window Animation"
|
||||||
|
msgstr "Animace při otevírání okna"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:75 resources/ui/gtk4/prefs.ui:119
|
||||||
|
#: resources/ui/gtk3/prefs.ui:83 resources/ui/gtk3/prefs.ui:147
|
||||||
|
msgid "If multiple are selected, one is chosen randomly."
|
||||||
|
msgstr "Pokud vyberete více, budou se střídat náhodně."
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:90 resources/ui/gtk4/prefs.ui:134
|
||||||
|
#: resources/ui/gtk3/prefs.ui:104 resources/ui/gtk3/prefs.ui:168
|
||||||
|
msgid "Choose Effects"
|
||||||
|
msgstr "Vyberte efekty"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:110 resources/ui/gtk3/prefs.ui:138
|
||||||
|
msgid "Close Window Animation"
|
||||||
|
msgstr "Animace při zavírání okna"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:150 resources/ui/gtk3/prefs.ui:198
|
||||||
|
msgid "Also Add Effects to Dialogs"
|
||||||
|
msgstr "Použít efekt i na dialogová okna"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Apparition.ui:116 resources/ui/gtk3/Apparition.ui:161
|
||||||
|
msgid "Twirl Intensity"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Apparition.ui:162 resources/ui/gtk3/Apparition.ui:210
|
||||||
|
msgid "Shake Intensity"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Apparition.ui:208 resources/ui/gtk3/Apparition.ui:259
|
||||||
|
msgid "Suction Intensity"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk3/Fire.ui:63
|
||||||
|
msgid "Choose a Preset"
|
||||||
|
msgstr "Vyberte předvolbu"
|
||||||
|
|
||||||
|
#~ msgid "Via PayPal"
|
||||||
|
#~ msgstr "skrze PayPal"
|
||||||
|
|
||||||
|
#~ msgid "Via GitHub"
|
||||||
|
#~ msgstr "skrze GitHub"
|
||||||
@@ -0,0 +1,372 @@
|
|||||||
|
# SOME DESCRIPTIVE TITLE.
|
||||||
|
# Copyright (C) YEAR Simon Schneegans
|
||||||
|
# This file is distributed under the same license as the Burn-My-Windows package.
|
||||||
|
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||||
|
#
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Burn-My-Windows\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2022-04-05 09:22+0200\n"
|
||||||
|
"PO-Revision-Date: 2022-04-05 18:37+0000\n"
|
||||||
|
"Last-Translator: Simon Schneegans <code@simonschneegans.de>\n"
|
||||||
|
"Language-Team: German <https://hosted.weblate.org/projects/burn-my-windows/"
|
||||||
|
"core/de/>\n"
|
||||||
|
"Language: de\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||||
|
"X-Generator: Weblate 4.12-dev\n"
|
||||||
|
|
||||||
|
#: prefs.js:112
|
||||||
|
msgid "Effect Options"
|
||||||
|
msgstr "Effektoptionen"
|
||||||
|
|
||||||
|
#: prefs.js:140
|
||||||
|
msgid "Go Back"
|
||||||
|
msgstr "Zurück"
|
||||||
|
|
||||||
|
#: prefs.js:182
|
||||||
|
msgid "General Options"
|
||||||
|
msgstr "Allgemeine Optionen"
|
||||||
|
|
||||||
|
#: prefs.js:276
|
||||||
|
msgid "Gold Sponsors"
|
||||||
|
msgstr "Gold-Sponsoren"
|
||||||
|
|
||||||
|
#: prefs.js:279
|
||||||
|
msgid "Silver Sponsors"
|
||||||
|
msgstr "Silber-Sponsoren"
|
||||||
|
|
||||||
|
#: prefs.js:282
|
||||||
|
msgid "Bronze Sponsors"
|
||||||
|
msgstr "Bronze-Sponsoren"
|
||||||
|
|
||||||
|
#: prefs.js:285
|
||||||
|
msgid "Past Sponsors"
|
||||||
|
msgstr "Ehemalige Sponsoren"
|
||||||
|
|
||||||
|
#. Translators: %s will be replaced by the effect's name.
|
||||||
|
#: prefs.js:510
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Preview for %s"
|
||||||
|
msgstr "Vorschau für %s"
|
||||||
|
|
||||||
|
#: prefs.js:532
|
||||||
|
msgid "Close this Window to Preview the Effect!"
|
||||||
|
msgstr "Schließen Sie dieses Fenster, um eine Vorschau des Effekts anzuzeigen!"
|
||||||
|
|
||||||
|
#: src/BrokenGlass.js:57
|
||||||
|
msgid "Broken Glass"
|
||||||
|
msgstr "Glassplitter"
|
||||||
|
|
||||||
|
#: src/TVEffect.js:56
|
||||||
|
msgid "TV Effect"
|
||||||
|
msgstr "TV-Effekt"
|
||||||
|
|
||||||
|
#: src/TRexAttack.js:56
|
||||||
|
msgid "T-Rex Attack"
|
||||||
|
msgstr "T-Rex-Angriff"
|
||||||
|
|
||||||
|
#: src/SnapOfDisintegration.js:60
|
||||||
|
msgid "Snap of Disintegration"
|
||||||
|
msgstr "Fingerschnippen des Zerfalls"
|
||||||
|
|
||||||
|
#: src/Wisps.js:55
|
||||||
|
msgid "Wisps"
|
||||||
|
msgstr "Irrlichter"
|
||||||
|
|
||||||
|
#: src/Fire.js:58
|
||||||
|
msgid "Fire"
|
||||||
|
msgstr "Feuer"
|
||||||
|
|
||||||
|
#: src/Fire.js:130
|
||||||
|
msgid "Default Fire"
|
||||||
|
msgstr "Standardfeuer"
|
||||||
|
|
||||||
|
#: src/Fire.js:140
|
||||||
|
msgid "Hell Fire"
|
||||||
|
msgstr "Höllenfeuer"
|
||||||
|
|
||||||
|
#: src/Fire.js:150
|
||||||
|
msgid "Dark and Smutty"
|
||||||
|
msgstr "Dunkel und schmutzig"
|
||||||
|
|
||||||
|
#: src/Fire.js:160
|
||||||
|
msgid "Cold Breeze"
|
||||||
|
msgstr "Kalte Brise"
|
||||||
|
|
||||||
|
#: src/Fire.js:170
|
||||||
|
msgid "Santa is Coming"
|
||||||
|
msgstr "Weihnachtsgrüße"
|
||||||
|
|
||||||
|
#: src/Hexagon.js:53
|
||||||
|
msgid "Hexagon"
|
||||||
|
msgstr "Hexagon"
|
||||||
|
|
||||||
|
#: src/EnergizeA.js:54
|
||||||
|
msgid "Energize A"
|
||||||
|
msgstr "Energie A"
|
||||||
|
|
||||||
|
#: src/Apparition.js:57
|
||||||
|
msgid "Apparition"
|
||||||
|
msgstr "Apparieren"
|
||||||
|
|
||||||
|
#: src/EnergizeB.js:54
|
||||||
|
msgid "Energize B"
|
||||||
|
msgstr "Energie B"
|
||||||
|
|
||||||
|
#: src/Matrix.js:58
|
||||||
|
msgid "Matrix"
|
||||||
|
msgstr "Matrix"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:6
|
||||||
|
msgid "Visit Homepage"
|
||||||
|
msgstr "Homepage besuchen"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:10
|
||||||
|
msgid "View Changelog"
|
||||||
|
msgstr "Changelog anzeigen"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:16
|
||||||
|
msgid "Report a Bug"
|
||||||
|
msgstr "Fehler melden"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:20
|
||||||
|
msgid "Create an Effect"
|
||||||
|
msgstr "Einen Effekt hinzufügen"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:24
|
||||||
|
msgid "Translate"
|
||||||
|
msgstr "Übersetzen"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:28
|
||||||
|
msgid "Donate"
|
||||||
|
msgstr "Spenden"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:41
|
||||||
|
msgid "About Burn-My-Windows"
|
||||||
|
msgstr "Über Burn-My-Windows"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:24 resources/ui/gtk4/BrokenGlass.ui:24
|
||||||
|
#: resources/ui/gtk4/Wisps.ui:24 resources/ui/gtk4/Fire.ui:49
|
||||||
|
#: resources/ui/gtk4/SnapOfDisintegration.ui:24
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:24 resources/ui/gtk4/TVEffect.ui:24
|
||||||
|
#: resources/ui/gtk4/EnergizeA.ui:24 resources/ui/gtk4/Hexagon.ui:24
|
||||||
|
#: resources/ui/gtk4/EnergizeB.ui:24 resources/ui/gtk4/Apparition.ui:24
|
||||||
|
#: resources/ui/gtk3/Wisps.ui:42 resources/ui/gtk3/Fire.ui:93
|
||||||
|
#: resources/ui/gtk3/TVEffect.ui:35 resources/ui/gtk3/EnergizeA.ui:42
|
||||||
|
#: resources/ui/gtk3/Hexagon.ui:49 resources/ui/gtk3/EnergizeB.ui:42
|
||||||
|
#: resources/ui/gtk3/Apparition.ui:63
|
||||||
|
msgid "Animation Time [ms]"
|
||||||
|
msgstr "Animationszeit [ms]"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:52 resources/ui/gtk4/Matrix.ui:98
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:144 resources/ui/gtk4/Matrix.ui:190
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:224 resources/ui/gtk4/Matrix.ui:258
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:52 resources/ui/gtk4/BrokenGlass.ui:98
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:144 resources/ui/gtk4/BrokenGlass.ui:190
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:244 resources/ui/gtk4/Wisps.ui:52
|
||||||
|
#: resources/ui/gtk4/Wisps.ui:98 resources/ui/gtk4/Wisps.ui:132
|
||||||
|
#: resources/ui/gtk4/Fire.ui:77 resources/ui/gtk4/Fire.ui:123
|
||||||
|
#: resources/ui/gtk4/Fire.ui:169 resources/ui/gtk4/Fire.ui:222
|
||||||
|
#: resources/ui/gtk4/Fire.ui:280 resources/ui/gtk4/TRexAttack.ui:52
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:98 resources/ui/gtk4/TRexAttack.ui:144
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:190 resources/ui/gtk4/TRexAttack.ui:224
|
||||||
|
#: resources/ui/gtk4/TVEffect.ui:52 resources/ui/gtk4/TVEffect.ui:86
|
||||||
|
#: resources/ui/gtk4/EnergizeA.ui:52 resources/ui/gtk4/EnergizeA.ui:98
|
||||||
|
#: resources/ui/gtk4/EnergizeA.ui:132 resources/ui/gtk4/Hexagon.ui:52
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:98 resources/ui/gtk4/Hexagon.ui:144
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:178 resources/ui/gtk4/Hexagon.ui:212
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:265 resources/ui/gtk4/EnergizeB.ui:52
|
||||||
|
#: resources/ui/gtk4/EnergizeB.ui:98 resources/ui/gtk4/EnergizeB.ui:132
|
||||||
|
#: resources/ui/gtk4/prefs.ui:166 resources/ui/gtk4/Apparition.ui:52
|
||||||
|
#: resources/ui/gtk4/Apparition.ui:98 resources/ui/gtk4/Apparition.ui:144
|
||||||
|
#: resources/ui/gtk4/Apparition.ui:190 resources/ui/gtk4/Apparition.ui:236
|
||||||
|
#: resources/ui/gtk3/Wisps.ui:68 resources/ui/gtk3/Wisps.ui:117
|
||||||
|
#: resources/ui/gtk3/Wisps.ui:160 resources/ui/gtk3/Fire.ui:119
|
||||||
|
#: resources/ui/gtk3/Fire.ui:167 resources/ui/gtk3/Fire.ui:215
|
||||||
|
#: resources/ui/gtk3/Fire.ui:277 resources/ui/gtk3/Fire.ui:345
|
||||||
|
#: resources/ui/gtk3/TVEffect.ui:61 resources/ui/gtk3/TVEffect.ui:104
|
||||||
|
#: resources/ui/gtk3/EnergizeA.ui:68 resources/ui/gtk3/EnergizeA.ui:117
|
||||||
|
#: resources/ui/gtk3/EnergizeA.ui:160 resources/ui/gtk3/Hexagon.ui:75
|
||||||
|
#: resources/ui/gtk3/Hexagon.ui:124 resources/ui/gtk3/Hexagon.ui:173
|
||||||
|
#: resources/ui/gtk3/Hexagon.ui:216 resources/ui/gtk3/Hexagon.ui:259
|
||||||
|
#: resources/ui/gtk3/Hexagon.ui:321 resources/ui/gtk3/EnergizeB.ui:68
|
||||||
|
#: resources/ui/gtk3/EnergizeB.ui:117 resources/ui/gtk3/EnergizeB.ui:160
|
||||||
|
#: resources/ui/gtk3/prefs.ui:219 resources/ui/gtk3/Apparition.ui:89
|
||||||
|
#: resources/ui/gtk3/Apparition.ui:138 resources/ui/gtk3/Apparition.ui:187
|
||||||
|
#: resources/ui/gtk3/Apparition.ui:236 resources/ui/gtk3/Apparition.ui:285
|
||||||
|
msgid "Reset to Default Value"
|
||||||
|
msgstr "Auf Standardwert zurücksetzen"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:70 resources/ui/gtk4/BrokenGlass.ui:70
|
||||||
|
#: resources/ui/gtk4/Wisps.ui:70 resources/ui/gtk4/Fire.ui:95
|
||||||
|
#: resources/ui/gtk4/SnapOfDisintegration.ui:70
|
||||||
|
#: resources/ui/gtk4/EnergizeA.ui:70 resources/ui/gtk4/Hexagon.ui:70
|
||||||
|
#: resources/ui/gtk4/EnergizeB.ui:70 resources/ui/gtk3/Wisps.ui:91
|
||||||
|
#: resources/ui/gtk3/Fire.ui:141 resources/ui/gtk3/EnergizeA.ui:91
|
||||||
|
#: resources/ui/gtk3/Hexagon.ui:98 resources/ui/gtk3/EnergizeB.ui:91
|
||||||
|
msgid "Scale"
|
||||||
|
msgstr "Größe"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:116 resources/ui/gtk4/Apparition.ui:70
|
||||||
|
#: resources/ui/gtk3/Apparition.ui:112
|
||||||
|
msgid "Randomness"
|
||||||
|
msgstr "Zufälligkeit"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:162
|
||||||
|
msgid "Vertical Overshooting"
|
||||||
|
msgstr "Vertikales Überschießen"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:208
|
||||||
|
msgid "Trail Color"
|
||||||
|
msgstr "Farbe der Spur"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:242
|
||||||
|
msgid "Tip Color"
|
||||||
|
msgstr "Farbe der Spitze"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:116
|
||||||
|
msgid "Gravity"
|
||||||
|
msgstr "Schwerkraft"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:162
|
||||||
|
msgid "Blow Force"
|
||||||
|
msgstr "Schlagkraft"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:212
|
||||||
|
msgid "Shatter From Pointer Location"
|
||||||
|
msgstr "Von Mauszeigerposition zerbrechen"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:221
|
||||||
|
msgid ""
|
||||||
|
"The shards will fly away from where your mouse pointer was when closing the "
|
||||||
|
"window."
|
||||||
|
msgstr ""
|
||||||
|
"Die Scherben fliegen von der Stelle weg, an der sich Ihr Mauszeiger beim "
|
||||||
|
"Schließen des Fensters befand."
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Wisps.ui:116 resources/ui/gtk4/SnapOfDisintegration.ui:116
|
||||||
|
#: resources/ui/gtk4/TVEffect.ui:70 resources/ui/gtk4/EnergizeA.ui:116
|
||||||
|
#: resources/ui/gtk4/EnergizeB.ui:116 resources/ui/gtk3/Wisps.ui:139
|
||||||
|
#: resources/ui/gtk3/TVEffect.ui:83 resources/ui/gtk3/EnergizeA.ui:139
|
||||||
|
#: resources/ui/gtk3/EnergizeB.ui:139
|
||||||
|
msgid "Color"
|
||||||
|
msgstr "Farbe"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Fire.ui:25 resources/ui/gtk3/Fire.ui:49
|
||||||
|
msgid "Presets"
|
||||||
|
msgstr "Voreinstellungen"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Fire.ui:141 resources/ui/gtk3/Fire.ui:189
|
||||||
|
msgid "Speed"
|
||||||
|
msgstr "Geschwindigkeit"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Fire.ui:191 resources/ui/gtk3/Fire.ui:241
|
||||||
|
msgid "3D Noise"
|
||||||
|
msgstr "3D-Rauschen"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Fire.ui:200 resources/ui/gtk3/Fire.ui:250
|
||||||
|
msgid "Creates a more dynamic fire but requires more GPU power."
|
||||||
|
msgstr "Erzeugt ein dynamischeres Feuer, erfordert jedoch mehr GPU-Leistung."
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Fire.ui:240 resources/ui/gtk3/Fire.ui:300
|
||||||
|
msgid "Gradient"
|
||||||
|
msgstr "Farbverlauf"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:70
|
||||||
|
msgid "Claw Scratch Scale"
|
||||||
|
msgstr "Kratzergröße"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:116
|
||||||
|
msgid "Claw Scratch Count"
|
||||||
|
msgstr "Kratzeranzahl"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:162
|
||||||
|
msgid "Warp Effect"
|
||||||
|
msgstr "Warp-Effekt"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:208
|
||||||
|
msgid "Flash Color"
|
||||||
|
msgstr "Blitzfarbe"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/effectPage.ui:37 resources/ui/gtk3/effectPage.ui:37
|
||||||
|
msgid "Preview this Effect"
|
||||||
|
msgstr "Vorschau dieses Effekts"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:116 resources/ui/gtk3/Hexagon.ui:147
|
||||||
|
msgid "Mesh Line Width"
|
||||||
|
msgstr "Gitterlinienstärke"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:162 resources/ui/gtk3/Hexagon.ui:195
|
||||||
|
msgid "Line Color"
|
||||||
|
msgstr "Linienfarbe"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:196 resources/ui/gtk3/Hexagon.ui:238
|
||||||
|
msgid "Glow Color"
|
||||||
|
msgstr "Leuchtfarbe"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:234 resources/ui/gtk3/Hexagon.ui:285
|
||||||
|
msgid "Additive Blending"
|
||||||
|
msgstr "Additives Mischen"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:243 resources/ui/gtk3/Hexagon.ui:294
|
||||||
|
msgid "You may want to enable this for dark window themes."
|
||||||
|
msgstr "Für dunkle Fensterthemen sollten Sie diese Option aktivieren."
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:28 resources/ui/gtk3/prefs.ui:35
|
||||||
|
msgid "Welcome to Burn-My-Windows!"
|
||||||
|
msgstr "Willkommen bei Burn-My-Windows!"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:39 resources/ui/gtk3/prefs.ui:46
|
||||||
|
msgid "If you like this extension, recommend it to your friends :)"
|
||||||
|
msgstr "Wenn Sie diese Erweiterung mögen, empfehlen Sie sie Ihren Freunden :)"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:66 resources/ui/gtk3/prefs.ui:74
|
||||||
|
msgid "Open Window Animation"
|
||||||
|
msgstr "Fenster-Öffnen-Animation"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:75 resources/ui/gtk4/prefs.ui:119
|
||||||
|
#: resources/ui/gtk3/prefs.ui:83 resources/ui/gtk3/prefs.ui:147
|
||||||
|
msgid "If multiple are selected, one is chosen randomly."
|
||||||
|
msgstr "Wenn mehrere ausgewählt sind, wird eine zufällig ausgewählt."
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:90 resources/ui/gtk4/prefs.ui:134
|
||||||
|
#: resources/ui/gtk3/prefs.ui:104 resources/ui/gtk3/prefs.ui:168
|
||||||
|
msgid "Choose Effects"
|
||||||
|
msgstr "Effekte auswählen"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:110 resources/ui/gtk3/prefs.ui:138
|
||||||
|
msgid "Close Window Animation"
|
||||||
|
msgstr "Fenster-Schließen-Animation"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:150 resources/ui/gtk3/prefs.ui:198
|
||||||
|
msgid "Also Add Effects to Dialogs"
|
||||||
|
msgstr "Effekte auch zu Dialogen hinzufügen"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Apparition.ui:116 resources/ui/gtk3/Apparition.ui:161
|
||||||
|
msgid "Twirl Intensity"
|
||||||
|
msgstr "Wirbelintensität"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Apparition.ui:162 resources/ui/gtk3/Apparition.ui:210
|
||||||
|
msgid "Shake Intensity"
|
||||||
|
msgstr "Wackelintensität"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Apparition.ui:208 resources/ui/gtk3/Apparition.ui:259
|
||||||
|
msgid "Suction Intensity"
|
||||||
|
msgstr "Saugintensität"
|
||||||
|
|
||||||
|
#: resources/ui/gtk3/Fire.ui:63
|
||||||
|
msgid "Choose a Preset"
|
||||||
|
msgstr "Wählen Sie eine Voreinstellung"
|
||||||
|
|
||||||
|
#~ msgid "Via PayPal"
|
||||||
|
#~ msgstr "Mit PayPal"
|
||||||
|
|
||||||
|
#~ msgid "Via GitHub"
|
||||||
|
#~ msgstr "Mit GitHub"
|
||||||
|
|
||||||
|
#~ msgid "Create a Custom Effect"
|
||||||
|
#~ msgstr "Einen neuen Effekt erstellen"
|
||||||
@@ -0,0 +1,369 @@
|
|||||||
|
# SOME DESCRIPTIVE TITLE.
|
||||||
|
# Copyright (C) YEAR Simon Schneegans
|
||||||
|
# This file is distributed under the same license as the Burn-My-Windows package.
|
||||||
|
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||||
|
#
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Burn-My-Windows\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2022-04-05 09:22+0200\n"
|
||||||
|
"PO-Revision-Date: 2022-04-08 07:11+0000\n"
|
||||||
|
"Last-Translator: Óscar Fernández Díaz <oscfdezdz@tuta.io>\n"
|
||||||
|
"Language-Team: Spanish <https://hosted.weblate.org/projects/burn-my-windows/"
|
||||||
|
"core/es/>\n"
|
||||||
|
"Language: es\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||||
|
"X-Generator: Weblate 4.12-dev\n"
|
||||||
|
|
||||||
|
#: prefs.js:112
|
||||||
|
msgid "Effect Options"
|
||||||
|
msgstr "Opciones de efecto"
|
||||||
|
|
||||||
|
#: prefs.js:140
|
||||||
|
msgid "Go Back"
|
||||||
|
msgstr "Volver"
|
||||||
|
|
||||||
|
#: prefs.js:182
|
||||||
|
msgid "General Options"
|
||||||
|
msgstr "Opciones generales"
|
||||||
|
|
||||||
|
#: prefs.js:276
|
||||||
|
msgid "Gold Sponsors"
|
||||||
|
msgstr "Patrocinadores de oro"
|
||||||
|
|
||||||
|
#: prefs.js:279
|
||||||
|
msgid "Silver Sponsors"
|
||||||
|
msgstr "Patrocinadores de plata"
|
||||||
|
|
||||||
|
#: prefs.js:282
|
||||||
|
msgid "Bronze Sponsors"
|
||||||
|
msgstr "Patrocinadores de bronce"
|
||||||
|
|
||||||
|
#: prefs.js:285
|
||||||
|
msgid "Past Sponsors"
|
||||||
|
msgstr "Patrocinadores anteriores"
|
||||||
|
|
||||||
|
#. Translators: %s will be replaced by the effect's name.
|
||||||
|
#: prefs.js:510
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Preview for %s"
|
||||||
|
msgstr "Previsualización de %s"
|
||||||
|
|
||||||
|
#: prefs.js:532
|
||||||
|
msgid "Close this Window to Preview the Effect!"
|
||||||
|
msgstr "¡Cierre esta ventana para ver el efecto!"
|
||||||
|
|
||||||
|
#: src/BrokenGlass.js:57
|
||||||
|
msgid "Broken Glass"
|
||||||
|
msgstr "Cristales rotos"
|
||||||
|
|
||||||
|
#: src/TVEffect.js:56
|
||||||
|
msgid "TV Effect"
|
||||||
|
msgstr "Efecto televisor"
|
||||||
|
|
||||||
|
#: src/TRexAttack.js:56
|
||||||
|
msgid "T-Rex Attack"
|
||||||
|
msgstr "Ataque de T-Rex"
|
||||||
|
|
||||||
|
#: src/SnapOfDisintegration.js:60
|
||||||
|
msgid "Snap of Disintegration"
|
||||||
|
msgstr "Chasquido de desintegración"
|
||||||
|
|
||||||
|
#: src/Wisps.js:55
|
||||||
|
msgid "Wisps"
|
||||||
|
msgstr "Chispas"
|
||||||
|
|
||||||
|
#: src/Fire.js:58
|
||||||
|
msgid "Fire"
|
||||||
|
msgstr "Fuego"
|
||||||
|
|
||||||
|
#: src/Fire.js:130
|
||||||
|
msgid "Default Fire"
|
||||||
|
msgstr "Fuego predeterminado"
|
||||||
|
|
||||||
|
#: src/Fire.js:140
|
||||||
|
msgid "Hell Fire"
|
||||||
|
msgstr "Fuego infernal"
|
||||||
|
|
||||||
|
#: src/Fire.js:150
|
||||||
|
msgid "Dark and Smutty"
|
||||||
|
msgstr "Oscuro y obsceno"
|
||||||
|
|
||||||
|
#: src/Fire.js:160
|
||||||
|
msgid "Cold Breeze"
|
||||||
|
msgstr "Brisa fría"
|
||||||
|
|
||||||
|
#: src/Fire.js:170
|
||||||
|
msgid "Santa is Coming"
|
||||||
|
msgstr "Viene Papá Noel"
|
||||||
|
|
||||||
|
#: src/Hexagon.js:53
|
||||||
|
msgid "Hexagon"
|
||||||
|
msgstr "Hexágonos"
|
||||||
|
|
||||||
|
#: src/EnergizeA.js:54
|
||||||
|
msgid "Energize A"
|
||||||
|
msgstr "Energizar A"
|
||||||
|
|
||||||
|
#: src/Apparition.js:57
|
||||||
|
msgid "Apparition"
|
||||||
|
msgstr "Aparición"
|
||||||
|
|
||||||
|
#: src/EnergizeB.js:54
|
||||||
|
msgid "Energize B"
|
||||||
|
msgstr "Energizar B"
|
||||||
|
|
||||||
|
#: src/Matrix.js:58
|
||||||
|
msgid "Matrix"
|
||||||
|
msgstr "Matrix"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:6
|
||||||
|
msgid "Visit Homepage"
|
||||||
|
msgstr "Visitar la página web"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:10
|
||||||
|
msgid "View Changelog"
|
||||||
|
msgstr "Ver registro de cambios"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:16
|
||||||
|
msgid "Report a Bug"
|
||||||
|
msgstr "Informar de un error"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:20
|
||||||
|
msgid "Create an Effect"
|
||||||
|
msgstr "Crear un efecto"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:24
|
||||||
|
msgid "Translate"
|
||||||
|
msgstr "Traducir"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:28
|
||||||
|
msgid "Donate"
|
||||||
|
msgstr "Donar"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:41
|
||||||
|
msgid "About Burn-My-Windows"
|
||||||
|
msgstr "Acerca de Burn-My-Windows"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:24 resources/ui/gtk4/BrokenGlass.ui:24
|
||||||
|
#: resources/ui/gtk4/Wisps.ui:24 resources/ui/gtk4/Fire.ui:49
|
||||||
|
#: resources/ui/gtk4/SnapOfDisintegration.ui:24
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:24 resources/ui/gtk4/TVEffect.ui:24
|
||||||
|
#: resources/ui/gtk4/EnergizeA.ui:24 resources/ui/gtk4/Hexagon.ui:24
|
||||||
|
#: resources/ui/gtk4/EnergizeB.ui:24 resources/ui/gtk4/Apparition.ui:24
|
||||||
|
#: resources/ui/gtk3/Wisps.ui:42 resources/ui/gtk3/Fire.ui:93
|
||||||
|
#: resources/ui/gtk3/TVEffect.ui:35 resources/ui/gtk3/EnergizeA.ui:42
|
||||||
|
#: resources/ui/gtk3/Hexagon.ui:49 resources/ui/gtk3/EnergizeB.ui:42
|
||||||
|
#: resources/ui/gtk3/Apparition.ui:63
|
||||||
|
msgid "Animation Time [ms]"
|
||||||
|
msgstr "Tiempo de animación [ms]"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:52 resources/ui/gtk4/Matrix.ui:98
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:144 resources/ui/gtk4/Matrix.ui:190
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:224 resources/ui/gtk4/Matrix.ui:258
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:52 resources/ui/gtk4/BrokenGlass.ui:98
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:144 resources/ui/gtk4/BrokenGlass.ui:190
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:244 resources/ui/gtk4/Wisps.ui:52
|
||||||
|
#: resources/ui/gtk4/Wisps.ui:98 resources/ui/gtk4/Wisps.ui:132
|
||||||
|
#: resources/ui/gtk4/Fire.ui:77 resources/ui/gtk4/Fire.ui:123
|
||||||
|
#: resources/ui/gtk4/Fire.ui:169 resources/ui/gtk4/Fire.ui:222
|
||||||
|
#: resources/ui/gtk4/Fire.ui:280 resources/ui/gtk4/TRexAttack.ui:52
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:98 resources/ui/gtk4/TRexAttack.ui:144
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:190 resources/ui/gtk4/TRexAttack.ui:224
|
||||||
|
#: resources/ui/gtk4/TVEffect.ui:52 resources/ui/gtk4/TVEffect.ui:86
|
||||||
|
#: resources/ui/gtk4/EnergizeA.ui:52 resources/ui/gtk4/EnergizeA.ui:98
|
||||||
|
#: resources/ui/gtk4/EnergizeA.ui:132 resources/ui/gtk4/Hexagon.ui:52
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:98 resources/ui/gtk4/Hexagon.ui:144
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:178 resources/ui/gtk4/Hexagon.ui:212
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:265 resources/ui/gtk4/EnergizeB.ui:52
|
||||||
|
#: resources/ui/gtk4/EnergizeB.ui:98 resources/ui/gtk4/EnergizeB.ui:132
|
||||||
|
#: resources/ui/gtk4/prefs.ui:166 resources/ui/gtk4/Apparition.ui:52
|
||||||
|
#: resources/ui/gtk4/Apparition.ui:98 resources/ui/gtk4/Apparition.ui:144
|
||||||
|
#: resources/ui/gtk4/Apparition.ui:190 resources/ui/gtk4/Apparition.ui:236
|
||||||
|
#: resources/ui/gtk3/Wisps.ui:68 resources/ui/gtk3/Wisps.ui:117
|
||||||
|
#: resources/ui/gtk3/Wisps.ui:160 resources/ui/gtk3/Fire.ui:119
|
||||||
|
#: resources/ui/gtk3/Fire.ui:167 resources/ui/gtk3/Fire.ui:215
|
||||||
|
#: resources/ui/gtk3/Fire.ui:277 resources/ui/gtk3/Fire.ui:345
|
||||||
|
#: resources/ui/gtk3/TVEffect.ui:61 resources/ui/gtk3/TVEffect.ui:104
|
||||||
|
#: resources/ui/gtk3/EnergizeA.ui:68 resources/ui/gtk3/EnergizeA.ui:117
|
||||||
|
#: resources/ui/gtk3/EnergizeA.ui:160 resources/ui/gtk3/Hexagon.ui:75
|
||||||
|
#: resources/ui/gtk3/Hexagon.ui:124 resources/ui/gtk3/Hexagon.ui:173
|
||||||
|
#: resources/ui/gtk3/Hexagon.ui:216 resources/ui/gtk3/Hexagon.ui:259
|
||||||
|
#: resources/ui/gtk3/Hexagon.ui:321 resources/ui/gtk3/EnergizeB.ui:68
|
||||||
|
#: resources/ui/gtk3/EnergizeB.ui:117 resources/ui/gtk3/EnergizeB.ui:160
|
||||||
|
#: resources/ui/gtk3/prefs.ui:219 resources/ui/gtk3/Apparition.ui:89
|
||||||
|
#: resources/ui/gtk3/Apparition.ui:138 resources/ui/gtk3/Apparition.ui:187
|
||||||
|
#: resources/ui/gtk3/Apparition.ui:236 resources/ui/gtk3/Apparition.ui:285
|
||||||
|
msgid "Reset to Default Value"
|
||||||
|
msgstr "Restablecer al valor predeterminado"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:70 resources/ui/gtk4/BrokenGlass.ui:70
|
||||||
|
#: resources/ui/gtk4/Wisps.ui:70 resources/ui/gtk4/Fire.ui:95
|
||||||
|
#: resources/ui/gtk4/SnapOfDisintegration.ui:70
|
||||||
|
#: resources/ui/gtk4/EnergizeA.ui:70 resources/ui/gtk4/Hexagon.ui:70
|
||||||
|
#: resources/ui/gtk4/EnergizeB.ui:70 resources/ui/gtk3/Wisps.ui:91
|
||||||
|
#: resources/ui/gtk3/Fire.ui:141 resources/ui/gtk3/EnergizeA.ui:91
|
||||||
|
#: resources/ui/gtk3/Hexagon.ui:98 resources/ui/gtk3/EnergizeB.ui:91
|
||||||
|
msgid "Scale"
|
||||||
|
msgstr "Escala"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:116 resources/ui/gtk4/Apparition.ui:70
|
||||||
|
#: resources/ui/gtk3/Apparition.ui:112
|
||||||
|
msgid "Randomness"
|
||||||
|
msgstr "Aleatoriedad"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:162
|
||||||
|
msgid "Vertical Overshooting"
|
||||||
|
msgstr "Superposición vertical"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:208
|
||||||
|
msgid "Trail Color"
|
||||||
|
msgstr "Color de la estela"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:242
|
||||||
|
msgid "Tip Color"
|
||||||
|
msgstr "Color de la punta"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:116
|
||||||
|
msgid "Gravity"
|
||||||
|
msgstr "Gravedad"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:162
|
||||||
|
msgid "Blow Force"
|
||||||
|
msgstr "Fuerza del golpe"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:212
|
||||||
|
msgid "Shatter From Pointer Location"
|
||||||
|
msgstr "Fragmentar desde la ubicación del puntero"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:221
|
||||||
|
msgid ""
|
||||||
|
"The shards will fly away from where your mouse pointer was when closing the "
|
||||||
|
"window."
|
||||||
|
msgstr ""
|
||||||
|
"Los fragmentos saldrán volando desde donde estaba el puntero del ratón al "
|
||||||
|
"cerrar la ventana."
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Wisps.ui:116 resources/ui/gtk4/SnapOfDisintegration.ui:116
|
||||||
|
#: resources/ui/gtk4/TVEffect.ui:70 resources/ui/gtk4/EnergizeA.ui:116
|
||||||
|
#: resources/ui/gtk4/EnergizeB.ui:116 resources/ui/gtk3/Wisps.ui:139
|
||||||
|
#: resources/ui/gtk3/TVEffect.ui:83 resources/ui/gtk3/EnergizeA.ui:139
|
||||||
|
#: resources/ui/gtk3/EnergizeB.ui:139
|
||||||
|
msgid "Color"
|
||||||
|
msgstr "Color"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Fire.ui:25 resources/ui/gtk3/Fire.ui:49
|
||||||
|
msgid "Presets"
|
||||||
|
msgstr "Preselecciones"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Fire.ui:141 resources/ui/gtk3/Fire.ui:189
|
||||||
|
msgid "Speed"
|
||||||
|
msgstr "Velocidad"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Fire.ui:191 resources/ui/gtk3/Fire.ui:241
|
||||||
|
msgid "3D Noise"
|
||||||
|
msgstr "Ruido 3D"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Fire.ui:200 resources/ui/gtk3/Fire.ui:250
|
||||||
|
msgid "Creates a more dynamic fire but requires more GPU power."
|
||||||
|
msgstr "Crea un fuego más dinámico pero requiere más potencia de la GPU."
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Fire.ui:240 resources/ui/gtk3/Fire.ui:300
|
||||||
|
msgid "Gradient"
|
||||||
|
msgstr "Degradado"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:70
|
||||||
|
msgid "Claw Scratch Scale"
|
||||||
|
msgstr "Escala de arañazos de garras"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:116
|
||||||
|
msgid "Claw Scratch Count"
|
||||||
|
msgstr "Número de arañazos de garras"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:162
|
||||||
|
msgid "Warp Effect"
|
||||||
|
msgstr "Efecto distorsión"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:208
|
||||||
|
msgid "Flash Color"
|
||||||
|
msgstr "Color del flash"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/effectPage.ui:37 resources/ui/gtk3/effectPage.ui:37
|
||||||
|
msgid "Preview this Effect"
|
||||||
|
msgstr "Previsualizar este efecto"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:116 resources/ui/gtk3/Hexagon.ui:147
|
||||||
|
msgid "Mesh Line Width"
|
||||||
|
msgstr "Ancho de la línea de malla"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:162 resources/ui/gtk3/Hexagon.ui:195
|
||||||
|
msgid "Line Color"
|
||||||
|
msgstr "Color de línea"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:196 resources/ui/gtk3/Hexagon.ui:238
|
||||||
|
msgid "Glow Color"
|
||||||
|
msgstr "Color del brillo"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:234 resources/ui/gtk3/Hexagon.ui:285
|
||||||
|
msgid "Additive Blending"
|
||||||
|
msgstr "Fundido activo"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:243 resources/ui/gtk3/Hexagon.ui:294
|
||||||
|
msgid "You may want to enable this for dark window themes."
|
||||||
|
msgstr "Puede ser que necesites activar esto para temas oscuros de ventana."
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:28 resources/ui/gtk3/prefs.ui:35
|
||||||
|
msgid "Welcome to Burn-My-Windows!"
|
||||||
|
msgstr "¡Le damos la bienvenida a Burn-My-Windows!"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:39 resources/ui/gtk3/prefs.ui:46
|
||||||
|
msgid "If you like this extension, recommend it to your friends :)"
|
||||||
|
msgstr "Si le gusta esta extensión, recomiéndela a sus amistades :)"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:66 resources/ui/gtk3/prefs.ui:74
|
||||||
|
msgid "Open Window Animation"
|
||||||
|
msgstr "Animación al abrir la ventana"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:75 resources/ui/gtk4/prefs.ui:119
|
||||||
|
#: resources/ui/gtk3/prefs.ui:83 resources/ui/gtk3/prefs.ui:147
|
||||||
|
msgid "If multiple are selected, one is chosen randomly."
|
||||||
|
msgstr "Si se seleccionan varios, se elige uno al azar."
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:90 resources/ui/gtk4/prefs.ui:134
|
||||||
|
#: resources/ui/gtk3/prefs.ui:104 resources/ui/gtk3/prefs.ui:168
|
||||||
|
msgid "Choose Effects"
|
||||||
|
msgstr "Elegir efectos"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:110 resources/ui/gtk3/prefs.ui:138
|
||||||
|
msgid "Close Window Animation"
|
||||||
|
msgstr "Animación al cerrar la ventana"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:150 resources/ui/gtk3/prefs.ui:198
|
||||||
|
msgid "Also Add Effects to Dialogs"
|
||||||
|
msgstr "Añadir también efectos a los diálogos"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Apparition.ui:116 resources/ui/gtk3/Apparition.ui:161
|
||||||
|
msgid "Twirl Intensity"
|
||||||
|
msgstr "Intensidad del giro"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Apparition.ui:162 resources/ui/gtk3/Apparition.ui:210
|
||||||
|
msgid "Shake Intensity"
|
||||||
|
msgstr "Intensidad del temblor"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Apparition.ui:208 resources/ui/gtk3/Apparition.ui:259
|
||||||
|
msgid "Suction Intensity"
|
||||||
|
msgstr "Intensidad de la succión"
|
||||||
|
|
||||||
|
#: resources/ui/gtk3/Fire.ui:63
|
||||||
|
msgid "Choose a Preset"
|
||||||
|
msgstr "Elija una preselección"
|
||||||
|
|
||||||
|
#~ msgid "Via PayPal"
|
||||||
|
#~ msgstr "Vía PayPal"
|
||||||
|
|
||||||
|
#~ msgid "Via GitHub"
|
||||||
|
#~ msgstr "Vía GitHub"
|
||||||
@@ -0,0 +1,362 @@
|
|||||||
|
# SOME DESCRIPTIVE TITLE.
|
||||||
|
# Copyright (C) YEAR Simon Schneegans
|
||||||
|
# This file is distributed under the same license as the burn-my-windows package.
|
||||||
|
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||||
|
#
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: burn-my-windows\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2022-04-05 09:22+0200\n"
|
||||||
|
"PO-Revision-Date: 2022-04-08 07:11+0000\n"
|
||||||
|
"Last-Translator: Jiri Grönroos <jiri.gronroos@iki.fi>\n"
|
||||||
|
"Language-Team: Finnish <https://hosted.weblate.org/projects/burn-my-windows/"
|
||||||
|
"core/fi/>\n"
|
||||||
|
"Language: fi\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||||
|
"X-Generator: Weblate 4.12-dev\n"
|
||||||
|
|
||||||
|
#: prefs.js:112
|
||||||
|
msgid "Effect Options"
|
||||||
|
msgstr "Tehostevalinnat"
|
||||||
|
|
||||||
|
#: prefs.js:140
|
||||||
|
msgid "Go Back"
|
||||||
|
msgstr "Takaisin"
|
||||||
|
|
||||||
|
#: prefs.js:182
|
||||||
|
msgid "General Options"
|
||||||
|
msgstr "Yleiset asetukset"
|
||||||
|
|
||||||
|
#: prefs.js:276
|
||||||
|
msgid "Gold Sponsors"
|
||||||
|
msgstr "Kultasponsorit"
|
||||||
|
|
||||||
|
#: prefs.js:279
|
||||||
|
msgid "Silver Sponsors"
|
||||||
|
msgstr "Hopeasponsorit"
|
||||||
|
|
||||||
|
#: prefs.js:282
|
||||||
|
msgid "Bronze Sponsors"
|
||||||
|
msgstr "Pronssisponsorit"
|
||||||
|
|
||||||
|
#: prefs.js:285
|
||||||
|
msgid "Past Sponsors"
|
||||||
|
msgstr "Aiemmat sponsorit"
|
||||||
|
|
||||||
|
#. Translators: %s will be replaced by the effect's name.
|
||||||
|
#: prefs.js:510
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Preview for %s"
|
||||||
|
msgstr "Esikatselu tehosteelle %s"
|
||||||
|
|
||||||
|
#: prefs.js:532
|
||||||
|
msgid "Close this Window to Preview the Effect!"
|
||||||
|
msgstr "Sulje tämä ikkuna esikatsellaksesi tehosteen!"
|
||||||
|
|
||||||
|
#: src/BrokenGlass.js:57
|
||||||
|
msgid "Broken Glass"
|
||||||
|
msgstr "Rikkoutunut lasi"
|
||||||
|
|
||||||
|
#: src/TVEffect.js:56
|
||||||
|
msgid "TV Effect"
|
||||||
|
msgstr "TV-tehoste"
|
||||||
|
|
||||||
|
#: src/TRexAttack.js:56
|
||||||
|
msgid "T-Rex Attack"
|
||||||
|
msgstr "T-Rexin hyökkäys"
|
||||||
|
|
||||||
|
#: src/SnapOfDisintegration.js:60
|
||||||
|
msgid "Snap of Disintegration"
|
||||||
|
msgstr "Hajoamisen napsahdus"
|
||||||
|
|
||||||
|
#: src/Wisps.js:55
|
||||||
|
msgid "Wisps"
|
||||||
|
msgstr "Häiveet"
|
||||||
|
|
||||||
|
#: src/Fire.js:58
|
||||||
|
msgid "Fire"
|
||||||
|
msgstr "Tuli"
|
||||||
|
|
||||||
|
#: src/Fire.js:130
|
||||||
|
msgid "Default Fire"
|
||||||
|
msgstr "Oletustuli"
|
||||||
|
|
||||||
|
#: src/Fire.js:140
|
||||||
|
msgid "Hell Fire"
|
||||||
|
msgstr "Helvetintuli"
|
||||||
|
|
||||||
|
#: src/Fire.js:150
|
||||||
|
msgid "Dark and Smutty"
|
||||||
|
msgstr "Tumma ja likainen"
|
||||||
|
|
||||||
|
#: src/Fire.js:160
|
||||||
|
msgid "Cold Breeze"
|
||||||
|
msgstr "Kylmän tuulahdus"
|
||||||
|
|
||||||
|
#: src/Fire.js:170
|
||||||
|
msgid "Santa is Coming"
|
||||||
|
msgstr "Pukki saapuu"
|
||||||
|
|
||||||
|
#: src/Hexagon.js:53
|
||||||
|
msgid "Hexagon"
|
||||||
|
msgstr "Kuusikulmio"
|
||||||
|
|
||||||
|
#: src/EnergizeA.js:54
|
||||||
|
msgid "Energize A"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Apparition.js:57
|
||||||
|
msgid "Apparition"
|
||||||
|
msgstr "Ilmestys"
|
||||||
|
|
||||||
|
#: src/EnergizeB.js:54
|
||||||
|
msgid "Energize B"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Matrix.js:58
|
||||||
|
msgid "Matrix"
|
||||||
|
msgstr "Matriisi"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:6
|
||||||
|
msgid "Visit Homepage"
|
||||||
|
msgstr "Käy verkkosivulla"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:10
|
||||||
|
msgid "View Changelog"
|
||||||
|
msgstr "Näytä muutosloki"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:16
|
||||||
|
msgid "Report a Bug"
|
||||||
|
msgstr "Ilmoita ongelmasta"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:20
|
||||||
|
msgid "Create an Effect"
|
||||||
|
msgstr "Luo tehoste"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:24
|
||||||
|
msgid "Translate"
|
||||||
|
msgstr "Käännä"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:28
|
||||||
|
msgid "Donate"
|
||||||
|
msgstr "Lahjoita"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:41
|
||||||
|
msgid "About Burn-My-Windows"
|
||||||
|
msgstr "Tietoja - Burn-My-Windows"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:24 resources/ui/gtk4/BrokenGlass.ui:24
|
||||||
|
#: resources/ui/gtk4/Wisps.ui:24 resources/ui/gtk4/Fire.ui:49
|
||||||
|
#: resources/ui/gtk4/SnapOfDisintegration.ui:24
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:24 resources/ui/gtk4/TVEffect.ui:24
|
||||||
|
#: resources/ui/gtk4/EnergizeA.ui:24 resources/ui/gtk4/Hexagon.ui:24
|
||||||
|
#: resources/ui/gtk4/EnergizeB.ui:24 resources/ui/gtk4/Apparition.ui:24
|
||||||
|
#: resources/ui/gtk3/Wisps.ui:42 resources/ui/gtk3/Fire.ui:93
|
||||||
|
#: resources/ui/gtk3/TVEffect.ui:35 resources/ui/gtk3/EnergizeA.ui:42
|
||||||
|
#: resources/ui/gtk3/Hexagon.ui:49 resources/ui/gtk3/EnergizeB.ui:42
|
||||||
|
#: resources/ui/gtk3/Apparition.ui:63
|
||||||
|
msgid "Animation Time [ms]"
|
||||||
|
msgstr "Animaatioaika [ms]"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:52 resources/ui/gtk4/Matrix.ui:98
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:144 resources/ui/gtk4/Matrix.ui:190
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:224 resources/ui/gtk4/Matrix.ui:258
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:52 resources/ui/gtk4/BrokenGlass.ui:98
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:144 resources/ui/gtk4/BrokenGlass.ui:190
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:244 resources/ui/gtk4/Wisps.ui:52
|
||||||
|
#: resources/ui/gtk4/Wisps.ui:98 resources/ui/gtk4/Wisps.ui:132
|
||||||
|
#: resources/ui/gtk4/Fire.ui:77 resources/ui/gtk4/Fire.ui:123
|
||||||
|
#: resources/ui/gtk4/Fire.ui:169 resources/ui/gtk4/Fire.ui:222
|
||||||
|
#: resources/ui/gtk4/Fire.ui:280 resources/ui/gtk4/TRexAttack.ui:52
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:98 resources/ui/gtk4/TRexAttack.ui:144
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:190 resources/ui/gtk4/TRexAttack.ui:224
|
||||||
|
#: resources/ui/gtk4/TVEffect.ui:52 resources/ui/gtk4/TVEffect.ui:86
|
||||||
|
#: resources/ui/gtk4/EnergizeA.ui:52 resources/ui/gtk4/EnergizeA.ui:98
|
||||||
|
#: resources/ui/gtk4/EnergizeA.ui:132 resources/ui/gtk4/Hexagon.ui:52
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:98 resources/ui/gtk4/Hexagon.ui:144
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:178 resources/ui/gtk4/Hexagon.ui:212
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:265 resources/ui/gtk4/EnergizeB.ui:52
|
||||||
|
#: resources/ui/gtk4/EnergizeB.ui:98 resources/ui/gtk4/EnergizeB.ui:132
|
||||||
|
#: resources/ui/gtk4/prefs.ui:166 resources/ui/gtk4/Apparition.ui:52
|
||||||
|
#: resources/ui/gtk4/Apparition.ui:98 resources/ui/gtk4/Apparition.ui:144
|
||||||
|
#: resources/ui/gtk4/Apparition.ui:190 resources/ui/gtk4/Apparition.ui:236
|
||||||
|
#: resources/ui/gtk3/Wisps.ui:68 resources/ui/gtk3/Wisps.ui:117
|
||||||
|
#: resources/ui/gtk3/Wisps.ui:160 resources/ui/gtk3/Fire.ui:119
|
||||||
|
#: resources/ui/gtk3/Fire.ui:167 resources/ui/gtk3/Fire.ui:215
|
||||||
|
#: resources/ui/gtk3/Fire.ui:277 resources/ui/gtk3/Fire.ui:345
|
||||||
|
#: resources/ui/gtk3/TVEffect.ui:61 resources/ui/gtk3/TVEffect.ui:104
|
||||||
|
#: resources/ui/gtk3/EnergizeA.ui:68 resources/ui/gtk3/EnergizeA.ui:117
|
||||||
|
#: resources/ui/gtk3/EnergizeA.ui:160 resources/ui/gtk3/Hexagon.ui:75
|
||||||
|
#: resources/ui/gtk3/Hexagon.ui:124 resources/ui/gtk3/Hexagon.ui:173
|
||||||
|
#: resources/ui/gtk3/Hexagon.ui:216 resources/ui/gtk3/Hexagon.ui:259
|
||||||
|
#: resources/ui/gtk3/Hexagon.ui:321 resources/ui/gtk3/EnergizeB.ui:68
|
||||||
|
#: resources/ui/gtk3/EnergizeB.ui:117 resources/ui/gtk3/EnergizeB.ui:160
|
||||||
|
#: resources/ui/gtk3/prefs.ui:219 resources/ui/gtk3/Apparition.ui:89
|
||||||
|
#: resources/ui/gtk3/Apparition.ui:138 resources/ui/gtk3/Apparition.ui:187
|
||||||
|
#: resources/ui/gtk3/Apparition.ui:236 resources/ui/gtk3/Apparition.ui:285
|
||||||
|
msgid "Reset to Default Value"
|
||||||
|
msgstr "Palauta oletusarvoon"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:70 resources/ui/gtk4/BrokenGlass.ui:70
|
||||||
|
#: resources/ui/gtk4/Wisps.ui:70 resources/ui/gtk4/Fire.ui:95
|
||||||
|
#: resources/ui/gtk4/SnapOfDisintegration.ui:70
|
||||||
|
#: resources/ui/gtk4/EnergizeA.ui:70 resources/ui/gtk4/Hexagon.ui:70
|
||||||
|
#: resources/ui/gtk4/EnergizeB.ui:70 resources/ui/gtk3/Wisps.ui:91
|
||||||
|
#: resources/ui/gtk3/Fire.ui:141 resources/ui/gtk3/EnergizeA.ui:91
|
||||||
|
#: resources/ui/gtk3/Hexagon.ui:98 resources/ui/gtk3/EnergizeB.ui:91
|
||||||
|
msgid "Scale"
|
||||||
|
msgstr "Skaala"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:116 resources/ui/gtk4/Apparition.ui:70
|
||||||
|
#: resources/ui/gtk3/Apparition.ui:112
|
||||||
|
msgid "Randomness"
|
||||||
|
msgstr "Satunnaisuus"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:162
|
||||||
|
msgid "Vertical Overshooting"
|
||||||
|
msgstr "Pystysuora ylitys"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:208
|
||||||
|
msgid "Trail Color"
|
||||||
|
msgstr "Polun väri"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:242
|
||||||
|
msgid "Tip Color"
|
||||||
|
msgstr "Vihjeen väri"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:116
|
||||||
|
msgid "Gravity"
|
||||||
|
msgstr "Painovoima"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:162
|
||||||
|
msgid "Blow Force"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:212
|
||||||
|
msgid "Shatter From Pointer Location"
|
||||||
|
msgstr "Särkyminen osoittimen sijainnista"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:221
|
||||||
|
msgid ""
|
||||||
|
"The shards will fly away from where your mouse pointer was when closing the "
|
||||||
|
"window."
|
||||||
|
msgstr ""
|
||||||
|
"Sirpaleet lentävät kauas hiiren osoittimen sijainnista kun suljet ikkunan."
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Wisps.ui:116 resources/ui/gtk4/SnapOfDisintegration.ui:116
|
||||||
|
#: resources/ui/gtk4/TVEffect.ui:70 resources/ui/gtk4/EnergizeA.ui:116
|
||||||
|
#: resources/ui/gtk4/EnergizeB.ui:116 resources/ui/gtk3/Wisps.ui:139
|
||||||
|
#: resources/ui/gtk3/TVEffect.ui:83 resources/ui/gtk3/EnergizeA.ui:139
|
||||||
|
#: resources/ui/gtk3/EnergizeB.ui:139
|
||||||
|
msgid "Color"
|
||||||
|
msgstr "Väri"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Fire.ui:25 resources/ui/gtk3/Fire.ui:49
|
||||||
|
msgid "Presets"
|
||||||
|
msgstr "Esiasetukset"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Fire.ui:141 resources/ui/gtk3/Fire.ui:189
|
||||||
|
msgid "Speed"
|
||||||
|
msgstr "Nopeus"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Fire.ui:191 resources/ui/gtk3/Fire.ui:241
|
||||||
|
msgid "3D Noise"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Fire.ui:200 resources/ui/gtk3/Fire.ui:250
|
||||||
|
msgid "Creates a more dynamic fire but requires more GPU power."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Fire.ui:240 resources/ui/gtk3/Fire.ui:300
|
||||||
|
msgid "Gradient"
|
||||||
|
msgstr "Liukuväri"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:70
|
||||||
|
msgid "Claw Scratch Scale"
|
||||||
|
msgstr "Kynnenraapaisun skaala"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:116
|
||||||
|
msgid "Claw Scratch Count"
|
||||||
|
msgstr "Kynnenraapaisujen määrä"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:162
|
||||||
|
msgid "Warp Effect"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:208
|
||||||
|
msgid "Flash Color"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/effectPage.ui:37 resources/ui/gtk3/effectPage.ui:37
|
||||||
|
msgid "Preview this Effect"
|
||||||
|
msgstr "Esikatsele tämä tehoste"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:116 resources/ui/gtk3/Hexagon.ui:147
|
||||||
|
msgid "Mesh Line Width"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:162 resources/ui/gtk3/Hexagon.ui:195
|
||||||
|
msgid "Line Color"
|
||||||
|
msgstr "Viivan väri"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:196 resources/ui/gtk3/Hexagon.ui:238
|
||||||
|
msgid "Glow Color"
|
||||||
|
msgstr "Hehkun väri"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:234 resources/ui/gtk3/Hexagon.ui:285
|
||||||
|
msgid "Additive Blending"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:243 resources/ui/gtk3/Hexagon.ui:294
|
||||||
|
msgid "You may want to enable this for dark window themes."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:28 resources/ui/gtk3/prefs.ui:35
|
||||||
|
msgid "Welcome to Burn-My-Windows!"
|
||||||
|
msgstr "Tervetuloa, tämä on Burn-My-Windows!"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:39 resources/ui/gtk3/prefs.ui:46
|
||||||
|
msgid "If you like this extension, recommend it to your friends :)"
|
||||||
|
msgstr "Jos pidä tästä laajennuksesta, suosittele sitä kavereillesi :)"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:66 resources/ui/gtk3/prefs.ui:74
|
||||||
|
msgid "Open Window Animation"
|
||||||
|
msgstr "Ikkunan avaamisen animaatio"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:75 resources/ui/gtk4/prefs.ui:119
|
||||||
|
#: resources/ui/gtk3/prefs.ui:83 resources/ui/gtk3/prefs.ui:147
|
||||||
|
msgid "If multiple are selected, one is chosen randomly."
|
||||||
|
msgstr "Jos useita on valittu, yksi valitaan satunnaisesti."
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:90 resources/ui/gtk4/prefs.ui:134
|
||||||
|
#: resources/ui/gtk3/prefs.ui:104 resources/ui/gtk3/prefs.ui:168
|
||||||
|
msgid "Choose Effects"
|
||||||
|
msgstr "Valitse tehosteet"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:110 resources/ui/gtk3/prefs.ui:138
|
||||||
|
msgid "Close Window Animation"
|
||||||
|
msgstr "Ikkunan sulkemisen animaatio"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:150 resources/ui/gtk3/prefs.ui:198
|
||||||
|
msgid "Also Add Effects to Dialogs"
|
||||||
|
msgstr "Lisää tehosteet myös dialogi-ikkunoihin"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Apparition.ui:116 resources/ui/gtk3/Apparition.ui:161
|
||||||
|
msgid "Twirl Intensity"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Apparition.ui:162 resources/ui/gtk3/Apparition.ui:210
|
||||||
|
msgid "Shake Intensity"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Apparition.ui:208 resources/ui/gtk3/Apparition.ui:259
|
||||||
|
msgid "Suction Intensity"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk3/Fire.ui:63
|
||||||
|
msgid "Choose a Preset"
|
||||||
|
msgstr "Valitse esiasetus"
|
||||||
@@ -0,0 +1,371 @@
|
|||||||
|
# SOME DESCRIPTIVE TITLE.
|
||||||
|
# Copyright (C) YEAR Simon Schneegans
|
||||||
|
# This file is distributed under the same license as the Burn-My-Windows package.
|
||||||
|
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||||
|
#
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Burn-My-Windows\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2022-04-05 09:22+0200\n"
|
||||||
|
"PO-Revision-Date: 2022-05-01 23:10+0000\n"
|
||||||
|
"Last-Translator: matb <perso@mathieu-bousquet.fr>\n"
|
||||||
|
"Language-Team: French <https://hosted.weblate.org/projects/burn-my-windows/"
|
||||||
|
"core/fr/>\n"
|
||||||
|
"Language: fr\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=n > 1;\n"
|
||||||
|
"X-Generator: Weblate 4.12.1\n"
|
||||||
|
|
||||||
|
#: prefs.js:112
|
||||||
|
msgid "Effect Options"
|
||||||
|
msgstr "Options de l'effet"
|
||||||
|
|
||||||
|
#: prefs.js:140
|
||||||
|
msgid "Go Back"
|
||||||
|
msgstr "Retour"
|
||||||
|
|
||||||
|
#: prefs.js:182
|
||||||
|
msgid "General Options"
|
||||||
|
msgstr "Options générales"
|
||||||
|
|
||||||
|
#: prefs.js:276
|
||||||
|
msgid "Gold Sponsors"
|
||||||
|
msgstr "Sponsors Or"
|
||||||
|
|
||||||
|
#: prefs.js:279
|
||||||
|
msgid "Silver Sponsors"
|
||||||
|
msgstr "Sponsors Argent"
|
||||||
|
|
||||||
|
#: prefs.js:282
|
||||||
|
msgid "Bronze Sponsors"
|
||||||
|
msgstr "Sponsors Bronze"
|
||||||
|
|
||||||
|
#: prefs.js:285
|
||||||
|
msgid "Past Sponsors"
|
||||||
|
msgstr "Anciens Sponsors"
|
||||||
|
|
||||||
|
#. Translators: %s will be replaced by the effect's name.
|
||||||
|
#: prefs.js:510
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Preview for %s"
|
||||||
|
msgstr "Aperçu pour %s"
|
||||||
|
|
||||||
|
#: prefs.js:532
|
||||||
|
msgid "Close this Window to Preview the Effect!"
|
||||||
|
msgstr "Fermez cette fenêtre pour un aperçu de l'effet !"
|
||||||
|
|
||||||
|
#: src/BrokenGlass.js:57
|
||||||
|
msgid "Broken Glass"
|
||||||
|
msgstr "Verre brisé"
|
||||||
|
|
||||||
|
#: src/TVEffect.js:56
|
||||||
|
msgid "TV Effect"
|
||||||
|
msgstr "Effet TV"
|
||||||
|
|
||||||
|
#: src/TRexAttack.js:56
|
||||||
|
msgid "T-Rex Attack"
|
||||||
|
msgstr "Attaque de T-Rex"
|
||||||
|
|
||||||
|
#: src/SnapOfDisintegration.js:60
|
||||||
|
msgid "Snap of Disintegration"
|
||||||
|
msgstr "Désintégration"
|
||||||
|
|
||||||
|
#: src/Wisps.js:55
|
||||||
|
msgid "Wisps"
|
||||||
|
msgstr "Feux follets"
|
||||||
|
|
||||||
|
#: src/Fire.js:58
|
||||||
|
msgid "Fire"
|
||||||
|
msgstr "Feu"
|
||||||
|
|
||||||
|
#: src/Fire.js:130
|
||||||
|
msgid "Default Fire"
|
||||||
|
msgstr "Feu par défaut"
|
||||||
|
|
||||||
|
#: src/Fire.js:140
|
||||||
|
msgid "Hell Fire"
|
||||||
|
msgstr "Feu de l'enfer"
|
||||||
|
|
||||||
|
#: src/Fire.js:150
|
||||||
|
msgid "Dark and Smutty"
|
||||||
|
msgstr "Sombre et ténébreux"
|
||||||
|
|
||||||
|
#: src/Fire.js:160
|
||||||
|
msgid "Cold Breeze"
|
||||||
|
msgstr "Brise froide"
|
||||||
|
|
||||||
|
#: src/Fire.js:170
|
||||||
|
msgid "Santa is Coming"
|
||||||
|
msgstr "Le Père Noël arrive"
|
||||||
|
|
||||||
|
#: src/Hexagon.js:53
|
||||||
|
msgid "Hexagon"
|
||||||
|
msgstr "Hexagone"
|
||||||
|
|
||||||
|
#: src/EnergizeA.js:54
|
||||||
|
msgid "Energize A"
|
||||||
|
msgstr "Énergie A"
|
||||||
|
|
||||||
|
#: src/Apparition.js:57
|
||||||
|
msgid "Apparition"
|
||||||
|
msgstr "Apparition"
|
||||||
|
|
||||||
|
#: src/EnergizeB.js:54
|
||||||
|
msgid "Energize B"
|
||||||
|
msgstr "Énergie B"
|
||||||
|
|
||||||
|
#: src/Matrix.js:58
|
||||||
|
msgid "Matrix"
|
||||||
|
msgstr "Matrix"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:6
|
||||||
|
msgid "Visit Homepage"
|
||||||
|
msgstr "Visiter la page d'accueil"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:10
|
||||||
|
msgid "View Changelog"
|
||||||
|
msgstr "Voir le journal des modifications"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:16
|
||||||
|
msgid "Report a Bug"
|
||||||
|
msgstr "Signaler un bogue"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:20
|
||||||
|
msgid "Create an Effect"
|
||||||
|
msgstr "Créer un effet"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:24
|
||||||
|
msgid "Translate"
|
||||||
|
msgstr "Traduire"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:28
|
||||||
|
msgid "Donate"
|
||||||
|
msgstr "Faire un don"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:41
|
||||||
|
msgid "About Burn-My-Windows"
|
||||||
|
msgstr "À propos de Burn-My-Windows"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:24 resources/ui/gtk4/BrokenGlass.ui:24
|
||||||
|
#: resources/ui/gtk4/Wisps.ui:24 resources/ui/gtk4/Fire.ui:49
|
||||||
|
#: resources/ui/gtk4/SnapOfDisintegration.ui:24
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:24 resources/ui/gtk4/TVEffect.ui:24
|
||||||
|
#: resources/ui/gtk4/EnergizeA.ui:24 resources/ui/gtk4/Hexagon.ui:24
|
||||||
|
#: resources/ui/gtk4/EnergizeB.ui:24 resources/ui/gtk4/Apparition.ui:24
|
||||||
|
#: resources/ui/gtk3/Wisps.ui:42 resources/ui/gtk3/Fire.ui:93
|
||||||
|
#: resources/ui/gtk3/TVEffect.ui:35 resources/ui/gtk3/EnergizeA.ui:42
|
||||||
|
#: resources/ui/gtk3/Hexagon.ui:49 resources/ui/gtk3/EnergizeB.ui:42
|
||||||
|
#: resources/ui/gtk3/Apparition.ui:63
|
||||||
|
msgid "Animation Time [ms]"
|
||||||
|
msgstr "Durée de l'animation (ms)"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:52 resources/ui/gtk4/Matrix.ui:98
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:144 resources/ui/gtk4/Matrix.ui:190
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:224 resources/ui/gtk4/Matrix.ui:258
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:52 resources/ui/gtk4/BrokenGlass.ui:98
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:144 resources/ui/gtk4/BrokenGlass.ui:190
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:244 resources/ui/gtk4/Wisps.ui:52
|
||||||
|
#: resources/ui/gtk4/Wisps.ui:98 resources/ui/gtk4/Wisps.ui:132
|
||||||
|
#: resources/ui/gtk4/Fire.ui:77 resources/ui/gtk4/Fire.ui:123
|
||||||
|
#: resources/ui/gtk4/Fire.ui:169 resources/ui/gtk4/Fire.ui:222
|
||||||
|
#: resources/ui/gtk4/Fire.ui:280 resources/ui/gtk4/TRexAttack.ui:52
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:98 resources/ui/gtk4/TRexAttack.ui:144
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:190 resources/ui/gtk4/TRexAttack.ui:224
|
||||||
|
#: resources/ui/gtk4/TVEffect.ui:52 resources/ui/gtk4/TVEffect.ui:86
|
||||||
|
#: resources/ui/gtk4/EnergizeA.ui:52 resources/ui/gtk4/EnergizeA.ui:98
|
||||||
|
#: resources/ui/gtk4/EnergizeA.ui:132 resources/ui/gtk4/Hexagon.ui:52
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:98 resources/ui/gtk4/Hexagon.ui:144
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:178 resources/ui/gtk4/Hexagon.ui:212
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:265 resources/ui/gtk4/EnergizeB.ui:52
|
||||||
|
#: resources/ui/gtk4/EnergizeB.ui:98 resources/ui/gtk4/EnergizeB.ui:132
|
||||||
|
#: resources/ui/gtk4/prefs.ui:166 resources/ui/gtk4/Apparition.ui:52
|
||||||
|
#: resources/ui/gtk4/Apparition.ui:98 resources/ui/gtk4/Apparition.ui:144
|
||||||
|
#: resources/ui/gtk4/Apparition.ui:190 resources/ui/gtk4/Apparition.ui:236
|
||||||
|
#: resources/ui/gtk3/Wisps.ui:68 resources/ui/gtk3/Wisps.ui:117
|
||||||
|
#: resources/ui/gtk3/Wisps.ui:160 resources/ui/gtk3/Fire.ui:119
|
||||||
|
#: resources/ui/gtk3/Fire.ui:167 resources/ui/gtk3/Fire.ui:215
|
||||||
|
#: resources/ui/gtk3/Fire.ui:277 resources/ui/gtk3/Fire.ui:345
|
||||||
|
#: resources/ui/gtk3/TVEffect.ui:61 resources/ui/gtk3/TVEffect.ui:104
|
||||||
|
#: resources/ui/gtk3/EnergizeA.ui:68 resources/ui/gtk3/EnergizeA.ui:117
|
||||||
|
#: resources/ui/gtk3/EnergizeA.ui:160 resources/ui/gtk3/Hexagon.ui:75
|
||||||
|
#: resources/ui/gtk3/Hexagon.ui:124 resources/ui/gtk3/Hexagon.ui:173
|
||||||
|
#: resources/ui/gtk3/Hexagon.ui:216 resources/ui/gtk3/Hexagon.ui:259
|
||||||
|
#: resources/ui/gtk3/Hexagon.ui:321 resources/ui/gtk3/EnergizeB.ui:68
|
||||||
|
#: resources/ui/gtk3/EnergizeB.ui:117 resources/ui/gtk3/EnergizeB.ui:160
|
||||||
|
#: resources/ui/gtk3/prefs.ui:219 resources/ui/gtk3/Apparition.ui:89
|
||||||
|
#: resources/ui/gtk3/Apparition.ui:138 resources/ui/gtk3/Apparition.ui:187
|
||||||
|
#: resources/ui/gtk3/Apparition.ui:236 resources/ui/gtk3/Apparition.ui:285
|
||||||
|
msgid "Reset to Default Value"
|
||||||
|
msgstr "Réinitialiser à la valeur par défaut"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:70 resources/ui/gtk4/BrokenGlass.ui:70
|
||||||
|
#: resources/ui/gtk4/Wisps.ui:70 resources/ui/gtk4/Fire.ui:95
|
||||||
|
#: resources/ui/gtk4/SnapOfDisintegration.ui:70
|
||||||
|
#: resources/ui/gtk4/EnergizeA.ui:70 resources/ui/gtk4/Hexagon.ui:70
|
||||||
|
#: resources/ui/gtk4/EnergizeB.ui:70 resources/ui/gtk3/Wisps.ui:91
|
||||||
|
#: resources/ui/gtk3/Fire.ui:141 resources/ui/gtk3/EnergizeA.ui:91
|
||||||
|
#: resources/ui/gtk3/Hexagon.ui:98 resources/ui/gtk3/EnergizeB.ui:91
|
||||||
|
msgid "Scale"
|
||||||
|
msgstr "Échelle"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:116 resources/ui/gtk4/Apparition.ui:70
|
||||||
|
#: resources/ui/gtk3/Apparition.ui:112
|
||||||
|
msgid "Randomness"
|
||||||
|
msgstr "Aléatoire"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:162
|
||||||
|
msgid "Vertical Overshooting"
|
||||||
|
msgstr "Dépassement vertical"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:208
|
||||||
|
msgid "Trail Color"
|
||||||
|
msgstr "Couleur de la traîne"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:242
|
||||||
|
msgid "Tip Color"
|
||||||
|
msgstr "Couleur de la pointe"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:116
|
||||||
|
msgid "Gravity"
|
||||||
|
msgstr "Gravité"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:162
|
||||||
|
msgid "Blow Force"
|
||||||
|
msgstr "Force d'explosion"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:212
|
||||||
|
msgid "Shatter From Pointer Location"
|
||||||
|
msgstr "Briser à partir de la position du curseur"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:221
|
||||||
|
msgid ""
|
||||||
|
"The shards will fly away from where your mouse pointer was when closing the "
|
||||||
|
"window."
|
||||||
|
msgstr ""
|
||||||
|
"Les éclats s'envoleront de l'endroit où se trouvait le pointeur de votre "
|
||||||
|
"souris lorsque vous fermez la fenêtre."
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Wisps.ui:116 resources/ui/gtk4/SnapOfDisintegration.ui:116
|
||||||
|
#: resources/ui/gtk4/TVEffect.ui:70 resources/ui/gtk4/EnergizeA.ui:116
|
||||||
|
#: resources/ui/gtk4/EnergizeB.ui:116 resources/ui/gtk3/Wisps.ui:139
|
||||||
|
#: resources/ui/gtk3/TVEffect.ui:83 resources/ui/gtk3/EnergizeA.ui:139
|
||||||
|
#: resources/ui/gtk3/EnergizeB.ui:139
|
||||||
|
msgid "Color"
|
||||||
|
msgstr "Couleur"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Fire.ui:25 resources/ui/gtk3/Fire.ui:49
|
||||||
|
msgid "Presets"
|
||||||
|
msgstr "Préréglages"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Fire.ui:141 resources/ui/gtk3/Fire.ui:189
|
||||||
|
msgid "Speed"
|
||||||
|
msgstr "Vitesse"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Fire.ui:191 resources/ui/gtk3/Fire.ui:241
|
||||||
|
msgid "3D Noise"
|
||||||
|
msgstr "Bruit 3D"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Fire.ui:200 resources/ui/gtk3/Fire.ui:250
|
||||||
|
msgid "Creates a more dynamic fire but requires more GPU power."
|
||||||
|
msgstr ""
|
||||||
|
"Crée un feu plus dynamique mais demande plus de puissance de la carte "
|
||||||
|
"graphique."
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Fire.ui:240 resources/ui/gtk3/Fire.ui:300
|
||||||
|
msgid "Gradient"
|
||||||
|
msgstr "Gradient"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:70
|
||||||
|
msgid "Claw Scratch Scale"
|
||||||
|
msgstr "Taille de la griffe"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:116
|
||||||
|
msgid "Claw Scratch Count"
|
||||||
|
msgstr "Nombre de griffures"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:162
|
||||||
|
msgid "Warp Effect"
|
||||||
|
msgstr "Effet de distorsion"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:208
|
||||||
|
msgid "Flash Color"
|
||||||
|
msgstr "Couleur du flash"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/effectPage.ui:37 resources/ui/gtk3/effectPage.ui:37
|
||||||
|
msgid "Preview this Effect"
|
||||||
|
msgstr "Voir l'aperçu de cet effet"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:116 resources/ui/gtk3/Hexagon.ui:147
|
||||||
|
msgid "Mesh Line Width"
|
||||||
|
msgstr "Largeur des lignes du maillage"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:162 resources/ui/gtk3/Hexagon.ui:195
|
||||||
|
msgid "Line Color"
|
||||||
|
msgstr "Couleur de ligne"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:196 resources/ui/gtk3/Hexagon.ui:238
|
||||||
|
msgid "Glow Color"
|
||||||
|
msgstr "Couleur de la lueur"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:234 resources/ui/gtk3/Hexagon.ui:285
|
||||||
|
msgid "Additive Blending"
|
||||||
|
msgstr "Mélange additif"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:243 resources/ui/gtk3/Hexagon.ui:294
|
||||||
|
msgid "You may want to enable this for dark window themes."
|
||||||
|
msgstr "Vous voudrez peut-être l'activer pour les thèmes de fenêtre sombre."
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:28 resources/ui/gtk3/prefs.ui:35
|
||||||
|
msgid "Welcome to Burn-My-Windows!"
|
||||||
|
msgstr "Bienvenue dans Burn-My-Windows !"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:39 resources/ui/gtk3/prefs.ui:46
|
||||||
|
msgid "If you like this extension, recommend it to your friends :)"
|
||||||
|
msgstr "Si vous aimez cette extension, recommandez-la à vos amis :)"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:66 resources/ui/gtk3/prefs.ui:74
|
||||||
|
msgid "Open Window Animation"
|
||||||
|
msgstr "Animation d'ouverture de fenêtre"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:75 resources/ui/gtk4/prefs.ui:119
|
||||||
|
#: resources/ui/gtk3/prefs.ui:83 resources/ui/gtk3/prefs.ui:147
|
||||||
|
msgid "If multiple are selected, one is chosen randomly."
|
||||||
|
msgstr "Si plusieurs effets sont sélectionnés, un est choisi au hasard."
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:90 resources/ui/gtk4/prefs.ui:134
|
||||||
|
#: resources/ui/gtk3/prefs.ui:104 resources/ui/gtk3/prefs.ui:168
|
||||||
|
msgid "Choose Effects"
|
||||||
|
msgstr "Choisir les effets"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:110 resources/ui/gtk3/prefs.ui:138
|
||||||
|
msgid "Close Window Animation"
|
||||||
|
msgstr "Animation de fermeture de fenêtre"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:150 resources/ui/gtk3/prefs.ui:198
|
||||||
|
msgid "Also Add Effects to Dialogs"
|
||||||
|
msgstr "Appliquer également les effets aux boîtes de dialogue"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Apparition.ui:116 resources/ui/gtk3/Apparition.ui:161
|
||||||
|
msgid "Twirl Intensity"
|
||||||
|
msgstr "Intensité du tournoiement"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Apparition.ui:162 resources/ui/gtk3/Apparition.ui:210
|
||||||
|
msgid "Shake Intensity"
|
||||||
|
msgstr "Intensité de la secousse"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Apparition.ui:208 resources/ui/gtk3/Apparition.ui:259
|
||||||
|
msgid "Suction Intensity"
|
||||||
|
msgstr "Intensité de la succion"
|
||||||
|
|
||||||
|
#: resources/ui/gtk3/Fire.ui:63
|
||||||
|
msgid "Choose a Preset"
|
||||||
|
msgstr "Sélectionner un préréglage"
|
||||||
|
|
||||||
|
#~ msgid "Via PayPal"
|
||||||
|
#~ msgstr "Via PayPal"
|
||||||
|
|
||||||
|
#~ msgid "Via GitHub"
|
||||||
|
#~ msgstr "Via GitHub"
|
||||||
@@ -0,0 +1,369 @@
|
|||||||
|
# SOME DESCRIPTIVE TITLE.
|
||||||
|
# Copyright (C) YEAR Simon Schneegans
|
||||||
|
# This file is distributed under the same license as the Burn-My-Windows package.
|
||||||
|
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||||
|
#
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Burn-My-Windows\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2022-04-05 09:22+0200\n"
|
||||||
|
"PO-Revision-Date: 2022-04-16 11:14+0000\n"
|
||||||
|
"Last-Translator: albanobattistella <albano_battistella@hotmail.com>\n"
|
||||||
|
"Language-Team: Italian <https://hosted.weblate.org/projects/burn-my-windows/"
|
||||||
|
"core/it/>\n"
|
||||||
|
"Language: it\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||||
|
"X-Generator: Weblate 4.12-dev\n"
|
||||||
|
|
||||||
|
#: prefs.js:112
|
||||||
|
msgid "Effect Options"
|
||||||
|
msgstr "Opzioni effetto"
|
||||||
|
|
||||||
|
#: prefs.js:140
|
||||||
|
msgid "Go Back"
|
||||||
|
msgstr "Indietro"
|
||||||
|
|
||||||
|
#: prefs.js:182
|
||||||
|
msgid "General Options"
|
||||||
|
msgstr "Opzioni generali"
|
||||||
|
|
||||||
|
#: prefs.js:276
|
||||||
|
msgid "Gold Sponsors"
|
||||||
|
msgstr "Sponsor d'oro"
|
||||||
|
|
||||||
|
#: prefs.js:279
|
||||||
|
msgid "Silver Sponsors"
|
||||||
|
msgstr "Sponsor d'argento"
|
||||||
|
|
||||||
|
#: prefs.js:282
|
||||||
|
msgid "Bronze Sponsors"
|
||||||
|
msgstr "Sponsor di bronzo"
|
||||||
|
|
||||||
|
#: prefs.js:285
|
||||||
|
msgid "Past Sponsors"
|
||||||
|
msgstr "Sponsor passati"
|
||||||
|
|
||||||
|
#. Translators: %s will be replaced by the effect's name.
|
||||||
|
#: prefs.js:510
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Preview for %s"
|
||||||
|
msgstr "Anteprima per %s"
|
||||||
|
|
||||||
|
#: prefs.js:532
|
||||||
|
msgid "Close this Window to Preview the Effect!"
|
||||||
|
msgstr "Chiudi questa finestra per visualizzare in anteprima l'effetto!"
|
||||||
|
|
||||||
|
#: src/BrokenGlass.js:57
|
||||||
|
msgid "Broken Glass"
|
||||||
|
msgstr "Vetro rotto"
|
||||||
|
|
||||||
|
#: src/TVEffect.js:56
|
||||||
|
msgid "TV Effect"
|
||||||
|
msgstr "Effetto TV"
|
||||||
|
|
||||||
|
#: src/TRexAttack.js:56
|
||||||
|
msgid "T-Rex Attack"
|
||||||
|
msgstr "Attacco T-Rex"
|
||||||
|
|
||||||
|
#: src/SnapOfDisintegration.js:60
|
||||||
|
msgid "Snap of Disintegration"
|
||||||
|
msgstr "Scatto di disintegrazione"
|
||||||
|
|
||||||
|
#: src/Wisps.js:55
|
||||||
|
msgid "Wisps"
|
||||||
|
msgstr "Scintille"
|
||||||
|
|
||||||
|
#: src/Fire.js:58
|
||||||
|
msgid "Fire"
|
||||||
|
msgstr "Fuoco"
|
||||||
|
|
||||||
|
#: src/Fire.js:130
|
||||||
|
msgid "Default Fire"
|
||||||
|
msgstr "Fuoco predefinito"
|
||||||
|
|
||||||
|
#: src/Fire.js:140
|
||||||
|
msgid "Hell Fire"
|
||||||
|
msgstr "Fuoco Infernale"
|
||||||
|
|
||||||
|
#: src/Fire.js:150
|
||||||
|
msgid "Dark and Smutty"
|
||||||
|
msgstr "Scuro e Tenebroso"
|
||||||
|
|
||||||
|
#: src/Fire.js:160
|
||||||
|
msgid "Cold Breeze"
|
||||||
|
msgstr "Brezza Fredda"
|
||||||
|
|
||||||
|
#: src/Fire.js:170
|
||||||
|
msgid "Santa is Coming"
|
||||||
|
msgstr "Babbo Natale sta arrivando"
|
||||||
|
|
||||||
|
#: src/Hexagon.js:53
|
||||||
|
msgid "Hexagon"
|
||||||
|
msgstr "Esagono"
|
||||||
|
|
||||||
|
#: src/EnergizeA.js:54
|
||||||
|
msgid "Energize A"
|
||||||
|
msgstr "Energia A"
|
||||||
|
|
||||||
|
#: src/Apparition.js:57
|
||||||
|
msgid "Apparition"
|
||||||
|
msgstr "Apparizione"
|
||||||
|
|
||||||
|
#: src/EnergizeB.js:54
|
||||||
|
msgid "Energize B"
|
||||||
|
msgstr "Energia B"
|
||||||
|
|
||||||
|
#: src/Matrix.js:58
|
||||||
|
msgid "Matrix"
|
||||||
|
msgstr "Matrix"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:6
|
||||||
|
msgid "Visit Homepage"
|
||||||
|
msgstr "Visita la home page"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:10
|
||||||
|
msgid "View Changelog"
|
||||||
|
msgstr "Visualizza Changelog"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:16
|
||||||
|
msgid "Report a Bug"
|
||||||
|
msgstr "Segnala un bug"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:20
|
||||||
|
msgid "Create an Effect"
|
||||||
|
msgstr "Crea un effetto"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:24
|
||||||
|
msgid "Translate"
|
||||||
|
msgstr "Traduci"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:28
|
||||||
|
msgid "Donate"
|
||||||
|
msgstr "Donare"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:41
|
||||||
|
msgid "About Burn-My-Windows"
|
||||||
|
msgstr "Informazioni su Burn-My-Windows"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:24 resources/ui/gtk4/BrokenGlass.ui:24
|
||||||
|
#: resources/ui/gtk4/Wisps.ui:24 resources/ui/gtk4/Fire.ui:49
|
||||||
|
#: resources/ui/gtk4/SnapOfDisintegration.ui:24
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:24 resources/ui/gtk4/TVEffect.ui:24
|
||||||
|
#: resources/ui/gtk4/EnergizeA.ui:24 resources/ui/gtk4/Hexagon.ui:24
|
||||||
|
#: resources/ui/gtk4/EnergizeB.ui:24 resources/ui/gtk4/Apparition.ui:24
|
||||||
|
#: resources/ui/gtk3/Wisps.ui:42 resources/ui/gtk3/Fire.ui:93
|
||||||
|
#: resources/ui/gtk3/TVEffect.ui:35 resources/ui/gtk3/EnergizeA.ui:42
|
||||||
|
#: resources/ui/gtk3/Hexagon.ui:49 resources/ui/gtk3/EnergizeB.ui:42
|
||||||
|
#: resources/ui/gtk3/Apparition.ui:63
|
||||||
|
msgid "Animation Time [ms]"
|
||||||
|
msgstr "Tempo animazione [ms]"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:52 resources/ui/gtk4/Matrix.ui:98
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:144 resources/ui/gtk4/Matrix.ui:190
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:224 resources/ui/gtk4/Matrix.ui:258
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:52 resources/ui/gtk4/BrokenGlass.ui:98
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:144 resources/ui/gtk4/BrokenGlass.ui:190
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:244 resources/ui/gtk4/Wisps.ui:52
|
||||||
|
#: resources/ui/gtk4/Wisps.ui:98 resources/ui/gtk4/Wisps.ui:132
|
||||||
|
#: resources/ui/gtk4/Fire.ui:77 resources/ui/gtk4/Fire.ui:123
|
||||||
|
#: resources/ui/gtk4/Fire.ui:169 resources/ui/gtk4/Fire.ui:222
|
||||||
|
#: resources/ui/gtk4/Fire.ui:280 resources/ui/gtk4/TRexAttack.ui:52
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:98 resources/ui/gtk4/TRexAttack.ui:144
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:190 resources/ui/gtk4/TRexAttack.ui:224
|
||||||
|
#: resources/ui/gtk4/TVEffect.ui:52 resources/ui/gtk4/TVEffect.ui:86
|
||||||
|
#: resources/ui/gtk4/EnergizeA.ui:52 resources/ui/gtk4/EnergizeA.ui:98
|
||||||
|
#: resources/ui/gtk4/EnergizeA.ui:132 resources/ui/gtk4/Hexagon.ui:52
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:98 resources/ui/gtk4/Hexagon.ui:144
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:178 resources/ui/gtk4/Hexagon.ui:212
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:265 resources/ui/gtk4/EnergizeB.ui:52
|
||||||
|
#: resources/ui/gtk4/EnergizeB.ui:98 resources/ui/gtk4/EnergizeB.ui:132
|
||||||
|
#: resources/ui/gtk4/prefs.ui:166 resources/ui/gtk4/Apparition.ui:52
|
||||||
|
#: resources/ui/gtk4/Apparition.ui:98 resources/ui/gtk4/Apparition.ui:144
|
||||||
|
#: resources/ui/gtk4/Apparition.ui:190 resources/ui/gtk4/Apparition.ui:236
|
||||||
|
#: resources/ui/gtk3/Wisps.ui:68 resources/ui/gtk3/Wisps.ui:117
|
||||||
|
#: resources/ui/gtk3/Wisps.ui:160 resources/ui/gtk3/Fire.ui:119
|
||||||
|
#: resources/ui/gtk3/Fire.ui:167 resources/ui/gtk3/Fire.ui:215
|
||||||
|
#: resources/ui/gtk3/Fire.ui:277 resources/ui/gtk3/Fire.ui:345
|
||||||
|
#: resources/ui/gtk3/TVEffect.ui:61 resources/ui/gtk3/TVEffect.ui:104
|
||||||
|
#: resources/ui/gtk3/EnergizeA.ui:68 resources/ui/gtk3/EnergizeA.ui:117
|
||||||
|
#: resources/ui/gtk3/EnergizeA.ui:160 resources/ui/gtk3/Hexagon.ui:75
|
||||||
|
#: resources/ui/gtk3/Hexagon.ui:124 resources/ui/gtk3/Hexagon.ui:173
|
||||||
|
#: resources/ui/gtk3/Hexagon.ui:216 resources/ui/gtk3/Hexagon.ui:259
|
||||||
|
#: resources/ui/gtk3/Hexagon.ui:321 resources/ui/gtk3/EnergizeB.ui:68
|
||||||
|
#: resources/ui/gtk3/EnergizeB.ui:117 resources/ui/gtk3/EnergizeB.ui:160
|
||||||
|
#: resources/ui/gtk3/prefs.ui:219 resources/ui/gtk3/Apparition.ui:89
|
||||||
|
#: resources/ui/gtk3/Apparition.ui:138 resources/ui/gtk3/Apparition.ui:187
|
||||||
|
#: resources/ui/gtk3/Apparition.ui:236 resources/ui/gtk3/Apparition.ui:285
|
||||||
|
msgid "Reset to Default Value"
|
||||||
|
msgstr "Ripristina valore predefinito"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:70 resources/ui/gtk4/BrokenGlass.ui:70
|
||||||
|
#: resources/ui/gtk4/Wisps.ui:70 resources/ui/gtk4/Fire.ui:95
|
||||||
|
#: resources/ui/gtk4/SnapOfDisintegration.ui:70
|
||||||
|
#: resources/ui/gtk4/EnergizeA.ui:70 resources/ui/gtk4/Hexagon.ui:70
|
||||||
|
#: resources/ui/gtk4/EnergizeB.ui:70 resources/ui/gtk3/Wisps.ui:91
|
||||||
|
#: resources/ui/gtk3/Fire.ui:141 resources/ui/gtk3/EnergizeA.ui:91
|
||||||
|
#: resources/ui/gtk3/Hexagon.ui:98 resources/ui/gtk3/EnergizeB.ui:91
|
||||||
|
msgid "Scale"
|
||||||
|
msgstr "Scala"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:116 resources/ui/gtk4/Apparition.ui:70
|
||||||
|
#: resources/ui/gtk3/Apparition.ui:112
|
||||||
|
msgid "Randomness"
|
||||||
|
msgstr "Casuale"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:162
|
||||||
|
msgid "Vertical Overshooting"
|
||||||
|
msgstr "Sovrapposizione Verticale"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:208
|
||||||
|
msgid "Trail Color"
|
||||||
|
msgstr "Colore della pista"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:242
|
||||||
|
msgid "Tip Color"
|
||||||
|
msgstr "Colore della Punta"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:116
|
||||||
|
msgid "Gravity"
|
||||||
|
msgstr "Gravità"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:162
|
||||||
|
msgid "Blow Force"
|
||||||
|
msgstr "Forza Esplosiva"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:212
|
||||||
|
msgid "Shatter From Pointer Location"
|
||||||
|
msgstr "Frammento dalla posizione del puntatore"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:221
|
||||||
|
msgid ""
|
||||||
|
"The shards will fly away from where your mouse pointer was when closing the "
|
||||||
|
"window."
|
||||||
|
msgstr ""
|
||||||
|
"I frammenti voleranno fuori dal punto in cui si trovava il puntatore del "
|
||||||
|
"mouse quando chiudi la finestra."
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Wisps.ui:116 resources/ui/gtk4/SnapOfDisintegration.ui:116
|
||||||
|
#: resources/ui/gtk4/TVEffect.ui:70 resources/ui/gtk4/EnergizeA.ui:116
|
||||||
|
#: resources/ui/gtk4/EnergizeB.ui:116 resources/ui/gtk3/Wisps.ui:139
|
||||||
|
#: resources/ui/gtk3/TVEffect.ui:83 resources/ui/gtk3/EnergizeA.ui:139
|
||||||
|
#: resources/ui/gtk3/EnergizeB.ui:139
|
||||||
|
msgid "Color"
|
||||||
|
msgstr "Colore"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Fire.ui:25 resources/ui/gtk3/Fire.ui:49
|
||||||
|
msgid "Presets"
|
||||||
|
msgstr "Preimpostazioni"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Fire.ui:141 resources/ui/gtk3/Fire.ui:189
|
||||||
|
msgid "Speed"
|
||||||
|
msgstr "Velocità"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Fire.ui:191 resources/ui/gtk3/Fire.ui:241
|
||||||
|
msgid "3D Noise"
|
||||||
|
msgstr "Rumore 3D"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Fire.ui:200 resources/ui/gtk3/Fire.ui:250
|
||||||
|
msgid "Creates a more dynamic fire but requires more GPU power."
|
||||||
|
msgstr "Crea un fuoco più dinamico ma richiede più potenza della GPU."
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Fire.ui:240 resources/ui/gtk3/Fire.ui:300
|
||||||
|
msgid "Gradient"
|
||||||
|
msgstr "Gradiente"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:70
|
||||||
|
msgid "Claw Scratch Scale"
|
||||||
|
msgstr "Scala ad Artiglio"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:116
|
||||||
|
msgid "Claw Scratch Count"
|
||||||
|
msgstr "Numero di colpi"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:162
|
||||||
|
msgid "Warp Effect"
|
||||||
|
msgstr "Effetto Distorsione"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:208
|
||||||
|
msgid "Flash Color"
|
||||||
|
msgstr "Colore Flash"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/effectPage.ui:37 resources/ui/gtk3/effectPage.ui:37
|
||||||
|
msgid "Preview this Effect"
|
||||||
|
msgstr "Anteprima di questo effetto"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:116 resources/ui/gtk3/Hexagon.ui:147
|
||||||
|
msgid "Mesh Line Width"
|
||||||
|
msgstr "Larghezza linea mesh"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:162 resources/ui/gtk3/Hexagon.ui:195
|
||||||
|
msgid "Line Color"
|
||||||
|
msgstr "Colore della linea"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:196 resources/ui/gtk3/Hexagon.ui:238
|
||||||
|
msgid "Glow Color"
|
||||||
|
msgstr "Colore bagliore"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:234 resources/ui/gtk3/Hexagon.ui:285
|
||||||
|
msgid "Additive Blending"
|
||||||
|
msgstr "Miscelazione aggiuntiva"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:243 resources/ui/gtk3/Hexagon.ui:294
|
||||||
|
msgid "You may want to enable this for dark window themes."
|
||||||
|
msgstr "Potresti abilitarlo per i temi delle finestre scure."
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:28 resources/ui/gtk3/prefs.ui:35
|
||||||
|
msgid "Welcome to Burn-My-Windows!"
|
||||||
|
msgstr "Benvenuto in Burn-My-Windows!"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:39 resources/ui/gtk3/prefs.ui:46
|
||||||
|
msgid "If you like this extension, recommend it to your friends :)"
|
||||||
|
msgstr "Se ti piace questa estensione, consigliala ai tuoi amici :)"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:66 resources/ui/gtk3/prefs.ui:74
|
||||||
|
msgid "Open Window Animation"
|
||||||
|
msgstr "Animazione all'apertura della finestra"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:75 resources/ui/gtk4/prefs.ui:119
|
||||||
|
#: resources/ui/gtk3/prefs.ui:83 resources/ui/gtk3/prefs.ui:147
|
||||||
|
msgid "If multiple are selected, one is chosen randomly."
|
||||||
|
msgstr "Se ne vengono selezionati multipli, uno viene scelto a caso."
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:90 resources/ui/gtk4/prefs.ui:134
|
||||||
|
#: resources/ui/gtk3/prefs.ui:104 resources/ui/gtk3/prefs.ui:168
|
||||||
|
msgid "Choose Effects"
|
||||||
|
msgstr "Scegli Effetti"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:110 resources/ui/gtk3/prefs.ui:138
|
||||||
|
msgid "Close Window Animation"
|
||||||
|
msgstr "Animazione alla chiusura della finestra"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:150 resources/ui/gtk3/prefs.ui:198
|
||||||
|
msgid "Also Add Effects to Dialogs"
|
||||||
|
msgstr "Aggiungi anche effetti ai dialoghi"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Apparition.ui:116 resources/ui/gtk3/Apparition.ui:161
|
||||||
|
msgid "Twirl Intensity"
|
||||||
|
msgstr "Intensità di rotazione"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Apparition.ui:162 resources/ui/gtk3/Apparition.ui:210
|
||||||
|
msgid "Shake Intensity"
|
||||||
|
msgstr "Intensità di scuotimento"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Apparition.ui:208 resources/ui/gtk3/Apparition.ui:259
|
||||||
|
msgid "Suction Intensity"
|
||||||
|
msgstr "Intensità di aspirazione"
|
||||||
|
|
||||||
|
#: resources/ui/gtk3/Fire.ui:63
|
||||||
|
msgid "Choose a Preset"
|
||||||
|
msgstr "Scegli un predefinito"
|
||||||
|
|
||||||
|
#~ msgid "Via PayPal"
|
||||||
|
#~ msgstr "Tramite PayPal"
|
||||||
|
|
||||||
|
#~ msgid "Via GitHub"
|
||||||
|
#~ msgstr "Tramite GitHub"
|
||||||
@@ -0,0 +1,369 @@
|
|||||||
|
# SOME DESCRIPTIVE TITLE.
|
||||||
|
# Copyright (C) YEAR Simon Schneegans
|
||||||
|
# This file is distributed under the same license as the Burn-My-Windows package.
|
||||||
|
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||||
|
#
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Burn-My-Windows\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2022-04-05 09:22+0200\n"
|
||||||
|
"PO-Revision-Date: 2022-04-11 12:07+0000\n"
|
||||||
|
"Last-Translator: Allan Nordhøy <epost@anotheragency.no>\n"
|
||||||
|
"Language-Team: Norwegian Bokmål <https://hosted.weblate.org/projects/"
|
||||||
|
"burn-my-windows/core/nb_NO/>\n"
|
||||||
|
"Language: nb_NO\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||||
|
"X-Generator: Weblate 4.12-dev\n"
|
||||||
|
|
||||||
|
#: prefs.js:112
|
||||||
|
msgid "Effect Options"
|
||||||
|
msgstr "Effektalternativer"
|
||||||
|
|
||||||
|
#: prefs.js:140
|
||||||
|
msgid "Go Back"
|
||||||
|
msgstr "Gå tilbake"
|
||||||
|
|
||||||
|
#: prefs.js:182
|
||||||
|
msgid "General Options"
|
||||||
|
msgstr "Generelle innstillinger"
|
||||||
|
|
||||||
|
#: prefs.js:276
|
||||||
|
msgid "Gold Sponsors"
|
||||||
|
msgstr "Gullsponsorer"
|
||||||
|
|
||||||
|
#: prefs.js:279
|
||||||
|
msgid "Silver Sponsors"
|
||||||
|
msgstr "Sølvsponsorer"
|
||||||
|
|
||||||
|
#: prefs.js:282
|
||||||
|
msgid "Bronze Sponsors"
|
||||||
|
msgstr "Bronsesponsorer"
|
||||||
|
|
||||||
|
#: prefs.js:285
|
||||||
|
msgid "Past Sponsors"
|
||||||
|
msgstr "Tidligere sponsorer"
|
||||||
|
|
||||||
|
#. Translators: %s will be replaced by the effect's name.
|
||||||
|
#: prefs.js:510
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Preview for %s"
|
||||||
|
msgstr "Forhåndsvisning for %s"
|
||||||
|
|
||||||
|
#: prefs.js:532
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Close this Window to Preview the Effect!"
|
||||||
|
msgstr "Lukk dette vinduet for å forhåndsvise effekten"
|
||||||
|
|
||||||
|
#: src/BrokenGlass.js:57
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Broken Glass"
|
||||||
|
msgstr "Knust glass"
|
||||||
|
|
||||||
|
#: src/TVEffect.js:56
|
||||||
|
msgid "TV Effect"
|
||||||
|
msgstr "TV-effekt"
|
||||||
|
|
||||||
|
#: src/TRexAttack.js:56
|
||||||
|
msgid "T-Rex Attack"
|
||||||
|
msgstr "T-rex-angrep"
|
||||||
|
|
||||||
|
#: src/SnapOfDisintegration.js:60
|
||||||
|
msgid "Snap of Disintegration"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Wisps.js:55
|
||||||
|
msgid "Wisps"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Fire.js:58
|
||||||
|
msgid "Fire"
|
||||||
|
msgstr "Brann"
|
||||||
|
|
||||||
|
#: src/Fire.js:130
|
||||||
|
msgid "Default Fire"
|
||||||
|
msgstr "Forvalgt brann"
|
||||||
|
|
||||||
|
#: src/Fire.js:140
|
||||||
|
msgid "Hell Fire"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Fire.js:150
|
||||||
|
msgid "Dark and Smutty"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Fire.js:160
|
||||||
|
msgid "Cold Breeze"
|
||||||
|
msgstr "Kald bris"
|
||||||
|
|
||||||
|
#: src/Fire.js:170
|
||||||
|
msgid "Santa is Coming"
|
||||||
|
msgstr "Julenissen kommer"
|
||||||
|
|
||||||
|
#: src/Hexagon.js:53
|
||||||
|
msgid "Hexagon"
|
||||||
|
msgstr "Heksagon"
|
||||||
|
|
||||||
|
#: src/EnergizeA.js:54
|
||||||
|
msgid "Energize A"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Apparition.js:57
|
||||||
|
msgid "Apparition"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/EnergizeB.js:54
|
||||||
|
msgid "Energize B"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Matrix.js:58
|
||||||
|
msgid "Matrix"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:6
|
||||||
|
msgid "Visit Homepage"
|
||||||
|
msgstr "Besøk hjemmesiden"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:10
|
||||||
|
msgid "View Changelog"
|
||||||
|
msgstr "Vis endringslogg"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:16
|
||||||
|
msgid "Report a Bug"
|
||||||
|
msgstr "Rapporter en feil"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:20
|
||||||
|
msgid "Create an Effect"
|
||||||
|
msgstr "Opprett en effekt"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:24
|
||||||
|
msgid "Translate"
|
||||||
|
msgstr "Oversett"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:28
|
||||||
|
msgid "Donate"
|
||||||
|
msgstr "Doner"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:41
|
||||||
|
msgid "About Burn-My-Windows"
|
||||||
|
msgstr "Om"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:24 resources/ui/gtk4/BrokenGlass.ui:24
|
||||||
|
#: resources/ui/gtk4/Wisps.ui:24 resources/ui/gtk4/Fire.ui:49
|
||||||
|
#: resources/ui/gtk4/SnapOfDisintegration.ui:24
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:24 resources/ui/gtk4/TVEffect.ui:24
|
||||||
|
#: resources/ui/gtk4/EnergizeA.ui:24 resources/ui/gtk4/Hexagon.ui:24
|
||||||
|
#: resources/ui/gtk4/EnergizeB.ui:24 resources/ui/gtk4/Apparition.ui:24
|
||||||
|
#: resources/ui/gtk3/Wisps.ui:42 resources/ui/gtk3/Fire.ui:93
|
||||||
|
#: resources/ui/gtk3/TVEffect.ui:35 resources/ui/gtk3/EnergizeA.ui:42
|
||||||
|
#: resources/ui/gtk3/Hexagon.ui:49 resources/ui/gtk3/EnergizeB.ui:42
|
||||||
|
#: resources/ui/gtk3/Apparition.ui:63
|
||||||
|
msgid "Animation Time [ms]"
|
||||||
|
msgstr "Animasjonstid [ms]"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:52 resources/ui/gtk4/Matrix.ui:98
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:144 resources/ui/gtk4/Matrix.ui:190
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:224 resources/ui/gtk4/Matrix.ui:258
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:52 resources/ui/gtk4/BrokenGlass.ui:98
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:144 resources/ui/gtk4/BrokenGlass.ui:190
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:244 resources/ui/gtk4/Wisps.ui:52
|
||||||
|
#: resources/ui/gtk4/Wisps.ui:98 resources/ui/gtk4/Wisps.ui:132
|
||||||
|
#: resources/ui/gtk4/Fire.ui:77 resources/ui/gtk4/Fire.ui:123
|
||||||
|
#: resources/ui/gtk4/Fire.ui:169 resources/ui/gtk4/Fire.ui:222
|
||||||
|
#: resources/ui/gtk4/Fire.ui:280 resources/ui/gtk4/TRexAttack.ui:52
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:98 resources/ui/gtk4/TRexAttack.ui:144
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:190 resources/ui/gtk4/TRexAttack.ui:224
|
||||||
|
#: resources/ui/gtk4/TVEffect.ui:52 resources/ui/gtk4/TVEffect.ui:86
|
||||||
|
#: resources/ui/gtk4/EnergizeA.ui:52 resources/ui/gtk4/EnergizeA.ui:98
|
||||||
|
#: resources/ui/gtk4/EnergizeA.ui:132 resources/ui/gtk4/Hexagon.ui:52
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:98 resources/ui/gtk4/Hexagon.ui:144
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:178 resources/ui/gtk4/Hexagon.ui:212
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:265 resources/ui/gtk4/EnergizeB.ui:52
|
||||||
|
#: resources/ui/gtk4/EnergizeB.ui:98 resources/ui/gtk4/EnergizeB.ui:132
|
||||||
|
#: resources/ui/gtk4/prefs.ui:166 resources/ui/gtk4/Apparition.ui:52
|
||||||
|
#: resources/ui/gtk4/Apparition.ui:98 resources/ui/gtk4/Apparition.ui:144
|
||||||
|
#: resources/ui/gtk4/Apparition.ui:190 resources/ui/gtk4/Apparition.ui:236
|
||||||
|
#: resources/ui/gtk3/Wisps.ui:68 resources/ui/gtk3/Wisps.ui:117
|
||||||
|
#: resources/ui/gtk3/Wisps.ui:160 resources/ui/gtk3/Fire.ui:119
|
||||||
|
#: resources/ui/gtk3/Fire.ui:167 resources/ui/gtk3/Fire.ui:215
|
||||||
|
#: resources/ui/gtk3/Fire.ui:277 resources/ui/gtk3/Fire.ui:345
|
||||||
|
#: resources/ui/gtk3/TVEffect.ui:61 resources/ui/gtk3/TVEffect.ui:104
|
||||||
|
#: resources/ui/gtk3/EnergizeA.ui:68 resources/ui/gtk3/EnergizeA.ui:117
|
||||||
|
#: resources/ui/gtk3/EnergizeA.ui:160 resources/ui/gtk3/Hexagon.ui:75
|
||||||
|
#: resources/ui/gtk3/Hexagon.ui:124 resources/ui/gtk3/Hexagon.ui:173
|
||||||
|
#: resources/ui/gtk3/Hexagon.ui:216 resources/ui/gtk3/Hexagon.ui:259
|
||||||
|
#: resources/ui/gtk3/Hexagon.ui:321 resources/ui/gtk3/EnergizeB.ui:68
|
||||||
|
#: resources/ui/gtk3/EnergizeB.ui:117 resources/ui/gtk3/EnergizeB.ui:160
|
||||||
|
#: resources/ui/gtk3/prefs.ui:219 resources/ui/gtk3/Apparition.ui:89
|
||||||
|
#: resources/ui/gtk3/Apparition.ui:138 resources/ui/gtk3/Apparition.ui:187
|
||||||
|
#: resources/ui/gtk3/Apparition.ui:236 resources/ui/gtk3/Apparition.ui:285
|
||||||
|
msgid "Reset to Default Value"
|
||||||
|
msgstr "Tilbakestill til forvalgt verdi"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:70 resources/ui/gtk4/BrokenGlass.ui:70
|
||||||
|
#: resources/ui/gtk4/Wisps.ui:70 resources/ui/gtk4/Fire.ui:95
|
||||||
|
#: resources/ui/gtk4/SnapOfDisintegration.ui:70
|
||||||
|
#: resources/ui/gtk4/EnergizeA.ui:70 resources/ui/gtk4/Hexagon.ui:70
|
||||||
|
#: resources/ui/gtk4/EnergizeB.ui:70 resources/ui/gtk3/Wisps.ui:91
|
||||||
|
#: resources/ui/gtk3/Fire.ui:141 resources/ui/gtk3/EnergizeA.ui:91
|
||||||
|
#: resources/ui/gtk3/Hexagon.ui:98 resources/ui/gtk3/EnergizeB.ui:91
|
||||||
|
msgid "Scale"
|
||||||
|
msgstr "Størrelse"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:116 resources/ui/gtk4/Apparition.ui:70
|
||||||
|
#: resources/ui/gtk3/Apparition.ui:112
|
||||||
|
msgid "Randomness"
|
||||||
|
msgstr "Tilfeldighet"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:162
|
||||||
|
msgid "Vertical Overshooting"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:208
|
||||||
|
msgid "Trail Color"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:242
|
||||||
|
msgid "Tip Color"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:116
|
||||||
|
msgid "Gravity"
|
||||||
|
msgstr "Tyngdekraft"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:162
|
||||||
|
msgid "Blow Force"
|
||||||
|
msgstr "Slagkraft"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:212
|
||||||
|
msgid "Shatter From Pointer Location"
|
||||||
|
msgstr "Knus fra pekerposisjon"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:221
|
||||||
|
msgid ""
|
||||||
|
"The shards will fly away from where your mouse pointer was when closing the "
|
||||||
|
"window."
|
||||||
|
msgstr "Skårene flyr fra der musepekeren var da du lukket vinduet."
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Wisps.ui:116 resources/ui/gtk4/SnapOfDisintegration.ui:116
|
||||||
|
#: resources/ui/gtk4/TVEffect.ui:70 resources/ui/gtk4/EnergizeA.ui:116
|
||||||
|
#: resources/ui/gtk4/EnergizeB.ui:116 resources/ui/gtk3/Wisps.ui:139
|
||||||
|
#: resources/ui/gtk3/TVEffect.ui:83 resources/ui/gtk3/EnergizeA.ui:139
|
||||||
|
#: resources/ui/gtk3/EnergizeB.ui:139
|
||||||
|
msgid "Color"
|
||||||
|
msgstr "Farge"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Fire.ui:25 resources/ui/gtk3/Fire.ui:49
|
||||||
|
msgid "Presets"
|
||||||
|
msgstr "Forhåndsinnstillinger"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Fire.ui:141 resources/ui/gtk3/Fire.ui:189
|
||||||
|
msgid "Speed"
|
||||||
|
msgstr "Hastighet"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Fire.ui:191 resources/ui/gtk3/Fire.ui:241
|
||||||
|
msgid "3D Noise"
|
||||||
|
msgstr "3D-støy"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Fire.ui:200 resources/ui/gtk3/Fire.ui:250
|
||||||
|
msgid "Creates a more dynamic fire but requires more GPU power."
|
||||||
|
msgstr "Mer dynamisk ild, men krever mer GPU-kraft."
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Fire.ui:240 resources/ui/gtk3/Fire.ui:300
|
||||||
|
msgid "Gradient"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:70
|
||||||
|
msgid "Claw Scratch Scale"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:116
|
||||||
|
msgid "Claw Scratch Count"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:162
|
||||||
|
msgid "Warp Effect"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:208
|
||||||
|
msgid "Flash Color"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/effectPage.ui:37 resources/ui/gtk3/effectPage.ui:37
|
||||||
|
msgid "Preview this Effect"
|
||||||
|
msgstr "Forhåndsvis denne effekten"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:116 resources/ui/gtk3/Hexagon.ui:147
|
||||||
|
msgid "Mesh Line Width"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:162 resources/ui/gtk3/Hexagon.ui:195
|
||||||
|
msgid "Line Color"
|
||||||
|
msgstr "Linjefarge"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:196 resources/ui/gtk3/Hexagon.ui:238
|
||||||
|
msgid "Glow Color"
|
||||||
|
msgstr "Glødefarge"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:234 resources/ui/gtk3/Hexagon.ui:285
|
||||||
|
msgid "Additive Blending"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:243 resources/ui/gtk3/Hexagon.ui:294
|
||||||
|
msgid "You may want to enable this for dark window themes."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:28 resources/ui/gtk3/prefs.ui:35
|
||||||
|
msgid "Welcome to Burn-My-Windows!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:39 resources/ui/gtk3/prefs.ui:46
|
||||||
|
msgid "If you like this extension, recommend it to your friends :)"
|
||||||
|
msgstr "Hvis du liker denne utvidelsen kan du anbefale den til vennene dine :)"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:66 resources/ui/gtk3/prefs.ui:74
|
||||||
|
msgid "Open Window Animation"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:75 resources/ui/gtk4/prefs.ui:119
|
||||||
|
#: resources/ui/gtk3/prefs.ui:83 resources/ui/gtk3/prefs.ui:147
|
||||||
|
msgid "If multiple are selected, one is chosen randomly."
|
||||||
|
msgstr "Hvis flere blir valgt, velges én tilfeldig."
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:90 resources/ui/gtk4/prefs.ui:134
|
||||||
|
#: resources/ui/gtk3/prefs.ui:104 resources/ui/gtk3/prefs.ui:168
|
||||||
|
msgid "Choose Effects"
|
||||||
|
msgstr "Velg effekter"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:110 resources/ui/gtk3/prefs.ui:138
|
||||||
|
msgid "Close Window Animation"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:150 resources/ui/gtk3/prefs.ui:198
|
||||||
|
msgid "Also Add Effects to Dialogs"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Apparition.ui:116 resources/ui/gtk3/Apparition.ui:161
|
||||||
|
msgid "Twirl Intensity"
|
||||||
|
msgstr "Hvirvelintensitet"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Apparition.ui:162 resources/ui/gtk3/Apparition.ui:210
|
||||||
|
msgid "Shake Intensity"
|
||||||
|
msgstr "Ristingsintensitet"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Apparition.ui:208 resources/ui/gtk3/Apparition.ui:259
|
||||||
|
msgid "Suction Intensity"
|
||||||
|
msgstr "Sugeintensitet"
|
||||||
|
|
||||||
|
#: resources/ui/gtk3/Fire.ui:63
|
||||||
|
msgid "Choose a Preset"
|
||||||
|
msgstr "Velg en forhåndsinnstilling"
|
||||||
|
|
||||||
|
#~ msgid "Via PayPal"
|
||||||
|
#~ msgstr "med PayPal"
|
||||||
|
|
||||||
|
#~ msgid "Via GitHub"
|
||||||
|
#~ msgstr "på GitHub"
|
||||||
@@ -0,0 +1,370 @@
|
|||||||
|
# SOME DESCRIPTIVE TITLE.
|
||||||
|
# Copyright (C) YEAR Simon Schneegans
|
||||||
|
# This file is distributed under the same license as the Burn-My-Windows package.
|
||||||
|
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||||
|
#
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Burn-My-Windows\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2022-04-05 09:22+0200\n"
|
||||||
|
"PO-Revision-Date: 2022-04-05 18:37+0000\n"
|
||||||
|
"Last-Translator: Heimen Stoffels <vistausss@fastmail.com>\n"
|
||||||
|
"Language-Team: Dutch <https://hosted.weblate.org/projects/burn-my-windows/"
|
||||||
|
"core/nl/>\n"
|
||||||
|
"Language: nl\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||||
|
"X-Generator: Weblate 4.12-dev\n"
|
||||||
|
|
||||||
|
#: prefs.js:112
|
||||||
|
msgid "Effect Options"
|
||||||
|
msgstr "Effectvoorkeuren"
|
||||||
|
|
||||||
|
#: prefs.js:140
|
||||||
|
msgid "Go Back"
|
||||||
|
msgstr "Scherm sluiten"
|
||||||
|
|
||||||
|
#: prefs.js:182
|
||||||
|
msgid "General Options"
|
||||||
|
msgstr "Algemene voorkeuren"
|
||||||
|
|
||||||
|
#: prefs.js:276
|
||||||
|
msgid "Gold Sponsors"
|
||||||
|
msgstr "Gouden sponsoren"
|
||||||
|
|
||||||
|
#: prefs.js:279
|
||||||
|
msgid "Silver Sponsors"
|
||||||
|
msgstr "Zilveren sponsoren"
|
||||||
|
|
||||||
|
#: prefs.js:282
|
||||||
|
msgid "Bronze Sponsors"
|
||||||
|
msgstr "Bronzen sponsoren"
|
||||||
|
|
||||||
|
#: prefs.js:285
|
||||||
|
msgid "Past Sponsors"
|
||||||
|
msgstr "Voormalige sponsoren"
|
||||||
|
|
||||||
|
#. Translators: %s will be replaced by the effect's name.
|
||||||
|
#: prefs.js:510
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Preview for %s"
|
||||||
|
msgstr "%s-voorvertoning"
|
||||||
|
|
||||||
|
#: prefs.js:532
|
||||||
|
msgid "Close this Window to Preview the Effect!"
|
||||||
|
msgstr "Sluit dit venster om het effect voor te vertonen."
|
||||||
|
|
||||||
|
#: src/BrokenGlass.js:57
|
||||||
|
msgid "Broken Glass"
|
||||||
|
msgstr "Gebroken glas"
|
||||||
|
|
||||||
|
#: src/TVEffect.js:56
|
||||||
|
msgid "TV Effect"
|
||||||
|
msgstr "Tv-effect"
|
||||||
|
|
||||||
|
#: src/TRexAttack.js:56
|
||||||
|
msgid "T-Rex Attack"
|
||||||
|
msgstr "T-Rex-aanval"
|
||||||
|
|
||||||
|
#: src/SnapOfDisintegration.js:60
|
||||||
|
msgid "Snap of Disintegration"
|
||||||
|
msgstr "Uiteenvallen"
|
||||||
|
|
||||||
|
#: src/Wisps.js:55
|
||||||
|
msgid "Wisps"
|
||||||
|
msgstr "Dwaallicht"
|
||||||
|
|
||||||
|
#: src/Fire.js:58
|
||||||
|
msgid "Fire"
|
||||||
|
msgstr "Vuur"
|
||||||
|
|
||||||
|
#: src/Fire.js:130
|
||||||
|
msgid "Default Fire"
|
||||||
|
msgstr "Normaal vuur"
|
||||||
|
|
||||||
|
#: src/Fire.js:140
|
||||||
|
msgid "Hell Fire"
|
||||||
|
msgstr "Hellevuur"
|
||||||
|
|
||||||
|
#: src/Fire.js:150
|
||||||
|
msgid "Dark and Smutty"
|
||||||
|
msgstr "Donker en zwart"
|
||||||
|
|
||||||
|
#: src/Fire.js:160
|
||||||
|
msgid "Cold Breeze"
|
||||||
|
msgstr "Koude wind"
|
||||||
|
|
||||||
|
#: src/Fire.js:170
|
||||||
|
msgid "Santa is Coming"
|
||||||
|
msgstr "Kerstmanvuur"
|
||||||
|
|
||||||
|
#: src/Hexagon.js:53
|
||||||
|
msgid "Hexagon"
|
||||||
|
msgstr "Hexagon"
|
||||||
|
|
||||||
|
#: src/EnergizeA.js:54
|
||||||
|
msgid "Energize A"
|
||||||
|
msgstr "Stimulatie A"
|
||||||
|
|
||||||
|
#: src/Apparition.js:57
|
||||||
|
msgid "Apparition"
|
||||||
|
msgstr "Verschijning"
|
||||||
|
|
||||||
|
#: src/EnergizeB.js:54
|
||||||
|
msgid "Energize B"
|
||||||
|
msgstr "Stimulatie B"
|
||||||
|
|
||||||
|
#: src/Matrix.js:58
|
||||||
|
msgid "Matrix"
|
||||||
|
msgstr "Matrix"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:6
|
||||||
|
msgid "Visit Homepage"
|
||||||
|
msgstr "Website openen"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:10
|
||||||
|
msgid "View Changelog"
|
||||||
|
msgstr "Wijzigingslog bekijken"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:16
|
||||||
|
msgid "Report a Bug"
|
||||||
|
msgstr "Bug melden"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:20
|
||||||
|
msgid "Create an Effect"
|
||||||
|
msgstr "Effect creëren"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:24
|
||||||
|
msgid "Translate"
|
||||||
|
msgstr "Vertalen"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:28
|
||||||
|
msgid "Donate"
|
||||||
|
msgstr "Doneren"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:41
|
||||||
|
msgid "About Burn-My-Windows"
|
||||||
|
msgstr "Over Burn-My-Windows"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:24 resources/ui/gtk4/BrokenGlass.ui:24
|
||||||
|
#: resources/ui/gtk4/Wisps.ui:24 resources/ui/gtk4/Fire.ui:49
|
||||||
|
#: resources/ui/gtk4/SnapOfDisintegration.ui:24
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:24 resources/ui/gtk4/TVEffect.ui:24
|
||||||
|
#: resources/ui/gtk4/EnergizeA.ui:24 resources/ui/gtk4/Hexagon.ui:24
|
||||||
|
#: resources/ui/gtk4/EnergizeB.ui:24 resources/ui/gtk4/Apparition.ui:24
|
||||||
|
#: resources/ui/gtk3/Wisps.ui:42 resources/ui/gtk3/Fire.ui:93
|
||||||
|
#: resources/ui/gtk3/TVEffect.ui:35 resources/ui/gtk3/EnergizeA.ui:42
|
||||||
|
#: resources/ui/gtk3/Hexagon.ui:49 resources/ui/gtk3/EnergizeB.ui:42
|
||||||
|
#: resources/ui/gtk3/Apparition.ui:63
|
||||||
|
msgid "Animation Time [ms]"
|
||||||
|
msgstr "Animatieduur [in ms]"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:52 resources/ui/gtk4/Matrix.ui:98
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:144 resources/ui/gtk4/Matrix.ui:190
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:224 resources/ui/gtk4/Matrix.ui:258
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:52 resources/ui/gtk4/BrokenGlass.ui:98
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:144 resources/ui/gtk4/BrokenGlass.ui:190
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:244 resources/ui/gtk4/Wisps.ui:52
|
||||||
|
#: resources/ui/gtk4/Wisps.ui:98 resources/ui/gtk4/Wisps.ui:132
|
||||||
|
#: resources/ui/gtk4/Fire.ui:77 resources/ui/gtk4/Fire.ui:123
|
||||||
|
#: resources/ui/gtk4/Fire.ui:169 resources/ui/gtk4/Fire.ui:222
|
||||||
|
#: resources/ui/gtk4/Fire.ui:280 resources/ui/gtk4/TRexAttack.ui:52
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:98 resources/ui/gtk4/TRexAttack.ui:144
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:190 resources/ui/gtk4/TRexAttack.ui:224
|
||||||
|
#: resources/ui/gtk4/TVEffect.ui:52 resources/ui/gtk4/TVEffect.ui:86
|
||||||
|
#: resources/ui/gtk4/EnergizeA.ui:52 resources/ui/gtk4/EnergizeA.ui:98
|
||||||
|
#: resources/ui/gtk4/EnergizeA.ui:132 resources/ui/gtk4/Hexagon.ui:52
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:98 resources/ui/gtk4/Hexagon.ui:144
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:178 resources/ui/gtk4/Hexagon.ui:212
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:265 resources/ui/gtk4/EnergizeB.ui:52
|
||||||
|
#: resources/ui/gtk4/EnergizeB.ui:98 resources/ui/gtk4/EnergizeB.ui:132
|
||||||
|
#: resources/ui/gtk4/prefs.ui:166 resources/ui/gtk4/Apparition.ui:52
|
||||||
|
#: resources/ui/gtk4/Apparition.ui:98 resources/ui/gtk4/Apparition.ui:144
|
||||||
|
#: resources/ui/gtk4/Apparition.ui:190 resources/ui/gtk4/Apparition.ui:236
|
||||||
|
#: resources/ui/gtk3/Wisps.ui:68 resources/ui/gtk3/Wisps.ui:117
|
||||||
|
#: resources/ui/gtk3/Wisps.ui:160 resources/ui/gtk3/Fire.ui:119
|
||||||
|
#: resources/ui/gtk3/Fire.ui:167 resources/ui/gtk3/Fire.ui:215
|
||||||
|
#: resources/ui/gtk3/Fire.ui:277 resources/ui/gtk3/Fire.ui:345
|
||||||
|
#: resources/ui/gtk3/TVEffect.ui:61 resources/ui/gtk3/TVEffect.ui:104
|
||||||
|
#: resources/ui/gtk3/EnergizeA.ui:68 resources/ui/gtk3/EnergizeA.ui:117
|
||||||
|
#: resources/ui/gtk3/EnergizeA.ui:160 resources/ui/gtk3/Hexagon.ui:75
|
||||||
|
#: resources/ui/gtk3/Hexagon.ui:124 resources/ui/gtk3/Hexagon.ui:173
|
||||||
|
#: resources/ui/gtk3/Hexagon.ui:216 resources/ui/gtk3/Hexagon.ui:259
|
||||||
|
#: resources/ui/gtk3/Hexagon.ui:321 resources/ui/gtk3/EnergizeB.ui:68
|
||||||
|
#: resources/ui/gtk3/EnergizeB.ui:117 resources/ui/gtk3/EnergizeB.ui:160
|
||||||
|
#: resources/ui/gtk3/prefs.ui:219 resources/ui/gtk3/Apparition.ui:89
|
||||||
|
#: resources/ui/gtk3/Apparition.ui:138 resources/ui/gtk3/Apparition.ui:187
|
||||||
|
#: resources/ui/gtk3/Apparition.ui:236 resources/ui/gtk3/Apparition.ui:285
|
||||||
|
msgid "Reset to Default Value"
|
||||||
|
msgstr "Standaardwaarde herstellen"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:70 resources/ui/gtk4/BrokenGlass.ui:70
|
||||||
|
#: resources/ui/gtk4/Wisps.ui:70 resources/ui/gtk4/Fire.ui:95
|
||||||
|
#: resources/ui/gtk4/SnapOfDisintegration.ui:70
|
||||||
|
#: resources/ui/gtk4/EnergizeA.ui:70 resources/ui/gtk4/Hexagon.ui:70
|
||||||
|
#: resources/ui/gtk4/EnergizeB.ui:70 resources/ui/gtk3/Wisps.ui:91
|
||||||
|
#: resources/ui/gtk3/Fire.ui:141 resources/ui/gtk3/EnergizeA.ui:91
|
||||||
|
#: resources/ui/gtk3/Hexagon.ui:98 resources/ui/gtk3/EnergizeB.ui:91
|
||||||
|
msgid "Scale"
|
||||||
|
msgstr "Schaal"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:116 resources/ui/gtk4/Apparition.ui:70
|
||||||
|
#: resources/ui/gtk3/Apparition.ui:112
|
||||||
|
msgid "Randomness"
|
||||||
|
msgstr "Willekeurigheid"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:162
|
||||||
|
msgid "Vertical Overshooting"
|
||||||
|
msgstr "Verticale verspringing"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:208
|
||||||
|
msgid "Trail Color"
|
||||||
|
msgstr "Sleepspoorkleur"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:242
|
||||||
|
msgid "Tip Color"
|
||||||
|
msgstr "Piekkleur"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:116
|
||||||
|
msgid "Gravity"
|
||||||
|
msgstr "Zwaartekracht"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:162
|
||||||
|
msgid "Blow Force"
|
||||||
|
msgstr "Windkracht"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:212
|
||||||
|
msgid "Shatter From Pointer Location"
|
||||||
|
msgstr "Uiteenvallen bij cursorpositie"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:221
|
||||||
|
msgid ""
|
||||||
|
"The shards will fly away from where your mouse pointer was when closing the "
|
||||||
|
"window."
|
||||||
|
msgstr ""
|
||||||
|
"De stukken vliegen weg vanaf de cursorpositie na het sluiten van een venster."
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Wisps.ui:116 resources/ui/gtk4/SnapOfDisintegration.ui:116
|
||||||
|
#: resources/ui/gtk4/TVEffect.ui:70 resources/ui/gtk4/EnergizeA.ui:116
|
||||||
|
#: resources/ui/gtk4/EnergizeB.ui:116 resources/ui/gtk3/Wisps.ui:139
|
||||||
|
#: resources/ui/gtk3/TVEffect.ui:83 resources/ui/gtk3/EnergizeA.ui:139
|
||||||
|
#: resources/ui/gtk3/EnergizeB.ui:139
|
||||||
|
msgid "Color"
|
||||||
|
msgstr "Kleur"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Fire.ui:25 resources/ui/gtk3/Fire.ui:49
|
||||||
|
msgid "Presets"
|
||||||
|
msgstr "Voorinstellingen"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Fire.ui:141 resources/ui/gtk3/Fire.ui:189
|
||||||
|
msgid "Speed"
|
||||||
|
msgstr "Snelheid"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Fire.ui:191 resources/ui/gtk3/Fire.ui:241
|
||||||
|
msgid "3D Noise"
|
||||||
|
msgstr "3D-ruis"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Fire.ui:200 resources/ui/gtk3/Fire.ui:250
|
||||||
|
msgid "Creates a more dynamic fire but requires more GPU power."
|
||||||
|
msgstr "Zorgt voor een speels vuur, maar vereist meer computerkracht."
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Fire.ui:240 resources/ui/gtk3/Fire.ui:300
|
||||||
|
msgid "Gradient"
|
||||||
|
msgstr "Verloop"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:70
|
||||||
|
msgid "Claw Scratch Scale"
|
||||||
|
msgstr "Schaal van pootkrabben"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:116
|
||||||
|
msgid "Claw Scratch Count"
|
||||||
|
msgstr "Aantal pootkrabben"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:162
|
||||||
|
msgid "Warp Effect"
|
||||||
|
msgstr "Vervormingseffect"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:208
|
||||||
|
msgid "Flash Color"
|
||||||
|
msgstr "Flitskleur"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/effectPage.ui:37 resources/ui/gtk3/effectPage.ui:37
|
||||||
|
msgid "Preview this Effect"
|
||||||
|
msgstr "Voorvertonen"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:116 resources/ui/gtk3/Hexagon.ui:147
|
||||||
|
msgid "Mesh Line Width"
|
||||||
|
msgstr "Gaaslijnbreedte"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:162 resources/ui/gtk3/Hexagon.ui:195
|
||||||
|
msgid "Line Color"
|
||||||
|
msgstr "Lijnkleur"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:196 resources/ui/gtk3/Hexagon.ui:238
|
||||||
|
msgid "Glow Color"
|
||||||
|
msgstr "Gloeikleur"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:234 resources/ui/gtk3/Hexagon.ui:285
|
||||||
|
msgid "Additive Blending"
|
||||||
|
msgstr "Overvloeien"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:243 resources/ui/gtk3/Hexagon.ui:294
|
||||||
|
msgid "You may want to enable this for dark window themes."
|
||||||
|
msgstr "Dit is mogelijk nuttig bij het gebruik van donkere thema's."
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:28 resources/ui/gtk3/prefs.ui:35
|
||||||
|
msgid "Welcome to Burn-My-Windows!"
|
||||||
|
msgstr "Welkom bij ‘Burn-My-Windows’!"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:39 resources/ui/gtk3/prefs.ui:46
|
||||||
|
msgid "If you like this extension, recommend it to your friends :)"
|
||||||
|
msgstr ""
|
||||||
|
"Als u deze uitbreiding leuk vindt, deel hem dan met vrienden en kennissen. :)"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:66 resources/ui/gtk3/prefs.ui:74
|
||||||
|
msgid "Open Window Animation"
|
||||||
|
msgstr "Animatie bij openen van vensters"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:75 resources/ui/gtk4/prefs.ui:119
|
||||||
|
#: resources/ui/gtk3/prefs.ui:83 resources/ui/gtk3/prefs.ui:147
|
||||||
|
msgid "If multiple are selected, one is chosen randomly."
|
||||||
|
msgstr ""
|
||||||
|
"Als er meerdere effecten zijn geselecteerd, dan wordt er willekeurig gekozen."
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:90 resources/ui/gtk4/prefs.ui:134
|
||||||
|
#: resources/ui/gtk3/prefs.ui:104 resources/ui/gtk3/prefs.ui:168
|
||||||
|
msgid "Choose Effects"
|
||||||
|
msgstr "Kies de effecten"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:110 resources/ui/gtk3/prefs.ui:138
|
||||||
|
msgid "Close Window Animation"
|
||||||
|
msgstr "Animatie bij sluiten van vensters"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:150 resources/ui/gtk3/prefs.ui:198
|
||||||
|
msgid "Also Add Effects to Dialogs"
|
||||||
|
msgstr "Dialoogvensters ook voorzien van effecten"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Apparition.ui:116 resources/ui/gtk3/Apparition.ui:161
|
||||||
|
msgid "Twirl Intensity"
|
||||||
|
msgstr "Wervelintensiteit"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Apparition.ui:162 resources/ui/gtk3/Apparition.ui:210
|
||||||
|
msgid "Shake Intensity"
|
||||||
|
msgstr "Schudintensiteit"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Apparition.ui:208 resources/ui/gtk3/Apparition.ui:259
|
||||||
|
msgid "Suction Intensity"
|
||||||
|
msgstr "Zuigintensiteit"
|
||||||
|
|
||||||
|
#: resources/ui/gtk3/Fire.ui:63
|
||||||
|
msgid "Choose a Preset"
|
||||||
|
msgstr "Kies een voorinstelling"
|
||||||
|
|
||||||
|
#~ msgid "Via PayPal"
|
||||||
|
#~ msgstr "Via PayPal"
|
||||||
|
|
||||||
|
#~ msgid "Via GitHub"
|
||||||
|
#~ msgstr "Via GitHub"
|
||||||
@@ -0,0 +1,364 @@
|
|||||||
|
# SOME DESCRIPTIVE TITLE.
|
||||||
|
# Copyright (C) YEAR Simon Schneegans
|
||||||
|
# This file is distributed under the same license as the Burn-My-Windows package.
|
||||||
|
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||||
|
#
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Burn-My-Windows\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2022-04-05 09:22+0200\n"
|
||||||
|
"PO-Revision-Date: 2022-04-13 13:09+0000\n"
|
||||||
|
"Last-Translator: Егор Ермаков <eg.ermakov2016@gmail.com>\n"
|
||||||
|
"Language-Team: Russian <https://hosted.weblate.org/projects/burn-my-windows/"
|
||||||
|
"core/ru/>\n"
|
||||||
|
"Language: ru\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
|
||||||
|
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
|
||||||
|
"X-Generator: Weblate 4.12-dev\n"
|
||||||
|
|
||||||
|
#: prefs.js:112
|
||||||
|
msgid "Effect Options"
|
||||||
|
msgstr "Параметры эффекта"
|
||||||
|
|
||||||
|
#: prefs.js:140
|
||||||
|
msgid "Go Back"
|
||||||
|
msgstr "Назад"
|
||||||
|
|
||||||
|
#: prefs.js:182
|
||||||
|
msgid "General Options"
|
||||||
|
msgstr "Общие настройки"
|
||||||
|
|
||||||
|
#: prefs.js:276
|
||||||
|
msgid "Gold Sponsors"
|
||||||
|
msgstr "Золотые спонсоры"
|
||||||
|
|
||||||
|
#: prefs.js:279
|
||||||
|
msgid "Silver Sponsors"
|
||||||
|
msgstr "Серебряные спонсоры"
|
||||||
|
|
||||||
|
#: prefs.js:282
|
||||||
|
msgid "Bronze Sponsors"
|
||||||
|
msgstr "Бронзовые спонсоры"
|
||||||
|
|
||||||
|
#: prefs.js:285
|
||||||
|
msgid "Past Sponsors"
|
||||||
|
msgstr "Прошлые спонсоры"
|
||||||
|
|
||||||
|
#. Translators: %s will be replaced by the effect's name.
|
||||||
|
#: prefs.js:510
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Preview for %s"
|
||||||
|
msgstr "Предпросмотр %s"
|
||||||
|
|
||||||
|
#: prefs.js:532
|
||||||
|
msgid "Close this Window to Preview the Effect!"
|
||||||
|
msgstr "Закройте это окно для предпросмотра эффекта!"
|
||||||
|
|
||||||
|
#: src/BrokenGlass.js:57
|
||||||
|
msgid "Broken Glass"
|
||||||
|
msgstr "Разбитое стекло"
|
||||||
|
|
||||||
|
#: src/TVEffect.js:56
|
||||||
|
msgid "TV Effect"
|
||||||
|
msgstr "Эффект ЭЛТ"
|
||||||
|
|
||||||
|
#: src/TRexAttack.js:56
|
||||||
|
msgid "T-Rex Attack"
|
||||||
|
msgstr "Атака тираннозавра"
|
||||||
|
|
||||||
|
#: src/SnapOfDisintegration.js:60
|
||||||
|
msgid "Snap of Disintegration"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Wisps.js:55
|
||||||
|
msgid "Wisps"
|
||||||
|
msgstr "Огоньки"
|
||||||
|
|
||||||
|
#: src/Fire.js:58
|
||||||
|
msgid "Fire"
|
||||||
|
msgstr "Огонь"
|
||||||
|
|
||||||
|
#: src/Fire.js:130
|
||||||
|
msgid "Default Fire"
|
||||||
|
msgstr "Обычный огонь"
|
||||||
|
|
||||||
|
#: src/Fire.js:140
|
||||||
|
msgid "Hell Fire"
|
||||||
|
msgstr "Адское пламя"
|
||||||
|
|
||||||
|
#: src/Fire.js:150
|
||||||
|
msgid "Dark and Smutty"
|
||||||
|
msgstr "Тёмный и грязный"
|
||||||
|
|
||||||
|
#: src/Fire.js:160
|
||||||
|
msgid "Cold Breeze"
|
||||||
|
msgstr "Холодный бриз"
|
||||||
|
|
||||||
|
#: src/Fire.js:170
|
||||||
|
msgid "Santa is Coming"
|
||||||
|
msgstr "Дед Мороз идёт"
|
||||||
|
|
||||||
|
#: src/Hexagon.js:53
|
||||||
|
msgid "Hexagon"
|
||||||
|
msgstr "Гексагон"
|
||||||
|
|
||||||
|
#: src/EnergizeA.js:54
|
||||||
|
msgid "Energize A"
|
||||||
|
msgstr "Энергия A"
|
||||||
|
|
||||||
|
#: src/Apparition.js:57
|
||||||
|
msgid "Apparition"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/EnergizeB.js:54
|
||||||
|
msgid "Energize B"
|
||||||
|
msgstr "Энергия B"
|
||||||
|
|
||||||
|
#: src/Matrix.js:58
|
||||||
|
msgid "Matrix"
|
||||||
|
msgstr "Матрица"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:6
|
||||||
|
msgid "Visit Homepage"
|
||||||
|
msgstr "Посетить страницу проекта"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:10
|
||||||
|
msgid "View Changelog"
|
||||||
|
msgstr "Просмотреть список изменений"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:16
|
||||||
|
msgid "Report a Bug"
|
||||||
|
msgstr "Сообщить об ошибке"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:20
|
||||||
|
msgid "Create an Effect"
|
||||||
|
msgstr "Создать эффект"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:24
|
||||||
|
msgid "Translate"
|
||||||
|
msgstr "Перевести"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:28
|
||||||
|
msgid "Donate"
|
||||||
|
msgstr "Пожертвовать"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:41
|
||||||
|
msgid "About Burn-My-Windows"
|
||||||
|
msgstr "О Burn-My-Windows"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:24 resources/ui/gtk4/BrokenGlass.ui:24
|
||||||
|
#: resources/ui/gtk4/Wisps.ui:24 resources/ui/gtk4/Fire.ui:49
|
||||||
|
#: resources/ui/gtk4/SnapOfDisintegration.ui:24
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:24 resources/ui/gtk4/TVEffect.ui:24
|
||||||
|
#: resources/ui/gtk4/EnergizeA.ui:24 resources/ui/gtk4/Hexagon.ui:24
|
||||||
|
#: resources/ui/gtk4/EnergizeB.ui:24 resources/ui/gtk4/Apparition.ui:24
|
||||||
|
#: resources/ui/gtk3/Wisps.ui:42 resources/ui/gtk3/Fire.ui:93
|
||||||
|
#: resources/ui/gtk3/TVEffect.ui:35 resources/ui/gtk3/EnergizeA.ui:42
|
||||||
|
#: resources/ui/gtk3/Hexagon.ui:49 resources/ui/gtk3/EnergizeB.ui:42
|
||||||
|
#: resources/ui/gtk3/Apparition.ui:63
|
||||||
|
msgid "Animation Time [ms]"
|
||||||
|
msgstr "Время анимации (мс)"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:52 resources/ui/gtk4/Matrix.ui:98
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:144 resources/ui/gtk4/Matrix.ui:190
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:224 resources/ui/gtk4/Matrix.ui:258
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:52 resources/ui/gtk4/BrokenGlass.ui:98
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:144 resources/ui/gtk4/BrokenGlass.ui:190
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:244 resources/ui/gtk4/Wisps.ui:52
|
||||||
|
#: resources/ui/gtk4/Wisps.ui:98 resources/ui/gtk4/Wisps.ui:132
|
||||||
|
#: resources/ui/gtk4/Fire.ui:77 resources/ui/gtk4/Fire.ui:123
|
||||||
|
#: resources/ui/gtk4/Fire.ui:169 resources/ui/gtk4/Fire.ui:222
|
||||||
|
#: resources/ui/gtk4/Fire.ui:280 resources/ui/gtk4/TRexAttack.ui:52
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:98 resources/ui/gtk4/TRexAttack.ui:144
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:190 resources/ui/gtk4/TRexAttack.ui:224
|
||||||
|
#: resources/ui/gtk4/TVEffect.ui:52 resources/ui/gtk4/TVEffect.ui:86
|
||||||
|
#: resources/ui/gtk4/EnergizeA.ui:52 resources/ui/gtk4/EnergizeA.ui:98
|
||||||
|
#: resources/ui/gtk4/EnergizeA.ui:132 resources/ui/gtk4/Hexagon.ui:52
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:98 resources/ui/gtk4/Hexagon.ui:144
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:178 resources/ui/gtk4/Hexagon.ui:212
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:265 resources/ui/gtk4/EnergizeB.ui:52
|
||||||
|
#: resources/ui/gtk4/EnergizeB.ui:98 resources/ui/gtk4/EnergizeB.ui:132
|
||||||
|
#: resources/ui/gtk4/prefs.ui:166 resources/ui/gtk4/Apparition.ui:52
|
||||||
|
#: resources/ui/gtk4/Apparition.ui:98 resources/ui/gtk4/Apparition.ui:144
|
||||||
|
#: resources/ui/gtk4/Apparition.ui:190 resources/ui/gtk4/Apparition.ui:236
|
||||||
|
#: resources/ui/gtk3/Wisps.ui:68 resources/ui/gtk3/Wisps.ui:117
|
||||||
|
#: resources/ui/gtk3/Wisps.ui:160 resources/ui/gtk3/Fire.ui:119
|
||||||
|
#: resources/ui/gtk3/Fire.ui:167 resources/ui/gtk3/Fire.ui:215
|
||||||
|
#: resources/ui/gtk3/Fire.ui:277 resources/ui/gtk3/Fire.ui:345
|
||||||
|
#: resources/ui/gtk3/TVEffect.ui:61 resources/ui/gtk3/TVEffect.ui:104
|
||||||
|
#: resources/ui/gtk3/EnergizeA.ui:68 resources/ui/gtk3/EnergizeA.ui:117
|
||||||
|
#: resources/ui/gtk3/EnergizeA.ui:160 resources/ui/gtk3/Hexagon.ui:75
|
||||||
|
#: resources/ui/gtk3/Hexagon.ui:124 resources/ui/gtk3/Hexagon.ui:173
|
||||||
|
#: resources/ui/gtk3/Hexagon.ui:216 resources/ui/gtk3/Hexagon.ui:259
|
||||||
|
#: resources/ui/gtk3/Hexagon.ui:321 resources/ui/gtk3/EnergizeB.ui:68
|
||||||
|
#: resources/ui/gtk3/EnergizeB.ui:117 resources/ui/gtk3/EnergizeB.ui:160
|
||||||
|
#: resources/ui/gtk3/prefs.ui:219 resources/ui/gtk3/Apparition.ui:89
|
||||||
|
#: resources/ui/gtk3/Apparition.ui:138 resources/ui/gtk3/Apparition.ui:187
|
||||||
|
#: resources/ui/gtk3/Apparition.ui:236 resources/ui/gtk3/Apparition.ui:285
|
||||||
|
msgid "Reset to Default Value"
|
||||||
|
msgstr "Сброс на значение по умолчанию"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:70 resources/ui/gtk4/BrokenGlass.ui:70
|
||||||
|
#: resources/ui/gtk4/Wisps.ui:70 resources/ui/gtk4/Fire.ui:95
|
||||||
|
#: resources/ui/gtk4/SnapOfDisintegration.ui:70
|
||||||
|
#: resources/ui/gtk4/EnergizeA.ui:70 resources/ui/gtk4/Hexagon.ui:70
|
||||||
|
#: resources/ui/gtk4/EnergizeB.ui:70 resources/ui/gtk3/Wisps.ui:91
|
||||||
|
#: resources/ui/gtk3/Fire.ui:141 resources/ui/gtk3/EnergizeA.ui:91
|
||||||
|
#: resources/ui/gtk3/Hexagon.ui:98 resources/ui/gtk3/EnergizeB.ui:91
|
||||||
|
msgid "Scale"
|
||||||
|
msgstr "Масштаб"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:116 resources/ui/gtk4/Apparition.ui:70
|
||||||
|
#: resources/ui/gtk3/Apparition.ui:112
|
||||||
|
msgid "Randomness"
|
||||||
|
msgstr "Случайность"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:162
|
||||||
|
msgid "Vertical Overshooting"
|
||||||
|
msgstr "Вертикальное превышение"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:208
|
||||||
|
msgid "Trail Color"
|
||||||
|
msgstr "Цвет следа"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:242
|
||||||
|
msgid "Tip Color"
|
||||||
|
msgstr "Цвет наконечника"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:116
|
||||||
|
msgid "Gravity"
|
||||||
|
msgstr "Гравитация"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:162
|
||||||
|
msgid "Blow Force"
|
||||||
|
msgstr "Сила удара"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:212
|
||||||
|
msgid "Shatter From Pointer Location"
|
||||||
|
msgstr "Разбить от положения курсора"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:221
|
||||||
|
msgid ""
|
||||||
|
"The shards will fly away from where your mouse pointer was when closing the "
|
||||||
|
"window."
|
||||||
|
msgstr ""
|
||||||
|
"Осколки разлетятся в стороны от того места, где находился курсор мыши при "
|
||||||
|
"закрытии окна."
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Wisps.ui:116 resources/ui/gtk4/SnapOfDisintegration.ui:116
|
||||||
|
#: resources/ui/gtk4/TVEffect.ui:70 resources/ui/gtk4/EnergizeA.ui:116
|
||||||
|
#: resources/ui/gtk4/EnergizeB.ui:116 resources/ui/gtk3/Wisps.ui:139
|
||||||
|
#: resources/ui/gtk3/TVEffect.ui:83 resources/ui/gtk3/EnergizeA.ui:139
|
||||||
|
#: resources/ui/gtk3/EnergizeB.ui:139
|
||||||
|
msgid "Color"
|
||||||
|
msgstr "Цвет"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Fire.ui:25 resources/ui/gtk3/Fire.ui:49
|
||||||
|
msgid "Presets"
|
||||||
|
msgstr "Пресеты"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Fire.ui:141 resources/ui/gtk3/Fire.ui:189
|
||||||
|
msgid "Speed"
|
||||||
|
msgstr "Скорость"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Fire.ui:191 resources/ui/gtk3/Fire.ui:241
|
||||||
|
msgid "3D Noise"
|
||||||
|
msgstr "3D Шум"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Fire.ui:200 resources/ui/gtk3/Fire.ui:250
|
||||||
|
msgid "Creates a more dynamic fire but requires more GPU power."
|
||||||
|
msgstr "Создает более динамичный огонь, но требует большей мощности GPU."
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Fire.ui:240 resources/ui/gtk3/Fire.ui:300
|
||||||
|
msgid "Gradient"
|
||||||
|
msgstr "Градиент"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:70
|
||||||
|
msgid "Claw Scratch Scale"
|
||||||
|
msgstr "Масштаб царапин"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:116
|
||||||
|
msgid "Claw Scratch Count"
|
||||||
|
msgstr "Количество царапин"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:162
|
||||||
|
msgid "Warp Effect"
|
||||||
|
msgstr "Эффект искривления"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:208
|
||||||
|
msgid "Flash Color"
|
||||||
|
msgstr "Цвет вспышки"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/effectPage.ui:37 resources/ui/gtk3/effectPage.ui:37
|
||||||
|
msgid "Preview this Effect"
|
||||||
|
msgstr "Предпросмотр этого эффекта"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:116 resources/ui/gtk3/Hexagon.ui:147
|
||||||
|
msgid "Mesh Line Width"
|
||||||
|
msgstr "Ширина линии сетки"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:162 resources/ui/gtk3/Hexagon.ui:195
|
||||||
|
msgid "Line Color"
|
||||||
|
msgstr "Цвет линии"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:196 resources/ui/gtk3/Hexagon.ui:238
|
||||||
|
msgid "Glow Color"
|
||||||
|
msgstr "Цвет свечения"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:234 resources/ui/gtk3/Hexagon.ui:285
|
||||||
|
msgid "Additive Blending"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:243 resources/ui/gtk3/Hexagon.ui:294
|
||||||
|
msgid "You may want to enable this for dark window themes."
|
||||||
|
msgstr "Возможно, вы захотите включить это для тёмной темы."
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:28 resources/ui/gtk3/prefs.ui:35
|
||||||
|
msgid "Welcome to Burn-My-Windows!"
|
||||||
|
msgstr "Добро пожаловать в Burn-My-Windows!"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:39 resources/ui/gtk3/prefs.ui:46
|
||||||
|
msgid "If you like this extension, recommend it to your friends :)"
|
||||||
|
msgstr "Если вам нравится это расширение, порекомендуйте его своим друзьям :)"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:66 resources/ui/gtk3/prefs.ui:74
|
||||||
|
msgid "Open Window Animation"
|
||||||
|
msgstr "Анимация открытия окна"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:75 resources/ui/gtk4/prefs.ui:119
|
||||||
|
#: resources/ui/gtk3/prefs.ui:83 resources/ui/gtk3/prefs.ui:147
|
||||||
|
msgid "If multiple are selected, one is chosen randomly."
|
||||||
|
msgstr "Если выбрано несколько, то один выбирается случайным образом."
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:90 resources/ui/gtk4/prefs.ui:134
|
||||||
|
#: resources/ui/gtk3/prefs.ui:104 resources/ui/gtk3/prefs.ui:168
|
||||||
|
msgid "Choose Effects"
|
||||||
|
msgstr "Выберите эффекты"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:110 resources/ui/gtk3/prefs.ui:138
|
||||||
|
msgid "Close Window Animation"
|
||||||
|
msgstr "Анимация закрытия окна"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:150 resources/ui/gtk3/prefs.ui:198
|
||||||
|
msgid "Also Add Effects to Dialogs"
|
||||||
|
msgstr "Также добавить эффекты к диалогам"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Apparition.ui:116 resources/ui/gtk3/Apparition.ui:161
|
||||||
|
msgid "Twirl Intensity"
|
||||||
|
msgstr "Интенсивность вращения"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Apparition.ui:162 resources/ui/gtk3/Apparition.ui:210
|
||||||
|
msgid "Shake Intensity"
|
||||||
|
msgstr "Интенсивность встряски"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Apparition.ui:208 resources/ui/gtk3/Apparition.ui:259
|
||||||
|
msgid "Suction Intensity"
|
||||||
|
msgstr "Интенсивность всасывания"
|
||||||
|
|
||||||
|
#: resources/ui/gtk3/Fire.ui:63
|
||||||
|
msgid "Choose a Preset"
|
||||||
|
msgstr "Выберите пресет"
|
||||||
@@ -0,0 +1,363 @@
|
|||||||
|
# SOME DESCRIPTIVE TITLE.
|
||||||
|
# Copyright (C) YEAR Simon Schneegans
|
||||||
|
# This file is distributed under the same license as the burn-my-windows package.
|
||||||
|
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||||
|
#
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: burn-my-windows\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2022-04-05 09:22+0200\n"
|
||||||
|
"PO-Revision-Date: 2022-05-11 12:17+0000\n"
|
||||||
|
"Last-Translator: obslsessed <obslsessed@duck.com>\n"
|
||||||
|
"Language-Team: Swedish <https://hosted.weblate.org/projects/burn-my-windows/"
|
||||||
|
"core/sv/>\n"
|
||||||
|
"Language: sv\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||||
|
"X-Generator: Weblate 4.12.1\n"
|
||||||
|
|
||||||
|
#: prefs.js:112
|
||||||
|
msgid "Effect Options"
|
||||||
|
msgstr "Effektalternativ"
|
||||||
|
|
||||||
|
#: prefs.js:140
|
||||||
|
msgid "Go Back"
|
||||||
|
msgstr "Gå tillbaka"
|
||||||
|
|
||||||
|
#: prefs.js:182
|
||||||
|
msgid "General Options"
|
||||||
|
msgstr "Generella alternativ"
|
||||||
|
|
||||||
|
#: prefs.js:276
|
||||||
|
msgid "Gold Sponsors"
|
||||||
|
msgstr "Guldsponsorer"
|
||||||
|
|
||||||
|
#: prefs.js:279
|
||||||
|
msgid "Silver Sponsors"
|
||||||
|
msgstr "Silversponsorer"
|
||||||
|
|
||||||
|
#: prefs.js:282
|
||||||
|
msgid "Bronze Sponsors"
|
||||||
|
msgstr "Bronssponsorer"
|
||||||
|
|
||||||
|
#: prefs.js:285
|
||||||
|
msgid "Past Sponsors"
|
||||||
|
msgstr "Sponsorer från förr"
|
||||||
|
|
||||||
|
#. Translators: %s will be replaced by the effect's name.
|
||||||
|
#: prefs.js:510
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Preview for %s"
|
||||||
|
msgstr "Förhandsgranskning för %s"
|
||||||
|
|
||||||
|
#: prefs.js:532
|
||||||
|
msgid "Close this Window to Preview the Effect!"
|
||||||
|
msgstr "Stäng det här fönstret för att förhandsgranska effekten!"
|
||||||
|
|
||||||
|
#: src/BrokenGlass.js:57
|
||||||
|
msgid "Broken Glass"
|
||||||
|
msgstr "Trasigt glas"
|
||||||
|
|
||||||
|
#: src/TVEffect.js:56
|
||||||
|
msgid "TV Effect"
|
||||||
|
msgstr "TV-effekt"
|
||||||
|
|
||||||
|
#: src/TRexAttack.js:56
|
||||||
|
msgid "T-Rex Attack"
|
||||||
|
msgstr "T-Rexattack"
|
||||||
|
|
||||||
|
#: src/SnapOfDisintegration.js:60
|
||||||
|
msgid "Snap of Disintegration"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Wisps.js:55
|
||||||
|
msgid "Wisps"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Fire.js:58
|
||||||
|
msgid "Fire"
|
||||||
|
msgstr "Eld"
|
||||||
|
|
||||||
|
#: src/Fire.js:130
|
||||||
|
msgid "Default Fire"
|
||||||
|
msgstr "Standardeld"
|
||||||
|
|
||||||
|
#: src/Fire.js:140
|
||||||
|
msgid "Hell Fire"
|
||||||
|
msgstr "Helveteseld"
|
||||||
|
|
||||||
|
#: src/Fire.js:150
|
||||||
|
msgid "Dark and Smutty"
|
||||||
|
msgstr "Mörk och smutsig"
|
||||||
|
|
||||||
|
#: src/Fire.js:160
|
||||||
|
msgid "Cold Breeze"
|
||||||
|
msgstr "Kall bris"
|
||||||
|
|
||||||
|
#: src/Fire.js:170
|
||||||
|
msgid "Santa is Coming"
|
||||||
|
msgstr "Jultomten kommer"
|
||||||
|
|
||||||
|
#: src/Hexagon.js:53
|
||||||
|
msgid "Hexagon"
|
||||||
|
msgstr "Sexhörning"
|
||||||
|
|
||||||
|
#: src/EnergizeA.js:54
|
||||||
|
msgid "Energize A"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Apparition.js:57
|
||||||
|
msgid "Apparition"
|
||||||
|
msgstr "Uppenbarelse"
|
||||||
|
|
||||||
|
#: src/EnergizeB.js:54
|
||||||
|
msgid "Energize B"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Matrix.js:58
|
||||||
|
msgid "Matrix"
|
||||||
|
msgstr "Matris"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:6
|
||||||
|
msgid "Visit Homepage"
|
||||||
|
msgstr "Besök hemsida"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:10
|
||||||
|
msgid "View Changelog"
|
||||||
|
msgstr "Visa ändringslogg"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:16
|
||||||
|
msgid "Report a Bug"
|
||||||
|
msgstr "Rapportera en bugg"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:20
|
||||||
|
msgid "Create an Effect"
|
||||||
|
msgstr "Skapa en effekt"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:24
|
||||||
|
msgid "Translate"
|
||||||
|
msgstr "Översätt"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:28
|
||||||
|
msgid "Donate"
|
||||||
|
msgstr "Donera"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:41
|
||||||
|
msgid "About Burn-My-Windows"
|
||||||
|
msgstr "Om Bränn-mitt-Windows"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:24 resources/ui/gtk4/BrokenGlass.ui:24
|
||||||
|
#: resources/ui/gtk4/Wisps.ui:24 resources/ui/gtk4/Fire.ui:49
|
||||||
|
#: resources/ui/gtk4/SnapOfDisintegration.ui:24
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:24 resources/ui/gtk4/TVEffect.ui:24
|
||||||
|
#: resources/ui/gtk4/EnergizeA.ui:24 resources/ui/gtk4/Hexagon.ui:24
|
||||||
|
#: resources/ui/gtk4/EnergizeB.ui:24 resources/ui/gtk4/Apparition.ui:24
|
||||||
|
#: resources/ui/gtk3/Wisps.ui:42 resources/ui/gtk3/Fire.ui:93
|
||||||
|
#: resources/ui/gtk3/TVEffect.ui:35 resources/ui/gtk3/EnergizeA.ui:42
|
||||||
|
#: resources/ui/gtk3/Hexagon.ui:49 resources/ui/gtk3/EnergizeB.ui:42
|
||||||
|
#: resources/ui/gtk3/Apparition.ui:63
|
||||||
|
msgid "Animation Time [ms]"
|
||||||
|
msgstr "Animationens tid [ms]"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:52 resources/ui/gtk4/Matrix.ui:98
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:144 resources/ui/gtk4/Matrix.ui:190
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:224 resources/ui/gtk4/Matrix.ui:258
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:52 resources/ui/gtk4/BrokenGlass.ui:98
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:144 resources/ui/gtk4/BrokenGlass.ui:190
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:244 resources/ui/gtk4/Wisps.ui:52
|
||||||
|
#: resources/ui/gtk4/Wisps.ui:98 resources/ui/gtk4/Wisps.ui:132
|
||||||
|
#: resources/ui/gtk4/Fire.ui:77 resources/ui/gtk4/Fire.ui:123
|
||||||
|
#: resources/ui/gtk4/Fire.ui:169 resources/ui/gtk4/Fire.ui:222
|
||||||
|
#: resources/ui/gtk4/Fire.ui:280 resources/ui/gtk4/TRexAttack.ui:52
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:98 resources/ui/gtk4/TRexAttack.ui:144
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:190 resources/ui/gtk4/TRexAttack.ui:224
|
||||||
|
#: resources/ui/gtk4/TVEffect.ui:52 resources/ui/gtk4/TVEffect.ui:86
|
||||||
|
#: resources/ui/gtk4/EnergizeA.ui:52 resources/ui/gtk4/EnergizeA.ui:98
|
||||||
|
#: resources/ui/gtk4/EnergizeA.ui:132 resources/ui/gtk4/Hexagon.ui:52
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:98 resources/ui/gtk4/Hexagon.ui:144
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:178 resources/ui/gtk4/Hexagon.ui:212
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:265 resources/ui/gtk4/EnergizeB.ui:52
|
||||||
|
#: resources/ui/gtk4/EnergizeB.ui:98 resources/ui/gtk4/EnergizeB.ui:132
|
||||||
|
#: resources/ui/gtk4/prefs.ui:166 resources/ui/gtk4/Apparition.ui:52
|
||||||
|
#: resources/ui/gtk4/Apparition.ui:98 resources/ui/gtk4/Apparition.ui:144
|
||||||
|
#: resources/ui/gtk4/Apparition.ui:190 resources/ui/gtk4/Apparition.ui:236
|
||||||
|
#: resources/ui/gtk3/Wisps.ui:68 resources/ui/gtk3/Wisps.ui:117
|
||||||
|
#: resources/ui/gtk3/Wisps.ui:160 resources/ui/gtk3/Fire.ui:119
|
||||||
|
#: resources/ui/gtk3/Fire.ui:167 resources/ui/gtk3/Fire.ui:215
|
||||||
|
#: resources/ui/gtk3/Fire.ui:277 resources/ui/gtk3/Fire.ui:345
|
||||||
|
#: resources/ui/gtk3/TVEffect.ui:61 resources/ui/gtk3/TVEffect.ui:104
|
||||||
|
#: resources/ui/gtk3/EnergizeA.ui:68 resources/ui/gtk3/EnergizeA.ui:117
|
||||||
|
#: resources/ui/gtk3/EnergizeA.ui:160 resources/ui/gtk3/Hexagon.ui:75
|
||||||
|
#: resources/ui/gtk3/Hexagon.ui:124 resources/ui/gtk3/Hexagon.ui:173
|
||||||
|
#: resources/ui/gtk3/Hexagon.ui:216 resources/ui/gtk3/Hexagon.ui:259
|
||||||
|
#: resources/ui/gtk3/Hexagon.ui:321 resources/ui/gtk3/EnergizeB.ui:68
|
||||||
|
#: resources/ui/gtk3/EnergizeB.ui:117 resources/ui/gtk3/EnergizeB.ui:160
|
||||||
|
#: resources/ui/gtk3/prefs.ui:219 resources/ui/gtk3/Apparition.ui:89
|
||||||
|
#: resources/ui/gtk3/Apparition.ui:138 resources/ui/gtk3/Apparition.ui:187
|
||||||
|
#: resources/ui/gtk3/Apparition.ui:236 resources/ui/gtk3/Apparition.ui:285
|
||||||
|
msgid "Reset to Default Value"
|
||||||
|
msgstr "Återställ till standardvärde"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:70 resources/ui/gtk4/BrokenGlass.ui:70
|
||||||
|
#: resources/ui/gtk4/Wisps.ui:70 resources/ui/gtk4/Fire.ui:95
|
||||||
|
#: resources/ui/gtk4/SnapOfDisintegration.ui:70
|
||||||
|
#: resources/ui/gtk4/EnergizeA.ui:70 resources/ui/gtk4/Hexagon.ui:70
|
||||||
|
#: resources/ui/gtk4/EnergizeB.ui:70 resources/ui/gtk3/Wisps.ui:91
|
||||||
|
#: resources/ui/gtk3/Fire.ui:141 resources/ui/gtk3/EnergizeA.ui:91
|
||||||
|
#: resources/ui/gtk3/Hexagon.ui:98 resources/ui/gtk3/EnergizeB.ui:91
|
||||||
|
msgid "Scale"
|
||||||
|
msgstr "Skala"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:116 resources/ui/gtk4/Apparition.ui:70
|
||||||
|
#: resources/ui/gtk3/Apparition.ui:112
|
||||||
|
msgid "Randomness"
|
||||||
|
msgstr "Slumpmässighet"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:162
|
||||||
|
msgid "Vertical Overshooting"
|
||||||
|
msgstr "Vertikal överskjutning"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:208
|
||||||
|
msgid "Trail Color"
|
||||||
|
msgstr "Spårets färg"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:242
|
||||||
|
msgid "Tip Color"
|
||||||
|
msgstr "Färg på dricksen"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:116
|
||||||
|
msgid "Gravity"
|
||||||
|
msgstr "Tyngdkraft"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:162
|
||||||
|
msgid "Blow Force"
|
||||||
|
msgstr "Blåskraft"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:212
|
||||||
|
msgid "Shatter From Pointer Location"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:221
|
||||||
|
msgid ""
|
||||||
|
"The shards will fly away from where your mouse pointer was when closing the "
|
||||||
|
"window."
|
||||||
|
msgstr ""
|
||||||
|
"Skärvorna kommer att flyga iväg från där din muspekare befann sig när rutan "
|
||||||
|
"stängdes."
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Wisps.ui:116 resources/ui/gtk4/SnapOfDisintegration.ui:116
|
||||||
|
#: resources/ui/gtk4/TVEffect.ui:70 resources/ui/gtk4/EnergizeA.ui:116
|
||||||
|
#: resources/ui/gtk4/EnergizeB.ui:116 resources/ui/gtk3/Wisps.ui:139
|
||||||
|
#: resources/ui/gtk3/TVEffect.ui:83 resources/ui/gtk3/EnergizeA.ui:139
|
||||||
|
#: resources/ui/gtk3/EnergizeB.ui:139
|
||||||
|
msgid "Color"
|
||||||
|
msgstr "Färg"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Fire.ui:25 resources/ui/gtk3/Fire.ui:49
|
||||||
|
msgid "Presets"
|
||||||
|
msgstr "Förinställningar"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Fire.ui:141 resources/ui/gtk3/Fire.ui:189
|
||||||
|
msgid "Speed"
|
||||||
|
msgstr "Hastighet"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Fire.ui:191 resources/ui/gtk3/Fire.ui:241
|
||||||
|
msgid "3D Noise"
|
||||||
|
msgstr "3D-ljud"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Fire.ui:200 resources/ui/gtk3/Fire.ui:250
|
||||||
|
msgid "Creates a more dynamic fire but requires more GPU power."
|
||||||
|
msgstr "Skapar en mer dynamisk eld, men kräver mer GPU-kraft."
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Fire.ui:240 resources/ui/gtk3/Fire.ui:300
|
||||||
|
msgid "Gradient"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:70
|
||||||
|
msgid "Claw Scratch Scale"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:116
|
||||||
|
msgid "Claw Scratch Count"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:162
|
||||||
|
msgid "Warp Effect"
|
||||||
|
msgstr "Warp-effekt"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:208
|
||||||
|
msgid "Flash Color"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/effectPage.ui:37 resources/ui/gtk3/effectPage.ui:37
|
||||||
|
msgid "Preview this Effect"
|
||||||
|
msgstr "Förhandsgranska den här effekten"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:116 resources/ui/gtk3/Hexagon.ui:147
|
||||||
|
msgid "Mesh Line Width"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:162 resources/ui/gtk3/Hexagon.ui:195
|
||||||
|
msgid "Line Color"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:196 resources/ui/gtk3/Hexagon.ui:238
|
||||||
|
msgid "Glow Color"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:234 resources/ui/gtk3/Hexagon.ui:285
|
||||||
|
msgid "Additive Blending"
|
||||||
|
msgstr "Tillsatsblandning"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:243 resources/ui/gtk3/Hexagon.ui:294
|
||||||
|
msgid "You may want to enable this for dark window themes."
|
||||||
|
msgstr "Du kan behöva aktivera det här för mörka fönsterteman."
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:28 resources/ui/gtk3/prefs.ui:35
|
||||||
|
msgid "Welcome to Burn-My-Windows!"
|
||||||
|
msgstr "Välkommen till Bränn-mitt-Windows!"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:39 resources/ui/gtk3/prefs.ui:46
|
||||||
|
msgid "If you like this extension, recommend it to your friends :)"
|
||||||
|
msgstr "Rekommendera det här tillägget till dina vänner om du gillar det :)"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:66 resources/ui/gtk3/prefs.ui:74
|
||||||
|
msgid "Open Window Animation"
|
||||||
|
msgstr "Öppna fönsteranimation"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:75 resources/ui/gtk4/prefs.ui:119
|
||||||
|
#: resources/ui/gtk3/prefs.ui:83 resources/ui/gtk3/prefs.ui:147
|
||||||
|
msgid "If multiple are selected, one is chosen randomly."
|
||||||
|
msgstr "Om flera val är gjorda så väljs ett slumpvist."
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:90 resources/ui/gtk4/prefs.ui:134
|
||||||
|
#: resources/ui/gtk3/prefs.ui:104 resources/ui/gtk3/prefs.ui:168
|
||||||
|
msgid "Choose Effects"
|
||||||
|
msgstr "Välj effekter"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:110 resources/ui/gtk3/prefs.ui:138
|
||||||
|
msgid "Close Window Animation"
|
||||||
|
msgstr "Stäng fönsteranimation"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:150 resources/ui/gtk3/prefs.ui:198
|
||||||
|
msgid "Also Add Effects to Dialogs"
|
||||||
|
msgstr "Lägg också till effekter till dialogrutor"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Apparition.ui:116 resources/ui/gtk3/Apparition.ui:161
|
||||||
|
msgid "Twirl Intensity"
|
||||||
|
msgstr "Virvelns intensitet"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Apparition.ui:162 resources/ui/gtk3/Apparition.ui:210
|
||||||
|
msgid "Shake Intensity"
|
||||||
|
msgstr "Skakningens intensitet"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Apparition.ui:208 resources/ui/gtk3/Apparition.ui:259
|
||||||
|
msgid "Suction Intensity"
|
||||||
|
msgstr "Sugningens intensitet"
|
||||||
|
|
||||||
|
#: resources/ui/gtk3/Fire.ui:63
|
||||||
|
msgid "Choose a Preset"
|
||||||
|
msgstr "Välj en förinställning"
|
||||||
@@ -0,0 +1,363 @@
|
|||||||
|
# SOME DESCRIPTIVE TITLE.
|
||||||
|
# Copyright (C) YEAR Simon Schneegans
|
||||||
|
# This file is distributed under the same license as the Burn-My-Windows package.
|
||||||
|
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||||
|
#
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Burn-My-Windows\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2022-04-05 09:22+0200\n"
|
||||||
|
"PO-Revision-Date: 2022-05-11 12:17+0000\n"
|
||||||
|
"Last-Translator: Muha Aliss <muhaaliss@pm.me>\n"
|
||||||
|
"Language-Team: Turkish <https://hosted.weblate.org/projects/burn-my-windows/"
|
||||||
|
"core/tr/>\n"
|
||||||
|
"Language: tr\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||||
|
"X-Generator: Weblate 4.12.1\n"
|
||||||
|
|
||||||
|
#: prefs.js:112
|
||||||
|
msgid "Effect Options"
|
||||||
|
msgstr "Efekt Seçenekleri"
|
||||||
|
|
||||||
|
#: prefs.js:140
|
||||||
|
msgid "Go Back"
|
||||||
|
msgstr "Geri Dön"
|
||||||
|
|
||||||
|
#: prefs.js:182
|
||||||
|
msgid "General Options"
|
||||||
|
msgstr "Genel Ayarlar"
|
||||||
|
|
||||||
|
#: prefs.js:276
|
||||||
|
msgid "Gold Sponsors"
|
||||||
|
msgstr "Altın Sponsorlar"
|
||||||
|
|
||||||
|
#: prefs.js:279
|
||||||
|
msgid "Silver Sponsors"
|
||||||
|
msgstr "Gümüş Sponsorlar"
|
||||||
|
|
||||||
|
#: prefs.js:282
|
||||||
|
msgid "Bronze Sponsors"
|
||||||
|
msgstr "Bronz Sponsorlar"
|
||||||
|
|
||||||
|
#: prefs.js:285
|
||||||
|
msgid "Past Sponsors"
|
||||||
|
msgstr "Eski Sponsorlar"
|
||||||
|
|
||||||
|
#. Translators: %s will be replaced by the effect's name.
|
||||||
|
#: prefs.js:510
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Preview for %s"
|
||||||
|
msgstr "%s ön izleme"
|
||||||
|
|
||||||
|
#: prefs.js:532
|
||||||
|
msgid "Close this Window to Preview the Effect!"
|
||||||
|
msgstr "Efekti Ön izlemek İçin Bu Pencereyi Kapatın!"
|
||||||
|
|
||||||
|
#: src/BrokenGlass.js:57
|
||||||
|
msgid "Broken Glass"
|
||||||
|
msgstr "Kırılan Cam"
|
||||||
|
|
||||||
|
#: src/TVEffect.js:56
|
||||||
|
msgid "TV Effect"
|
||||||
|
msgstr "TV Efekti"
|
||||||
|
|
||||||
|
#: src/TRexAttack.js:56
|
||||||
|
msgid "T-Rex Attack"
|
||||||
|
msgstr "T-Rex Saldırısı"
|
||||||
|
|
||||||
|
#: src/SnapOfDisintegration.js:60
|
||||||
|
msgid "Snap of Disintegration"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Wisps.js:55
|
||||||
|
msgid "Wisps"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Fire.js:58
|
||||||
|
msgid "Fire"
|
||||||
|
msgstr "Ateş"
|
||||||
|
|
||||||
|
#: src/Fire.js:130
|
||||||
|
msgid "Default Fire"
|
||||||
|
msgstr "Varsayılan Ateş"
|
||||||
|
|
||||||
|
#: src/Fire.js:140
|
||||||
|
msgid "Hell Fire"
|
||||||
|
msgstr "Cehennem Ateşi"
|
||||||
|
|
||||||
|
#: src/Fire.js:150
|
||||||
|
msgid "Dark and Smutty"
|
||||||
|
msgstr "Karanlık ve Sürmeli"
|
||||||
|
|
||||||
|
#: src/Fire.js:160
|
||||||
|
msgid "Cold Breeze"
|
||||||
|
msgstr "Soğuk Esinti"
|
||||||
|
|
||||||
|
#: src/Fire.js:170
|
||||||
|
msgid "Santa is Coming"
|
||||||
|
msgstr "Noel Baba Geliyor"
|
||||||
|
|
||||||
|
#: src/Hexagon.js:53
|
||||||
|
msgid "Hexagon"
|
||||||
|
msgstr "Altıgen"
|
||||||
|
|
||||||
|
#: src/EnergizeA.js:54
|
||||||
|
msgid "Energize A"
|
||||||
|
msgstr "Enerji A"
|
||||||
|
|
||||||
|
#: src/Apparition.js:57
|
||||||
|
msgid "Apparition"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/EnergizeB.js:54
|
||||||
|
msgid "Energize B"
|
||||||
|
msgstr "Enerji B"
|
||||||
|
|
||||||
|
#: src/Matrix.js:58
|
||||||
|
msgid "Matrix"
|
||||||
|
msgstr "Matrix"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:6
|
||||||
|
msgid "Visit Homepage"
|
||||||
|
msgstr "Ana Sayfaya Git"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:10
|
||||||
|
msgid "View Changelog"
|
||||||
|
msgstr "Değişim Günlüğü"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:16
|
||||||
|
msgid "Report a Bug"
|
||||||
|
msgstr "Hata Bildir"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:20
|
||||||
|
msgid "Create an Effect"
|
||||||
|
msgstr "Efekt Oluştur"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:24
|
||||||
|
msgid "Translate"
|
||||||
|
msgstr "Çevir"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:28
|
||||||
|
msgid "Donate"
|
||||||
|
msgstr "Bağış"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:41
|
||||||
|
msgid "About Burn-My-Windows"
|
||||||
|
msgstr "Burn-My-Windows Hakkında"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:24 resources/ui/gtk4/BrokenGlass.ui:24
|
||||||
|
#: resources/ui/gtk4/Wisps.ui:24 resources/ui/gtk4/Fire.ui:49
|
||||||
|
#: resources/ui/gtk4/SnapOfDisintegration.ui:24
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:24 resources/ui/gtk4/TVEffect.ui:24
|
||||||
|
#: resources/ui/gtk4/EnergizeA.ui:24 resources/ui/gtk4/Hexagon.ui:24
|
||||||
|
#: resources/ui/gtk4/EnergizeB.ui:24 resources/ui/gtk4/Apparition.ui:24
|
||||||
|
#: resources/ui/gtk3/Wisps.ui:42 resources/ui/gtk3/Fire.ui:93
|
||||||
|
#: resources/ui/gtk3/TVEffect.ui:35 resources/ui/gtk3/EnergizeA.ui:42
|
||||||
|
#: resources/ui/gtk3/Hexagon.ui:49 resources/ui/gtk3/EnergizeB.ui:42
|
||||||
|
#: resources/ui/gtk3/Apparition.ui:63
|
||||||
|
msgid "Animation Time [ms]"
|
||||||
|
msgstr "Animasyon Süresi [ms]"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:52 resources/ui/gtk4/Matrix.ui:98
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:144 resources/ui/gtk4/Matrix.ui:190
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:224 resources/ui/gtk4/Matrix.ui:258
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:52 resources/ui/gtk4/BrokenGlass.ui:98
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:144 resources/ui/gtk4/BrokenGlass.ui:190
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:244 resources/ui/gtk4/Wisps.ui:52
|
||||||
|
#: resources/ui/gtk4/Wisps.ui:98 resources/ui/gtk4/Wisps.ui:132
|
||||||
|
#: resources/ui/gtk4/Fire.ui:77 resources/ui/gtk4/Fire.ui:123
|
||||||
|
#: resources/ui/gtk4/Fire.ui:169 resources/ui/gtk4/Fire.ui:222
|
||||||
|
#: resources/ui/gtk4/Fire.ui:280 resources/ui/gtk4/TRexAttack.ui:52
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:98 resources/ui/gtk4/TRexAttack.ui:144
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:190 resources/ui/gtk4/TRexAttack.ui:224
|
||||||
|
#: resources/ui/gtk4/TVEffect.ui:52 resources/ui/gtk4/TVEffect.ui:86
|
||||||
|
#: resources/ui/gtk4/EnergizeA.ui:52 resources/ui/gtk4/EnergizeA.ui:98
|
||||||
|
#: resources/ui/gtk4/EnergizeA.ui:132 resources/ui/gtk4/Hexagon.ui:52
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:98 resources/ui/gtk4/Hexagon.ui:144
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:178 resources/ui/gtk4/Hexagon.ui:212
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:265 resources/ui/gtk4/EnergizeB.ui:52
|
||||||
|
#: resources/ui/gtk4/EnergizeB.ui:98 resources/ui/gtk4/EnergizeB.ui:132
|
||||||
|
#: resources/ui/gtk4/prefs.ui:166 resources/ui/gtk4/Apparition.ui:52
|
||||||
|
#: resources/ui/gtk4/Apparition.ui:98 resources/ui/gtk4/Apparition.ui:144
|
||||||
|
#: resources/ui/gtk4/Apparition.ui:190 resources/ui/gtk4/Apparition.ui:236
|
||||||
|
#: resources/ui/gtk3/Wisps.ui:68 resources/ui/gtk3/Wisps.ui:117
|
||||||
|
#: resources/ui/gtk3/Wisps.ui:160 resources/ui/gtk3/Fire.ui:119
|
||||||
|
#: resources/ui/gtk3/Fire.ui:167 resources/ui/gtk3/Fire.ui:215
|
||||||
|
#: resources/ui/gtk3/Fire.ui:277 resources/ui/gtk3/Fire.ui:345
|
||||||
|
#: resources/ui/gtk3/TVEffect.ui:61 resources/ui/gtk3/TVEffect.ui:104
|
||||||
|
#: resources/ui/gtk3/EnergizeA.ui:68 resources/ui/gtk3/EnergizeA.ui:117
|
||||||
|
#: resources/ui/gtk3/EnergizeA.ui:160 resources/ui/gtk3/Hexagon.ui:75
|
||||||
|
#: resources/ui/gtk3/Hexagon.ui:124 resources/ui/gtk3/Hexagon.ui:173
|
||||||
|
#: resources/ui/gtk3/Hexagon.ui:216 resources/ui/gtk3/Hexagon.ui:259
|
||||||
|
#: resources/ui/gtk3/Hexagon.ui:321 resources/ui/gtk3/EnergizeB.ui:68
|
||||||
|
#: resources/ui/gtk3/EnergizeB.ui:117 resources/ui/gtk3/EnergizeB.ui:160
|
||||||
|
#: resources/ui/gtk3/prefs.ui:219 resources/ui/gtk3/Apparition.ui:89
|
||||||
|
#: resources/ui/gtk3/Apparition.ui:138 resources/ui/gtk3/Apparition.ui:187
|
||||||
|
#: resources/ui/gtk3/Apparition.ui:236 resources/ui/gtk3/Apparition.ui:285
|
||||||
|
msgid "Reset to Default Value"
|
||||||
|
msgstr "Varsayılan Değere Sıfırla"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:70 resources/ui/gtk4/BrokenGlass.ui:70
|
||||||
|
#: resources/ui/gtk4/Wisps.ui:70 resources/ui/gtk4/Fire.ui:95
|
||||||
|
#: resources/ui/gtk4/SnapOfDisintegration.ui:70
|
||||||
|
#: resources/ui/gtk4/EnergizeA.ui:70 resources/ui/gtk4/Hexagon.ui:70
|
||||||
|
#: resources/ui/gtk4/EnergizeB.ui:70 resources/ui/gtk3/Wisps.ui:91
|
||||||
|
#: resources/ui/gtk3/Fire.ui:141 resources/ui/gtk3/EnergizeA.ui:91
|
||||||
|
#: resources/ui/gtk3/Hexagon.ui:98 resources/ui/gtk3/EnergizeB.ui:91
|
||||||
|
msgid "Scale"
|
||||||
|
msgstr "Ölçek"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:116 resources/ui/gtk4/Apparition.ui:70
|
||||||
|
#: resources/ui/gtk3/Apparition.ui:112
|
||||||
|
msgid "Randomness"
|
||||||
|
msgstr "Rastgelelik"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:162
|
||||||
|
msgid "Vertical Overshooting"
|
||||||
|
msgstr "Dikey Taşma"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:208
|
||||||
|
msgid "Trail Color"
|
||||||
|
msgstr "İz Rengi"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:242
|
||||||
|
msgid "Tip Color"
|
||||||
|
msgstr "Yazı Rengi"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:116
|
||||||
|
msgid "Gravity"
|
||||||
|
msgstr "Yer Çekimi"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:162
|
||||||
|
msgid "Blow Force"
|
||||||
|
msgstr "Darbe Kuvveti"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:212
|
||||||
|
msgid "Shatter From Pointer Location"
|
||||||
|
msgstr "İşaretçi Konumundan Parçalanma"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:221
|
||||||
|
msgid ""
|
||||||
|
"The shards will fly away from where your mouse pointer was when closing the "
|
||||||
|
"window."
|
||||||
|
msgstr ""
|
||||||
|
"Parçalar, pencereyi kapatırken fare işaretçinizin bulunduğu yerden uzağa "
|
||||||
|
"uçacaktır."
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Wisps.ui:116 resources/ui/gtk4/SnapOfDisintegration.ui:116
|
||||||
|
#: resources/ui/gtk4/TVEffect.ui:70 resources/ui/gtk4/EnergizeA.ui:116
|
||||||
|
#: resources/ui/gtk4/EnergizeB.ui:116 resources/ui/gtk3/Wisps.ui:139
|
||||||
|
#: resources/ui/gtk3/TVEffect.ui:83 resources/ui/gtk3/EnergizeA.ui:139
|
||||||
|
#: resources/ui/gtk3/EnergizeB.ui:139
|
||||||
|
msgid "Color"
|
||||||
|
msgstr "Renk"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Fire.ui:25 resources/ui/gtk3/Fire.ui:49
|
||||||
|
msgid "Presets"
|
||||||
|
msgstr "Şablon"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Fire.ui:141 resources/ui/gtk3/Fire.ui:189
|
||||||
|
msgid "Speed"
|
||||||
|
msgstr "Hız"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Fire.ui:191 resources/ui/gtk3/Fire.ui:241
|
||||||
|
msgid "3D Noise"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Fire.ui:200 resources/ui/gtk3/Fire.ui:250
|
||||||
|
msgid "Creates a more dynamic fire but requires more GPU power."
|
||||||
|
msgstr "Daha dinamik bir ateş oluşturur ancak daha fazla GPU gücü gerektirir."
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Fire.ui:240 resources/ui/gtk3/Fire.ui:300
|
||||||
|
msgid "Gradient"
|
||||||
|
msgstr "Gradyan"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:70
|
||||||
|
msgid "Claw Scratch Scale"
|
||||||
|
msgstr "Pençe Çizik Ölçeği"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:116
|
||||||
|
msgid "Claw Scratch Count"
|
||||||
|
msgstr "Pençe Çizik Sayısı"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:162
|
||||||
|
msgid "Warp Effect"
|
||||||
|
msgstr "Çözgü Etkisi"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:208
|
||||||
|
msgid "Flash Color"
|
||||||
|
msgstr "Flaş Rengi"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/effectPage.ui:37 resources/ui/gtk3/effectPage.ui:37
|
||||||
|
msgid "Preview this Effect"
|
||||||
|
msgstr "Bu Efekti Önizle"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:116 resources/ui/gtk3/Hexagon.ui:147
|
||||||
|
msgid "Mesh Line Width"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:162 resources/ui/gtk3/Hexagon.ui:195
|
||||||
|
msgid "Line Color"
|
||||||
|
msgstr "Çizgi rengi"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:196 resources/ui/gtk3/Hexagon.ui:238
|
||||||
|
msgid "Glow Color"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:234 resources/ui/gtk3/Hexagon.ui:285
|
||||||
|
msgid "Additive Blending"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:243 resources/ui/gtk3/Hexagon.ui:294
|
||||||
|
msgid "You may want to enable this for dark window themes."
|
||||||
|
msgstr "Bunu koyu temalı pencereler için etkinleştirmek isteyebilirsiniz."
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:28 resources/ui/gtk3/prefs.ui:35
|
||||||
|
msgid "Welcome to Burn-My-Windows!"
|
||||||
|
msgstr "Burn-My-Windows'a Hoş Geldiniz!"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:39 resources/ui/gtk3/prefs.ui:46
|
||||||
|
msgid "If you like this extension, recommend it to your friends :)"
|
||||||
|
msgstr "Bu uzantıyı beğendiyseniz, arkadaşlarınıza tavsiye edin :)"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:66 resources/ui/gtk3/prefs.ui:74
|
||||||
|
msgid "Open Window Animation"
|
||||||
|
msgstr "Pencere Animasyonunu Aç"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:75 resources/ui/gtk4/prefs.ui:119
|
||||||
|
#: resources/ui/gtk3/prefs.ui:83 resources/ui/gtk3/prefs.ui:147
|
||||||
|
msgid "If multiple are selected, one is chosen randomly."
|
||||||
|
msgstr "Birden fazla seçilirse, rastgele biri uygulanır."
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:90 resources/ui/gtk4/prefs.ui:134
|
||||||
|
#: resources/ui/gtk3/prefs.ui:104 resources/ui/gtk3/prefs.ui:168
|
||||||
|
msgid "Choose Effects"
|
||||||
|
msgstr "Efektleri Seçin"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:110 resources/ui/gtk3/prefs.ui:138
|
||||||
|
msgid "Close Window Animation"
|
||||||
|
msgstr "Pencere Animasyonunu Kapat"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:150 resources/ui/gtk3/prefs.ui:198
|
||||||
|
msgid "Also Add Effects to Dialogs"
|
||||||
|
msgstr "Ayrıca Diyaloglara Efektler Ekle"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Apparition.ui:116 resources/ui/gtk3/Apparition.ui:161
|
||||||
|
msgid "Twirl Intensity"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Apparition.ui:162 resources/ui/gtk3/Apparition.ui:210
|
||||||
|
msgid "Shake Intensity"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Apparition.ui:208 resources/ui/gtk3/Apparition.ui:259
|
||||||
|
msgid "Suction Intensity"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk3/Fire.ui:63
|
||||||
|
msgid "Choose a Preset"
|
||||||
|
msgstr "Bir Şablon Seçin"
|
||||||
@@ -0,0 +1,368 @@
|
|||||||
|
# SOME DESCRIPTIVE TITLE.
|
||||||
|
# Copyright (C) YEAR Simon Schneegans
|
||||||
|
# This file is distributed under the same license as the Burn-My-Windows package.
|
||||||
|
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||||
|
#
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Burn-My-Windows\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2022-04-05 09:22+0200\n"
|
||||||
|
"PO-Revision-Date: 2022-04-08 07:11+0000\n"
|
||||||
|
"Last-Translator: merelymyself <poonsters6@gmail.com>\n"
|
||||||
|
"Language-Team: Chinese (Simplified) <https://hosted.weblate.org/projects/"
|
||||||
|
"burn-my-windows/core/zh_Hans/>\n"
|
||||||
|
"Language: zh_Hans\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||||
|
"X-Generator: Weblate 4.12-dev\n"
|
||||||
|
|
||||||
|
#: prefs.js:112
|
||||||
|
msgid "Effect Options"
|
||||||
|
msgstr "特殊效果选项"
|
||||||
|
|
||||||
|
#: prefs.js:140
|
||||||
|
msgid "Go Back"
|
||||||
|
msgstr "返回"
|
||||||
|
|
||||||
|
#: prefs.js:182
|
||||||
|
msgid "General Options"
|
||||||
|
msgstr "常规选项"
|
||||||
|
|
||||||
|
#: prefs.js:276
|
||||||
|
msgid "Gold Sponsors"
|
||||||
|
msgstr "金牌赞助商"
|
||||||
|
|
||||||
|
#: prefs.js:279
|
||||||
|
msgid "Silver Sponsors"
|
||||||
|
msgstr "银牌赞助商"
|
||||||
|
|
||||||
|
#: prefs.js:282
|
||||||
|
msgid "Bronze Sponsors"
|
||||||
|
msgstr "铜牌赞助商"
|
||||||
|
|
||||||
|
#: prefs.js:285
|
||||||
|
msgid "Past Sponsors"
|
||||||
|
msgstr "往届赞助商"
|
||||||
|
|
||||||
|
#. Translators: %s will be replaced by the effect's name.
|
||||||
|
#: prefs.js:510
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Preview for %s"
|
||||||
|
msgstr "%s 的预览"
|
||||||
|
|
||||||
|
#: prefs.js:532
|
||||||
|
msgid "Close this Window to Preview the Effect!"
|
||||||
|
msgstr "关闭此窗口,预览效果!"
|
||||||
|
|
||||||
|
#: src/BrokenGlass.js:57
|
||||||
|
msgid "Broken Glass"
|
||||||
|
msgstr "破碎的玻璃"
|
||||||
|
|
||||||
|
#: src/TVEffect.js:56
|
||||||
|
msgid "TV Effect"
|
||||||
|
msgstr "电视效果"
|
||||||
|
|
||||||
|
#: src/TRexAttack.js:56
|
||||||
|
msgid "T-Rex Attack"
|
||||||
|
msgstr "霸王龙攻击"
|
||||||
|
|
||||||
|
#: src/SnapOfDisintegration.js:60
|
||||||
|
msgid "Snap of Disintegration"
|
||||||
|
msgstr "瓦解效果"
|
||||||
|
|
||||||
|
#: src/Wisps.js:55
|
||||||
|
msgid "Wisps"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/Fire.js:58
|
||||||
|
msgid "Fire"
|
||||||
|
msgstr "火烧效果"
|
||||||
|
|
||||||
|
#: src/Fire.js:130
|
||||||
|
msgid "Default Fire"
|
||||||
|
msgstr "普通火烧效果"
|
||||||
|
|
||||||
|
#: src/Fire.js:140
|
||||||
|
msgid "Hell Fire"
|
||||||
|
msgstr "地狱之火"
|
||||||
|
|
||||||
|
#: src/Fire.js:150
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Dark and Smutty"
|
||||||
|
msgstr "黑暗和污秽"
|
||||||
|
|
||||||
|
#: src/Fire.js:160
|
||||||
|
msgid "Cold Breeze"
|
||||||
|
msgstr "寒风"
|
||||||
|
|
||||||
|
#: src/Fire.js:170
|
||||||
|
msgid "Santa is Coming"
|
||||||
|
msgstr "圣诞老人来了"
|
||||||
|
|
||||||
|
#: src/Hexagon.js:53
|
||||||
|
msgid "Hexagon"
|
||||||
|
msgstr "六边形"
|
||||||
|
|
||||||
|
#: src/EnergizeA.js:54
|
||||||
|
msgid "Energize A"
|
||||||
|
msgstr "瞬移效果A"
|
||||||
|
|
||||||
|
#: src/Apparition.js:57
|
||||||
|
msgid "Apparition"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: src/EnergizeB.js:54
|
||||||
|
msgid "Energize B"
|
||||||
|
msgstr "瞬移效果B"
|
||||||
|
|
||||||
|
#: src/Matrix.js:58
|
||||||
|
msgid "Matrix"
|
||||||
|
msgstr "矩阵"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:6
|
||||||
|
msgid "Visit Homepage"
|
||||||
|
msgstr "访问主页"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:10
|
||||||
|
msgid "View Changelog"
|
||||||
|
msgstr "查看更新日志"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:16
|
||||||
|
msgid "Report a Bug"
|
||||||
|
msgstr "报告错误"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:20
|
||||||
|
msgid "Create an Effect"
|
||||||
|
msgstr "创建效果"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:24
|
||||||
|
msgid "Translate"
|
||||||
|
msgstr "翻译"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:28
|
||||||
|
msgid "Donate"
|
||||||
|
msgstr "捐赠"
|
||||||
|
|
||||||
|
#: resources/ui/common/main-menu.ui:41
|
||||||
|
msgid "About Burn-My-Windows"
|
||||||
|
msgstr "关于 Burn-My-Windows"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:24 resources/ui/gtk4/BrokenGlass.ui:24
|
||||||
|
#: resources/ui/gtk4/Wisps.ui:24 resources/ui/gtk4/Fire.ui:49
|
||||||
|
#: resources/ui/gtk4/SnapOfDisintegration.ui:24
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:24 resources/ui/gtk4/TVEffect.ui:24
|
||||||
|
#: resources/ui/gtk4/EnergizeA.ui:24 resources/ui/gtk4/Hexagon.ui:24
|
||||||
|
#: resources/ui/gtk4/EnergizeB.ui:24 resources/ui/gtk4/Apparition.ui:24
|
||||||
|
#: resources/ui/gtk3/Wisps.ui:42 resources/ui/gtk3/Fire.ui:93
|
||||||
|
#: resources/ui/gtk3/TVEffect.ui:35 resources/ui/gtk3/EnergizeA.ui:42
|
||||||
|
#: resources/ui/gtk3/Hexagon.ui:49 resources/ui/gtk3/EnergizeB.ui:42
|
||||||
|
#: resources/ui/gtk3/Apparition.ui:63
|
||||||
|
msgid "Animation Time [ms]"
|
||||||
|
msgstr "动画时间 [毫秒]"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:52 resources/ui/gtk4/Matrix.ui:98
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:144 resources/ui/gtk4/Matrix.ui:190
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:224 resources/ui/gtk4/Matrix.ui:258
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:52 resources/ui/gtk4/BrokenGlass.ui:98
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:144 resources/ui/gtk4/BrokenGlass.ui:190
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:244 resources/ui/gtk4/Wisps.ui:52
|
||||||
|
#: resources/ui/gtk4/Wisps.ui:98 resources/ui/gtk4/Wisps.ui:132
|
||||||
|
#: resources/ui/gtk4/Fire.ui:77 resources/ui/gtk4/Fire.ui:123
|
||||||
|
#: resources/ui/gtk4/Fire.ui:169 resources/ui/gtk4/Fire.ui:222
|
||||||
|
#: resources/ui/gtk4/Fire.ui:280 resources/ui/gtk4/TRexAttack.ui:52
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:98 resources/ui/gtk4/TRexAttack.ui:144
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:190 resources/ui/gtk4/TRexAttack.ui:224
|
||||||
|
#: resources/ui/gtk4/TVEffect.ui:52 resources/ui/gtk4/TVEffect.ui:86
|
||||||
|
#: resources/ui/gtk4/EnergizeA.ui:52 resources/ui/gtk4/EnergizeA.ui:98
|
||||||
|
#: resources/ui/gtk4/EnergizeA.ui:132 resources/ui/gtk4/Hexagon.ui:52
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:98 resources/ui/gtk4/Hexagon.ui:144
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:178 resources/ui/gtk4/Hexagon.ui:212
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:265 resources/ui/gtk4/EnergizeB.ui:52
|
||||||
|
#: resources/ui/gtk4/EnergizeB.ui:98 resources/ui/gtk4/EnergizeB.ui:132
|
||||||
|
#: resources/ui/gtk4/prefs.ui:166 resources/ui/gtk4/Apparition.ui:52
|
||||||
|
#: resources/ui/gtk4/Apparition.ui:98 resources/ui/gtk4/Apparition.ui:144
|
||||||
|
#: resources/ui/gtk4/Apparition.ui:190 resources/ui/gtk4/Apparition.ui:236
|
||||||
|
#: resources/ui/gtk3/Wisps.ui:68 resources/ui/gtk3/Wisps.ui:117
|
||||||
|
#: resources/ui/gtk3/Wisps.ui:160 resources/ui/gtk3/Fire.ui:119
|
||||||
|
#: resources/ui/gtk3/Fire.ui:167 resources/ui/gtk3/Fire.ui:215
|
||||||
|
#: resources/ui/gtk3/Fire.ui:277 resources/ui/gtk3/Fire.ui:345
|
||||||
|
#: resources/ui/gtk3/TVEffect.ui:61 resources/ui/gtk3/TVEffect.ui:104
|
||||||
|
#: resources/ui/gtk3/EnergizeA.ui:68 resources/ui/gtk3/EnergizeA.ui:117
|
||||||
|
#: resources/ui/gtk3/EnergizeA.ui:160 resources/ui/gtk3/Hexagon.ui:75
|
||||||
|
#: resources/ui/gtk3/Hexagon.ui:124 resources/ui/gtk3/Hexagon.ui:173
|
||||||
|
#: resources/ui/gtk3/Hexagon.ui:216 resources/ui/gtk3/Hexagon.ui:259
|
||||||
|
#: resources/ui/gtk3/Hexagon.ui:321 resources/ui/gtk3/EnergizeB.ui:68
|
||||||
|
#: resources/ui/gtk3/EnergizeB.ui:117 resources/ui/gtk3/EnergizeB.ui:160
|
||||||
|
#: resources/ui/gtk3/prefs.ui:219 resources/ui/gtk3/Apparition.ui:89
|
||||||
|
#: resources/ui/gtk3/Apparition.ui:138 resources/ui/gtk3/Apparition.ui:187
|
||||||
|
#: resources/ui/gtk3/Apparition.ui:236 resources/ui/gtk3/Apparition.ui:285
|
||||||
|
msgid "Reset to Default Value"
|
||||||
|
msgstr "重置为默认值"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:70 resources/ui/gtk4/BrokenGlass.ui:70
|
||||||
|
#: resources/ui/gtk4/Wisps.ui:70 resources/ui/gtk4/Fire.ui:95
|
||||||
|
#: resources/ui/gtk4/SnapOfDisintegration.ui:70
|
||||||
|
#: resources/ui/gtk4/EnergizeA.ui:70 resources/ui/gtk4/Hexagon.ui:70
|
||||||
|
#: resources/ui/gtk4/EnergizeB.ui:70 resources/ui/gtk3/Wisps.ui:91
|
||||||
|
#: resources/ui/gtk3/Fire.ui:141 resources/ui/gtk3/EnergizeA.ui:91
|
||||||
|
#: resources/ui/gtk3/Hexagon.ui:98 resources/ui/gtk3/EnergizeB.ui:91
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Scale"
|
||||||
|
msgstr "规模"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:116 resources/ui/gtk4/Apparition.ui:70
|
||||||
|
#: resources/ui/gtk3/Apparition.ui:112
|
||||||
|
msgid "Randomness"
|
||||||
|
msgstr "随机性"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:162
|
||||||
|
msgid "Vertical Overshooting"
|
||||||
|
msgstr "垂直过冲"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:208
|
||||||
|
msgid "Trail Color"
|
||||||
|
msgstr "尾迹颜色"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Matrix.ui:242
|
||||||
|
msgid "Tip Color"
|
||||||
|
msgstr "提示颜色"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:116
|
||||||
|
msgid "Gravity"
|
||||||
|
msgstr "重力"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:162
|
||||||
|
msgid "Blow Force"
|
||||||
|
msgstr "砸破力"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:212
|
||||||
|
msgid "Shatter From Pointer Location"
|
||||||
|
msgstr "从光标位置破碎"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/BrokenGlass.ui:221
|
||||||
|
#, fuzzy
|
||||||
|
msgid ""
|
||||||
|
"The shards will fly away from where your mouse pointer was when closing the "
|
||||||
|
"window."
|
||||||
|
msgstr "窗口的破碎会从光标位置而开始。"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Wisps.ui:116 resources/ui/gtk4/SnapOfDisintegration.ui:116
|
||||||
|
#: resources/ui/gtk4/TVEffect.ui:70 resources/ui/gtk4/EnergizeA.ui:116
|
||||||
|
#: resources/ui/gtk4/EnergizeB.ui:116 resources/ui/gtk3/Wisps.ui:139
|
||||||
|
#: resources/ui/gtk3/TVEffect.ui:83 resources/ui/gtk3/EnergizeA.ui:139
|
||||||
|
#: resources/ui/gtk3/EnergizeB.ui:139
|
||||||
|
msgid "Color"
|
||||||
|
msgstr "颜色"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Fire.ui:25 resources/ui/gtk3/Fire.ui:49
|
||||||
|
msgid "Presets"
|
||||||
|
msgstr "预设"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Fire.ui:141 resources/ui/gtk3/Fire.ui:189
|
||||||
|
msgid "Speed"
|
||||||
|
msgstr "速度"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Fire.ui:191 resources/ui/gtk3/Fire.ui:241
|
||||||
|
msgid "3D Noise"
|
||||||
|
msgstr "3D 噪点"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Fire.ui:200 resources/ui/gtk3/Fire.ui:250
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Creates a more dynamic fire but requires more GPU power."
|
||||||
|
msgstr "火会更像真但显卡功耗会增加。"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Fire.ui:240 resources/ui/gtk3/Fire.ui:300
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Gradient"
|
||||||
|
msgstr "渐变"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:70
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Claw Scratch Scale"
|
||||||
|
msgstr "爪痕大小"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:116
|
||||||
|
msgid "Claw Scratch Count"
|
||||||
|
msgstr "爪痕数量"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:162
|
||||||
|
msgid "Warp Effect"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/TRexAttack.ui:208
|
||||||
|
msgid "Flash Color"
|
||||||
|
msgstr "爪痕颜色"
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/effectPage.ui:37 resources/ui/gtk3/effectPage.ui:37
|
||||||
|
msgid "Preview this Effect"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:116 resources/ui/gtk3/Hexagon.ui:147
|
||||||
|
msgid "Mesh Line Width"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:162 resources/ui/gtk3/Hexagon.ui:195
|
||||||
|
msgid "Line Color"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:196 resources/ui/gtk3/Hexagon.ui:238
|
||||||
|
msgid "Glow Color"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:234 resources/ui/gtk3/Hexagon.ui:285
|
||||||
|
msgid "Additive Blending"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Hexagon.ui:243 resources/ui/gtk3/Hexagon.ui:294
|
||||||
|
msgid "You may want to enable this for dark window themes."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:28 resources/ui/gtk3/prefs.ui:35
|
||||||
|
msgid "Welcome to Burn-My-Windows!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:39 resources/ui/gtk3/prefs.ui:46
|
||||||
|
msgid "If you like this extension, recommend it to your friends :)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:66 resources/ui/gtk3/prefs.ui:74
|
||||||
|
msgid "Open Window Animation"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:75 resources/ui/gtk4/prefs.ui:119
|
||||||
|
#: resources/ui/gtk3/prefs.ui:83 resources/ui/gtk3/prefs.ui:147
|
||||||
|
msgid "If multiple are selected, one is chosen randomly."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:90 resources/ui/gtk4/prefs.ui:134
|
||||||
|
#: resources/ui/gtk3/prefs.ui:104 resources/ui/gtk3/prefs.ui:168
|
||||||
|
msgid "Choose Effects"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:110 resources/ui/gtk3/prefs.ui:138
|
||||||
|
msgid "Close Window Animation"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/prefs.ui:150 resources/ui/gtk3/prefs.ui:198
|
||||||
|
msgid "Also Add Effects to Dialogs"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Apparition.ui:116 resources/ui/gtk3/Apparition.ui:161
|
||||||
|
msgid "Twirl Intensity"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Apparition.ui:162 resources/ui/gtk3/Apparition.ui:210
|
||||||
|
msgid "Shake Intensity"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk4/Apparition.ui:208 resources/ui/gtk3/Apparition.ui:259
|
||||||
|
msgid "Suction Intensity"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: resources/ui/gtk3/Fire.ui:63
|
||||||
|
#, fuzzy
|
||||||
|
msgid "Choose a Preset"
|
||||||
|
msgstr "选一个预设配置"
|
||||||
@@ -13,57 +13,335 @@
|
|||||||
|
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
const {Gio, Gtk, Gdk} = imports.gi;
|
const {Gio, Gtk, Gdk, GLib, GObject} = imports.gi;
|
||||||
|
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.
|
||||||
|
}
|
||||||
|
|
||||||
|
const _ = imports.gettext.domain('burn-my-windows').gettext;
|
||||||
|
|
||||||
const ExtensionUtils = imports.misc.extensionUtils;
|
const ExtensionUtils = imports.misc.extensionUtils;
|
||||||
const Me = imports.misc.extensionUtils.getCurrentExtension();
|
const Me = imports.misc.extensionUtils.getCurrentExtension();
|
||||||
const utils = Me.imports.utils;
|
const utils = Me.imports.src.utils;
|
||||||
|
|
||||||
|
// This template widget class is defined at the bottom of this file.
|
||||||
|
var BurnMyWindowsEffectPage = null;
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////////////////
|
||||||
// For now, the preferences dialog of this extension is very simple. In the future, if //
|
// The preferences dialog is organized in pages, each of which is loaded from a //
|
||||||
// we might consider to improve its layout... //
|
// separate ui file. There's one page with general options, all other paged are loaded //
|
||||||
|
// from the respective effects. //
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
var PreferencesDialog = class PreferencesDialog {
|
var PreferencesDialog = class PreferencesDialog {
|
||||||
|
|
||||||
// ------------------------------------------------------------ constructor / destructor
|
// ------------------------------------------------------------ constructor / destructor
|
||||||
|
|
||||||
constructor() {
|
constructor() {
|
||||||
|
|
||||||
|
// New effects must be registered here and in extension.js.
|
||||||
|
this._ALL_EFFECTS = [
|
||||||
|
new Me.imports.src.Apparition.Apparition(),
|
||||||
|
new Me.imports.src.BrokenGlass.BrokenGlass(),
|
||||||
|
new Me.imports.src.EnergizeA.EnergizeA(),
|
||||||
|
new Me.imports.src.EnergizeB.EnergizeB(),
|
||||||
|
new Me.imports.src.Fire.Fire(),
|
||||||
|
new Me.imports.src.Hexagon.Hexagon(),
|
||||||
|
new Me.imports.src.Matrix.Matrix(),
|
||||||
|
new Me.imports.src.SnapOfDisintegration.SnapOfDisintegration(),
|
||||||
|
new Me.imports.src.TRexAttack.TRexAttack(),
|
||||||
|
new Me.imports.src.TVEffect.TVEffect(),
|
||||||
|
new Me.imports.src.Wisps.Wisps(),
|
||||||
|
];
|
||||||
|
|
||||||
// Load all of our resources.
|
// Load all of our resources.
|
||||||
this._resources = Gio.Resource.load(Me.path + '/resources/burn-my-windows.gresource');
|
this._resources = Gio.Resource.load(Me.path + '/resources/burn-my-windows.gresource');
|
||||||
Gio.resources_register(this._resources);
|
Gio.resources_register(this._resources);
|
||||||
|
|
||||||
// Load the user interface file.
|
// Load the CSS file for the settings dialog.
|
||||||
this._builder = new Gtk.Builder();
|
const styleProvider = Gtk.CssProvider.new();
|
||||||
this._builder.add_from_resource(`/ui/${utils.gtk4() ? 'gtk4' : 'gtk3'}.ui`);
|
styleProvider.load_from_resource('/css/gtk.css');
|
||||||
|
if (utils.isGTK4()) {
|
||||||
|
Gtk.StyleContext.add_provider_for_display(Gdk.Display.get_default(), styleProvider,
|
||||||
|
Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION);
|
||||||
|
} else {
|
||||||
|
Gtk.StyleContext.add_provider_for_screen(Gdk.Screen.get_default(), styleProvider,
|
||||||
|
Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION);
|
||||||
|
}
|
||||||
|
|
||||||
// This is our top-level widget which we will return later.
|
// Make sure custom icons are found.
|
||||||
this._widget = this._builder.get_object('settings-widget');
|
if (utils.isGTK4()) {
|
||||||
|
Gtk.IconTheme.get_for_display(Gdk.Display.get_default()).add_resource_path('/img');
|
||||||
|
} else {
|
||||||
|
Gtk.IconTheme.get_default().add_resource_path('/img');
|
||||||
|
}
|
||||||
|
|
||||||
|
// Register the template widgets used in the settings dialog.
|
||||||
|
this._registerCustomClasses();
|
||||||
|
|
||||||
// Store a reference to the settings object.
|
// Store a reference to the settings object.
|
||||||
this._settings = ExtensionUtils.getSettings();
|
this._settings = ExtensionUtils.getSettings();
|
||||||
|
|
||||||
// Bind all properties.
|
// Load the general user interface files.
|
||||||
this._bindAdjustment('destroy-animation-time');
|
this._builder = new Gtk.Builder();
|
||||||
this._bindAdjustment('flame-movement-speed');
|
this._builder.add_from_resource(`/ui/common/main-menu.ui`);
|
||||||
this._bindAdjustment('flame-scale');
|
this._builder.add_from_resource(`/ui/${utils.getGTKString()}/prefs.ui`);
|
||||||
this._bindColorButton('fire-color-1');
|
|
||||||
this._bindColorButton('fire-color-2');
|
|
||||||
this._bindColorButton('fire-color-3');
|
|
||||||
this._bindColorButton('fire-color-4');
|
|
||||||
this._bindColorButton('fire-color-5');
|
|
||||||
|
|
||||||
// The fire-gradient-reset button needs to by bound explicitly.
|
// Bind general options properties.
|
||||||
this._builder.get_object('reset-fire-colors').connect('clicked', () => {
|
this.bindSwitch('destroy-dialogs');
|
||||||
this._settings.reset('fire-color-1');
|
|
||||||
this._settings.reset('fire-color-2');
|
|
||||||
this._settings.reset('fire-color-3');
|
// Starting with GNOME Shell 42, the settings dialog uses libadwaita (at least most of
|
||||||
this._settings.reset('fire-color-4');
|
// the time - it seems that pop!_OS does not support libadwaita even on GNOME 42). We
|
||||||
this._settings.reset('fire-color-5');
|
// have to use a different layout, as the stack sidebar looks pretty ugly with the
|
||||||
|
// included Adw.Clamp...
|
||||||
|
if (Adw && utils.shellVersionIsAtLeast(42, 'beta')) {
|
||||||
|
|
||||||
|
// This is our top-level widget which we will return later.
|
||||||
|
this._widget = new Gtk.Box({orientation: Gtk.Orientation.VERTICAL});
|
||||||
|
|
||||||
|
// Add the general options page to the settings dialog.
|
||||||
|
const generalPrefs = this._builder.get_object('general-prefs');
|
||||||
|
this.gtkBoxAppend(this._widget, generalPrefs);
|
||||||
|
|
||||||
|
// Then add a preferences group with action rows to open the effect subpages.
|
||||||
|
const group = new Adw.PreferencesGroup({title: _('Effect Options')});
|
||||||
|
this.gtkBoxAppend(this._widget, group);
|
||||||
|
|
||||||
|
this._ALL_EFFECTS.forEach(effect => {
|
||||||
|
const [minMajor, minMinor] = effect.getMinShellVersion();
|
||||||
|
if (utils.shellVersionIsAtLeast(minMajor, minMinor)) {
|
||||||
|
|
||||||
|
const row = new Adw.ActionRow({title: effect.getLabel(), activatable: true});
|
||||||
|
row.add_suffix(new Gtk.Image({icon_name: 'go-next-symbolic'}));
|
||||||
|
|
||||||
|
// Open a subpage with the effect's settings.
|
||||||
|
row.connect('activated', () => {
|
||||||
|
const page = new BurnMyWindowsEffectPage(effect, this);
|
||||||
|
page.valign = Gtk.Align.CENTER;
|
||||||
|
page.margin_top = 10;
|
||||||
|
page.margin_bottom = 10;
|
||||||
|
page.margin_start = 10;
|
||||||
|
page.margin_end = 10;
|
||||||
|
|
||||||
|
// Add the effect's preferences (if any).
|
||||||
|
const preferences = effect.getPreferences(this);
|
||||||
|
if (preferences) {
|
||||||
|
this.gtkBoxAppend(page, preferences);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add a button for back navigation.
|
||||||
|
const backButton = new Gtk.Button({
|
||||||
|
halign: Gtk.Align.CENTER,
|
||||||
|
label: _('Go Back'),
|
||||||
|
});
|
||||||
|
backButton.add_css_class('suggested-action');
|
||||||
|
backButton.add_css_class('pill-button');
|
||||||
|
backButton.connect('clicked', () => {
|
||||||
|
row.get_root().close_subpage();
|
||||||
|
});
|
||||||
|
|
||||||
|
this.gtkBoxAppend(page, backButton);
|
||||||
|
|
||||||
|
// Wrap the preferences group in an Adw.Clamp.
|
||||||
|
const clamp = new Adw.Clamp({
|
||||||
|
child: page,
|
||||||
|
maximum_size: 600,
|
||||||
|
tightening_threshold: 400,
|
||||||
|
});
|
||||||
|
|
||||||
|
// Open the subpage on click.
|
||||||
|
row.get_root().present_subpage(clamp);
|
||||||
|
});
|
||||||
|
|
||||||
|
group.add(row);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
// On older GNOME versions, we use a StackSidebar.
|
||||||
|
else {
|
||||||
|
|
||||||
|
// This is our top-level widget which we will return later.
|
||||||
|
this._widget = new Gtk.Box({
|
||||||
|
orientation: Gtk.Orientation.HORIZONTAL,
|
||||||
|
});
|
||||||
|
|
||||||
|
const stack = new Gtk.Stack({
|
||||||
|
transition_type: Gtk.StackTransitionType.SLIDE_UP_DOWN,
|
||||||
|
});
|
||||||
|
|
||||||
|
// Add the general options page.
|
||||||
|
const generalPage = this._builder.get_object('general-prefs');
|
||||||
|
generalPage.margin_start = 60;
|
||||||
|
generalPage.margin_end = 60;
|
||||||
|
stack.add_titled(generalPage, 'general', _('General Options'));
|
||||||
|
|
||||||
|
this.gtkBoxAppend(this._widget, new Gtk.StackSidebar({stack: stack}));
|
||||||
|
this.gtkBoxAppend(this._widget, stack);
|
||||||
|
|
||||||
|
// Add all other effect pages.
|
||||||
|
this._ALL_EFFECTS.forEach(effect => {
|
||||||
|
const [minMajor, minMinor] = effect.getMinShellVersion();
|
||||||
|
if (utils.shellVersionIsAtLeast(minMajor, minMinor)) {
|
||||||
|
|
||||||
|
const page = new BurnMyWindowsEffectPage(effect, this);
|
||||||
|
page.margin_start = 60;
|
||||||
|
page.margin_end = 60;
|
||||||
|
page.margin_top = 60;
|
||||||
|
page.margin_bottom = 60;
|
||||||
|
|
||||||
|
// Add the effect's preferences (if any).
|
||||||
|
const preferences = effect.getPreferences(this);
|
||||||
|
if (preferences) {
|
||||||
|
this.gtkBoxAppend(page, preferences);
|
||||||
|
}
|
||||||
|
|
||||||
|
stack.add_titled(page, effect.getNick(), effect.getLabel());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// Some things can only be done once the widget is shown as we do not have access to
|
||||||
|
// the toplevel widget before.
|
||||||
|
this._widget.connect('realize', (widget) => {
|
||||||
|
const window = utils.isGTK4() ? widget.get_root() : widget.get_toplevel();
|
||||||
|
|
||||||
|
// Show the version number in the title bar.
|
||||||
|
window.set_title(`Burn-My-Windows ${Me.metadata.version}`);
|
||||||
|
|
||||||
|
// Add the main menu to the title bar.
|
||||||
|
{
|
||||||
|
// Add the menu button to the title bar.
|
||||||
|
const menu = this._builder.get_object('menu-button');
|
||||||
|
|
||||||
|
// Starting with GNOME Shell 42, we have to hack our way through the widget tree
|
||||||
|
// of the Adw.PreferencesWindow...
|
||||||
|
if (Adw && utils.shellVersionIsAtLeast(42, 'beta')) {
|
||||||
|
const header = this._findWidgetByType(window.get_content(), Adw.HeaderBar);
|
||||||
|
header.pack_end(menu);
|
||||||
|
|
||||||
|
// Allow closing of the sub pages.
|
||||||
|
window.can_navigate_back = true;
|
||||||
|
} else {
|
||||||
|
window.get_titlebar().pack_end(menu);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Populate the menu with actions.
|
||||||
|
const group = Gio.SimpleActionGroup.new();
|
||||||
|
window.insert_action_group('prefs', group);
|
||||||
|
|
||||||
|
const addURIAction = (name, uri) => {
|
||||||
|
const action = Gio.SimpleAction.new(name, null);
|
||||||
|
action.connect('activate', () => Gtk.show_uri(null, uri, Gdk.CURRENT_TIME));
|
||||||
|
group.add_action(action);
|
||||||
|
};
|
||||||
|
|
||||||
|
// clang-format off
|
||||||
|
addURIAction('homepage', 'https://github.com/Schneegans/Burn-My-Windows');
|
||||||
|
addURIAction('changelog', 'https://github.com/Schneegans/Burn-My-Windows/blob/main/docs/changelog.md');
|
||||||
|
addURIAction('bugs', 'https://github.com/Schneegans/Burn-My-Windows/issues');
|
||||||
|
addURIAction('new-effect', 'https://github.com/Schneegans/Burn-My-Windows/blob/main/docs/how-to-create-new-effects.md');
|
||||||
|
addURIAction('translate', 'https://hosted.weblate.org/engage/burn-my-windows/');
|
||||||
|
addURIAction('donate-paypal', 'https://www.paypal.com/donate/?hosted_button_id=3F7UFL8KLVPXE');
|
||||||
|
addURIAction('donate-github', 'https://github.com/sponsors/Schneegans');
|
||||||
|
// clang-format on
|
||||||
|
|
||||||
|
// Add the about dialog.
|
||||||
|
const aboutAction = Gio.SimpleAction.new('about', null);
|
||||||
|
aboutAction.connect('activate', () => {
|
||||||
|
// The JSON report format from weblate is a bit weird. Here we extract all
|
||||||
|
// unique names from the translation report.
|
||||||
|
const translators = new Set();
|
||||||
|
this._getJSONResource('/credits/translators.json').forEach(i => {
|
||||||
|
for (const j of Object.values(i)) {
|
||||||
|
j.forEach(k => translators.add(k[1]));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
const sponsors = this._getJSONResource('/credits/sponsors.json');
|
||||||
|
|
||||||
|
const 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_website('https://github.com/Schneegans/Burn-My-Windows');
|
||||||
|
dialog.set_authors(['Simon Schneegans']);
|
||||||
|
dialog.set_copyright('© 2022 Simon Schneegans');
|
||||||
|
dialog.set_translator_credits([...translators].join('\n'));
|
||||||
|
if (sponsors.gold.length > 0) {
|
||||||
|
dialog.add_credit_section(_('Gold Sponsors'), sponsors.gold);
|
||||||
|
}
|
||||||
|
if (sponsors.silver.length > 0) {
|
||||||
|
dialog.add_credit_section(_('Silver Sponsors'), sponsors.silver);
|
||||||
|
}
|
||||||
|
if (sponsors.bronze.length > 0) {
|
||||||
|
dialog.add_credit_section(_('Bronze Sponsors'), sponsors.bronze);
|
||||||
|
}
|
||||||
|
if (sponsors.past.length > 0) {
|
||||||
|
dialog.add_credit_section(_('Past Sponsors'), sponsors.past);
|
||||||
|
}
|
||||||
|
dialog.set_license_type(Gtk.License.GPL_3_0);
|
||||||
|
|
||||||
|
if (utils.isGTK4()) {
|
||||||
|
dialog.show();
|
||||||
|
} else {
|
||||||
|
dialog.show_all();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
group.add_action(aboutAction);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Populate the open-effects drop-down menu.
|
||||||
|
{
|
||||||
|
const menu = this._builder.get_object('open-effect-menu');
|
||||||
|
const group = Gio.SimpleActionGroup.new();
|
||||||
|
window.insert_action_group('open-effects', group);
|
||||||
|
|
||||||
|
this._ALL_EFFECTS.forEach(effect => {
|
||||||
|
const [minMajor, minMinor] = effect.getMinShellVersion();
|
||||||
|
if (utils.shellVersionIsAtLeast(minMajor, minMinor)) {
|
||||||
|
const nick = effect.getNick();
|
||||||
|
const label = effect.getLabel();
|
||||||
|
const actionName = nick + '-open-effect';
|
||||||
|
const fullName = 'open-effects.' + actionName;
|
||||||
|
|
||||||
|
const action = this._settings.create_action(actionName);
|
||||||
|
group.add_action(action);
|
||||||
|
|
||||||
|
menu.append_item(Gio.MenuItem.new(label, fullName));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// Populate the close-effects drop-down menu.
|
||||||
|
{
|
||||||
|
const menu = this._builder.get_object('close-effect-menu');
|
||||||
|
const group = Gio.SimpleActionGroup.new();
|
||||||
|
window.insert_action_group('close-effects', group);
|
||||||
|
|
||||||
|
this._ALL_EFFECTS.forEach(effect => {
|
||||||
|
const [minMajor, minMinor] = effect.getMinShellVersion();
|
||||||
|
if (utils.shellVersionIsAtLeast(minMajor, minMinor)) {
|
||||||
|
const nick = effect.getNick();
|
||||||
|
const label = effect.getLabel();
|
||||||
|
const actionName = nick + '-close-effect';
|
||||||
|
const fullName = 'close-effects.' + actionName;
|
||||||
|
|
||||||
|
const action = this._settings.create_action(actionName);
|
||||||
|
group.add_action(action);
|
||||||
|
|
||||||
|
menu.append_item(Gio.MenuItem.new(label, fullName));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// Initialize the fire-preset dropdown.
|
|
||||||
this._createFirePresets();
|
|
||||||
|
|
||||||
// As we do not have something like a destructor, we just listen for the destroy
|
// As we do not have something like a destructor, we just listen for the destroy
|
||||||
// signal of our main widget.
|
// signal of our main widget.
|
||||||
this._widget.connect('destroy', () => {
|
this._widget.connect('destroy', () => {
|
||||||
@@ -72,63 +350,93 @@ var PreferencesDialog = class PreferencesDialog {
|
|||||||
});
|
});
|
||||||
|
|
||||||
// Show the widgets on GTK3.
|
// Show the widgets on GTK3.
|
||||||
if (!utils.gtk4()) {
|
if (!utils.isGTK4()) {
|
||||||
this._widget.show_all();
|
this._widget.show_all();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// -------------------------------------------------------------------- public interface
|
// -------------------------------------------------------------------- public interface
|
||||||
|
|
||||||
|
// Returns the internally used Gtk.Builder. Effects can use this to modify the UI of the
|
||||||
|
// preferences dialog.
|
||||||
|
getBuilder() {
|
||||||
|
return this._builder;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Returns a Gio.Settings object for this extension.
|
||||||
|
getSettings() {
|
||||||
|
return this._settings;
|
||||||
|
}
|
||||||
|
|
||||||
// Returns the widget used for the settings of this extension.
|
// Returns the widget used for the settings of this extension.
|
||||||
getWidget() {
|
getWidget() {
|
||||||
return this._widget;
|
return this._widget;
|
||||||
}
|
}
|
||||||
|
|
||||||
// ----------------------------------------------------------------------- private stuff
|
// Connects a Gtk.ComboBox (or anything else which has an 'active-id' property) to a
|
||||||
|
// settings key. It also binds the corresponding reset button.
|
||||||
|
bindCombobox(settingsKey) {
|
||||||
|
this._bind(settingsKey, 'active-id');
|
||||||
|
}
|
||||||
|
|
||||||
// Connects a Gtk.Adjustment (or anything else which has a 'value' property) to a
|
// Connects a Gtk.Adjustment (or anything else which has a 'value' property) to a
|
||||||
// settings key. It also binds the corresponding reset button.
|
// settings key. It also binds the corresponding reset button.
|
||||||
_bindAdjustment(settingsKey) {
|
bindAdjustment(settingsKey) {
|
||||||
this._bind(settingsKey, 'value');
|
this._bind(settingsKey, 'value');
|
||||||
}
|
}
|
||||||
|
|
||||||
// Connects a Gtk.Switch (or anything else which has an 'active' property) to a settings
|
// Connects a Gtk.Switch (or anything else which has an 'active' property) to a settings
|
||||||
// key. It also binds the corresponding reset button.
|
// key. It also binds the corresponding reset button.
|
||||||
_bindSwitch(settingsKey) {
|
bindSwitch(settingsKey) {
|
||||||
this._bind(settingsKey, 'active');
|
this._bind(settingsKey, 'active');
|
||||||
}
|
}
|
||||||
|
|
||||||
// Colors are stored as strings like 'rgb(1, 0.5, 0)'. As Gio.Settings.bind_with_mapping
|
// Colors are stored as strings like 'rgb(1, 0.5, 0)'. As Gio.Settings.bind_with_mapping
|
||||||
// is not available yet, we need to do the color conversion manually.
|
// is not available yet, we need to do the color conversion manually. It also binds the
|
||||||
_bindColorButton(settingsKey) {
|
// corresponding reset button.
|
||||||
|
bindColorButton(settingsKey) {
|
||||||
|
|
||||||
const button = this._builder.get_object(settingsKey);
|
const button = this._builder.get_object(settingsKey);
|
||||||
|
|
||||||
// Update the settings when the color is modified.
|
if (button) {
|
||||||
button.connect('color-set', () => {
|
|
||||||
this._settings.set_string(settingsKey, button.get_rgba().to_string());
|
|
||||||
});
|
|
||||||
|
|
||||||
// Update the button state when the settings change.
|
// Update the settings when the color is modified.
|
||||||
const settingSignalHandler = () => {
|
button.connect('color-set', () => {
|
||||||
const rgba = new Gdk.RGBA();
|
this._settings.set_string(settingsKey, button.get_rgba().to_string());
|
||||||
rgba.parse(this._settings.get_string(settingsKey));
|
});
|
||||||
button.rgba = rgba;
|
|
||||||
};
|
|
||||||
|
|
||||||
this._settings.connect('changed::' + settingsKey, settingSignalHandler);
|
// Update the button state when the settings change.
|
||||||
|
const settingSignalHandler = () => {
|
||||||
|
const rgba = new Gdk.RGBA();
|
||||||
|
rgba.parse(this._settings.get_string(settingsKey));
|
||||||
|
button.rgba = rgba;
|
||||||
|
};
|
||||||
|
|
||||||
// Initialize the button with the state in the settings.
|
this._settings.connect('changed::' + settingsKey, settingSignalHandler);
|
||||||
settingSignalHandler();
|
|
||||||
|
// Initialize the button with the state in the settings.
|
||||||
|
settingSignalHandler();
|
||||||
|
}
|
||||||
|
|
||||||
|
this._bindResetButton(settingsKey);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Connects any widget's property to a settings key. The widget must have the same ID as
|
// ----------------------------------------------------------------- GTK3 / GTK4 helpers
|
||||||
// the settings key. It also binds the corresponding reset button.
|
|
||||||
_bind(settingsKey, property) {
|
|
||||||
this._settings.bind(
|
|
||||||
settingsKey, this._builder.get_object(settingsKey), property,
|
|
||||||
Gio.SettingsBindFlags.DEFAULT);
|
|
||||||
|
|
||||||
|
// 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, false, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------- private stuff
|
||||||
|
|
||||||
|
// Searches for a reset button for the given settings key and make it reset the settings
|
||||||
|
// key when clicked.
|
||||||
|
_bindResetButton(settingsKey) {
|
||||||
const resetButton = this._builder.get_object('reset-' + settingsKey);
|
const resetButton = this._builder.get_object('reset-' + settingsKey);
|
||||||
if (resetButton) {
|
if (resetButton) {
|
||||||
resetButton.connect('clicked', () => {
|
resetButton.connect('clicked', () => {
|
||||||
@@ -137,96 +445,123 @@ var PreferencesDialog = class PreferencesDialog {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// This populates the preset dropdown menu for the fire options.
|
// Connects any widget's property to a settings key. The widget must have the same ID as
|
||||||
_createFirePresets() {
|
// the settings key. It also binds the corresponding reset button.
|
||||||
this._widget.connect('realize', (widget) => {
|
_bind(settingsKey, property) {
|
||||||
const presets = [
|
const object = this._builder.get_object(settingsKey);
|
||||||
{
|
|
||||||
name: 'Default Fire',
|
|
||||||
scale: 1.0,
|
|
||||||
speed: 0.5,
|
|
||||||
color1: 'rgba(76, 51, 25, 0.0)',
|
|
||||||
color2: 'rgba(180, 55, 30, 0.7)',
|
|
||||||
color3: 'rgba(255, 76, 38, 0.9)',
|
|
||||||
color4: 'rgba(255, 166, 25, 1)',
|
|
||||||
color5: 'rgba(255, 255, 255, 1)'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'Hell Fire',
|
|
||||||
scale: 1.5,
|
|
||||||
speed: 0.2,
|
|
||||||
color1: 'rgba(0,0,0,0)',
|
|
||||||
color2: 'rgba(103,7,80,0.5)',
|
|
||||||
color3: 'rgba(150,0,24,0.9)',
|
|
||||||
color4: 'rgb(255,200,0)',
|
|
||||||
color5: 'rgba(255, 255, 255, 1)'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'Dark and Smutty',
|
|
||||||
scale: 1.0,
|
|
||||||
speed: 0.5,
|
|
||||||
color1: 'rgba(0,0,0,0)',
|
|
||||||
color2: 'rgba(36,3,0,0.5)',
|
|
||||||
color3: 'rgba(150,0,24,0.9)',
|
|
||||||
color4: 'rgb(255,177,21)',
|
|
||||||
color5: 'rgb(255,238,166)'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'Cold Breeze',
|
|
||||||
scale: 1.5,
|
|
||||||
speed: -0.1,
|
|
||||||
color1: 'rgba(0,110,255,0)',
|
|
||||||
color2: 'rgba(30,111,180,0.24)',
|
|
||||||
color3: 'rgba(38,181,255,0.54)',
|
|
||||||
color4: 'rgba(34,162,255,0.84)',
|
|
||||||
color5: 'rgb(97,189,255)'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'Santa is Coming',
|
|
||||||
scale: 0.4,
|
|
||||||
speed: -0.5,
|
|
||||||
color1: 'rgba(0,110,255,0)',
|
|
||||||
color2: 'rgba(208,233,255,0.24)',
|
|
||||||
color3: 'rgba(207,235,255,0.84)',
|
|
||||||
color4: 'rgb(208,243,255)',
|
|
||||||
color5: 'rgb(255,255,255)'
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
const menu = Gio.Menu.new();
|
if (object) {
|
||||||
const group = Gio.SimpleActionGroup.new();
|
this._settings.bind(settingsKey, object, property, Gio.SettingsBindFlags.DEFAULT);
|
||||||
const groupName = 'presets';
|
}
|
||||||
|
|
||||||
// Add all presets.
|
this._bindResetButton(settingsKey);
|
||||||
presets.forEach((preset, i) => {
|
}
|
||||||
const actionName = 'fire' + i;
|
|
||||||
menu.append(preset.name, groupName + '.' + actionName);
|
|
||||||
let action = Gio.SimpleAction.new(actionName, null);
|
|
||||||
|
|
||||||
// Load the preset on activation.
|
// Reads the contents of a JSON file contained in the global resources archive. The data
|
||||||
action.connect('activate', () => {
|
// is parsed and returned as a JavaScript object / array.
|
||||||
this._settings.set_double('flame-movement-speed', preset.speed);
|
_getJSONResource(path) {
|
||||||
this._settings.set_double('flame-scale', preset.scale);
|
const data = Gio.resources_lookup_data(path, 0);
|
||||||
this._settings.set_string('fire-color-1', preset.color1);
|
const string = ByteArray.toString(ByteArray.fromGBytes(data));
|
||||||
this._settings.set_string('fire-color-2', preset.color2);
|
return JSON.parse(string);
|
||||||
this._settings.set_string('fire-color-3', preset.color3);
|
}
|
||||||
this._settings.set_string('fire-color-4', preset.color4);
|
|
||||||
this._settings.set_string('fire-color-5', preset.color5);
|
// This traverses the widget tree below the given parent recursively and returns the
|
||||||
|
// first widget of the given type.
|
||||||
|
_findWidgetByType(parent, type) {
|
||||||
|
for (const child of [...parent]) {
|
||||||
|
if (child instanceof type) return child;
|
||||||
|
|
||||||
|
const match = this._findWidgetByType(child, type);
|
||||||
|
if (match) return match;
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Initializes template widgets used by the preferences dialog.
|
||||||
|
_registerCustomClasses() {
|
||||||
|
|
||||||
|
// Each effect page is based on a template widget. This template contains the title
|
||||||
|
// and the preview button.
|
||||||
|
if (GObject.type_from_name('BurnMyWindowsEffectPage') == null) {
|
||||||
|
BurnMyWindowsEffectPage = GObject.registerClass(
|
||||||
|
{
|
||||||
|
GTypeName: 'BurnMyWindowsEffectPage',
|
||||||
|
Template: `resource:///ui/${utils.getGTKString()}/effectPage.ui`,
|
||||||
|
InternalChildren: ['label', 'button'],
|
||||||
|
},
|
||||||
|
class BurnMyWindowsEffectPage extends Gtk.Box { // ------------------------------
|
||||||
|
_init(effect, dialog) {
|
||||||
|
super._init();
|
||||||
|
|
||||||
|
// Set the effect's name as label.
|
||||||
|
this._label.label = effect.getLabel();
|
||||||
|
|
||||||
|
// Open the preview window once the preview button is clicked.
|
||||||
|
this._button.connect('clicked', () => {
|
||||||
|
// Set the to-be-previewed effect.
|
||||||
|
dialog.getSettings().set_string('open-preview-effect', effect.getNick());
|
||||||
|
dialog.getSettings().set_string('close-preview-effect', effect.getNick());
|
||||||
|
|
||||||
|
// Make sure that the window.show() firther below "sees" this change.
|
||||||
|
Gio.Settings.sync();
|
||||||
|
|
||||||
|
// Create the preview-window.
|
||||||
|
const window = new Gtk.Window({
|
||||||
|
// Translators: %s will be replaced by the effect's name.
|
||||||
|
title: _('Preview for %s').replace('%s', effect.getLabel()),
|
||||||
|
default_width: 800,
|
||||||
|
default_height: 450,
|
||||||
|
modal: true,
|
||||||
|
transient_for: utils.isGTK4() ? this._button.get_root() :
|
||||||
|
this._button.get_toplevel()
|
||||||
|
});
|
||||||
|
|
||||||
|
// Add a header bar to the window.
|
||||||
|
if (utils.isGTK4()) {
|
||||||
|
const header = Gtk.HeaderBar.new();
|
||||||
|
window.set_titlebar(header);
|
||||||
|
}
|
||||||
|
|
||||||
|
const box = new Gtk.Box({
|
||||||
|
orientation: Gtk.Orientation.VERTICAL,
|
||||||
|
valign: Gtk.Align.CENTER,
|
||||||
|
spacing: 10,
|
||||||
|
margin_start: 50,
|
||||||
|
margin_end: 50
|
||||||
|
});
|
||||||
|
|
||||||
|
const label = Gtk.Label.new(_('Close this Window to Preview the Effect!'));
|
||||||
|
label.wrap = true;
|
||||||
|
label.justify = Gtk.Justification.CENTER;
|
||||||
|
label.get_style_context().add_class('large-title');
|
||||||
|
|
||||||
|
const image = new Gtk.Image({
|
||||||
|
icon_name: 'burn-my-windows-symbolic',
|
||||||
|
pixel_size: 128,
|
||||||
|
});
|
||||||
|
|
||||||
|
dialog.gtkBoxAppend(box, image);
|
||||||
|
dialog.gtkBoxAppend(box, label);
|
||||||
|
|
||||||
|
if (utils.isGTK4()) {
|
||||||
|
window.set_child(box);
|
||||||
|
window.show();
|
||||||
|
} else {
|
||||||
|
window.add(box);
|
||||||
|
window.show_all();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
}
|
||||||
group.add_action(action);
|
|
||||||
});
|
|
||||||
|
|
||||||
this._builder.get_object('fire-preset-button').set_menu_model(menu);
|
|
||||||
|
|
||||||
const root = utils.gtk4() ? widget.get_root() : widget.get_toplevel();
|
|
||||||
root.insert_action_group(groupName, group);
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Nothing to do for now...
|
// This is used for setting up the translations.
|
||||||
function init() {}
|
function init() {
|
||||||
|
ExtensionUtils.initTranslations();
|
||||||
|
}
|
||||||
|
|
||||||
// This function is called when the preferences window is created to build and return a
|
// 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
|
// Gtk widget. We create a new instance of the PreferencesDialog class each time this
|
||||||
|
|||||||
@@ -0,0 +1 @@
|
|||||||
|
The `translators.json` file is directly exported from weblate.
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"gold": [
|
||||||
|
"<a href='https://github.com/dennis1248'>Dennis ten Hoove</a>"
|
||||||
|
],
|
||||||
|
"silver": [
|
||||||
|
"<a href='https://github.com/danielheadbang'>@danielheadbang</a>",
|
||||||
|
"<a href='https://twitter.com/tjiiik'>tj3k</a>",
|
||||||
|
"<a href='https://github.com/MRR-dev'>@MRR-dev</a>",
|
||||||
|
"<a href='https://github.com/castrojo'>Jorge Castro</a>"
|
||||||
|
],
|
||||||
|
"bronze": [
|
||||||
|
"<a href='https://github.com/AngelBrielez'>Angel Brielez</a>"
|
||||||
|
],
|
||||||
|
"past": [
|
||||||
|
"<a href='https://github.com/MrTomRod'>@MrTomRod</a>",
|
||||||
|
"Pouhiou",
|
||||||
|
"DAPREMONT Christophe",
|
||||||
|
"<a href='https://github.com/manero6'>@manero6</a>",
|
||||||
|
"<a href='https://github.com/RickStanley'>@RickStanley</a>"
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,117 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"Norwegian Bokm\u00e5l": [
|
||||||
|
[
|
||||||
|
"epost@anotheragency.no",
|
||||||
|
"Allan Nordh\u00f8y",
|
||||||
|
3
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Dutch": [
|
||||||
|
[
|
||||||
|
"vistausss@fastmail.com",
|
||||||
|
"Heimen Stoffels",
|
||||||
|
65
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Russian": [
|
||||||
|
[
|
||||||
|
"franigoyt@gmail.com",
|
||||||
|
"ANIGO R. (AR)",
|
||||||
|
59
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Czech": [
|
||||||
|
[
|
||||||
|
"jiri.doubravsky@gmail.com",
|
||||||
|
"Ji\u0159\u00ed Doubravsk\u00fd",
|
||||||
|
70
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Turkish": [
|
||||||
|
[
|
||||||
|
"muhaaliss@pm.me",
|
||||||
|
"Muha Aliss",
|
||||||
|
57
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Italian": [
|
||||||
|
[
|
||||||
|
"mario03@gmail.com",
|
||||||
|
"Mario",
|
||||||
|
1
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"albano_battistella@hotmail.com",
|
||||||
|
"albanobattistella",
|
||||||
|
63
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Chinese (Simplified)": [
|
||||||
|
[
|
||||||
|
"lyuutau@outlook.com",
|
||||||
|
"\u5218\u97ec",
|
||||||
|
36
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"German": [
|
||||||
|
[
|
||||||
|
"code@simonschneegans.de",
|
||||||
|
"Simon Schneegans",
|
||||||
|
59
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"French": [
|
||||||
|
[
|
||||||
|
"redxxiii@zaclys.net",
|
||||||
|
"Reda",
|
||||||
|
13
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"theo.remon+weblate@uswery.eu",
|
||||||
|
"Th\u00e9o Remon",
|
||||||
|
24
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"bonnemainsnathan@gmail.com",
|
||||||
|
"Nathan",
|
||||||
|
42
|
||||||
|
]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Spanish": [
|
||||||
|
[
|
||||||
|
"ulicesah@gmail.com",
|
||||||
|
"Ulices",
|
||||||
|
7
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"fitojb@ubuntu.com",
|
||||||
|
"Adolfo Jayme Barrientos",
|
||||||
|
11
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"oscfdezdz@tuta.io",
|
||||||
|
"\u00d3scar Fern\u00e1ndez D\u00edaz",
|
||||||
|
55
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
.pill-button {
|
||||||
|
border-radius: 9999px;
|
||||||
|
}
|
||||||
|
After Width: | Height: | Size: 106 KiB |
|
After Width: | Height: | Size: 434 KiB |
|
After Width: | Height: | Size: 230 KiB |
|
After Width: | Height: | Size: 32 KiB |
|
After Width: | Height: | Size: 372 KiB |
@@ -0,0 +1,49 @@
|
|||||||
|
// Inject some common shader snippets. It is only possible to include glsl files from the
|
||||||
|
// "common" directory. Also, the files in the "common" directory are not allowed to
|
||||||
|
// include any further files.
|
||||||
|
#include "common/uniforms.glsl"
|
||||||
|
|
||||||
|
uniform vec2 uSeed;
|
||||||
|
uniform float uShake;
|
||||||
|
uniform float uTwirl;
|
||||||
|
uniform float uSuction;
|
||||||
|
uniform float uRandomness;
|
||||||
|
|
||||||
|
const float ACTOR_SCALE = 2.0;
|
||||||
|
const float PADDING = ACTOR_SCALE / 2.0 - 0.5;
|
||||||
|
|
||||||
|
// The math for the whirling is inspired by this post:
|
||||||
|
// http://www.geeks3d.com/20110428/shader-library-swirl-post-processing-filter-in-glsl
|
||||||
|
void main() {
|
||||||
|
// We simply inverse the progress for opening windows.
|
||||||
|
float progress = uForOpening ? 1.0 - uProgress : uProgress;
|
||||||
|
|
||||||
|
// Choose a random suction center.
|
||||||
|
vec2 center = uSeed * uRandomness + 0.5 * (1.0 - uRandomness);
|
||||||
|
vec2 coords = cogl_tex_coord_in[0].st * ACTOR_SCALE - PADDING - center;
|
||||||
|
|
||||||
|
// Add some shaking.
|
||||||
|
coords.x +=
|
||||||
|
progress * 0.05 * uShake * sin((progress + uSeed.x) * (1.0 + uSeed.x) * uShake);
|
||||||
|
coords.y +=
|
||||||
|
progress * 0.05 * uShake * cos((progress + uSeed.y) * (1.0 + uSeed.y) * uShake);
|
||||||
|
|
||||||
|
// "Suck" the texture into the center.
|
||||||
|
float dist = length(coords) / sqrt(2);
|
||||||
|
coords += progress * coords / dist * 0.5 * uSuction;
|
||||||
|
|
||||||
|
// Apply some whirling.
|
||||||
|
float angle = pow(1.0 - dist, 2.0) * uTwirl * progress;
|
||||||
|
float s = sin(angle);
|
||||||
|
float c = cos(angle);
|
||||||
|
coords = vec2(dot(coords, vec2(c, -s)), dot(coords, vec2(s, c)));
|
||||||
|
|
||||||
|
// Shell.GLSLEffect uses straight alpha. So we have to convert from premultiplied.
|
||||||
|
cogl_color_out = texture2D(uTexture, coords + center);
|
||||||
|
if (cogl_color_out.a > 0) {
|
||||||
|
cogl_color_out.rgb /= cogl_color_out.a;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Fade out the window texture.
|
||||||
|
cogl_color_out.a *= 1.0 - progress;
|
||||||
|
}
|
||||||
@@ -0,0 +1,67 @@
|
|||||||
|
// Inject some common shader snippets. It is only possible to include glsl files from the
|
||||||
|
// "common" directory. Also, the files in the "common" directory are not allowed to
|
||||||
|
// include any further files.
|
||||||
|
#include "common/uniforms.glsl"
|
||||||
|
|
||||||
|
uniform sampler2D uShardTexture;
|
||||||
|
uniform vec2 uSeed;
|
||||||
|
uniform vec2 uEpicenter;
|
||||||
|
uniform float uShardScale;
|
||||||
|
uniform float uBlowForce;
|
||||||
|
uniform float uGravity;
|
||||||
|
|
||||||
|
const float SHARD_LAYERS = 5;
|
||||||
|
const float ACTOR_SCALE = 2.0;
|
||||||
|
const float PADDING = ACTOR_SCALE / 2.0 - 0.5;
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
cogl_color_out = vec4(0, 0, 0, 0);
|
||||||
|
|
||||||
|
float progress = uForOpening ? 1.0 - uProgress : uProgress;
|
||||||
|
|
||||||
|
// Draw the individual shard layers.
|
||||||
|
for (float i = 0; i < SHARD_LAYERS; ++i) {
|
||||||
|
|
||||||
|
// To enable drawing shards outside of the window bounds, the actor was scaled
|
||||||
|
// by ACTOR_SCALE. Here we scale and move the texture coordinates so that the
|
||||||
|
// window gets drawn at the correct position again.
|
||||||
|
vec2 coords = cogl_tex_coord_in[0].st * ACTOR_SCALE - PADDING;
|
||||||
|
|
||||||
|
// Scale and rotate around our epicenter.
|
||||||
|
coords -= uEpicenter;
|
||||||
|
|
||||||
|
// Scale each layer a bit differently.
|
||||||
|
coords /= mix(1.0, 1.0 + uBlowForce * (i + 2) / SHARD_LAYERS, progress);
|
||||||
|
|
||||||
|
// Rotate each layer a bit differently.
|
||||||
|
float rotation = (mod(i, 2.0) - 0.5) * 0.2 * progress;
|
||||||
|
coords = vec2(coords.x * cos(rotation) - coords.y * sin(rotation),
|
||||||
|
coords.x * sin(rotation) + coords.y * cos(rotation));
|
||||||
|
|
||||||
|
// Move down each layer a bit.
|
||||||
|
float gravity =
|
||||||
|
(uForOpening ? -1.0 : 1.0) * uGravity * 0.1 * (i + 1) * progress * progress;
|
||||||
|
coords += vec2(0, gravity);
|
||||||
|
|
||||||
|
// Restore correct position.
|
||||||
|
coords += uEpicenter;
|
||||||
|
|
||||||
|
// Retrieve information from the shard texture for our layer.
|
||||||
|
vec2 shardCoords = (coords + uSeed) * uSize / uShardScale / 500.0;
|
||||||
|
vec2 shardMap = texture2D(uShardTexture, shardCoords).rg;
|
||||||
|
|
||||||
|
// The green channel contains a random value in [0..1] for each shard. We
|
||||||
|
// discretize this into SHARD_LAYERS bins and check if our layer falls into
|
||||||
|
// the bin of the current shard.
|
||||||
|
float shardGroup = floor(shardMap.g * SHARD_LAYERS * 0.999);
|
||||||
|
|
||||||
|
if (shardGroup == i && (shardMap.x - pow(progress + 0.1, 2)) > 0) {
|
||||||
|
cogl_color_out = texture2D(uTexture, coords);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Shell.GLSLEffect uses straight alpha. So we have to convert from premultiplied.
|
||||||
|
if (cogl_color_out.a > 0) {
|
||||||
|
cogl_color_out.rgb /= cogl_color_out.a;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
// The Shell.GLSLEffect uses straight alpha blending. This helper method allows
|
||||||
|
// compositing color values in the shader in the same way.
|
||||||
|
vec4 alphaOver(vec4 under, vec4 over) {
|
||||||
|
float alpha = over.a + under.a * (1.0 - over.a);
|
||||||
|
return vec4((over.rgb * over.a + under.rgb * under.a * (1.0 - over.a)) / alpha, alpha);
|
||||||
|
}
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
// This provides some basic easing function. More can be added if required!
|
||||||
|
// Taken from here:
|
||||||
|
// https://gitlab.gnome.org/GNOME/mutter/-/blob/main/clutter/clutter/clutter-easing.c
|
||||||
|
|
||||||
|
float easeOutQuad(float x) { return -1.0 * x * (x - 2); }
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
// This method returns a mask which smoothly transitions towards zero when approaching
|
||||||
|
// the window's borders. There is a variant which takes the transition area width in
|
||||||
|
// pixels and one which takes this as a percentage.
|
||||||
|
float getEdgeMask(vec2 uv, vec2 maxUV, float fadeWidth) {
|
||||||
|
float mask = 1.0;
|
||||||
|
mask *= smoothstep(0, 1, clamp(uv.x / fadeWidth, 0, 1));
|
||||||
|
mask *= smoothstep(0, 1, clamp(uv.y / fadeWidth, 0, 1));
|
||||||
|
mask *= smoothstep(0, 1, clamp((maxUV.x - uv.x) / fadeWidth, 0, 1));
|
||||||
|
mask *= smoothstep(0, 1, clamp((maxUV.y - uv.y) / fadeWidth, 0, 1));
|
||||||
|
|
||||||
|
return mask;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Returns an edge mask which fades to zero at the boundaries of the actor. The width of
|
||||||
|
// the fade zone is given in pixels. This uses the standard uniforms uSize and uPadding.
|
||||||
|
// This means that the fading zone is not actually at the actors boundaries but at the
|
||||||
|
// position of the window border in the texture.
|
||||||
|
// The offset paramter controls whether the fading is placed inside the window borders
|
||||||
|
// (offset = 0), ontop the window borders (offset = 0.5) or outside the window borders
|
||||||
|
// (offset = 1).
|
||||||
|
float getAbsoluteEdgeMask(float fadePixels, float offset) {
|
||||||
|
float padding = max(0, uPadding - fadePixels * offset);
|
||||||
|
vec2 uv = cogl_tex_coord_in[0].st * uSize - padding;
|
||||||
|
return getEdgeMask(uv, uSize - 2.0 * padding, fadePixels);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Returns an edge mask which fades to zero at the boundaries of the actor. The width of
|
||||||
|
// the fade zone is given relative to the actor size. This neither uses uSize and
|
||||||
|
// uPadding.
|
||||||
|
float getRelativeEdgeMask(float fadeAmount) {
|
||||||
|
vec2 uv = cogl_tex_coord_in[0].st;
|
||||||
|
return getEdgeMask(uv, vec2(1.0), fadeAmount);
|
||||||
|
}
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
float distToLine(vec2 origin, vec2 direction, vec2 point) {
|
||||||
|
vec2 perpendicular = vec2(direction.y, -direction.x);
|
||||||
|
return abs(dot(normalize(perpendicular), origin - point));
|
||||||
|
}
|
||||||
|
|
||||||
|
float getWinding(vec2 a, vec2 b) { return cross(vec3(a, 0.0), vec3(b, 0.0)).z; }
|
||||||
|
|
||||||
|
vec2 rotate(vec2 a, float angle) {
|
||||||
|
return vec2(a.x * cos(angle) - a.y * sin(angle), a.x * sin(angle) + a.y * cos(angle));
|
||||||
|
}
|
||||||
@@ -0,0 +1,207 @@
|
|||||||
|
// These noise algorithms are based on implementations by various authors from
|
||||||
|
// shadertoy.com, which are all available under the MIT License. See the respective links
|
||||||
|
// in the comments below.
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Hash without Sine //
|
||||||
|
// MIT License, https://www.shadertoy.com/view/4djSRW //
|
||||||
|
// Copyright (c) 2014 David Hoskins. //
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
// 1 out, 1 in...
|
||||||
|
float hash11(float p) {
|
||||||
|
p = fract(p * .1031);
|
||||||
|
p *= p + 33.33;
|
||||||
|
p *= p + p;
|
||||||
|
return fract(p);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 1 out, 2 in...
|
||||||
|
float hash12(vec2 p) {
|
||||||
|
vec3 p3 = fract(vec3(p.xyx) * .1031);
|
||||||
|
p3 += dot(p3, p3.yzx + 33.33);
|
||||||
|
return fract((p3.x + p3.y) * p3.z);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 1 out, 3 in...
|
||||||
|
float hash13(vec3 p3) {
|
||||||
|
p3 = fract(p3 * .1031);
|
||||||
|
p3 += dot(p3, p3.zyx + 31.32);
|
||||||
|
return fract((p3.x + p3.y) * p3.z);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 2 out, 1 in...
|
||||||
|
vec2 hash21(float p) {
|
||||||
|
vec3 p3 = fract(vec3(p) * vec3(.1031, .1030, .0973));
|
||||||
|
p3 += dot(p3, p3.yzx + 33.33);
|
||||||
|
return fract((p3.xx + p3.yz) * p3.zy);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 2 out, 2 in...
|
||||||
|
vec2 hash22(vec2 p) {
|
||||||
|
vec3 p3 = fract(vec3(p.xyx) * vec3(.1031, .1030, .0973));
|
||||||
|
p3 += dot(p3, p3.yzx + 33.33);
|
||||||
|
return fract((p3.xx + p3.yz) * p3.zy);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 2 out, 3 in...
|
||||||
|
vec2 hash23(vec3 p3) {
|
||||||
|
p3 = fract(p3 * vec3(.1031, .1030, .0973));
|
||||||
|
p3 += dot(p3, p3.yzx + 33.33);
|
||||||
|
return fract((p3.xx + p3.yz) * p3.zy);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 3 out, 1 in...
|
||||||
|
vec3 hash31(float p) {
|
||||||
|
vec3 p3 = fract(vec3(p) * vec3(.1031, .1030, .0973));
|
||||||
|
p3 += dot(p3, p3.yzx + 33.33);
|
||||||
|
return fract((p3.xxy + p3.yzz) * p3.zyx);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 3 out, 2 in...
|
||||||
|
vec3 hash32(vec2 p) {
|
||||||
|
vec3 p3 = fract(vec3(p.xyx) * vec3(.1031, .1030, .0973));
|
||||||
|
p3 += dot(p3, p3.yxz + 33.33);
|
||||||
|
return fract((p3.xxy + p3.yzz) * p3.zyx);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 3 out, 3 in...
|
||||||
|
vec3 hash33(vec3 p3) {
|
||||||
|
p3 = fract(p3 * vec3(.1031, .1030, .0973));
|
||||||
|
p3 += dot(p3, p3.yxz + 33.33);
|
||||||
|
return fract((p3.xxy + p3.yxx) * p3.zyx);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 4 out, 1 in...
|
||||||
|
vec4 hash41(float p) {
|
||||||
|
vec4 p4 = fract(vec4(p) * vec4(.1031, .1030, .0973, .1099));
|
||||||
|
p4 += dot(p4, p4.wzxy + 33.33);
|
||||||
|
return fract((p4.xxyz + p4.yzzw) * p4.zywx);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 4 out, 2 in...
|
||||||
|
vec4 hash42(vec2 p) {
|
||||||
|
vec4 p4 = fract(vec4(p.xyxy) * vec4(.1031, .1030, .0973, .1099));
|
||||||
|
p4 += dot(p4, p4.wzxy + 33.33);
|
||||||
|
return fract((p4.xxyz + p4.yzzw) * p4.zywx);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 4 out, 3 in...
|
||||||
|
vec4 hash43(vec3 p) {
|
||||||
|
vec4 p4 = fract(vec4(p.xyzx) * vec4(.1031, .1030, .0973, .1099));
|
||||||
|
p4 += dot(p4, p4.wzxy + 33.33);
|
||||||
|
return fract((p4.xxyz + p4.yzzw) * p4.zywx);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 4 out, 4 in...
|
||||||
|
vec4 hash44(vec4 p4) {
|
||||||
|
p4 = fract(p4 * vec4(.1031, .1030, .0973, .1099));
|
||||||
|
p4 += dot(p4, p4.wzxy + 33.33);
|
||||||
|
return fract((p4.xxyz + p4.yzzw) * p4.zywx);
|
||||||
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// 2D Simplex Noise //
|
||||||
|
// MIT License, https://www.shadertoy.com/view/Msf3WH //
|
||||||
|
// Copyright © 2013 Inigo Quilez //
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
float simplex2D(vec2 p) {
|
||||||
|
const float K1 = 0.366025404; // (sqrt(3)-1)/2;
|
||||||
|
const float K2 = 0.211324865; // (3-sqrt(3))/6;
|
||||||
|
|
||||||
|
vec2 i = floor(p + (p.x + p.y) * K1);
|
||||||
|
vec2 a = p - i + (i.x + i.y) * K2;
|
||||||
|
float m = step(a.y, a.x);
|
||||||
|
vec2 o = vec2(m, 1.0 - m);
|
||||||
|
vec2 b = a - o + K2;
|
||||||
|
vec2 c = a - 1.0 + 2.0 * K2;
|
||||||
|
vec3 h = max(0.5 - vec3(dot(a, a), dot(b, b), dot(c, c)), 0.0);
|
||||||
|
vec3 n = h * h * h * h *
|
||||||
|
vec3(dot(a, -1.0 + 2.0 * hash22(i + 0.0)), dot(b, -1.0 + 2.0 * hash22(i + o)),
|
||||||
|
dot(c, -1.0 + 2.0 * hash22(i + 1.0)));
|
||||||
|
return 0.5 + 0.5 * dot(n, vec3(70.0));
|
||||||
|
}
|
||||||
|
|
||||||
|
float simplex2DFractal(vec2 p) {
|
||||||
|
mat2 m = mat2(1.6, 1.2, -1.2, 1.6);
|
||||||
|
float f = 0.5000 * simplex2D(p);
|
||||||
|
p = m * p;
|
||||||
|
f += 0.2500 * simplex2D(p);
|
||||||
|
p = m * p;
|
||||||
|
f += 0.1250 * simplex2D(p);
|
||||||
|
p = m * p;
|
||||||
|
f += 0.0625 * simplex2D(p);
|
||||||
|
p = m * p;
|
||||||
|
|
||||||
|
return f;
|
||||||
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// 3D Simplex Noise //
|
||||||
|
// MIT License, https://www.shadertoy.com/view/XsX3zB //
|
||||||
|
// Copyright © 2013 Nikita Miropolskiy //
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
float simplex3D(vec3 p) {
|
||||||
|
|
||||||
|
// skew constants for 3D simplex functions
|
||||||
|
const float F3 = 0.3333333;
|
||||||
|
const float G3 = 0.1666667;
|
||||||
|
|
||||||
|
// 1. find current tetrahedron T and it's four vertices
|
||||||
|
// s, s+i1, s+i2, s+1.0 - absolute skewed (integer) coordinates of T vertices
|
||||||
|
// x, x1, x2, x3 - unskewed coordinates of p relative to each of T vertice
|
||||||
|
|
||||||
|
// calculate s and x
|
||||||
|
vec3 s = floor(p + dot(p, vec3(F3)));
|
||||||
|
vec3 x = p - s + dot(s, vec3(G3));
|
||||||
|
|
||||||
|
// calculate i1 and i2
|
||||||
|
vec3 e = step(vec3(0.0), x - x.yzx);
|
||||||
|
vec3 i1 = e * (1.0 - e.zxy);
|
||||||
|
vec3 i2 = 1.0 - e.zxy * (1.0 - e);
|
||||||
|
|
||||||
|
// x1, x2, x3
|
||||||
|
vec3 x1 = x - i1 + G3;
|
||||||
|
vec3 x2 = x - i2 + 2.0 * G3;
|
||||||
|
vec3 x3 = x - 1.0 + 3.0 * G3;
|
||||||
|
|
||||||
|
// 2. find four surflets and store them in d
|
||||||
|
vec4 w, d;
|
||||||
|
|
||||||
|
// calculate surflet weights
|
||||||
|
w.x = dot(x, x);
|
||||||
|
w.y = dot(x1, x1);
|
||||||
|
w.z = dot(x2, x2);
|
||||||
|
w.w = dot(x3, x3);
|
||||||
|
|
||||||
|
// w fades from 0.6 at the center of the surflet to 0.0 at the margin
|
||||||
|
w = max(0.6 - w, 0.0);
|
||||||
|
|
||||||
|
// calculate surflet components
|
||||||
|
d.x = dot(-0.5 + hash33(s), x);
|
||||||
|
d.y = dot(-0.5 + hash33(s + i1), x1);
|
||||||
|
d.z = dot(-0.5 + hash33(s + i2), x2);
|
||||||
|
d.w = dot(-0.5 + hash33(s + 1.0), x3);
|
||||||
|
|
||||||
|
// multiply d by w^4
|
||||||
|
w *= w;
|
||||||
|
w *= w;
|
||||||
|
d *= w;
|
||||||
|
|
||||||
|
// 3. return the sum of the four surflets
|
||||||
|
return dot(d, vec4(52.0)) * 0.5 + 0.5;
|
||||||
|
}
|
||||||
|
|
||||||
|
// directional artifacts can be reduced by rotating each octave
|
||||||
|
float simplex3DFractal(vec3 m) {
|
||||||
|
|
||||||
|
// const matrices for 3D rotation
|
||||||
|
const mat3 rot1 = mat3(-0.37, 0.36, 0.85, -0.14, -0.93, 0.34, 0.92, 0.01, 0.4);
|
||||||
|
const mat3 rot2 = mat3(-0.55, -0.39, 0.74, 0.33, -0.91, -0.24, 0.77, 0.12, 0.63);
|
||||||
|
const mat3 rot3 = mat3(-0.71, 0.52, -0.47, -0.08, -0.72, -0.68, -0.7, -0.45, 0.56);
|
||||||
|
|
||||||
|
return 0.5333333 * simplex3D(m * rot1) + 0.2666667 * simplex3D(2.0 * m * rot2) +
|
||||||
|
0.1333333 * simplex3D(4.0 * m * rot3) + 0.0666667 * simplex3D(8.0 * m);
|
||||||
|
}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
// These should be included in every shader.
|
||||||
|
// uForOpening: True if a window-open animation is ongoing, false otherwise.
|
||||||
|
// uTexture: Contains the texture of the window.
|
||||||
|
// uProgress: A value which transitions from 0 to 1 during the entire animation.
|
||||||
|
// uTime: A steadily increasing value in seconds.
|
||||||
|
// uSize: The size of uTexture in pixels.
|
||||||
|
// uPadding: The empty area around the actual window (e.g. where the shadow is drawn).
|
||||||
|
uniform bool uForOpening;
|
||||||
|
uniform sampler2D uTexture;
|
||||||
|
uniform float uProgress;
|
||||||
|
uniform float uTime;
|
||||||
|
uniform vec2 uSize;
|
||||||
|
uniform float uPadding;
|
||||||
@@ -0,0 +1,90 @@
|
|||||||
|
// Inject some common shader snippets. It is only possible to include glsl files from the
|
||||||
|
// "common" directory. Also, the files in the "common" directory are not allowed to
|
||||||
|
// include any further files.
|
||||||
|
#include "common/uniforms.glsl"
|
||||||
|
#include "common/noise.glsl"
|
||||||
|
#include "common/edgeMask.glsl"
|
||||||
|
#include "common/easing.glsl"
|
||||||
|
|
||||||
|
uniform vec3 uColor;
|
||||||
|
uniform float uScale;
|
||||||
|
|
||||||
|
const float FADE_IN_TIME = 0.3;
|
||||||
|
const float FADE_OUT_TIME = 0.6;
|
||||||
|
const float HEART_FADE_TIME = 0.3;
|
||||||
|
const float EDGE_FADE_WIDTH = 50;
|
||||||
|
|
||||||
|
// This method returns two values:
|
||||||
|
// result.x: A mask for the particles.
|
||||||
|
// result.y: The opacity of the fading window.
|
||||||
|
vec2 getMasks(float progress) {
|
||||||
|
float fadeInProgress = clamp(progress / FADE_IN_TIME, 0, 1);
|
||||||
|
float fadeOutProgress = clamp((progress - FADE_IN_TIME) / FADE_OUT_TIME, 0, 1);
|
||||||
|
float heartProgress =
|
||||||
|
clamp((progress - (1.0 - HEART_FADE_TIME)) / HEART_FADE_TIME, 0, 1);
|
||||||
|
|
||||||
|
// Compute mask for the "atom" particles.
|
||||||
|
float dist = length(cogl_tex_coord_in[0].st - 0.5) * 4.0;
|
||||||
|
float atomMask = smoothstep(0.0, 1.0, (fadeInProgress * 2.0 - dist + 1.0));
|
||||||
|
atomMask *= fadeInProgress;
|
||||||
|
atomMask *= smoothstep(1.0, 0.0, fadeOutProgress);
|
||||||
|
|
||||||
|
// Fade-out the masks at the window edges.
|
||||||
|
float edgeFade = getAbsoluteEdgeMask(EDGE_FADE_WIDTH, 0.5);
|
||||||
|
atomMask *= edgeFade;
|
||||||
|
|
||||||
|
float heartMask = getRelativeEdgeMask(0.5);
|
||||||
|
heartMask = 3.0 * pow(heartMask, 5);
|
||||||
|
heartMask *= fadeOutProgress;
|
||||||
|
heartMask *= 1.0 - heartProgress;
|
||||||
|
atomMask = clamp(heartMask + atomMask, 0, 1);
|
||||||
|
|
||||||
|
// Compute fading window opacity.
|
||||||
|
float windowMask = pow(1.0 - fadeOutProgress, 2.0);
|
||||||
|
|
||||||
|
if (uForOpening) {
|
||||||
|
windowMask = 1.0 - windowMask;
|
||||||
|
}
|
||||||
|
|
||||||
|
return vec2(atomMask, windowMask);
|
||||||
|
}
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
float progress = easeOutQuad(uProgress);
|
||||||
|
|
||||||
|
vec2 masks = getMasks(progress);
|
||||||
|
vec4 windowColor = texture2D(uTexture, cogl_tex_coord_in[0].st);
|
||||||
|
|
||||||
|
// Shell.GLSLEffect uses straight alpha. So we have to convert from premultiplied.
|
||||||
|
if (windowColor.a > 0) {
|
||||||
|
windowColor.rgb /= windowColor.a;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Dissolve window to effect color / transparency.
|
||||||
|
cogl_color_out.rgb = mix(uColor, windowColor.rgb, 0.2 * masks.y + 0.8);
|
||||||
|
cogl_color_out.a = windowColor.a * masks.y;
|
||||||
|
|
||||||
|
vec2 scaledUV = (cogl_tex_coord_in[0].st - 0.5) * (1.0 + 0.1 * progress);
|
||||||
|
scaledUV /= uScale;
|
||||||
|
|
||||||
|
// Add molecule particles.
|
||||||
|
vec2 uv = scaledUV + vec2(0, 0.1 * uTime);
|
||||||
|
uv *= 0.010598 * vec2(0.5 * uSize.x, uSize.y);
|
||||||
|
float particles = 0.2 * pow((simplex3D(vec3(uv, 0.0 * uTime))), 3.0);
|
||||||
|
|
||||||
|
// Add more molecule particles.
|
||||||
|
for (int i = 1; i <= 3; ++i) {
|
||||||
|
vec2 uv = scaledUV * 0.12154 / pow(1.5, i) * uSize;
|
||||||
|
float atoms = simplex3D(vec3(uv, 2.0 * uTime / i));
|
||||||
|
particles += 0.5 * pow(0.2 * (1.0 / (1.0 - atoms) - 1.0), 2);
|
||||||
|
}
|
||||||
|
|
||||||
|
cogl_color_out.rgb += uColor * particles * masks.x;
|
||||||
|
cogl_color_out.a += particles * masks.x;
|
||||||
|
|
||||||
|
// These are pretty useful for understanding how this works.
|
||||||
|
// cogl_color_out = vec4(masks, 0.0, 1.0);
|
||||||
|
// cogl_color_out = vec4(vec3(masks.x), 1.0);
|
||||||
|
// cogl_color_out = vec4(vec3(masks.y), 1.0);
|
||||||
|
// cogl_color_out = vec4(vec3(particles), 1.0);
|
||||||
|
}
|
||||||
@@ -0,0 +1,114 @@
|
|||||||
|
// Inject some common shader snippets. It is only possible to include glsl files from the
|
||||||
|
// "common" directory. Also, the files in the "common" directory are not allowed to
|
||||||
|
// include any further files.
|
||||||
|
#include "common/uniforms.glsl"
|
||||||
|
#include "common/noise.glsl"
|
||||||
|
#include "common/edgeMask.glsl"
|
||||||
|
#include "common/easing.glsl"
|
||||||
|
|
||||||
|
uniform vec3 uColor;
|
||||||
|
uniform float uScale;
|
||||||
|
|
||||||
|
const float SHOWER_TIME = 0.3;
|
||||||
|
const float SHOWER_WIDTH = 0.3;
|
||||||
|
const float STREAK_TIME = 0.6;
|
||||||
|
const float EDGE_FADE = 50;
|
||||||
|
|
||||||
|
// This method returns four values:
|
||||||
|
// result.x: A mask for the particles which lead the shower.
|
||||||
|
// result.y: A mask for the streaks which follow the shower particles.
|
||||||
|
// result.z: A mask for the final "atom" particles.
|
||||||
|
// result.w: The opacity of the fading window.
|
||||||
|
vec4 getMasks(float progress) {
|
||||||
|
float showerProgress = progress / SHOWER_TIME;
|
||||||
|
float streakProgress = clamp((progress - SHOWER_TIME) / STREAK_TIME, 0, 1);
|
||||||
|
float fadeProgress = clamp((progress - SHOWER_TIME) / (1.0 - SHOWER_TIME), 0, 1);
|
||||||
|
|
||||||
|
// Gradient from top to bottom.
|
||||||
|
float t = cogl_tex_coord_in[0].t;
|
||||||
|
|
||||||
|
// A smooth gradient which moves to the bottom within the showerProgress.
|
||||||
|
float showerMask =
|
||||||
|
smoothstep(1, 0, abs(showerProgress - t - SHOWER_WIDTH) / SHOWER_WIDTH);
|
||||||
|
|
||||||
|
// This is 1 above the streak mask.
|
||||||
|
float streakMask = (showerProgress - t - SHOWER_WIDTH) > 0 ? 1 : 0;
|
||||||
|
|
||||||
|
// Compute mask for the "atom" particles.
|
||||||
|
float atomMask = getRelativeEdgeMask(0.2);
|
||||||
|
atomMask = max(0, atomMask - showerMask);
|
||||||
|
atomMask *= streakMask;
|
||||||
|
atomMask *= sqrt(1 - fadeProgress * fadeProgress);
|
||||||
|
|
||||||
|
// Make some particles visible in the streaks.
|
||||||
|
showerMask += 0.05 * streakMask;
|
||||||
|
|
||||||
|
// Add shower mask to streak mask.
|
||||||
|
streakMask = max(streakMask, showerMask);
|
||||||
|
|
||||||
|
// Fade-out the masks at the window edges.
|
||||||
|
float edgeFade = getAbsoluteEdgeMask(EDGE_FADE, 0.5);
|
||||||
|
streakMask *= edgeFade;
|
||||||
|
showerMask *= edgeFade;
|
||||||
|
|
||||||
|
// Fade-out the masks from top to bottom.
|
||||||
|
float fade = smoothstep(0.0, 1.0, 1.0 + t - 2.0 * streakProgress);
|
||||||
|
streakMask *= fade;
|
||||||
|
showerMask *= fade;
|
||||||
|
|
||||||
|
// Compute fading window opacity.
|
||||||
|
float windowMask = pow(1.0 - fadeProgress, 2.0);
|
||||||
|
|
||||||
|
if (uForOpening) {
|
||||||
|
windowMask = 1.0 - windowMask;
|
||||||
|
}
|
||||||
|
|
||||||
|
return vec4(showerMask, streakMask, atomMask, windowMask);
|
||||||
|
}
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
float progress = easeOutQuad(uProgress);
|
||||||
|
|
||||||
|
vec4 masks = getMasks(progress);
|
||||||
|
vec4 windowColor = texture2D(uTexture, cogl_tex_coord_in[0].st);
|
||||||
|
|
||||||
|
// Shell.GLSLEffect uses straight alpha. So we have to convert from premultiplied.
|
||||||
|
if (windowColor.a > 0) {
|
||||||
|
windowColor.rgb /= windowColor.a;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Dissolve window to effect color / transparency.
|
||||||
|
cogl_color_out.rgb = mix(uColor, windowColor.rgb, 0.5 * masks.w + 0.5);
|
||||||
|
cogl_color_out.a = windowColor.a * masks.w;
|
||||||
|
|
||||||
|
// Add leading shower particles.
|
||||||
|
vec2 showerUV = cogl_tex_coord_in[0].st + vec2(0, -0.7 * progress / SHOWER_TIME);
|
||||||
|
showerUV *= 0.02 * uSize / uScale;
|
||||||
|
float shower = pow(simplex2D(showerUV), 10.0);
|
||||||
|
cogl_color_out.rgb += uColor * shower * masks.x;
|
||||||
|
cogl_color_out.a += shower * masks.x;
|
||||||
|
|
||||||
|
// Add trailing streak lines.
|
||||||
|
vec2 streakUV = cogl_tex_coord_in[0].st + vec2(0, -progress / SHOWER_TIME);
|
||||||
|
streakUV *= vec2(0.05 * uSize.x, 0.001 * uSize.y) / uScale;
|
||||||
|
float streaks = simplex2DFractal(streakUV) * 0.5;
|
||||||
|
cogl_color_out.rgb += uColor * streaks * masks.y;
|
||||||
|
cogl_color_out.a += streaks * masks.y;
|
||||||
|
|
||||||
|
// Add glimmering atoms.
|
||||||
|
vec2 atomUV = cogl_tex_coord_in[0].st + vec2(0, -0.025 * progress / SHOWER_TIME);
|
||||||
|
atomUV *= 0.2 * uSize / uScale;
|
||||||
|
float atoms = pow((simplex3D(vec3(atomUV, uTime))), 5.0);
|
||||||
|
cogl_color_out.rgb += uColor * atoms * masks.z;
|
||||||
|
cogl_color_out.a += atoms * masks.z;
|
||||||
|
|
||||||
|
// These are pretty useful for understanding how this works.
|
||||||
|
// cogl_color_out = vec4(masks.rgb, 1.0);
|
||||||
|
// cogl_color_out = vec4(vec3(masks.x), 1.0);
|
||||||
|
// cogl_color_out = vec4(vec3(masks.y), 1.0);
|
||||||
|
// cogl_color_out = vec4(vec3(masks.z), 1.0);
|
||||||
|
// cogl_color_out = vec4(vec3(masks.w), 1.0);
|
||||||
|
// cogl_color_out = vec4(vec3(shower), 1.0);
|
||||||
|
// cogl_color_out = vec4(vec3(streaks), 1.0);
|
||||||
|
// cogl_color_out = vec4(vec3(atoms), 1.0);
|
||||||
|
}
|
||||||
@@ -0,0 +1,117 @@
|
|||||||
|
// Inject some common shader snippets. It is only possible to include glsl files from the
|
||||||
|
// "common" directory. Also, the files in the "common" directory are not allowed to
|
||||||
|
// include any further files.
|
||||||
|
#include "common/uniforms.glsl"
|
||||||
|
#include "common/compositing.glsl"
|
||||||
|
#include "common/edgeMask.glsl"
|
||||||
|
#include "common/noise.glsl"
|
||||||
|
#include "common/easing.glsl"
|
||||||
|
|
||||||
|
uniform bool u3DNoise;
|
||||||
|
uniform float uScale;
|
||||||
|
uniform float uMovementSpeed;
|
||||||
|
uniform vec4 uGradient1;
|
||||||
|
uniform vec4 uGradient2;
|
||||||
|
uniform vec4 uGradient3;
|
||||||
|
uniform vec4 uGradient4;
|
||||||
|
uniform vec4 uGradient5;
|
||||||
|
|
||||||
|
// These may be configurable in the future.
|
||||||
|
const float EDGE_FADE = 70;
|
||||||
|
const float FADE_WIDTH = 0.1;
|
||||||
|
const float HIDE_TIME = 0.4;
|
||||||
|
|
||||||
|
// This maps the input value from [0..1] to a color from the gradient.
|
||||||
|
vec4 getFireColor(float v) {
|
||||||
|
const float steps[5] = float[](0.0, 0.2, 0.35, 0.5, 0.8);
|
||||||
|
vec4 colors[5] = vec4[](uGradient1, uGradient2, uGradient3, uGradient4, uGradient5);
|
||||||
|
|
||||||
|
if (v < steps[0]) {
|
||||||
|
return colors[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < 4; ++i) {
|
||||||
|
if (v <= steps[i + 1]) {
|
||||||
|
return mix(colors[i], colors[i + 1],
|
||||||
|
vec4(v - steps[i]) / (steps[i + 1] - steps[i]));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return colors[4];
|
||||||
|
}
|
||||||
|
|
||||||
|
// This method requires the uniforms from standardUniforms() to be available.
|
||||||
|
// It returns two values: The first is an alpha value which can be used for the window
|
||||||
|
// texture. This gradually dissolves the window from top to bottom. The second can be used
|
||||||
|
// to mask any effect, it will be most opaque where the window is currently fading and
|
||||||
|
// gradually dissolve to zero over time.
|
||||||
|
// hideTime: A value in [0..1]. It determines the percentage of the animation which
|
||||||
|
// is spent for hiding the window. 1-hideTime will be spent thereafter for
|
||||||
|
// dissolving the effect mask.
|
||||||
|
// fadeWidth: The relative size of the window-hiding gradient in [0..1].
|
||||||
|
// edgeFadeWidth: The pixel width of the effect fading range at the edges of the window.
|
||||||
|
vec2 effectMask(float hideTime, float fadeWidth, float edgeFadeWidth) {
|
||||||
|
float progress = easeOutQuad(uProgress);
|
||||||
|
|
||||||
|
float burnProgress = clamp(progress / hideTime, 0, 1);
|
||||||
|
float afterBurnProgress = clamp((progress - hideTime) / (1 - hideTime), 0, 1);
|
||||||
|
|
||||||
|
// Gradient from top to bottom.
|
||||||
|
float t = cogl_tex_coord_in[0].t * (1 - fadeWidth);
|
||||||
|
|
||||||
|
// Visible part of the window. Gradually dissolves towards the bottom.
|
||||||
|
float windowMask = 1 - clamp((burnProgress - t) / fadeWidth, 0, 1);
|
||||||
|
|
||||||
|
// Gradient from top burning window.
|
||||||
|
float effectMask = clamp(t * (1 - windowMask) / burnProgress, 0, 1);
|
||||||
|
|
||||||
|
// Fade-out when the window burned down.
|
||||||
|
if (progress > hideTime) {
|
||||||
|
float fade = sqrt(1 - afterBurnProgress * afterBurnProgress);
|
||||||
|
effectMask *= mix(1, 1 - t, afterBurnProgress) * fade;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Fade at window borders.
|
||||||
|
effectMask *= getAbsoluteEdgeMask(edgeFadeWidth, 0.5);
|
||||||
|
|
||||||
|
if (uForOpening) {
|
||||||
|
windowMask = 1.0 - windowMask;
|
||||||
|
}
|
||||||
|
|
||||||
|
return vec2(windowMask, effectMask);
|
||||||
|
}
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
// Get a noise value which moves vertically in time.
|
||||||
|
vec2 uv = cogl_tex_coord_in[0].st * uSize / vec2(400, 600) / uScale;
|
||||||
|
uv.y += uTime * uMovementSpeed;
|
||||||
|
|
||||||
|
float noise = u3DNoise ? simplex3DFractal(vec3(uv * 4.0, uTime * uMovementSpeed * 1.5))
|
||||||
|
: simplex2DFractal(uv * 4.0);
|
||||||
|
|
||||||
|
// Modulate noise by effect mask.
|
||||||
|
vec2 effectMask = effectMask(HIDE_TIME, FADE_WIDTH, EDGE_FADE);
|
||||||
|
noise *= effectMask.y;
|
||||||
|
|
||||||
|
// Map noise value to color.
|
||||||
|
vec4 fire = getFireColor(noise);
|
||||||
|
|
||||||
|
// Get the window texture.
|
||||||
|
cogl_color_out = texture2D(uTexture, cogl_tex_coord_in[0].st);
|
||||||
|
|
||||||
|
// Shell.GLSLEffect uses straight alpha. So we have to convert from premultiplied.
|
||||||
|
if (cogl_color_out.a > 0) {
|
||||||
|
cogl_color_out.rgb /= cogl_color_out.a;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Fade the window according to the effect mask.
|
||||||
|
cogl_color_out.a *= effectMask.x;
|
||||||
|
|
||||||
|
// Add the fire to the window.
|
||||||
|
cogl_color_out = alphaOver(cogl_color_out, fire);
|
||||||
|
|
||||||
|
// These are pretty useful for understanding how this works.
|
||||||
|
// cogl_color_out = vec4(vec3(noise), 1);
|
||||||
|
// cogl_color_out = vec4(vec3(effectMask.x), 1);
|
||||||
|
// cogl_color_out = vec4(vec3(effectMask.y), 1);
|
||||||
|
}
|
||||||
@@ -0,0 +1,116 @@
|
|||||||
|
// Inject some common shader snippets. It is only possible to include glsl files from the
|
||||||
|
// "common" directory. Also, the files in the "common" directory are not allowed to
|
||||||
|
// include any further files.
|
||||||
|
#include "common/uniforms.glsl"
|
||||||
|
#include "common/noise.glsl"
|
||||||
|
|
||||||
|
uniform bool uAdditiveBlending;
|
||||||
|
uniform vec2 uSeed;
|
||||||
|
uniform float uScale;
|
||||||
|
uniform float uLineWidth;
|
||||||
|
uniform vec4 uGlowColor;
|
||||||
|
uniform vec4 uLineColor;
|
||||||
|
|
||||||
|
// This methods generates a procedural hexagonal pattern. It returns four values:
|
||||||
|
// result.xy: This contains cell-relative coordinates for the given point.
|
||||||
|
// [0, 0] is in the center of a cell, [0, 1] at the upper edge,
|
||||||
|
// [sqrt(4.0 / 3.0), 0] at the right tip and so on.
|
||||||
|
// result.z: This is the distance to the closest edge. This is used for shrinking
|
||||||
|
// of the tiles and the sharp overlay lines.
|
||||||
|
// result.w: This is the distance to the closest cell center. This is used for
|
||||||
|
// the glow effect.
|
||||||
|
vec4 getHexagons(vec2 p) {
|
||||||
|
|
||||||
|
// Length of a cell's edge.
|
||||||
|
const float edgeLength = sqrt(4.0 / 3.0);
|
||||||
|
|
||||||
|
// The hexgrid repeats after this distance.
|
||||||
|
const vec2 scale = vec2(3.0 * edgeLength, 2.0);
|
||||||
|
|
||||||
|
// This is a repeating grid of scale-sized cells. Y-values are in the
|
||||||
|
// interval [-1...1], X-value in [-1.5*edgeLength...1.5*edgeLength].
|
||||||
|
vec2 a = mod(p, scale) - scale * 0.5;
|
||||||
|
vec2 aAbs = abs(a);
|
||||||
|
|
||||||
|
// This is the same as above, but offset by half scale.
|
||||||
|
vec2 b = mod(p + scale * 0.5, scale) - scale * 0.5;
|
||||||
|
vec2 bAbs = abs(b);
|
||||||
|
|
||||||
|
// Distance to closer edge, diagonally or horizontally.
|
||||||
|
// Once for cell set A and once for cell set B.
|
||||||
|
float distA = max(aAbs.x / edgeLength + aAbs.y * 0.5, aAbs.y);
|
||||||
|
float distB = max(bAbs.x / edgeLength + bAbs.y * 0.5, bAbs.y);
|
||||||
|
|
||||||
|
// Minimum of both is distance to closest edge.
|
||||||
|
float dist = 1.0 - min(distA, distB);
|
||||||
|
|
||||||
|
// We use the radial distance to the center for glow.
|
||||||
|
float glow = min(dot(a, a), dot(b, b)) / 1.5;
|
||||||
|
|
||||||
|
// Take cell-relative coordinates from the closer cell.
|
||||||
|
vec2 cellCoords = distA < distB ? a : b;
|
||||||
|
|
||||||
|
return vec4(cellCoords, dist, glow);
|
||||||
|
}
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
// We simply inverse the progress for opening windows.
|
||||||
|
float progress = uForOpening ? 1.0 - uProgress : uProgress;
|
||||||
|
|
||||||
|
// Add some smooth noise to the progress so that not every tile behaves the
|
||||||
|
// same.
|
||||||
|
float noise = simplex2D(cogl_tex_coord_in[0].st + uSeed);
|
||||||
|
progress = clamp(mix(noise - 1.0, noise + 1.0, progress), 0.0, 1.0);
|
||||||
|
|
||||||
|
// glowProgress fades in in the first half of the animation, tileProgress fades
|
||||||
|
// in in the second half.
|
||||||
|
float glowProgress = smoothstep(0, 1, clamp(progress / 0.5, 0, 1));
|
||||||
|
float tileProgress = smoothstep(0, 1, clamp((progress - 0.5) / 0.5, 0, 1));
|
||||||
|
|
||||||
|
vec2 texScale = 0.1 * uSize / uScale;
|
||||||
|
vec4 hex = getHexagons(cogl_tex_coord_in[0].st * texScale);
|
||||||
|
|
||||||
|
if (tileProgress > hex.z) {
|
||||||
|
|
||||||
|
// Crop outer parts of the shrinking tiles.
|
||||||
|
cogl_color_out.a = 0.0;
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
// Make the tiles shrink by offsetting the texture lookup towards the edge
|
||||||
|
// of the cell.
|
||||||
|
vec2 lookupOffset = tileProgress * hex.xy / texScale / (1.0 - tileProgress);
|
||||||
|
cogl_color_out = texture2D(uTexture, cogl_tex_coord_in[0].st + lookupOffset);
|
||||||
|
|
||||||
|
// Shell.GLSLEffect uses straight alpha. So we have to convert from premultiplied.
|
||||||
|
if (cogl_color_out.a > 0) {
|
||||||
|
cogl_color_out.rgb /= cogl_color_out.a;
|
||||||
|
}
|
||||||
|
|
||||||
|
vec4 glow = uGlowColor;
|
||||||
|
vec4 line = uLineColor;
|
||||||
|
|
||||||
|
// For the glow, we accumulate a few exponentially scaled versions of hex.w.
|
||||||
|
glow.a *= pow(hex.w, 20.0) * 10.0 + pow(hex.w, 10.0) * 5.0 + pow(hex.w, 2.0) * 0.5;
|
||||||
|
|
||||||
|
// Using step(uLineWidth, hex.z) would be simpler, but the below creates some
|
||||||
|
// fake antialiasing.
|
||||||
|
line.a *= 1.0 - smoothstep(uLineWidth * 0.02 * 0.5, uLineWidth * 0.02, hex.z);
|
||||||
|
|
||||||
|
// Fade in the glowing lines.
|
||||||
|
glow.a *= glowProgress;
|
||||||
|
line.a *= glowProgress;
|
||||||
|
|
||||||
|
// Do not add the hexagon lines onto transparent parts of the window.
|
||||||
|
glow *= cogl_color_out.a;
|
||||||
|
line *= cogl_color_out.a;
|
||||||
|
|
||||||
|
if (uAdditiveBlending) {
|
||||||
|
cogl_color_out.rgb += glow.rgb * glow.a;
|
||||||
|
cogl_color_out.rgb += line.rgb * line.a;
|
||||||
|
} else {
|
||||||
|
cogl_color_out.rgb = mix(cogl_color_out.rgb, glow.rgb, glow.a);
|
||||||
|
cogl_color_out.rgb = mix(cogl_color_out.rgb, line.rgb, line.a);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,103 @@
|
|||||||
|
// Inject some common shader snippets. It is only possible to include glsl files from the
|
||||||
|
// "common" directory. Also, the files in the "common" directory are not allowed to
|
||||||
|
// include any further files.
|
||||||
|
#include "common/uniforms.glsl"
|
||||||
|
#include "common/noise.glsl"
|
||||||
|
#include "common/edgeMask.glsl"
|
||||||
|
#include "common/compositing.glsl"
|
||||||
|
|
||||||
|
uniform sampler2D uFontTexture;
|
||||||
|
uniform vec3 uTrailColor;
|
||||||
|
uniform vec3 uTipColor;
|
||||||
|
uniform float uLetterSize;
|
||||||
|
uniform float uRandomness;
|
||||||
|
uniform float uOverShoot;
|
||||||
|
|
||||||
|
// These may be configurable in the future.
|
||||||
|
const float EDGE_FADE = 30;
|
||||||
|
const float FADE_WIDTH = 150;
|
||||||
|
const float TRAIL_LENGTH = 0.2;
|
||||||
|
const float FINAL_FADE_START_TIME = 0.8;
|
||||||
|
const float LETTER_TILES = 16.0;
|
||||||
|
const float LETTER_FLICKER_SPEED = 2.0;
|
||||||
|
|
||||||
|
// This returns a flickering grid of random letters.
|
||||||
|
float getText(vec2 fragCoord) {
|
||||||
|
vec2 pixelCoords = fragCoord * uSize;
|
||||||
|
vec2 uv = mod(pixelCoords.xy, uLetterSize) / uLetterSize;
|
||||||
|
vec2 block = pixelCoords / uLetterSize - uv;
|
||||||
|
|
||||||
|
// Choose random letter.
|
||||||
|
uv += floor(hash22(floor(hash22(block) * vec2(12.9898, 78.233) +
|
||||||
|
LETTER_FLICKER_SPEED * uTime + 42.254)) *
|
||||||
|
LETTER_TILES);
|
||||||
|
|
||||||
|
return texture2D(uFontTexture, uv / LETTER_TILES).r;
|
||||||
|
}
|
||||||
|
|
||||||
|
// This returns two values: The first are gradients for the "raindrops" which move
|
||||||
|
// from top to bottom. This is used for fading the letters. The second value is set
|
||||||
|
// to one below each drop and to zero above it. This second value is used for fading
|
||||||
|
// the window texture.
|
||||||
|
vec2 getRain(vec2 fragCoord) {
|
||||||
|
float column = cogl_tex_coord_in[0].x * uSize.x;
|
||||||
|
column -= mod(column, uLetterSize);
|
||||||
|
|
||||||
|
float delay = fract(sin(column) * 78.233) * mix(0.0, 1.0, uRandomness);
|
||||||
|
float speed = fract(cos(column) * 12.989) * mix(0.0, 0.3, uRandomness) + 1.5;
|
||||||
|
|
||||||
|
float distToDrop = (uProgress * 2 - delay) * speed - cogl_tex_coord_in[0].y;
|
||||||
|
|
||||||
|
float rainAlpha = distToDrop >= 0 ? exp(-distToDrop / TRAIL_LENGTH) : 0;
|
||||||
|
float windowAlpha = 1 - clamp(uSize.y * distToDrop, 0, FADE_WIDTH) / FADE_WIDTH;
|
||||||
|
|
||||||
|
// Fade at window borders.
|
||||||
|
rainAlpha *= getAbsoluteEdgeMask(EDGE_FADE, 0.5);
|
||||||
|
|
||||||
|
// Add some variation to the drop start and end position.
|
||||||
|
float shorten =
|
||||||
|
fract(sin(column + 42.0) * 33.423) * mix(0.0, uOverShoot * 0.25, uRandomness);
|
||||||
|
rainAlpha *= smoothstep(0, 1, clamp(cogl_tex_coord_in[0].y / shorten, 0, 1));
|
||||||
|
rainAlpha *= smoothstep(0, 1, clamp((1.0 - cogl_tex_coord_in[0].y) / shorten, 0, 1));
|
||||||
|
|
||||||
|
if (uForOpening) {
|
||||||
|
windowAlpha = 1.0 - windowAlpha;
|
||||||
|
}
|
||||||
|
|
||||||
|
return vec2(rainAlpha, windowAlpha);
|
||||||
|
}
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
vec2 coords = cogl_tex_coord_in[0].st;
|
||||||
|
coords.y = coords.y * (uOverShoot + 1.0) - uOverShoot * 0.5;
|
||||||
|
|
||||||
|
// Get a cool matrix effect. See comments for those methods above.
|
||||||
|
vec2 rainMask = getRain(coords);
|
||||||
|
float textMask = getText(coords);
|
||||||
|
|
||||||
|
// Get the window texture.
|
||||||
|
cogl_color_out = texture2D(uTexture, coords);
|
||||||
|
|
||||||
|
// Shell.GLSLEffect uses straight alpha. So we have to convert from premultiplied.
|
||||||
|
if (cogl_color_out.a > 0) {
|
||||||
|
cogl_color_out.rgb /= cogl_color_out.a;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Fade the window according to the effect mask.
|
||||||
|
cogl_color_out.a *= rainMask.y;
|
||||||
|
|
||||||
|
// This is used to fade out the remaining trails in the end.
|
||||||
|
float finalFade =
|
||||||
|
1 - clamp((uProgress - FINAL_FADE_START_TIME) / (1 - FINAL_FADE_START_TIME), 0, 1);
|
||||||
|
float rainAlpha = finalFade * rainMask.x;
|
||||||
|
|
||||||
|
// Add the matrix effect to the window.
|
||||||
|
vec4 text = vec4(mix(uTrailColor, uTipColor, min(1, pow(rainAlpha + 0.1, 4))),
|
||||||
|
rainAlpha * textMask);
|
||||||
|
cogl_color_out = alphaOver(cogl_color_out, text);
|
||||||
|
|
||||||
|
// These are pretty useful for understanding how this works.
|
||||||
|
// cogl_color_out = vec4(vec3(textMask), 1);
|
||||||
|
// cogl_color_out = vec4(vec3(rainMask.x), 1);
|
||||||
|
// cogl_color_out = vec4(vec3(rainMask.y), 1);
|
||||||
|
}
|
||||||
@@ -0,0 +1,92 @@
|
|||||||
|
// Inject some common shader snippets. It is only possible to include glsl files from the
|
||||||
|
// "common" directory. Also, the files in the "common" directory are not allowed to
|
||||||
|
// include any further files.
|
||||||
|
#include "common/uniforms.glsl"
|
||||||
|
#include "common/noise.glsl"
|
||||||
|
#include "common/math2D.glsl"
|
||||||
|
|
||||||
|
uniform sampler2D uDustTexture;
|
||||||
|
uniform vec4 uDustColor;
|
||||||
|
uniform vec2 uSeed;
|
||||||
|
uniform float uDustScale;
|
||||||
|
|
||||||
|
const float DUST_LAYERS = 4;
|
||||||
|
const float GROW_INTENSITY = 0.05;
|
||||||
|
const float SHRINK_INTENSITY = 0.05;
|
||||||
|
const float WIND_INTENSITY = 0.05;
|
||||||
|
const float ACTOR_SCALE = 1.2;
|
||||||
|
const float PADDING = ACTOR_SCALE / 2.0 - 0.5;
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
// We simply inverse the progress for opening windows.
|
||||||
|
float progress = uForOpening ? uProgress : 1.0 - uProgress;
|
||||||
|
|
||||||
|
float gradient = cogl_tex_coord_in[0].t * ACTOR_SCALE - PADDING;
|
||||||
|
progress = 2.0 - gradient - 2.0 * progress;
|
||||||
|
progress = progress + 0.25 - 0.5 * simplex2D((cogl_tex_coord_in[0].st + uSeed) * 2.0);
|
||||||
|
progress = pow(max(0, progress), 2.0);
|
||||||
|
|
||||||
|
// This may help you to understand how this effect works.
|
||||||
|
// cogl_color_out = vec4(progress, 0, 0, 0);
|
||||||
|
// return;
|
||||||
|
|
||||||
|
cogl_color_out = vec4(0, 0, 0, 0);
|
||||||
|
|
||||||
|
for (float i = 0; i < DUST_LAYERS; ++i) {
|
||||||
|
|
||||||
|
// Create a random direction.
|
||||||
|
float factor = DUST_LAYERS == 1 ? 0 : i / (DUST_LAYERS - 1);
|
||||||
|
float angle = 123.123 * (uSeed.x + factor);
|
||||||
|
vec2 direction = vec2(1.0, 0.0);
|
||||||
|
direction = rotate(direction, angle);
|
||||||
|
|
||||||
|
// Flip direction for one side of the window.
|
||||||
|
vec2 coords = cogl_tex_coord_in[0].st * ACTOR_SCALE - PADDING - 0.5;
|
||||||
|
if (getWinding(direction, coords) > 0) {
|
||||||
|
direction *= -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Flip direction for half the layers.
|
||||||
|
if (factor > 0.5) {
|
||||||
|
direction *= -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// We grow the layer along the random direction, shrink it orthogonally to it
|
||||||
|
// and scale it up slightly.
|
||||||
|
float dist = distToLine(vec2(0.0), direction, coords);
|
||||||
|
vec2 grow = direction * dist * mix(0, GROW_INTENSITY, progress);
|
||||||
|
vec2 shrink =
|
||||||
|
vec2(direction.y, -direction.x) * dist * mix(0, SHRINK_INTENSITY, progress);
|
||||||
|
float scale = mix(1.0, 1.05, factor * progress);
|
||||||
|
coords = (coords + grow + shrink) / scale;
|
||||||
|
|
||||||
|
// Add some wind.
|
||||||
|
coords.x += WIND_INTENSITY * progress * (uForOpening ? 1.0 : -1.0);
|
||||||
|
|
||||||
|
// Now check wether there is actually something in the current dust layer at
|
||||||
|
// the coords position.
|
||||||
|
vec2 dustCoords = (coords + uSeed) * uSize / uDustScale / 100.0;
|
||||||
|
vec2 dustMap = texture2D(uDustTexture, dustCoords).rg;
|
||||||
|
float dustGroup = floor(dustMap.g * DUST_LAYERS * 0.999);
|
||||||
|
|
||||||
|
if (dustGroup == i) {
|
||||||
|
|
||||||
|
// Get the window color.
|
||||||
|
vec4 windowColor = texture2D(uTexture, coords + 0.5);
|
||||||
|
|
||||||
|
// Shell.GLSLEffect uses straight alpha. So we have to convert from premultiplied.
|
||||||
|
if (windowColor.a > 0) {
|
||||||
|
windowColor.rgb /= windowColor.a;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Fade the window color to uDustColor.
|
||||||
|
vec3 dustColor = mix(windowColor.rgb, uDustColor.rgb, uDustColor.a);
|
||||||
|
windowColor.rgb = mix(windowColor.rgb, dustColor, progress);
|
||||||
|
|
||||||
|
// Dissolve and blend the layers.
|
||||||
|
if (dustMap.x - progress > 0) {
|
||||||
|
cogl_color_out = windowColor;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,116 @@
|
|||||||
|
// Inject some common shader snippets. It is only possible to include glsl files from the
|
||||||
|
// "common" directory. Also, the files in the "common" directory are not allowed to
|
||||||
|
// include any further files.
|
||||||
|
#include "common/uniforms.glsl"
|
||||||
|
#include "common/noise.glsl"
|
||||||
|
#include "common/compositing.glsl"
|
||||||
|
#include "common/easing.glsl"
|
||||||
|
|
||||||
|
// See assets/README.md for how this texture was created.
|
||||||
|
uniform sampler2D uClawTexture;
|
||||||
|
uniform vec4 uFlashColor;
|
||||||
|
uniform vec2 uSeed;
|
||||||
|
uniform float uClawSize;
|
||||||
|
uniform float uNumClaws;
|
||||||
|
uniform float uWarpIntensity;
|
||||||
|
|
||||||
|
const float FLASH_INTENSITY = 0.1;
|
||||||
|
const float MAX_SPAWN_TIME =
|
||||||
|
0.6; // Scratches will only start in the first half of the animation.
|
||||||
|
const float FF_TIME = 0.6; // Relative time for the final fade to transparency.
|
||||||
|
|
||||||
|
// This method generates a grid of randomly rotated, slightly shifted and scaled
|
||||||
|
// UV squares. It returns the texture coords of the UV square at the given actor
|
||||||
|
// coordinates. If these do not fall into one of the UV grids, the coordinates of
|
||||||
|
// the closest UV grid will be clamped and returned.
|
||||||
|
vec2 getClawUV(vec2 texCoords, float gridScale, vec2 seed) {
|
||||||
|
|
||||||
|
// Shift coordinates by a random offset and make sure the have a 1:1 aspect ratio.
|
||||||
|
vec2 coords = texCoords + hash22(seed);
|
||||||
|
coords *= uSize.x < uSize.y ? vec2(1.0, 1.0 * uSize.y / uSize.x)
|
||||||
|
: vec2(1.0 * uSize.x / uSize.y, 1.0);
|
||||||
|
|
||||||
|
// Apply global scale.
|
||||||
|
coords *= gridScale;
|
||||||
|
|
||||||
|
// Get grid cell coordinates in [0..1].
|
||||||
|
vec2 cellUV = mod(coords, vec2(1));
|
||||||
|
|
||||||
|
// This is unique for each cell.
|
||||||
|
vec2 cellID = coords - cellUV + vec2(362.456);
|
||||||
|
|
||||||
|
// Add random rotation, scale and offset to each grid cell.
|
||||||
|
float scale = mix(0.8, 1.0, hash12(cellID * seed * 134.451));
|
||||||
|
float offsetX = mix(0.0, 1.0 - scale, hash12(cellID * seed * 54.4129));
|
||||||
|
float offsetY = mix(0.0, 1.0 - scale, hash12(cellID * seed * 25.3089));
|
||||||
|
float rotation = mix(0.0, 2.0 * 3.141, hash12(cellID * seed * 2.99837));
|
||||||
|
|
||||||
|
cellUV -= vec2(offsetX, offsetY);
|
||||||
|
cellUV /= scale;
|
||||||
|
|
||||||
|
cellUV -= 0.5;
|
||||||
|
cellUV = vec2(cellUV.x * cos(rotation) - cellUV.y * sin(rotation),
|
||||||
|
cellUV.x * sin(rotation) + cellUV.y * cos(rotation));
|
||||||
|
cellUV += 0.5;
|
||||||
|
|
||||||
|
// Clamp resulting coordinates.
|
||||||
|
return clamp(cellUV, vec2(0), vec2(1));
|
||||||
|
}
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
float progress = uForOpening ? 1.0 - easeOutQuad(uProgress) : easeOutQuad(uProgress);
|
||||||
|
|
||||||
|
// Warp the texture coordinates to create a blow-up effect.
|
||||||
|
vec2 coords = cogl_tex_coord_in[0].st * 2.0 - 1.0;
|
||||||
|
float dist = length(coords);
|
||||||
|
coords = (coords / dist * pow(dist, 1.0 + uWarpIntensity)) * 0.5 + 0.5;
|
||||||
|
coords = mix(cogl_tex_coord_in[0].st, coords, progress);
|
||||||
|
|
||||||
|
// Scale down the window according to the warp.
|
||||||
|
float scale = 0.5 * uWarpIntensity * (1.0 - progress);
|
||||||
|
coords = coords * (scale + 1.0) - scale * 0.5;
|
||||||
|
|
||||||
|
// Accumulate several random scratches. The color in the scratch map refers to the
|
||||||
|
// relative time when the respective part will become invisible. Therefore we can
|
||||||
|
// add a value to make the scratch appear later.
|
||||||
|
float scratchMap = 1.0;
|
||||||
|
for (int i = 0; i < uNumClaws; ++i) {
|
||||||
|
vec2 uv = getClawUV(coords, 1.0 / uClawSize, uSeed * (i + 1));
|
||||||
|
float delay = i / uNumClaws * MAX_SPAWN_TIME;
|
||||||
|
scratchMap = min(scratchMap, clamp(texture2D(uClawTexture, uv).r + delay, 0, 1));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get the window texture. We shift the texture lookup by the local derivative of
|
||||||
|
// the claw texture in order to mimic some folding distortion.
|
||||||
|
vec2 offset = vec2(dFdx(scratchMap), dFdy(scratchMap)) * progress * 0.5;
|
||||||
|
cogl_color_out = texture2D(uTexture, coords + offset);
|
||||||
|
|
||||||
|
// Shell.GLSLEffect uses straight alpha. So we have to convert from premultiplied.
|
||||||
|
if (cogl_color_out.a > 0) {
|
||||||
|
cogl_color_out.rgb /= cogl_color_out.a;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add colorful flashes.
|
||||||
|
float flashIntensity = 1.0 / FLASH_INTENSITY * (scratchMap - progress) + 1;
|
||||||
|
if (flashIntensity < 0 || flashIntensity >= 1) {
|
||||||
|
flashIntensity = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Hide flashes where there is now window.
|
||||||
|
vec4 flash = uFlashColor;
|
||||||
|
flash.a *= flashIntensity * cogl_color_out.a * (1.0 - progress);
|
||||||
|
|
||||||
|
// Hide scratched out parts.
|
||||||
|
cogl_color_out.a *= (scratchMap > progress ? 1 : 0);
|
||||||
|
|
||||||
|
// Add flash color.
|
||||||
|
cogl_color_out = alphaOver(cogl_color_out, flash);
|
||||||
|
|
||||||
|
// Fade out the remaining shards.
|
||||||
|
float fadeProgress = smoothstep(0, 1, (progress - 1.0 + FF_TIME) / FF_TIME);
|
||||||
|
cogl_color_out.a *= sqrt(1 - fadeProgress * fadeProgress);
|
||||||
|
|
||||||
|
// These are pretty useful for understanding how this works.
|
||||||
|
// cogl_color_out = vec4(vec3(flashIntensity), 1);
|
||||||
|
// cogl_color_out = vec4(vec3(scratchMap), 1);
|
||||||
|
}
|
||||||
@@ -0,0 +1,64 @@
|
|||||||
|
// Inject some common shader snippets. It is only possible to include glsl files from the
|
||||||
|
// "common" directory. Also, the files in the "common" directory are not allowed to
|
||||||
|
// include any further files.
|
||||||
|
#include "common/uniforms.glsl"
|
||||||
|
#include "common/easing.glsl"
|
||||||
|
|
||||||
|
uniform vec3 uColor;
|
||||||
|
|
||||||
|
const float BLUR_WIDTH = 0.01; // Width of the gradients.
|
||||||
|
const float TB_TIME = 0.7; // Relative time for the top/bottom animation.
|
||||||
|
const float LR_TIME = 0.4; // Relative time for the left/right animation.
|
||||||
|
const float LR_DELAY = 0.6; // Delay after which the left/right animation starts.
|
||||||
|
const float FF_TIME = 0.1; // Relative time for the final fade to transparency.
|
||||||
|
const float SCALING = 0.5; // Additional vertical scaling of the window.
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
float progress = uForOpening ? 1.0 - easeOutQuad(uProgress) : easeOutQuad(uProgress);
|
||||||
|
|
||||||
|
// Scale down the window vertically.
|
||||||
|
float scale = 1.0 / mix(1.0, SCALING, progress) - 1.0;
|
||||||
|
vec2 coords = cogl_tex_coord_in[0].st;
|
||||||
|
coords.y = coords.y * (scale + 1.0) - scale * 0.5;
|
||||||
|
|
||||||
|
// All of these are in [0..1] during the different stages of the animation.
|
||||||
|
// tb refers to the top-bottom animation.
|
||||||
|
// lr refers to the left-right animation.
|
||||||
|
// ff refers to the final fade animation.
|
||||||
|
float tbProgress = smoothstep(0, 1, clamp(progress / TB_TIME, 0, 1));
|
||||||
|
float lrProgress = smoothstep(0, 1, clamp((progress - LR_DELAY) / LR_TIME, 0, 1));
|
||||||
|
float ffProgress = smoothstep(0, 1, clamp((progress - 1.0 + FF_TIME) / FF_TIME, 0, 1));
|
||||||
|
|
||||||
|
// This is a top-center-bottom gradient in [0..1..0]
|
||||||
|
float tb = coords.y * 2;
|
||||||
|
tb = tb < 1 ? tb : 2 - tb;
|
||||||
|
|
||||||
|
// This is a left-center-right gradient in [0..1..0]
|
||||||
|
float lr = coords.x * 2;
|
||||||
|
lr = lr < 1 ? lr : 2 - lr;
|
||||||
|
|
||||||
|
// Combine the progress values with the gradients to create the alpha masks.
|
||||||
|
float tbMask = 1 - smoothstep(0, 1, clamp((tbProgress - tb) / BLUR_WIDTH, 0, 1));
|
||||||
|
float lrMask = 1 - smoothstep(0, 1, clamp((lrProgress - lr) / BLUR_WIDTH, 0, 1));
|
||||||
|
float ffMask = 1 - smoothstep(0, 1, ffProgress);
|
||||||
|
|
||||||
|
// Assemble the final alpha value.
|
||||||
|
float mask = tbMask * lrMask * ffMask;
|
||||||
|
|
||||||
|
cogl_color_out = texture2D(uTexture, coords);
|
||||||
|
|
||||||
|
// Shell.GLSLEffect uses straight alpha. So we have to convert from premultiplied.
|
||||||
|
if (cogl_color_out.a > 0) {
|
||||||
|
cogl_color_out.rgb /= cogl_color_out.a;
|
||||||
|
}
|
||||||
|
|
||||||
|
cogl_color_out.rgb =
|
||||||
|
mix(cogl_color_out.rgb, uColor * cogl_color_out.a, smoothstep(0, 1, progress));
|
||||||
|
cogl_color_out.a *= mask;
|
||||||
|
|
||||||
|
// These are pretty useful for understanding how this works.
|
||||||
|
// cogl_color_out = vec4(vec3(tbMask), 1);
|
||||||
|
// cogl_color_out = vec4(vec3(lrMask), 1);
|
||||||
|
// cogl_color_out = vec4(vec3(ffMask), 1);
|
||||||
|
// cogl_color_out = vec4(vec3(mask), 1);
|
||||||
|
}
|
||||||
@@ -0,0 +1,107 @@
|
|||||||
|
// Inject some common shader snippets. It is only possible to include glsl files from the
|
||||||
|
// "common" directory. Also, the files in the "common" directory are not allowed to
|
||||||
|
// include any further files.
|
||||||
|
#include "common/uniforms.glsl"
|
||||||
|
#include "common/noise.glsl"
|
||||||
|
#include "common/edgeMask.glsl"
|
||||||
|
#include "common/compositing.glsl"
|
||||||
|
#include "common/easing.glsl"
|
||||||
|
|
||||||
|
uniform vec2 uSeed;
|
||||||
|
uniform vec3 uColor;
|
||||||
|
uniform float uScale;
|
||||||
|
|
||||||
|
const float WISPS_RADIUS = 20.0;
|
||||||
|
const float WISPS_SPEED = 10.0;
|
||||||
|
const float WISPS_SPACING = 40 + WISPS_RADIUS;
|
||||||
|
const int WISPS_LAYERS = 8;
|
||||||
|
const float WISPS_IN_TIME = 0.5;
|
||||||
|
const float WINDOW_OUT_TIME = 1.0;
|
||||||
|
const float SCALING = 0.9;
|
||||||
|
|
||||||
|
// Returns a grid of randomly moving points. Each grid cell contains one point which
|
||||||
|
// moves on an ellipse.
|
||||||
|
float getWisps(vec2 texCoords, float gridSize, vec2 seed) {
|
||||||
|
|
||||||
|
// Shift coordinates by a random offset and make sure the have a 1:1 aspect ratio.
|
||||||
|
vec2 coords = (texCoords + hash22(seed)) * uSize;
|
||||||
|
|
||||||
|
// Apply global scale.
|
||||||
|
coords /= gridSize;
|
||||||
|
|
||||||
|
// Get grid cell coordinates in [0..1].
|
||||||
|
vec2 cellUV = mod(coords, vec2(1));
|
||||||
|
|
||||||
|
// This is unique for each cell.
|
||||||
|
vec2 cellID = coords - cellUV + vec2(362.456);
|
||||||
|
|
||||||
|
// Add random rotation, scale and offset to each grid cell.
|
||||||
|
float speed = mix(10.0, 15.0, hash12(cellID * seed * 134.451)) / gridSize * WISPS_SPEED;
|
||||||
|
float rotation = mix(0.0, 6.283, hash12(cellID * seed * 54.4129));
|
||||||
|
float radius = mix(0.5, 1.0, hash12(cellID * seed * 19.1249)) * WISPS_RADIUS;
|
||||||
|
float roundness = mix(-1.0, 1.0, hash12(cellID * seed * 7.51949));
|
||||||
|
|
||||||
|
vec2 offset = vec2(sin(speed * (uTime + 1)) * roundness, cos(speed * (uTime + 1)));
|
||||||
|
offset *= 0.5 - 0.5 * radius / gridSize;
|
||||||
|
offset = vec2(offset.x * cos(rotation) - offset.y * sin(rotation),
|
||||||
|
offset.x * sin(rotation) + offset.y * cos(rotation));
|
||||||
|
|
||||||
|
cellUV += offset;
|
||||||
|
|
||||||
|
// Use distance to center of shifted / rotated UV coordinates to draw a glaring point.
|
||||||
|
float dist = length(cellUV - 0.5) * gridSize / radius;
|
||||||
|
if (dist < 1.0) {
|
||||||
|
return min(5, 0.01 / pow(dist, 2.0));
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0.0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
float progress = uForOpening ? 1.0 - easeOutQuad(uProgress) : easeOutQuad(uProgress);
|
||||||
|
|
||||||
|
// Scale down the window slightly.
|
||||||
|
float scale = 1.0 / mix(1.0, SCALING, progress) - 1.0;
|
||||||
|
vec2 coords = cogl_tex_coord_in[0].st * (scale + 1.0) - scale * 0.5;
|
||||||
|
|
||||||
|
// Get the color of the window.
|
||||||
|
cogl_color_out = texture2D(uTexture, coords);
|
||||||
|
|
||||||
|
// Shell.GLSLEffect uses straight alpha. So we have to convert from premultiplied.
|
||||||
|
if (cogl_color_out.a > 0) {
|
||||||
|
cogl_color_out.rgb /= cogl_color_out.a;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Compute several layers of moving wisps.
|
||||||
|
vec2 uv = (cogl_tex_coord_in[0].st - 0.5) / mix(1.0, 0.5, progress) + 0.5;
|
||||||
|
uv /= uScale;
|
||||||
|
float wisps = 0;
|
||||||
|
for (int i = 0; i < WISPS_LAYERS; ++i) {
|
||||||
|
wisps += getWisps(uv * 0.3, WISPS_SPACING, uSeed * (i + 1));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Compute shrinking edge mask.
|
||||||
|
float mask = getRelativeEdgeMask(mix(0.01, 0.5, progress));
|
||||||
|
|
||||||
|
// Compute three different progress values.
|
||||||
|
float wispsIn = smoothstep(0, 1, clamp(progress / WISPS_IN_TIME, 0, 1));
|
||||||
|
float wispsOut =
|
||||||
|
smoothstep(0, 1, clamp((progress - WISPS_IN_TIME) / (1.0 - WISPS_IN_TIME), 0, 1));
|
||||||
|
float windowOut = smoothstep(0, 1, clamp(progress / WINDOW_OUT_TIME, 0, 1));
|
||||||
|
|
||||||
|
// Use a noise function to dissolve the window.
|
||||||
|
float noise = smoothstep(1.0, 0.0, abs(2.0 * simplex2DFractal(uv * uSize / 250) - 1.0));
|
||||||
|
float windowMask = 1.0 - (windowOut < 0.5 ? mix(0.0, noise, windowOut * 2.0)
|
||||||
|
: mix(noise, 1.0, windowOut * 2.0 - 1.0));
|
||||||
|
cogl_color_out.a *= windowMask * mask;
|
||||||
|
|
||||||
|
// Add the wisps.
|
||||||
|
vec4 wispColor = wisps * vec4(uColor, min(wispsIn, 1.0 - wispsOut) * mask);
|
||||||
|
cogl_color_out = alphaOver(cogl_color_out, wispColor);
|
||||||
|
|
||||||
|
// These are pretty useful for understanding how this works.
|
||||||
|
// cogl_color_out = vec4(vec3(windowMask), 1.0);
|
||||||
|
// cogl_color_out = vec4(vec3(wisps), 1.0);
|
||||||
|
// cogl_color_out = vec4(vec3(noise), 1.0);
|
||||||
|
// cogl_color_out = vec4(vec3(mask*min(wispsIn, 1.0 - wispsOut)), 1.0);
|
||||||
|
}
|
||||||
@@ -0,0 +1,46 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<interface domain="burn-my-windows">
|
||||||
|
<menu id="main-menu">
|
||||||
|
<section>
|
||||||
|
<item>
|
||||||
|
<attribute name="label" translatable="yes">Visit Homepage</attribute>
|
||||||
|
<attribute name="action">prefs.homepage</attribute>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<attribute name="label" translatable="yes">View Changelog</attribute>
|
||||||
|
<attribute name="action">prefs.changelog</attribute>
|
||||||
|
</item>
|
||||||
|
</section>
|
||||||
|
<section>
|
||||||
|
<item>
|
||||||
|
<attribute name="label" translatable="yes">Report a Bug</attribute>
|
||||||
|
<attribute name="action">prefs.bugs</attribute>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<attribute name="label" translatable="yes">Create an Effect</attribute>
|
||||||
|
<attribute name="action">prefs.new-effect</attribute>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<attribute name="label" translatable="yes">Translate</attribute>
|
||||||
|
<attribute name="action">prefs.translate</attribute>
|
||||||
|
</item>
|
||||||
|
<submenu>
|
||||||
|
<attribute name="label" translatable="yes">Donate</attribute>
|
||||||
|
<item>
|
||||||
|
<attribute name="label">PayPal</attribute>
|
||||||
|
<attribute name="action">prefs.donate-paypal</attribute>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<attribute name="label">GitHub</attribute>
|
||||||
|
<attribute name="action">prefs.donate-github</attribute>
|
||||||
|
</item>
|
||||||
|
</submenu>
|
||||||
|
</section>
|
||||||
|
<section>
|
||||||
|
<item>
|
||||||
|
<attribute name="label" translatable="yes">About Burn-My-Windows</attribute>
|
||||||
|
<attribute name="action">prefs.about</attribute>
|
||||||
|
</item>
|
||||||
|
</section>
|
||||||
|
</menu>
|
||||||
|
</interface>
|
||||||
@@ -1,342 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<interface domain="desktop-cube">
|
|
||||||
<requires lib="gtk" version="3.0" />
|
|
||||||
|
|
||||||
<object class="GtkAdjustment" id="destroy-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>
|
|
||||||
|
|
||||||
<object class="GtkAdjustment" id="flame-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="flame-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="GtkScrolledWindow" id="settings-widget">
|
|
||||||
<property name="hscrollbar-policy">never</property>
|
|
||||||
<property name="min-content-height">200</property>
|
|
||||||
<property name="hexpand">0</property>
|
|
||||||
<property name="vexpand">1</property>
|
|
||||||
<child>
|
|
||||||
<object class="GtkViewport">
|
|
||||||
<child>
|
|
||||||
<object class="GtkBox">
|
|
||||||
<property name="orientation">vertical</property>
|
|
||||||
<property name="margin-start">60</property>
|
|
||||||
<property name="margin-end">60</property>
|
|
||||||
<property name="margin-top">30</property>
|
|
||||||
<property name="margin-bottom">30</property>
|
|
||||||
|
|
||||||
<child>
|
|
||||||
<object class="GtkLabel">
|
|
||||||
<property name="margin-top">30</property>
|
|
||||||
<property name="margin-bottom">10</property>
|
|
||||||
<property name="label">General Options</property>
|
|
||||||
<property name="xalign">0</property>
|
|
||||||
<style>
|
|
||||||
<class name="title-4" />
|
|
||||||
</style>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
|
|
||||||
|
|
||||||
<child>
|
|
||||||
<object class="GtkFrame">
|
|
||||||
<child>
|
|
||||||
<object class="GtkListBox">
|
|
||||||
<property name="selection-mode">none</property>
|
|
||||||
|
|
||||||
<child>
|
|
||||||
<object class="GtkListBoxRow">
|
|
||||||
<property name="margin-start">10</property>
|
|
||||||
<property name="margin-end">10</property>
|
|
||||||
<property name="margin-top">10</property>
|
|
||||||
<property name="margin-bottom">10</property>
|
|
||||||
<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">destroy-animation-time</property>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkButton" id="reset-destroy-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">Reset to Default Value</property>
|
|
||||||
<style>
|
|
||||||
<class name="flat" />
|
|
||||||
</style>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
|
|
||||||
|
|
||||||
<child>
|
|
||||||
<object class="GtkBox">
|
|
||||||
<property name="margin-top">30</property>
|
|
||||||
<property name="margin-bottom">10</property>
|
|
||||||
<child>
|
|
||||||
<object class="GtkLabel">
|
|
||||||
<property name="label">Fire Options</property>
|
|
||||||
<property name="xalign">0</property>
|
|
||||||
<property name="hexpand">1</property>
|
|
||||||
<style>
|
|
||||||
<class name="title-4" />
|
|
||||||
</style>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkMenuButton" id="fire-preset-button">
|
|
||||||
<property name="relief">none</property>
|
|
||||||
<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>
|
|
||||||
|
|
||||||
<child>
|
|
||||||
<object class="GtkFrame">
|
|
||||||
<child>
|
|
||||||
<object class="GtkListBox">
|
|
||||||
<property name="selection-mode">none</property>
|
|
||||||
<style>
|
|
||||||
<class name="rich-list" />
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<child>
|
|
||||||
<object class="GtkListBoxRow">
|
|
||||||
<property name="margin-start">10</property>
|
|
||||||
<property name="margin-end">10</property>
|
|
||||||
<property name="margin-top">10</property>
|
|
||||||
<property name="margin-bottom">10</property>
|
|
||||||
<property name="activatable">0</property>
|
|
||||||
<child>
|
|
||||||
<object class="GtkBox">
|
|
||||||
<property name="spacing">8</property>
|
|
||||||
<child>
|
|
||||||
<object class="GtkLabel">
|
|
||||||
<property name="label" translatable="yes">Flame 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">flame-scale</property>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkButton" id="reset-flame-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">Reset to Default Value</property>
|
|
||||||
<style>
|
|
||||||
<class name="flat" />
|
|
||||||
</style>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
|
|
||||||
<child>
|
|
||||||
<object class="GtkListBoxRow">
|
|
||||||
<property name="margin-start">10</property>
|
|
||||||
<property name="margin-end">10</property>
|
|
||||||
<property name="margin-top">10</property>
|
|
||||||
<property name="margin-bottom">10</property>
|
|
||||||
<property name="activatable">0</property>
|
|
||||||
<child>
|
|
||||||
<object class="GtkBox">
|
|
||||||
<property name="spacing">8</property>
|
|
||||||
<child>
|
|
||||||
<object class="GtkLabel">
|
|
||||||
<property name="label" translatable="yes">Flame Movement 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">flame-movement-speed</property>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkButton" id="reset-flame-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">Reset to Default Value</property>
|
|
||||||
<style>
|
|
||||||
<class name="flat" />
|
|
||||||
</style>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
|
|
||||||
<child>
|
|
||||||
<object class="GtkListBoxRow">
|
|
||||||
<property name="margin-start">10</property>
|
|
||||||
<property name="margin-end">10</property>
|
|
||||||
<property name="margin-top">10</property>
|
|
||||||
<property name="margin-bottom">10</property>
|
|
||||||
<property name="activatable">0</property>
|
|
||||||
<child>
|
|
||||||
|
|
||||||
<object class="GtkBox">
|
|
||||||
<property name="spacing">8</property>
|
|
||||||
<child>
|
|
||||||
<object class="GtkLabel">
|
|
||||||
<property name="label" translatable="yes">Fire 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">Reset to Default Value</property>
|
|
||||||
<style>
|
|
||||||
<class name="flat" />
|
|
||||||
</style>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
|
|
||||||
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
|
|
||||||
|
|
||||||
</interface>
|
|
||||||
@@ -0,0 +1,304 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<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="GtkBox" id="apparition-prefs">
|
||||||
|
<property name="orientation">vertical</property>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkFrame">
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBox">
|
||||||
|
<property name="selection-mode">none</property>
|
||||||
|
<style>
|
||||||
|
<class name="rich-list" />
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="margin-start">10</property>
|
||||||
|
<property name="margin-end">10</property>
|
||||||
|
<property name="margin-top">10</property>
|
||||||
|
<property name="margin-bottom">10</property>
|
||||||
|
<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="margin-start">10</property>
|
||||||
|
<property name="margin-end">10</property>
|
||||||
|
<property name="margin-top">10</property>
|
||||||
|
<property name="margin-bottom">10</property>
|
||||||
|
<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="margin-start">10</property>
|
||||||
|
<property name="margin-end">10</property>
|
||||||
|
<property name="margin-top">10</property>
|
||||||
|
<property name="margin-bottom">10</property>
|
||||||
|
<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="margin-start">10</property>
|
||||||
|
<property name="margin-end">10</property>
|
||||||
|
<property name="margin-top">10</property>
|
||||||
|
<property name="margin-bottom">10</property>
|
||||||
|
<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="margin-start">10</property>
|
||||||
|
<property name="margin-end">10</property>
|
||||||
|
<property name="margin-top">10</property>
|
||||||
|
<property name="margin-bottom">10</property>
|
||||||
|
<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>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
|
||||||
|
</object>
|
||||||
|
|
||||||
|
</interface>
|
||||||
@@ -0,0 +1,179 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<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="GtkBox" id="energize-a-prefs">
|
||||||
|
<property name="orientation">vertical</property>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkFrame">
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBox">
|
||||||
|
<property name="selection-mode">none</property>
|
||||||
|
<style>
|
||||||
|
<class name="rich-list" />
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="margin-start">10</property>
|
||||||
|
<property name="margin-end">10</property>
|
||||||
|
<property name="margin-top">10</property>
|
||||||
|
<property name="margin-bottom">10</property>
|
||||||
|
<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="margin-start">10</property>
|
||||||
|
<property name="margin-end">10</property>
|
||||||
|
<property name="margin-top">10</property>
|
||||||
|
<property name="margin-bottom">10</property>
|
||||||
|
<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="margin-start">10</property>
|
||||||
|
<property name="margin-end">10</property>
|
||||||
|
<property name="margin-top">10</property>
|
||||||
|
<property name="margin-bottom">10</property>
|
||||||
|
<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>
|
||||||
|
</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>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
|
||||||
|
</object>
|
||||||
|
|
||||||
|
</interface>
|
||||||
@@ -0,0 +1,179 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<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="GtkBox" id="energize-b-prefs">
|
||||||
|
<property name="orientation">vertical</property>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkFrame">
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBox">
|
||||||
|
<property name="selection-mode">none</property>
|
||||||
|
<style>
|
||||||
|
<class name="rich-list" />
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="margin-start">10</property>
|
||||||
|
<property name="margin-end">10</property>
|
||||||
|
<property name="margin-top">10</property>
|
||||||
|
<property name="margin-bottom">10</property>
|
||||||
|
<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="margin-start">10</property>
|
||||||
|
<property name="margin-end">10</property>
|
||||||
|
<property name="margin-top">10</property>
|
||||||
|
<property name="margin-bottom">10</property>
|
||||||
|
<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="margin-start">10</property>
|
||||||
|
<property name="margin-end">10</property>
|
||||||
|
<property name="margin-top">10</property>
|
||||||
|
<property name="margin-bottom">10</property>
|
||||||
|
<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>
|
||||||
|
</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>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
|
||||||
|
</object>
|
||||||
|
|
||||||
|
</interface>
|
||||||
@@ -0,0 +1,362 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<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="flame-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="flame-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="GtkBox" id="fire-prefs">
|
||||||
|
<property name="orientation">vertical</property>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkFrame">
|
||||||
|
<property name="margin-bottom">20</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBox">
|
||||||
|
<property name="selection-mode">none</property>
|
||||||
|
<style>
|
||||||
|
<class name="rich-list" />
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="margin-start">10</property>
|
||||||
|
<property name="margin-end">10</property>
|
||||||
|
<property name="margin-top">10</property>
|
||||||
|
<property name="margin-bottom">10</property>
|
||||||
|
<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="margin-start">10</property>
|
||||||
|
<property name="margin-end">10</property>
|
||||||
|
<property name="margin-top">10</property>
|
||||||
|
<property name="margin-bottom">10</property>
|
||||||
|
<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="margin-start">10</property>
|
||||||
|
<property name="margin-end">10</property>
|
||||||
|
<property name="margin-top">10</property>
|
||||||
|
<property name="margin-bottom">10</property>
|
||||||
|
<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">flame-scale</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-flame-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="margin-start">10</property>
|
||||||
|
<property name="margin-end">10</property>
|
||||||
|
<property name="margin-top">10</property>
|
||||||
|
<property name="margin-bottom">10</property>
|
||||||
|
<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">flame-movement-speed</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-flame-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="margin-start">10</property>
|
||||||
|
<property name="margin-end">10</property>
|
||||||
|
<property name="margin-top">10</property>
|
||||||
|
<property name="margin-bottom">10</property>
|
||||||
|
<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="flame-3d-noise">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-flame-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="margin-start">10</property>
|
||||||
|
<property name="margin-end">10</property>
|
||||||
|
<property name="margin-top">10</property>
|
||||||
|
<property name="margin-bottom">10</property>
|
||||||
|
<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>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
|
||||||
|
</interface>
|
||||||
@@ -0,0 +1,340 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<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="GtkBox" id="hexagon-prefs">
|
||||||
|
<property name="orientation">vertical</property>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkFrame">
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBox">
|
||||||
|
<property name="selection-mode">none</property>
|
||||||
|
<style>
|
||||||
|
<class name="rich-list" />
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="margin-start">10</property>
|
||||||
|
<property name="margin-end">10</property>
|
||||||
|
<property name="margin-top">10</property>
|
||||||
|
<property name="margin-bottom">10</property>
|
||||||
|
<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="margin-start">10</property>
|
||||||
|
<property name="margin-end">10</property>
|
||||||
|
<property name="margin-top">10</property>
|
||||||
|
<property name="margin-bottom">10</property>
|
||||||
|
<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="margin-start">10</property>
|
||||||
|
<property name="margin-end">10</property>
|
||||||
|
<property name="margin-top">10</property>
|
||||||
|
<property name="margin-bottom">10</property>
|
||||||
|
<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="margin-start">10</property>
|
||||||
|
<property name="margin-end">10</property>
|
||||||
|
<property name="margin-top">10</property>
|
||||||
|
<property name="margin-bottom">10</property>
|
||||||
|
<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>
|
||||||
|
</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="margin-start">10</property>
|
||||||
|
<property name="margin-end">10</property>
|
||||||
|
<property name="margin-top">10</property>
|
||||||
|
<property name="margin-bottom">10</property>
|
||||||
|
<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>
|
||||||
|
</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="margin-start">10</property>
|
||||||
|
<property name="margin-end">10</property>
|
||||||
|
<property name="margin-top">10</property>
|
||||||
|
<property name="margin-bottom">10</property>
|
||||||
|
<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>
|
||||||
|
</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>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
|
||||||
|
</object>
|
||||||
|
|
||||||
|
</interface>
|
||||||
@@ -0,0 +1,123 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<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="GtkBox" id="tv-prefs">
|
||||||
|
<property name="orientation">vertical</property>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkFrame">
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBox">
|
||||||
|
<property name="selection-mode">none</property>
|
||||||
|
<style>
|
||||||
|
<class name="rich-list" />
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="margin-start">10</property>
|
||||||
|
<property name="margin-end">10</property>
|
||||||
|
<property name="margin-top">10</property>
|
||||||
|
<property name="margin-bottom">10</property>
|
||||||
|
<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="margin-start">10</property>
|
||||||
|
<property name="margin-end">10</property>
|
||||||
|
<property name="margin-top">10</property>
|
||||||
|
<property name="margin-bottom">10</property>
|
||||||
|
<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">0</property>
|
||||||
|
<property name="show_editor">1</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>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
|
||||||
|
</object>
|
||||||
|
|
||||||
|
</interface>
|
||||||
@@ -0,0 +1,179 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<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="GtkBox" id="wisps-prefs">
|
||||||
|
<property name="orientation">vertical</property>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkFrame">
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBox">
|
||||||
|
<property name="selection-mode">none</property>
|
||||||
|
<style>
|
||||||
|
<class name="rich-list" />
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="margin-start">10</property>
|
||||||
|
<property name="margin-end">10</property>
|
||||||
|
<property name="margin-top">10</property>
|
||||||
|
<property name="margin-bottom">10</property>
|
||||||
|
<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="margin-start">10</property>
|
||||||
|
<property name="margin-end">10</property>
|
||||||
|
<property name="margin-top">10</property>
|
||||||
|
<property name="margin-bottom">10</property>
|
||||||
|
<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="margin-start">10</property>
|
||||||
|
<property name="margin-end">10</property>
|
||||||
|
<property name="margin-top">10</property>
|
||||||
|
<property name="margin-bottom">10</property>
|
||||||
|
<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">
|
||||||
|
<property name="use_alpha">0</property>
|
||||||
|
<property name="show_editor">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-wisps-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>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
|
||||||
|
</object>
|
||||||
|
|
||||||
|
</interface>
|
||||||
@@ -0,0 +1,53 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<interface domain="burn-my-windows">
|
||||||
|
<requires lib="gtk" version="3.0" />
|
||||||
|
|
||||||
|
<template class="BurnMyWindowsEffectPage" parent="GtkBox">
|
||||||
|
<property name="orientation">vertical</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
<property name="spacing">10</property>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel" id="label">
|
||||||
|
<property name="xalign">0</property>
|
||||||
|
<property name="hexpand">1</property>
|
||||||
|
<style>
|
||||||
|
<class name="large-title" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="button">
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<property name="margin_start">8</property>
|
||||||
|
<property name="margin_end">8</property>
|
||||||
|
<property name="spacing">6</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkImage">
|
||||||
|
<property name="icon_name">media-playback-start-symbolic</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="label" translatable="yes">Preview this Effect</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<style>
|
||||||
|
<class name="pill-button" />
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</template>
|
||||||
|
|
||||||
|
</interface>
|
||||||
@@ -0,0 +1,236 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<interface domain="burn-my-windows">
|
||||||
|
<requires lib="gtk" version="3.0" />
|
||||||
|
|
||||||
|
<menu id="close-effect-menu"></menu>
|
||||||
|
<menu id="open-effect-menu"></menu>
|
||||||
|
|
||||||
|
<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">open-menu-symbolic</property>
|
||||||
|
<property name="visible">1</property>
|
||||||
|
<property name="icon-size">1</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
|
||||||
|
<object class="GtkBox" id="general-prefs">
|
||||||
|
<property name="orientation">vertical</property>
|
||||||
|
<property name="margin-top">30</property>
|
||||||
|
<property name="margin-bottom">30</property>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkImage">
|
||||||
|
<property name="valign">center</property>
|
||||||
|
<property name="icon-name">burn-my-windows-symbolic</property>
|
||||||
|
<property name="pixel_size">128</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Welcome to Burn-My-Windows!</property>
|
||||||
|
<property name="margin-top">8</property>
|
||||||
|
<property name="margin-bottom">6</property>
|
||||||
|
<style>
|
||||||
|
<class name="large-title" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">If you like this extension, recommend it to your friends :)</property>
|
||||||
|
<property name="margin-bottom">36</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkFrame">
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBox">
|
||||||
|
<property name="selection-mode">none</property>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkListBoxRow">
|
||||||
|
<property name="margin-start">10</property>
|
||||||
|
<property name="margin-end">10</property>
|
||||||
|
<property name="margin-top">10</property>
|
||||||
|
<property name="margin-bottom">10</property>
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<property name="spacing">8</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<property name="orientation">vertical</property>
|
||||||
|
<property name="spacing">3</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Open Window Animation</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 multiple are selected, one is chosen randomly.</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="GtkMenuButton" id="open-effect-button">
|
||||||
|
<property name="menu-model">open-effect-menu</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<property name="spacing">8</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Choose Effects</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="margin-start">10</property>
|
||||||
|
<property name="margin-end">10</property>
|
||||||
|
<property name="margin-top">10</property>
|
||||||
|
<property name="margin-bottom">10</property>
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<property name="spacing">8</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<property name="orientation">vertical</property>
|
||||||
|
<property name="spacing">3</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Close Window Animation</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 multiple are selected, one is chosen randomly.</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="GtkMenuButton" id="close-effect-button">
|
||||||
|
<property name="menu-model">close-effect-menu</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<property name="spacing">8</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Choose Effects</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="margin-start">10</property>
|
||||||
|
<property name="margin-end">10</property>
|
||||||
|
<property name="margin-top">10</property>
|
||||||
|
<property name="margin-bottom">10</property>
|
||||||
|
<property name="activatable">0</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox">
|
||||||
|
<property name="spacing">8</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel">
|
||||||
|
<property name="label" translatable="yes">Also Add Effects to Dialogs</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="GtkSwitch" id="destroy-dialogs">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-destroy-dialogs">
|
||||||
|
<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>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
|
||||||
|
</interface>
|
||||||
@@ -1,294 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<interface domain="desktop-cube">
|
|
||||||
<requires lib="gtk" version="4.0" />
|
|
||||||
|
|
||||||
<object class="GtkScrolledWindow" id="settings-widget">
|
|
||||||
<property name="hscrollbar-policy">never</property>
|
|
||||||
<property name="min-content-height">200</property>
|
|
||||||
<property name="hexpand">0</property>
|
|
||||||
<property name="vexpand">1</property>
|
|
||||||
<child>
|
|
||||||
<object class="GtkViewport">
|
|
||||||
<property name="scroll-to-focus">1</property>
|
|
||||||
<child>
|
|
||||||
<object class="GtkBox">
|
|
||||||
<property name="orientation">vertical</property>
|
|
||||||
<property name="margin-start">60</property>
|
|
||||||
<property name="margin-end">60</property>
|
|
||||||
<property name="margin-top">30</property>
|
|
||||||
<property name="margin-bottom">30</property>
|
|
||||||
|
|
||||||
<child>
|
|
||||||
<object class="GtkLabel">
|
|
||||||
<property name="margin-top">30</property>
|
|
||||||
<property name="margin-bottom">10</property>
|
|
||||||
<property name="label">General Options</property>
|
|
||||||
<property name="xalign">0</property>
|
|
||||||
<style>
|
|
||||||
<class name="title-4" />
|
|
||||||
</style>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
|
|
||||||
|
|
||||||
<child>
|
|
||||||
<object class="GtkFrame">
|
|
||||||
<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">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="destroy-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-destroy-animation-time">
|
|
||||||
<property name="icon-name">edit-clear-symbolic</property>
|
|
||||||
<property name="tooltip-text">Reset to Default Value</property>
|
|
||||||
<style>
|
|
||||||
<class name="flat" />
|
|
||||||
</style>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
|
|
||||||
|
|
||||||
<child>
|
|
||||||
<object class="GtkBox">
|
|
||||||
<property name="margin-top">30</property>
|
|
||||||
<property name="margin-bottom">10</property>
|
|
||||||
<child>
|
|
||||||
<object class="GtkLabel">
|
|
||||||
<property name="label">Fire Options</property>
|
|
||||||
<property name="xalign">0</property>
|
|
||||||
<property name="hexpand">1</property>
|
|
||||||
<style>
|
|
||||||
<class name="title-4" />
|
|
||||||
</style>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
<child>
|
|
||||||
<object class="GtkMenuButton" id="fire-preset-button">
|
|
||||||
<property name="label">Choose a Preset</property>
|
|
||||||
<property name="has-frame">0</property>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
|
|
||||||
<child>
|
|
||||||
<object class="GtkFrame">
|
|
||||||
<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">Flame 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="flame-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-flame-scale">
|
|
||||||
<property name="icon-name">edit-clear-symbolic</property>
|
|
||||||
<property name="tooltip-text">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">Flame Movement 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="flame-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-flame-movement-speed">
|
|
||||||
<property name="icon-name">edit-clear-symbolic</property>
|
|
||||||
<property name="tooltip-text">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">Fire 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">
|
|
||||||
<property name="icon-name">edit-clear-symbolic</property>
|
|
||||||
<property name="tooltip-text">Reset to Default Value</property>
|
|
||||||
<style>
|
|
||||||
<class name="flat" />
|
|
||||||
</style>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
|
|
||||||
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
|
|
||||||
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
</child>
|
|
||||||
</object>
|
|
||||||
|
|
||||||
|
|
||||||
</interface>
|
|
||||||
@@ -0,0 +1,255 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<interface domain="burn-my-windows">
|
||||||
|
|
||||||
|
<object class="GtkBox" id="apparition-prefs">
|
||||||
|
<property name="orientation">vertical</property>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkFrame">
|
||||||
|
<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">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>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
|
||||||
|
</object>
|
||||||
|
|
||||||
|
</interface>
|
||||||
@@ -0,0 +1,263 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<interface domain="burn-my-windows">
|
||||||
|
|
||||||
|
<object class="GtkBox" id="broken-glass-prefs">
|
||||||
|
<property name="orientation">vertical</property>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkFrame">
|
||||||
|
<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">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>
|
||||||
|
</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>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
|
||||||
|
</object>
|
||||||
|
|
||||||
|
</interface>
|
||||||
@@ -0,0 +1,151 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<interface domain="burn-my-windows">
|
||||||
|
|
||||||
|
<object class="GtkBox" id="energize-a-prefs">
|
||||||
|
<property name="orientation">vertical</property>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkFrame">
|
||||||
|
<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">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>
|
||||||
|
</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>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
|
||||||
|
</object>
|
||||||
|
|
||||||
|
</interface>
|
||||||
@@ -0,0 +1,151 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<interface domain="burn-my-windows">
|
||||||
|
|
||||||
|
<object class="GtkBox" id="energize-b-prefs">
|
||||||
|
<property name="orientation">vertical</property>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkFrame">
|
||||||
|
<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">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>
|
||||||
|
</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>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
|
||||||
|
</object>
|
||||||
|
|
||||||
|
</interface>
|
||||||
@@ -0,0 +1,297 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<interface domain="burn-my-windows">
|
||||||
|
|
||||||
|
<object class="GtkBox" id="fire-prefs">
|
||||||
|
<property name="orientation">vertical</property>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkFrame">
|
||||||
|
<property name="margin-bottom">20</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">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">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="flame-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-flame-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="flame-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-flame-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="flame-3d-noise">
|
||||||
|
<property name="halign">end</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-flame-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>
|
||||||
|
</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>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
|
||||||
|
</interface>
|
||||||
@@ -0,0 +1,284 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<interface domain="burn-my-windows">
|
||||||
|
|
||||||
|
<object class="GtkBox" id="hexagon-prefs">
|
||||||
|
<property name="orientation">vertical</property>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkFrame">
|
||||||
|
<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">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>
|
||||||
|
</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>
|
||||||
|
</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>
|
||||||
|
</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>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
|
||||||
|
</object>
|
||||||
|
|
||||||
|
</interface>
|
||||||
@@ -0,0 +1,276 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<interface domain="burn-my-windows">
|
||||||
|
|
||||||
|
<object class="GtkBox" id="matrix-prefs">
|
||||||
|
<property name="orientation">vertical</property>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkFrame">
|
||||||
|
<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">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>
|
||||||
|
</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>
|
||||||
|
</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>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
</interface>
|
||||||
@@ -0,0 +1,151 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<interface>
|
||||||
|
|
||||||
|
<object class="GtkBox" id="snap-prefs">
|
||||||
|
<property name="orientation">vertical</property>
|
||||||
|
|
||||||
|
<child>
|
||||||
|
<object class="GtkFrame">
|
||||||
|
<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">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">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">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>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkButton" id="reset-snap-color">
|
||||||
|
<property name="icon-name">edit-clear-symbolic</property>
|
||||||
|
<property name="tooltip-text">Reset to Default Value</property>
|
||||||
|
<style>
|
||||||
|
<class name="flat" />
|
||||||
|
</style>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
|
||||||
|
|
||||||
|
</object>
|
||||||
|
|
||||||
|
</interface>
|
||||||