Compare commits
2628 Commits
spinbutton
...
wip/cherge
Author | SHA1 | Date | |
---|---|---|---|
|
0173fef8b6 | ||
|
ee80a22db4 | ||
|
d32c343657 | ||
|
90d8c94819 | ||
|
e13da35d4d | ||
|
f50450485c | ||
|
264d08abc4 | ||
|
8c441756df | ||
|
cdf2a9ddce | ||
|
a196a35d1d | ||
|
aeda5b2f58 | ||
|
da1e43c1e6 | ||
|
6d06b0f076 | ||
|
7da2e86d4b | ||
|
1f99723a9f | ||
|
c3c16bd2be | ||
|
4c2761302a | ||
|
3d19b1108a | ||
|
4728d7b70b | ||
|
cbd34cd239 | ||
|
d0ca4a1255 | ||
|
16623d4e71 | ||
|
dab7ceaa24 | ||
|
b05f3f5614 | ||
|
808e5421a9 | ||
|
f1f225c6b3 | ||
|
16f307b305 | ||
|
ccdec5da77 | ||
|
52d1c0c271 | ||
|
943559da67 | ||
|
21057fb857 | ||
|
281bb5e2c4 | ||
|
eb61f0fc63 | ||
|
105b12f807 | ||
|
882893259d | ||
|
052917a67d | ||
|
226edf1f91 | ||
|
be944053e0 | ||
|
71aac48042 | ||
|
8bcc6b1d96 | ||
|
40f292cb13 | ||
|
601a8de422 | ||
|
fe564318b6 | ||
|
09244edc15 | ||
|
f5f8f83e3e | ||
|
74a39bbae0 | ||
|
3ab34ffdc0 | ||
|
13a93489b7 | ||
|
b35e02db20 | ||
|
6cb4dda5d6 | ||
|
2d12a7d9ee | ||
|
9a7e4f4304 | ||
|
876104835e | ||
|
786e28fec0 | ||
|
b617ba1c82 | ||
|
252edbdbc6 | ||
|
0bba3610c5 | ||
|
fc9f580fd3 | ||
|
91f7b9663f | ||
|
2d266d107b | ||
|
fff2b3c710 | ||
|
2d0957b732 | ||
|
0996552708 | ||
|
620787e56b | ||
|
f5bd9f721c | ||
|
345edb8a89 | ||
|
4a0d3d7acc | ||
|
7fe0610b68 | ||
|
8ba16eb4f1 | ||
|
ab6a5be0f8 | ||
|
94b0907534 | ||
|
0017b4b69a | ||
|
430be6f2a9 | ||
|
bff7ac4a1d | ||
|
fb6c6c85bf | ||
|
894adea2f7 | ||
|
0e1d6fbbbc | ||
|
bad01edd2c | ||
|
e9ca8d689f | ||
|
c5eb2f5d16 | ||
|
7db87a8889 | ||
|
12a9a0faf7 | ||
|
fc321d8282 | ||
|
7d27c615b7 | ||
|
7de266a620 | ||
|
4cbc5ed20a | ||
|
c18a1ac1a1 | ||
|
ab6e4bfc8d | ||
|
6b7b232114 | ||
|
0a5d21ca9e | ||
|
f003a4c6cc | ||
|
53df32e6cf | ||
|
8670034c86 | ||
|
c1fbf654a0 | ||
|
9066078928 | ||
|
4f16e661cf | ||
|
45b85767c4 | ||
|
d56711b5d8 | ||
|
df28a57ae3 | ||
|
04bac8ef2a | ||
|
7ad193787e | ||
|
27e662cfd1 | ||
|
661a572d82 | ||
|
66b4f0cac4 | ||
|
81e0206465 | ||
|
cb1babeeba | ||
|
67dc778b8f | ||
|
bbd4ee2986 | ||
|
42b2eae532 | ||
|
0902f45d71 | ||
|
c51eb7665e | ||
|
1a426d6fff | ||
|
07b5072c9c | ||
|
3a0febfe79 | ||
|
8e7bc8d742 | ||
|
809299f9e4 | ||
|
c391cf38e2 | ||
|
8c75e6896e | ||
|
b3d6928f35 | ||
|
3d8ba93f59 | ||
|
889bf83020 | ||
|
6c63f7b0e2 | ||
|
3872c3a127 | ||
|
5be785bff8 | ||
|
bf454e948d | ||
|
e66ec84c1e | ||
|
6537728c7b | ||
|
95f3f8f3c4 | ||
|
ae9b4f8940 | ||
|
8ef353a970 | ||
|
6d33e9058c | ||
|
78852b181a | ||
|
2588f9cee6 | ||
|
abc2d7e4a9 | ||
|
6189e343f3 | ||
|
8bfa182ed9 | ||
|
ea162ed016 | ||
|
e2aa161590 | ||
|
a723baec4b | ||
|
6120519e8e | ||
|
69856a9aac | ||
|
564d835fba | ||
|
c35a6725b9 | ||
|
a57f79006a | ||
|
6600b0b507 | ||
|
9a19e3c741 | ||
|
8924d614c0 | ||
|
03f76eccf5 | ||
|
b13c2e17f1 | ||
|
7c1c8c53e7 | ||
|
497b843e76 | ||
|
7745f67583 | ||
|
374225ae6a | ||
|
7259be35b0 | ||
|
1601e204f4 | ||
|
43e33b2990 | ||
|
7ebd9291d9 | ||
|
5d59415c2d | ||
|
c5d2d89930 | ||
|
0108ffe059 | ||
|
087935f160 | ||
|
fef9f1187d | ||
|
83c9a24855 | ||
|
435a8f6337 | ||
|
2c8e4573f2 | ||
|
b45721373a | ||
|
e0ebf4e401 | ||
|
dc878f24d2 | ||
|
be1f9b2cb0 | ||
|
0769dfbd32 | ||
|
081e127377 | ||
|
17a799aeb2 | ||
|
a3f5283018 | ||
|
633d783f0c | ||
|
451a5fb6d4 | ||
|
3ad7d304bd | ||
|
7b2b8b86e1 | ||
|
1f8985e476 | ||
|
efb875daef | ||
|
59cc3a9f86 | ||
|
febd143ac8 | ||
|
e00785e958 | ||
|
4a4525a65d | ||
|
c98dd1afb9 | ||
|
12d591178e | ||
|
bd7b29a6c4 | ||
|
13b94dab10 | ||
|
ba3cbac21a | ||
|
d94c386320 | ||
|
4e2a263c1f | ||
|
6a24e0c7c3 | ||
|
c8eeb46aa5 | ||
|
d143f76568 | ||
|
930ff499ee | ||
|
f4dc24c3da | ||
|
399fb76652 | ||
|
de056a3319 | ||
|
bafa23fa2c | ||
|
ab725b4ba9 | ||
|
d8f44c06e8 | ||
|
e40c869d0d | ||
|
3591da517a | ||
|
014fb41448 | ||
|
24072f26ca | ||
|
65017a0031 | ||
|
dc5aab62c8 | ||
|
a3cccbeb53 | ||
|
cee6525213 | ||
|
4f81dc1eaf | ||
|
0e58bfe90e | ||
|
e3e0342db7 | ||
|
b1f12a0535 | ||
|
60f4b07196 | ||
|
4c60dac9cb | ||
|
8d14bd3339 | ||
|
48d95d2d7a | ||
|
670a2be782 | ||
|
f3633d46ca | ||
|
e56754d27c | ||
|
40ebed3a03 | ||
|
14ac4903b6 | ||
|
da613c504b | ||
|
7ac3507be2 | ||
|
316c783fce | ||
|
9e952bc7ff | ||
|
e4832a9e94 | ||
|
70ee86c951 | ||
|
ed97339ef1 | ||
|
b012a5c67e | ||
|
642f32e14d | ||
|
7b735b88b4 | ||
|
167134e1a8 | ||
|
0fa4b7a249 | ||
|
f413d5ef22 | ||
|
be4216e051 | ||
|
fa10264759 | ||
|
5fbfe5203c | ||
|
f472cb53ae | ||
|
a49ff5a1c4 | ||
|
faf56a8abe | ||
|
e510538f37 | ||
|
b2bf48c3f0 | ||
|
cf0330d601 | ||
|
2f51f5affe | ||
|
a69ae36a99 | ||
|
6863528df1 | ||
|
e2722f03ac | ||
|
1be4684441 | ||
|
4a96e790b1 | ||
|
f9d6134247 | ||
|
dfecc8fe02 | ||
|
2b0c474117 | ||
|
0f74798a82 | ||
|
ead06fdb35 | ||
|
687e589950 | ||
|
945b32ca1b | ||
|
0768cfb7df | ||
|
b5e245762d | ||
|
4c6c0b9099 | ||
|
23af39b5b4 | ||
|
a5cab71c9b | ||
|
d4f43f1a7c | ||
|
7ab8109ef8 | ||
|
0f49a5068a | ||
|
a6e0b6e5ce | ||
|
bf563e0926 | ||
|
03ca7081df | ||
|
97afffba4e | ||
|
6b6246f7b4 | ||
|
f1e006c88c | ||
|
32280090fe | ||
|
cdd8f7cd53 | ||
|
d69ac108d4 | ||
|
c1b614772c | ||
|
ec38e53249 | ||
|
e473e7a83a | ||
|
5636384449 | ||
|
f72ca060b5 | ||
|
6482954c6e | ||
|
e1a0e4bfbe | ||
|
ae3ae428a0 | ||
|
be42644091 | ||
|
66e7f3b404 | ||
|
604d171d56 | ||
|
65575fe0d0 | ||
|
ac5f0ba341 | ||
|
e637ed739f | ||
|
29382360ed | ||
|
2a610267eb | ||
|
1635998ac3 | ||
|
82f8fc3bee | ||
|
f37662c655 | ||
|
1a12ea6e5a | ||
|
1be899459c | ||
|
f34e3c573b | ||
|
b23529d940 | ||
|
2c34abed20 | ||
|
b3b63a2c8f | ||
|
4a1a9b1f44 | ||
|
215d4cbfe5 | ||
|
8cd8aa2cb3 | ||
|
b3b9dd493e | ||
|
8909ad1859 | ||
|
aa569acaa1 | ||
|
1c1c030b8e | ||
|
628d5406d7 | ||
|
5d563fcde6 | ||
|
b2f3a3220e | ||
|
4e66e782ea | ||
|
d225f14657 | ||
|
13f9ca60d5 | ||
|
be927d9ce6 | ||
|
dcb5a74275 | ||
|
8f70f1449d | ||
|
b25bc36d33 | ||
|
da4e2a2976 | ||
|
f8dcda80cf | ||
|
01d81ffc17 | ||
|
c78ec37d83 | ||
|
a2cd21cab6 | ||
|
760e60fa04 | ||
|
81914f466d | ||
|
ebd8338795 | ||
|
11d637f869 | ||
|
b24fedda49 | ||
|
57cc2c4918 | ||
|
15483ac9df | ||
|
142984cbf7 | ||
|
8f9145109b | ||
|
5587ee0c30 | ||
|
99750ac7ed | ||
|
f89bad7f33 | ||
|
b97d0a3940 | ||
|
639932ad8a | ||
|
1a944b2824 | ||
|
ae83b79984 | ||
|
5f2c08cef1 | ||
|
119d0b666c | ||
|
ce2a433ca1 | ||
|
a455db01a0 | ||
|
9e8187bdc4 | ||
|
9fbd11e1be | ||
|
aa09737d4d | ||
|
435ed3158c | ||
|
72600516b9 | ||
|
fbc8317c5c | ||
|
ae7f380396 | ||
|
2e031e47dd | ||
|
dbe4543969 | ||
|
b27ec5ebde | ||
|
6622ebb310 | ||
|
1530c90e37 | ||
|
a804e4bd8c | ||
|
a04ce41799 | ||
|
5e3e1dd6ba | ||
|
379bb6c9f5 | ||
|
3df3a0499f | ||
|
0d308d09f3 | ||
|
1331d5cf97 | ||
|
91f3f5c63b | ||
|
486a2c9651 | ||
|
05af726446 | ||
|
36347b21e6 | ||
|
db8bf5e7b9 | ||
|
5bbdf3a807 | ||
|
08b101ace8 | ||
|
5e53c0473a | ||
|
9d1e5aa0dc | ||
|
4d19de4e03 | ||
|
153019a794 | ||
|
8df32e93be | ||
|
14632e11da | ||
|
24cd05672e | ||
|
74a68a5803 | ||
|
9f6b3e179f | ||
|
20fb64704d | ||
|
9b7f927b3c | ||
|
eb3df6a2e8 | ||
|
c6483d431f | ||
|
e5b0d225de | ||
|
d1d009b491 | ||
|
4465ee5414 | ||
|
6f11165dd1 | ||
|
ddeabc7e19 | ||
|
f5d90826f3 | ||
|
11154ba119 | ||
|
c66b030427 | ||
|
0c3dd0cf30 | ||
|
4164abd9f7 | ||
|
b0990aa8e2 | ||
|
a871a1bdb5 | ||
|
31e08d4629 | ||
|
f98353c20b | ||
|
13ece4ee9b | ||
|
6e40f4f357 | ||
|
ecfba2d31b | ||
|
367dfee36e | ||
|
5e7b5fe085 | ||
|
9d3aa2cfce | ||
|
8c156e6b80 | ||
|
4d1075a082 | ||
|
442f485591 | ||
|
74238b5429 | ||
|
f9fa92766b | ||
|
90d187894d | ||
|
03db2690e2 | ||
|
65b35457fd | ||
|
d5ced21264 | ||
|
6d6c8c59eb | ||
|
46ed7540b2 | ||
|
3ad56a762f | ||
|
21a1a40555 | ||
|
849692b24b | ||
|
f3bf4e4876 | ||
|
46270d3dcd | ||
|
da6096faaf | ||
|
2a7b5a5156 | ||
|
233e662294 | ||
|
ae41697d83 | ||
|
e2fb59798e | ||
|
d0fc3e166d | ||
|
e4ce46e75f | ||
|
e2420f62fe | ||
|
6712106c25 | ||
|
5b55138729 | ||
|
1d9c581f10 | ||
|
6bfb57db16 | ||
|
f8f2f2944f | ||
|
aaf17fd3d0 | ||
|
678e6fc6d6 | ||
|
fcf39170e1 | ||
|
187072c3fa | ||
|
e6599c6c4f | ||
|
87a8ff90d6 | ||
|
4a76abffd4 | ||
|
715449695c | ||
|
d15b0afca9 | ||
|
0d6bbc035d | ||
|
9313d4b6b4 | ||
|
ed412f43d1 | ||
|
bfe4aea981 | ||
|
0caa28c1de | ||
|
d8ba4b4114 | ||
|
e7963945bb | ||
|
e4a6101ae0 | ||
|
5d0a3bd4cb | ||
|
1c2238cc2a | ||
|
2d7169fd5f | ||
|
885a6b8ebc | ||
|
9d81c129fc | ||
|
38c6fe2ce4 | ||
|
7fe7b7ac7d | ||
|
ae7f52d301 | ||
|
8b1fcb58e8 | ||
|
cce36ae701 | ||
|
2f0a02eecb | ||
|
07167fdf22 | ||
|
99c7ba7840 | ||
|
5710df685b | ||
|
62f10b1b8f | ||
|
d50d55228b | ||
|
288a5d4151 | ||
|
748b8497c9 | ||
|
303ff60d5e | ||
|
b79eb55b34 | ||
|
0ca573142a | ||
|
a1ece16143 | ||
|
2e18f1b6e3 | ||
|
6cf712591f | ||
|
b32cd5d328 | ||
|
2af99bd65e | ||
|
5b0ea70d1c | ||
|
d719a3d877 | ||
|
b0df8910ba | ||
|
5b8bf04035 | ||
|
58e44e296f | ||
|
0334d002c0 | ||
|
d731ce49ad | ||
|
a93614409e | ||
|
214e2d14be | ||
|
67ee6b2740 | ||
|
07a3fb833c | ||
|
1c419f762b | ||
|
8d6c7b81e9 | ||
|
fcaadf6724 | ||
|
ff38d8cdc0 | ||
|
900a4e4d31 | ||
|
ee63b84b6a | ||
|
2f1ff307da | ||
|
a8e8e04496 | ||
|
91bcf6f0ba | ||
|
a228b2de64 | ||
|
cb18437908 | ||
|
23dab885cd | ||
|
e7284c23da | ||
|
1e1f199b56 | ||
|
efb5e793a4 | ||
|
f2edf40e48 | ||
|
7cb99a0866 | ||
|
36da7c3075 | ||
|
a3b69f1101 | ||
|
9f2d1ff264 | ||
|
8d603dfe99 | ||
|
3ff04976e3 | ||
|
54ff4fd45f | ||
|
0d135d90f0 | ||
|
ffa9814dd0 | ||
|
a2fec9134b | ||
|
8caadaf404 | ||
|
469228fcd7 | ||
|
fd329e0ec5 | ||
|
7f4041ec30 | ||
|
5cb5bdc4eb | ||
|
08913deba5 | ||
|
aceeef47f4 | ||
|
ddda0ca1db | ||
|
00923615f4 | ||
|
63945bc408 | ||
|
076f79745b | ||
|
8e9effcc1e | ||
|
7f4522a3f1 | ||
|
f98abe4400 | ||
|
2ee8f676c3 | ||
|
7216f71825 | ||
|
0bf3e4c25b | ||
|
e964e176f9 | ||
|
8938b09bc9 | ||
|
3654bcfbe8 | ||
|
0dcf95b898 | ||
|
405fab8b36 | ||
|
ef455f5c85 | ||
|
05e4cd1579 | ||
|
0ea96e3b0c | ||
|
1e9e7bf0d9 | ||
|
d7a5dedd4f | ||
|
2e65416270 | ||
|
13c22e4e2f | ||
|
65a061f3c2 | ||
|
fc63e6856f | ||
|
94747d53eb | ||
|
b5df1299ec | ||
|
7bfff6c51e | ||
|
3fdedce8f6 | ||
|
6f62107656 | ||
|
f9457af128 | ||
|
94f0a4ef2c | ||
|
53e75936cb | ||
|
5f0fe09423 | ||
|
9e402fa064 | ||
|
d84440969a | ||
|
e7dc82fa32 | ||
|
f1b3492700 | ||
|
6c95fc7e87 | ||
|
f4cc9a47ad | ||
|
ccbbc2f2ba | ||
|
8bc2ee63eb | ||
|
68d634b31c | ||
|
d1c66f75e3 | ||
|
eba9cd8775 | ||
|
9606945ed8 | ||
|
d50d382032 | ||
|
5da3308572 | ||
|
fb48699ba4 | ||
|
56d37ceed0 | ||
|
622bb9186e | ||
|
b77e05ce37 | ||
|
ba4e66d189 | ||
|
2c33550048 | ||
|
3add99a9a8 | ||
|
d4ea2e848d | ||
|
4c06889243 | ||
|
ef544a8c3b | ||
|
6db9215dd1 | ||
|
8b64f0147c | ||
|
5847f75c57 | ||
|
ce2c3efc91 | ||
|
2599c5aed3 | ||
|
bca39e2605 | ||
|
ca0e1be03e | ||
|
6569a877d8 | ||
|
38fff37dae | ||
|
06be1f8b52 | ||
|
43a1641dd7 | ||
|
b21fba117f | ||
|
37d5f93610 | ||
|
52aea624a6 | ||
|
711acb6aa7 | ||
|
3e94c5afa4 | ||
|
a75c038e09 | ||
|
146069058f | ||
|
2d5dd7b3d7 | ||
|
0904dd29c2 | ||
|
279b9347fd | ||
|
2a2ae16894 | ||
|
3e1a8aa286 | ||
|
db126a19b6 | ||
|
ffa50f4c24 | ||
|
e1866d8fbe | ||
|
d24a0e9606 | ||
|
b8693cc4f4 | ||
|
5d5adf6ee7 | ||
|
dda69bd16d | ||
|
926b855d14 | ||
|
afc3de6e04 | ||
|
45f4090eec | ||
|
4cf69fbc5e | ||
|
0c6da97147 | ||
|
8994635d39 | ||
|
7644605dfc | ||
|
97a9e23b85 | ||
|
478ecf8db4 | ||
|
0e857862ab | ||
|
2bb4859031 | ||
|
7aef77a21a | ||
|
e7f9d56da5 | ||
|
34883b7142 | ||
|
23706a4a6d | ||
|
c52c944e33 | ||
|
8540bea65e | ||
|
8ea4721d1e | ||
|
e8a6b504f3 | ||
|
06ab8f2167 | ||
|
b5558f3e97 | ||
|
bdd281c9ea | ||
|
c9ab7c5750 | ||
|
01f4e5c8cd | ||
|
8a567d7932 | ||
|
dbcd24adf4 | ||
|
f6f07ba238 | ||
|
3ab07203ce | ||
|
70e26d12fb | ||
|
6ba414216c | ||
|
775b45ef57 | ||
|
23cb72875d | ||
|
5940de98dd | ||
|
4028bd5bce | ||
|
b5608e93d2 | ||
|
1ea2ea520f | ||
|
922b2683b3 | ||
|
6dcef28e12 | ||
|
08f68cce40 | ||
|
7849590a82 | ||
|
c9b312c860 | ||
|
6110980012 | ||
|
019855a27f | ||
|
cdfdf031b5 | ||
|
f131d68fef | ||
|
3014649455 | ||
|
2496ab0902 | ||
|
50d42093b5 | ||
|
44481d355e | ||
|
6f82408056 | ||
|
cc64dbafbc | ||
|
50b70298c0 | ||
|
bd7df4b816 | ||
|
086e1ed39f | ||
|
fa57f20b87 | ||
|
e211740da6 | ||
|
0351bc766c | ||
|
5531906973 | ||
|
9d6190bc3c | ||
|
d5de73fb9d | ||
|
b539c92312 | ||
|
272d8a6800 | ||
|
f8a6a09896 | ||
|
6a66ccd3e6 | ||
|
1f6b556972 | ||
|
3668541eaa | ||
|
a6727326e3 | ||
|
1507099dc7 | ||
|
2bc7abceae | ||
|
a9a5622214 | ||
|
0560397aa8 | ||
|
4e06787a1b | ||
|
610ba0e764 | ||
|
80ba38a0b3 | ||
|
5d3af346dd | ||
|
d882def373 | ||
|
3761dbba8b | ||
|
ae7b19c760 | ||
|
157218c507 | ||
|
60325df7db | ||
|
64a62ebcfb | ||
|
a42a133a18 | ||
|
a41cd9b1fa | ||
|
8bfc6afe33 | ||
|
5b67e6817c | ||
|
48f87c1eea | ||
|
aced6030ee | ||
|
c5aa35f8ef | ||
|
7a56aa910e | ||
|
bd0df03248 | ||
|
df4b564d69 | ||
|
9640bfb3fe | ||
|
2e69273922 | ||
|
1e014f4291 | ||
|
fbe47106e7 | ||
|
ea93c40644 | ||
|
1a3f2acb95 | ||
|
fb8592952d | ||
|
216a262651 | ||
|
0178cdbdf2 | ||
|
b84d959d31 | ||
|
3eca28e4b5 | ||
|
98a91a3290 | ||
|
3cfe69d711 | ||
|
b9da74590b | ||
|
b253aca883 | ||
|
5ac7f7c2f6 | ||
|
9981f19409 | ||
|
dae59112d7 | ||
|
f25beff7a6 | ||
|
130ed3d5e5 | ||
|
830efa6ce2 | ||
|
a33e32ef60 | ||
|
aaffd902fd | ||
|
972a06c038 | ||
|
1763ede9ce | ||
|
f5fb8a95f4 | ||
|
948e032072 | ||
|
21aa8ae29f | ||
|
4fce3ceffc | ||
|
95a5e7b438 | ||
|
8fdedbd73b | ||
|
b962a0f166 | ||
|
0f0ee97e1e | ||
|
af80f3a976 | ||
|
1536f6a59c | ||
|
574b0bf48a | ||
|
0b100229e3 | ||
|
19d9c78514 | ||
|
140b7f0a61 | ||
|
56daad9c35 | ||
|
eaf09a4625 | ||
|
a576bd190b | ||
|
2ce92085e1 | ||
|
e6b1443fbb | ||
|
60ccae000b | ||
|
7ecd004d50 | ||
|
6b48fb767d | ||
|
6d4f93bb7f | ||
|
cfe8c0e187 | ||
|
6d5657eee7 | ||
|
600cbdb7ba | ||
|
8b82993dde | ||
|
ea185cbdda | ||
|
ee837dfc12 | ||
|
1d888bff43 | ||
|
38ad068d9b | ||
|
45c8c6c77f | ||
|
ceed7d1ba4 | ||
|
74e2bb4cf1 | ||
|
cc6bb13242 | ||
|
50beae7541 | ||
|
0f6b91109e | ||
|
f279c7b1c2 | ||
|
08b27848e1 | ||
|
e3dcc3d369 | ||
|
568fe2e97b | ||
|
cd77485193 | ||
|
ec0e76dabd | ||
|
1eebf0ebd1 | ||
|
0a7af75639 | ||
|
72012113fd | ||
|
54b3048584 | ||
|
3daad8fe87 | ||
|
a1c1ad317b | ||
|
dbd19bf27a | ||
|
97fad45237 | ||
|
cbda61d3fb | ||
|
afe195a862 | ||
|
e6adee2403 | ||
|
1fd534ef1e | ||
|
cfc91b62b0 | ||
|
24ec2cc6a6 | ||
|
28de2eecc9 | ||
|
ed3f0012b1 | ||
|
51074ca5df | ||
|
8aac574d63 | ||
|
c1f98d6837 | ||
|
3f60c39de4 | ||
|
4aa570ba88 | ||
|
233969e9e4 | ||
|
19e3a6af5d | ||
|
29501f5398 | ||
|
3408240ba6 | ||
|
e6725aa16f | ||
|
f34c0f4a99 | ||
|
52c7fd166b | ||
|
346b29ad8f | ||
|
064947356a | ||
|
d2258fb316 | ||
|
dda66d580f | ||
|
1d773df9f2 | ||
|
9be2f130f0 | ||
|
e345f9a4db | ||
|
3a928c8980 | ||
|
42dfc21b2d | ||
|
daed57c30e | ||
|
de0860c1bf | ||
|
4fbc63f50a | ||
|
3e1524fade | ||
|
ebe30d851b | ||
|
f97ce21e59 | ||
|
0b7d8e19c3 | ||
|
0ee6868b7f | ||
|
6a30c6b01c | ||
|
06d5c8e72d | ||
|
3252f1e301 | ||
|
7f292d34bd | ||
|
7c29847fbf | ||
|
66f0547ebf | ||
|
e941e2be7d | ||
|
28e33bc26c | ||
|
372513a5e2 | ||
|
5c505aefc4 | ||
|
9b3ca7f6b1 | ||
|
c5ddf5b381 | ||
|
61712bfb3b | ||
|
c3eb3f2943 | ||
|
d13e592dbf | ||
|
686f65f267 | ||
|
bb2ee71cd8 | ||
|
816383e9ef | ||
|
90cf6bb686 | ||
|
e930433800 | ||
|
a6b2994f8b | ||
|
8d7103116a | ||
|
9d95c5a26d | ||
|
9fbe61e01f | ||
|
7c442c1736 | ||
|
48a3b4e7cd | ||
|
90ecf58a9c | ||
|
0a966e59e6 | ||
|
acb78afc2d | ||
|
d0ed62e747 | ||
|
44e977ef35 | ||
|
f93f975e42 | ||
|
9fa8b446cc | ||
|
e065b28d1a | ||
|
6108759d63 | ||
|
4e315b81cc | ||
|
802c976d07 | ||
|
a5018ed029 | ||
|
1a09c361f5 | ||
|
58f64c85ca | ||
|
9a6886e5e2 | ||
|
deef6425b3 | ||
|
9e3df3fac1 | ||
|
03e21fc957 | ||
|
3ed729e1d7 | ||
|
1cde6a2e08 | ||
|
f937fe4a87 | ||
|
190292a7da | ||
|
86d2a44850 | ||
|
ef429c587b | ||
|
f9cb67b32c | ||
|
f6932b885d | ||
|
b1ba7f4380 | ||
|
2eae3e8e78 | ||
|
077fe55d81 | ||
|
e92e14c845 | ||
|
8b7f39ead8 | ||
|
48a94ccbfc | ||
|
a9b163cd7f | ||
|
3236b1d1c9 | ||
|
d85fa8854e | ||
|
522ae8d02f | ||
|
7173223df5 | ||
|
186d2c2964 | ||
|
ccb40688ec | ||
|
8d888203f0 | ||
|
a63223b25b | ||
|
3cccb00f51 | ||
|
cc0df3c315 | ||
|
7b08e9b5d3 | ||
|
b019cabd0c | ||
|
260a4db854 | ||
|
8497f285c4 | ||
|
6925843221 | ||
|
a6a7799dc5 | ||
|
3205cc79a7 | ||
|
71fce93088 | ||
|
537d6e5e65 | ||
|
d0b1e2f7de | ||
|
eb675e3e7e | ||
|
3f201aeb21 | ||
|
da6b6d44c1 | ||
|
b873b83691 | ||
|
19f649ec1d | ||
|
a786af0c19 | ||
|
42e9cf88cf | ||
|
33d7aff67e | ||
|
4e4050813a | ||
|
2d55e3343a | ||
|
8d8fd63b93 | ||
|
e2cab4d406 | ||
|
3eeaef0834 | ||
|
4921497904 | ||
|
71ce79bfb8 | ||
|
c76bd17ddd | ||
|
ecd8d7596b | ||
|
97fd0fe889 | ||
|
96fe1218f2 | ||
|
14c45be89c | ||
|
d5d0cf61b9 | ||
|
7606329617 | ||
|
7a1da45fff | ||
|
4905f5e722 | ||
|
ca3363466f | ||
|
207c4cd9e1 | ||
|
6221d1b407 | ||
|
f6ff03bf09 | ||
|
ae315c1106 | ||
|
8164cbbc5f | ||
|
2d76ce829c | ||
|
e604c3b77c | ||
|
d4f2121bc2 | ||
|
f328e5ecc1 | ||
|
19df22f784 | ||
|
3556b605c9 | ||
|
c26ac6b695 | ||
|
9f08c50791 | ||
|
95b2107728 | ||
|
2915c72a26 | ||
|
207a45b7e0 | ||
|
32b3386d23 | ||
|
094d5d5260 | ||
|
8b26894759 | ||
|
f4ad0f32f8 | ||
|
ca74f46b3e | ||
|
d7e0af62e3 | ||
|
21f2a824ad | ||
|
6bd46779fc | ||
|
b3f6e95d62 | ||
|
39dac1ff22 | ||
|
30236be2fd | ||
|
a9d4b6a61c | ||
|
c1e10473fb | ||
|
e8bba52190 | ||
|
1a504feab9 | ||
|
406e4a6928 | ||
|
f89e1bce90 | ||
|
d1b472c1c8 | ||
|
cabe2f5f20 | ||
|
970ae74cd5 | ||
|
50139ad184 | ||
|
d74666de58 | ||
|
e0df1b3fd9 | ||
|
bf978ba5a6 | ||
|
05b13dca55 | ||
|
720f6e7a17 | ||
|
71649fce29 | ||
|
42aa2edf19 | ||
|
b66c74767f | ||
|
39394da850 | ||
|
da9a320a40 | ||
|
5bdcd66117 | ||
|
930912fd0d | ||
|
5ebd0edf72 | ||
|
dda6458142 | ||
|
5568025f1d | ||
|
5189d3b485 | ||
|
901f60bc54 | ||
|
9f90100019 | ||
|
8db6d6750c | ||
|
36f6a76272 | ||
|
8696b78e59 | ||
|
493d773c18 | ||
|
9247460c2f | ||
|
ebadece27b | ||
|
f4b498031a | ||
|
eb77ff9696 | ||
|
c11ec03642 | ||
|
7744be938f | ||
|
646a6726a8 | ||
|
460955d578 | ||
|
2e1114c9fa | ||
|
a814c3b3c4 | ||
|
5e41ea1d2f | ||
|
350a775963 | ||
|
c0da6b935d | ||
|
a9162d2218 | ||
|
102884faf1 | ||
|
497a399372 | ||
|
292643890b | ||
|
c46480fe7e | ||
|
29f2e5f84e | ||
|
9ab40d2899 | ||
|
cc03ca9df1 | ||
|
bcb0b36238 | ||
|
7e7c81c5d2 | ||
|
d7ce5c55c8 | ||
|
59c0bee4b8 | ||
|
33f611a596 | ||
|
495c3d9c44 | ||
|
b4ad1fa44f | ||
|
b093900e48 | ||
|
27b338a90b | ||
|
ca51d6dfd9 | ||
|
47c1b50eba | ||
|
5d68a23b55 | ||
|
9f6e4e60d0 | ||
|
7a60c66940 | ||
|
31245353d5 | ||
|
c91e141a6c | ||
|
87c0363cd5 | ||
|
71bad39f5a | ||
|
40574f9ca3 | ||
|
752477b1ae | ||
|
ad9849bf26 | ||
|
9bfe163cf1 | ||
|
22f072faea | ||
|
57c7d77cdf | ||
|
7ac7bb9543 | ||
|
c82b5b8d8a | ||
|
15aa7de547 | ||
|
ee62d19115 | ||
|
cdcabb7fb7 | ||
|
494bdad887 | ||
|
ef09696ee5 | ||
|
8da60587e1 | ||
|
3a7e9a28d3 | ||
|
3535b582a1 | ||
|
07573ef2a6 | ||
|
92838f9972 | ||
|
ca5f66b368 | ||
|
af6af482c4 | ||
|
c65239155f | ||
|
12f0d963d9 | ||
|
6ab8ca4669 | ||
|
d65a98f828 | ||
|
79417d8d40 | ||
|
8bdb2ea667 | ||
|
8e887fbbf4 | ||
|
dc42dcf962 | ||
|
68cd66b210 | ||
|
39a9bea066 | ||
|
0776f645fd | ||
|
b408dc0706 | ||
|
626ee40970 | ||
|
f86c8f2077 | ||
|
1a501e3d53 | ||
|
c611fcc709 | ||
|
de1101df19 | ||
|
aca07954af | ||
|
06a51c045c | ||
|
7f7231038d | ||
|
fd6faabe16 | ||
|
26ca77d01b | ||
|
b983133675 | ||
|
02fc352bfb | ||
|
180de1041b | ||
|
ded9903a83 | ||
|
921e8e02f4 | ||
|
9d536b9aef | ||
|
d11b263ac2 | ||
|
a710e64bad | ||
|
b257a58417 | ||
|
eca14b763c | ||
|
5225a0f253 | ||
|
60b3effce3 | ||
|
b3e7e31bb0 | ||
|
3ab954882d | ||
|
7dd436ab17 | ||
|
085b0b7c08 | ||
|
76fa6dcef6 | ||
|
dde3de34c9 | ||
|
e88f0d4b77 | ||
|
172ab2f20a | ||
|
0ca97cd218 | ||
|
645c951fb6 | ||
|
4bed24a816 | ||
|
9104420c87 | ||
|
0d238f4c99 | ||
|
9b9c9ae8d4 | ||
|
1f06cfd5d8 | ||
|
ddcb76ac2d | ||
|
e21156b30b | ||
|
166edeed91 | ||
|
465aca029e | ||
|
86604d8e01 | ||
|
bb393f6496 | ||
|
7a099604c9 | ||
|
92009413f2 | ||
|
7763fc55bb | ||
|
042af94048 | ||
|
d91fb26409 | ||
|
3124a784fe | ||
|
936a2c2c59 | ||
|
53d3b46d4a | ||
|
fc55478890 | ||
|
d41c3e3c2d | ||
|
886ba1680d | ||
|
11c5523142 | ||
|
c0be9c5b97 | ||
|
ad2dad6612 | ||
|
5950bcd754 | ||
|
067b43fb5b | ||
|
b39160243f | ||
|
b460ffd120 | ||
|
a61c677a0d | ||
|
7afc1291a8 | ||
|
cc2d9f0cb5 | ||
|
73b66428a7 | ||
|
3a62b28344 | ||
|
f3b16d0e9d | ||
|
e999773566 | ||
|
6aaa98f669 | ||
|
f800178e7f | ||
|
07a2b60f45 | ||
|
f5fe5c1fa6 | ||
|
e353cf38ec | ||
|
947ebee7d4 | ||
|
d4eb11142a | ||
|
e4054d62fe | ||
|
37855e2b53 | ||
|
08371b25dc | ||
|
26100ad5d1 | ||
|
69427e98d5 | ||
|
d3e8607f58 | ||
|
cf6f57b41c | ||
|
d5a024c7f8 | ||
|
67fdc0491a | ||
|
5d69584a53 | ||
|
ef5b781e0c | ||
|
72505acb9e | ||
|
d7b55cfd0c | ||
|
7803a09f31 | ||
|
4f36509e5f | ||
|
198c0be5e7 | ||
|
c0bd352c88 | ||
|
3a62913a97 | ||
|
abb951daf1 | ||
|
4131cb4c7b | ||
|
7450427757 | ||
|
b836707979 | ||
|
70f805cdfe | ||
|
458bc5500c | ||
|
22b375534e | ||
|
e60afc6011 | ||
|
30073de932 | ||
|
b674bba155 | ||
|
50df5e0ec2 | ||
|
693f3d6b41 | ||
|
e78302c4e5 | ||
|
0559e9e763 | ||
|
8eacbc3a20 | ||
|
3fd3187d8f | ||
|
723d979be2 | ||
|
0c56522de1 | ||
|
8db308be4d | ||
|
30d32a1f9d | ||
|
08509acc04 | ||
|
6ff78c99fa | ||
|
34443546a8 | ||
|
d5e9e10d0a | ||
|
d262f740b2 | ||
|
d886ab9229 | ||
|
6be66205cc | ||
|
abb6fe326f | ||
|
d6c763f2ae | ||
|
34533b544a | ||
|
d92647a92b | ||
|
553a959102 | ||
|
9a33a1852a | ||
|
ce83a0e5bb | ||
|
d724ea294d | ||
|
038006d582 | ||
|
4a4301be38 | ||
|
50fe533246 | ||
|
11022fc485 | ||
|
c51585bab1 | ||
|
701ebd55c7 | ||
|
4c50c312c1 | ||
|
55f1ed171a | ||
|
97c4e46e39 | ||
|
3ed2e94f29 | ||
|
e98ea46d87 | ||
|
a8a15d48ad | ||
|
6bc69a12cc | ||
|
c6b23f8f89 | ||
|
be93dd98f7 | ||
|
a8f36b8381 | ||
|
1fb5824e1e | ||
|
35e438a62e | ||
|
cf707cbfaa | ||
|
1eb9d699b5 | ||
|
da94b461e0 | ||
|
ec32ff04b8 | ||
|
8d12dce174 | ||
|
63dc97fb29 | ||
|
6c315b1b8a | ||
|
231a19abb9 | ||
|
99a3dbef00 | ||
|
9934f9c43b | ||
|
c4e43c1cd5 | ||
|
3549914d0f | ||
|
e034046724 | ||
|
c975216f47 | ||
|
18e5192a58 | ||
|
dc8ee5a992 | ||
|
e75c3d0380 | ||
|
47cb0771f5 | ||
|
6884a1a5c6 | ||
|
d028f7ed9a | ||
|
fc6f16cb61 | ||
|
1692b41b30 | ||
|
8e6b6ae26e | ||
|
9a16b1b971 | ||
|
895aa1d3ab | ||
|
da6861188b | ||
|
1dd240974b | ||
|
b6b30c9bcf | ||
|
47b9a554ac | ||
|
3d8c810ab7 | ||
|
dfb68fb13d | ||
|
f854136676 | ||
|
18f525f7b4 | ||
|
4ee4c88e43 | ||
|
ec78bf3309 | ||
|
4bf7bfb41a | ||
|
538f935d44 | ||
|
952fc31dbc | ||
|
93326164e2 | ||
|
b78895e449 | ||
|
205a13eaa0 | ||
|
a9dd352986 | ||
|
e82d090bf5 | ||
|
9132f1831c | ||
|
3d04c0f4be | ||
|
ca3120919f | ||
|
e5bed812f5 | ||
|
d88a4629f9 | ||
|
24c04b5bb9 | ||
|
4c3ea25745 | ||
|
231814a595 | ||
|
820f37be0b | ||
|
02ec00dc5a | ||
|
4d2e4309f0 | ||
|
d2ba09ec98 | ||
|
41ddce152a | ||
|
df9c469acd | ||
|
8cf04b3345 | ||
|
1072b56970 | ||
|
f94fc28eb5 | ||
|
3b42440805 | ||
|
dcf53bced2 | ||
|
76e9a7bbb4 | ||
|
12ccc68c99 | ||
|
834295dde0 | ||
|
b7f4f5d234 | ||
|
61d85f32a2 | ||
|
6d489a9e81 | ||
|
85774d2bcd | ||
|
03c5b680ec | ||
|
8de0a2c7c6 | ||
|
d58655b4ae | ||
|
f2b482ef65 | ||
|
a2e8bd24ca | ||
|
584e978840 | ||
|
f00f900224 | ||
|
b9a02b0c24 | ||
|
af8d8113eb | ||
|
e8b6e6cad0 | ||
|
701f1b837b | ||
|
6781de96a5 | ||
|
4fef62c38d | ||
|
3ef95b4065 | ||
|
d621a37a60 | ||
|
6f93e63d21 | ||
|
04fb95ce9f | ||
|
548280da9f | ||
|
b9f0cf1c8b | ||
|
abb33bd65f | ||
|
542b959933 | ||
|
b2a99642a9 | ||
|
6f7e933713 | ||
|
3c0f047597 | ||
|
a6da2db4ea | ||
|
f85b847410 | ||
|
a6ee0dd8aa | ||
|
0ba2a3a191 | ||
|
761c327ac5 | ||
|
3760051169 | ||
|
787830d360 | ||
|
4018417ceb | ||
|
386256a424 | ||
|
f3701ff961 | ||
|
27295bc555 | ||
|
e62f9e33a1 | ||
|
fe45f283af | ||
|
5556907194 | ||
|
9d51821e84 | ||
|
c696385130 | ||
|
0a9d075b47 | ||
|
b63c4d6722 | ||
|
221825394f | ||
|
124f60593b | ||
|
09af40faeb | ||
|
bf59ddd01d | ||
|
fea67dea6a | ||
|
9f18c138d1 | ||
|
bfa68223e1 | ||
|
629e70f89d | ||
|
405dc7f557 | ||
|
cba8c40aa0 | ||
|
98b13933d9 | ||
|
062383bfd3 | ||
|
91e94556ad | ||
|
07ca46e92c | ||
|
57e354c297 | ||
|
fb0814602e | ||
|
5f664dbbbb | ||
|
5d30569575 | ||
|
46d1fc1c24 | ||
|
2c05b758c7 | ||
|
5788338a14 | ||
|
d786e1d614 | ||
|
c60a316e22 | ||
|
b73c9e992f | ||
|
4980f620f9 | ||
|
87b800c11d | ||
|
6e903e13a5 | ||
|
83c466dcd1 | ||
|
676ea489cc | ||
|
70fbfd8ede | ||
|
6234ccc974 | ||
|
0cfe3d45f5 | ||
|
41371ccae6 | ||
|
5807fee893 | ||
|
b2c1d6bc9b | ||
|
5fd22e5981 | ||
|
d0dce4cfa1 | ||
|
4375f8e382 | ||
|
42b515a1e5 | ||
|
6ab779cd06 | ||
|
a261e9fca2 | ||
|
50ccab487f | ||
|
ddd5e5717d | ||
|
390a278606 | ||
|
00423c54b5 | ||
|
f8f90d85ad | ||
|
91932ada63 | ||
|
dbb264dfc9 | ||
|
3aa89efcf4 | ||
|
82f40a92c1 | ||
|
ae1a950a93 | ||
|
2228181b35 | ||
|
7357120c81 | ||
|
0942e863f2 | ||
|
08f3618a47 | ||
|
8e7e821033 | ||
|
11d6f2ddd0 | ||
|
490384c69f | ||
|
468242b13b | ||
|
d3d49ce7f1 | ||
|
c303ec1553 | ||
|
d28df0b87e | ||
|
d1fbfb9c4e | ||
|
ccae0e1732 | ||
|
447203ce52 | ||
|
feccdad9d2 | ||
|
35fceca157 | ||
|
97db959305 | ||
|
4b9aeaf9e3 | ||
|
053d7cfe9f | ||
|
2959f219e4 | ||
|
b368d3abde | ||
|
b533bba3f3 | ||
|
aae67b8fbd | ||
|
d79354dbf5 | ||
|
aa693159dc | ||
|
5fef637e84 | ||
|
208a53fa39 | ||
|
875a92b95f | ||
|
c23848c03e | ||
|
96ac85038b | ||
|
69f051798e | ||
|
1c6da51000 | ||
|
d6694a4408 | ||
|
0ccca910df | ||
|
fd2909abb2 | ||
|
d586410416 | ||
|
4721e760e7 | ||
|
72700d1644 | ||
|
c274c35583 | ||
|
d2c3f8f496 | ||
|
bffb666914 | ||
|
ab615104f5 | ||
|
9c2674ee1e | ||
|
68ced9b553 | ||
|
177f6b377d | ||
|
55f871c193 | ||
|
ce2835265b | ||
|
75ae0e04e1 | ||
|
1f284fcd70 | ||
|
718a95c1d2 | ||
|
cd2854a5c6 | ||
|
86151622db | ||
|
915e3f0e28 | ||
|
a4e7b03185 | ||
|
e9ed874231 | ||
|
2a38cecd33 | ||
|
9698d4aa2a | ||
|
dd2851a0ff | ||
|
adf9377b61 | ||
|
700f39bfca | ||
|
baec7079e0 | ||
|
f83644edee | ||
|
30d4417064 | ||
|
b428fafade | ||
|
63d1dc307a | ||
|
55bfadadc4 | ||
|
179fae32a5 | ||
|
e220b24b70 | ||
|
9061256122 | ||
|
ea0d487f0b | ||
|
b2fd09625c | ||
|
5797c72e9c | ||
|
d02cfceb3d | ||
|
451af280a2 | ||
|
516776b630 | ||
|
4d0a1a97cc | ||
|
3ee5354e0f | ||
|
07295ac169 | ||
|
447e6db847 | ||
|
d84a028455 | ||
|
4327a866f4 | ||
|
1fbdfe340e | ||
|
4a47bdf596 | ||
|
8e2f90e342 | ||
|
32c7ca50ea | ||
|
19b9967a72 | ||
|
da71a37945 | ||
|
05fe2441a7 | ||
|
35488959b4 | ||
|
af1981eda2 | ||
|
38da88908d | ||
|
41abda9f03 | ||
|
5a8e2a8c2d | ||
|
7390e2490c | ||
|
04daa236ad | ||
|
31ceb4ddfb | ||
|
c2f811dd29 | ||
|
189e0c05fd | ||
|
8ee4ea4282 | ||
|
edcd4c6207 | ||
|
f5bd591d89 | ||
|
67b5a34bad | ||
|
27071b5cfb | ||
|
19b9c42562 | ||
|
bf6a40f39b | ||
|
bb0a1b0cfe | ||
|
2ac5c3282f | ||
|
6b3c356eb7 | ||
|
5c5cd34c2f | ||
|
1c6cf7a3b6 | ||
|
6b29eeeb1c | ||
|
2f43b8dc49 | ||
|
7b4cfd38bc | ||
|
d2e074e36b | ||
|
2623932886 | ||
|
b0a82b1dfe | ||
|
f15aa2f3e5 | ||
|
5d6792137d | ||
|
52a2891933 | ||
|
7ebc3a9489 | ||
|
04fb1421dc | ||
|
a4f17eaa8b | ||
|
e0c48e74bd | ||
|
a810f600bf | ||
|
ad9c813ed1 | ||
|
aa1d08687d | ||
|
39f72b3834 | ||
|
7332b4f1d9 | ||
|
b948799778 | ||
|
aec738745a | ||
|
ea19f7c360 | ||
|
0222d389ee | ||
|
b3a055a9b7 | ||
|
bd877ccf06 | ||
|
a8d87f80f3 | ||
|
6601d79b2d | ||
|
5ff843f97d | ||
|
b1c1e02c28 | ||
|
0ce0402edf | ||
|
5d13bb7aa2 | ||
|
c5e69e83b5 | ||
|
bcfca52e9e | ||
|
919e06a831 | ||
|
0d5957b97a | ||
|
6e4bba3d75 | ||
|
3e426e4c5b | ||
|
8d4f4af8ef | ||
|
3aa3c21d69 | ||
|
9a540841fd | ||
|
0a3fa40923 | ||
|
9f10f9a595 | ||
|
560e27a3f4 | ||
|
4df7cc948c | ||
|
b74a9445af | ||
|
a63a2b26cf | ||
|
43fd9d16c5 | ||
|
78e3908a00 | ||
|
a9c616284a | ||
|
386d8326ca | ||
|
cf3f742ad8 | ||
|
3a3e029270 | ||
|
435d12680d | ||
|
504b5bbd1b | ||
|
f953dfef11 | ||
|
95d48ac2e8 | ||
|
965e74f902 | ||
|
0cc43e10a5 | ||
|
82ab039abe | ||
|
e823fa6665 | ||
|
8cd4b338db | ||
|
9af30aca35 | ||
|
6fab195643 | ||
|
c90ffc7363 | ||
|
3eb4ec89f3 | ||
|
6c85a4b2f5 | ||
|
befc2c3ed6 | ||
|
62788d5b0d | ||
|
3c91a2b0a8 | ||
|
d3096f079f | ||
|
dff2aa20ff | ||
|
dae42c8f55 | ||
|
da64856f37 | ||
|
461fe36707 | ||
|
4ce071721f | ||
|
3cdfb779c7 | ||
|
3a43663630 | ||
|
360a66e945 | ||
|
13e162c404 | ||
|
65296228d7 | ||
|
443d199868 | ||
|
86c5f2df6e | ||
|
09b447a9e1 | ||
|
161ddcfa92 | ||
|
226dc49602 | ||
|
207569c4ed | ||
|
cf61d96188 | ||
|
319755662f | ||
|
055cd9aaad | ||
|
15697d5c0c | ||
|
0cd2d01f3f | ||
|
67877e403f | ||
|
0bce63e3ab | ||
|
6396bf6d89 | ||
|
5b45f267d6 | ||
|
f26f15fced | ||
|
a37044f36c | ||
|
e8c8be8e37 | ||
|
bfc80c32ea | ||
|
5f48764ac8 | ||
|
cc6fcbfc09 | ||
|
ea7185bdb1 | ||
|
429dfcf483 | ||
|
be3f352b59 | ||
|
5b8896f1db | ||
|
4e27de7df9 | ||
|
2712f536c2 | ||
|
a1f7073ff5 | ||
|
9770872d12 | ||
|
de24b4f91b | ||
|
650fd9c291 | ||
|
b509809f34 | ||
|
a93ab37ea9 | ||
|
5d7364960a | ||
|
60ff231fac | ||
|
958005317b | ||
|
15c36aaa1e | ||
|
482b73c376 | ||
|
4a8bf6e13d | ||
|
3e2e6633b0 | ||
|
4724f9907c | ||
|
26e84a7b8c | ||
|
d5838f14f9 | ||
|
5c532104e4 | ||
|
2f42e1fb89 | ||
|
b5200bd076 | ||
|
aa5bd38137 | ||
|
0eba833595 | ||
|
1e0ea21297 | ||
|
e91e75173d | ||
|
927fdb9a83 | ||
|
041f410838 | ||
|
c71c8919fe | ||
|
3f28399f7d | ||
|
3c15fa96bc | ||
|
0a0a059397 | ||
|
18e83fe16d | ||
|
90d7ed5dd1 | ||
|
3c6e7569ff | ||
|
4e2ec2d68d | ||
|
1af72eac21 | ||
|
640273a0e2 | ||
|
a14a0c6315 | ||
|
38481680e1 | ||
|
12a540c284 | ||
|
289bf078bf | ||
|
a7ae94c06e | ||
|
58ab9ddc40 | ||
|
c78036fc51 | ||
|
120f2768e6 | ||
|
592b33cb48 | ||
|
7a9bc1f1d8 | ||
|
9cc6f3ee29 | ||
|
9efaa0b51d | ||
|
f0967fa5e4 | ||
|
f8529983f9 | ||
|
919c08d4fd | ||
|
e9b06b6346 | ||
|
949c783187 | ||
|
814a4a781a | ||
|
676f875bf6 | ||
|
140c5c5333 | ||
|
cebf2b2009 | ||
|
86b437a1b6 | ||
|
773ae0cd0f | ||
|
564793d5b5 | ||
|
9142aa0f51 | ||
|
39e136e9b7 | ||
|
652b892fc1 | ||
|
af9a578d68 | ||
|
ecb072fdd0 | ||
|
ef053ebb4a | ||
|
8d18d93742 | ||
|
10fcdd88e3 | ||
|
5d9509c51b | ||
|
c9cac5fbc3 | ||
|
aa9054a5f1 | ||
|
9ebf3fac73 | ||
|
569294070b | ||
|
be35c46ce9 | ||
|
dbbcb13721 | ||
|
edeaf9c040 | ||
|
61f709811c | ||
|
f7c4375509 | ||
|
52fb900ced | ||
|
031944ad30 | ||
|
bf8b974f68 | ||
|
6ad2a049e7 | ||
|
3d85d53e5d | ||
|
094a346539 | ||
|
162814f969 | ||
|
e39b5c99f1 | ||
|
8883243aaa | ||
|
89511eecf1 | ||
|
2c304ca80d | ||
|
bf4102e664 | ||
|
b86153cee3 | ||
|
7985d277b3 | ||
|
752da5c2a5 | ||
|
de4b8d547b | ||
|
1048ad1a01 | ||
|
4d11158d97 | ||
|
293b81cad2 | ||
|
65c38111f9 | ||
|
ec8db379a6 | ||
|
1484b4ae9f | ||
|
4cecbf1654 | ||
|
234ba90e2b | ||
|
bdd2244f75 | ||
|
cd7ec8ac92 | ||
|
cc5edbbbb2 | ||
|
94d9e34dd3 | ||
|
3dbf5038fa | ||
|
456a2f3bcf | ||
|
8e1fa52d14 | ||
|
cbf2feb633 | ||
|
afe8ee501c | ||
|
4644dab081 | ||
|
b37a69d76c | ||
|
51bc6ce2e4 | ||
|
988ebc2248 | ||
|
9f31e95420 | ||
|
3a076e26f7 | ||
|
e3e85fc6f3 | ||
|
ad3a35b4c5 | ||
|
454caa3eec | ||
|
0ffe67ffed | ||
|
8eb46bbfb2 | ||
|
d8e8b3c235 | ||
|
79f273348d | ||
|
fc99081658 | ||
|
aba14e6a43 | ||
|
8ebcef97ff | ||
|
00956a3770 | ||
|
11f3b7730c | ||
|
f63e6394ac | ||
|
bbca4c38df | ||
|
28f5d26719 | ||
|
bf2620f041 | ||
|
870b82b541 | ||
|
1635d9fb78 | ||
|
20fb155e8c | ||
|
da59c77ae2 | ||
|
0d0bdaa02e | ||
|
04cf5044da | ||
|
b005cd0bbd | ||
|
f5379d2047 | ||
|
98c247ec29 | ||
|
38e2f9138d | ||
|
3cc7d9b8c0 | ||
|
1ac9400712 | ||
|
10d5705b70 | ||
|
2d0d579735 | ||
|
ac0f524722 | ||
|
2cd0e5f60b | ||
|
d83502d054 | ||
|
9e539a7f59 | ||
|
c60247f51f | ||
|
06321511ad | ||
|
2e7923cad0 | ||
|
3c66c27caa | ||
|
7f4bd6917e | ||
|
b89376da55 | ||
|
a1dd6521e8 | ||
|
0088f840fe | ||
|
1b698c896e | ||
|
04000f28e7 | ||
|
976a05f6eb | ||
|
b15902bf44 | ||
|
5ac7529771 | ||
|
bbf68c0d9d | ||
|
eeb3dd3511 | ||
|
7b0ce11e46 | ||
|
8ef1d6a49c | ||
|
7db60f958d | ||
|
30043e072e | ||
|
5ee7606779 | ||
|
25409c5a5a | ||
|
51122dd287 | ||
|
ec9159f983 | ||
|
f3d77d1c21 | ||
|
1258fcaaf4 | ||
|
00fd60aaa8 | ||
|
c7a7d0582a | ||
|
b6e7acfb90 | ||
|
40eae298d5 | ||
|
09a9131a10 | ||
|
c93c9f5c2a | ||
|
7f08adc23e | ||
|
f41012080f | ||
|
786e9d351c | ||
|
3d2cf97fbf | ||
|
1fe6fb6739 | ||
|
6710eb5eb3 | ||
|
80b1d55683 | ||
|
1cebc4316b | ||
|
20895d6f3f | ||
|
65a4118d50 | ||
|
4857829aaa | ||
|
2ea4574caf | ||
|
102b74f9eb | ||
|
8a0d4dfa94 | ||
|
b4e645862a | ||
|
ea48506a32 | ||
|
23f0a29260 | ||
|
9249717cf4 | ||
|
4196dfc374 | ||
|
23af707b41 | ||
|
421088c3a0 | ||
|
749f1a7c00 | ||
|
344f9fcf05 | ||
|
4c971cd4da | ||
|
43d553dcfb | ||
|
66264f9a3d | ||
|
269f369541 | ||
|
1973019962 | ||
|
fe515c4c1c | ||
|
14f0a0addb | ||
|
64a2d0221c | ||
|
0ef91c3ba8 | ||
|
2adcb7be71 | ||
|
a332f2402a | ||
|
131a61c51b | ||
|
39d5dd89c5 | ||
|
341efe9a40 | ||
|
5ed6f89b4a | ||
|
4d609149d2 | ||
|
0d790505aa | ||
|
a486536925 | ||
|
e808fb424a | ||
|
6c54abeca7 | ||
|
d24b8a094c | ||
|
c46391420f | ||
|
68df7527f7 | ||
|
5a3c3d8210 | ||
|
95ceb49770 | ||
|
0bde58ffd7 | ||
|
ccd9827b63 | ||
|
db189cfb9f | ||
|
7527f181d5 | ||
|
c05b418512 | ||
|
e97d996fe4 | ||
|
0537b167ca | ||
|
40446201ff | ||
|
fff6b35821 | ||
|
75f2d7583f | ||
|
1fd8d3b487 | ||
|
a1216599ff | ||
|
8fff0e0fdf | ||
|
439727a84a | ||
|
3a18a6dddf | ||
|
d7050c63ae | ||
|
b7c88ec87d | ||
|
5985b62f60 | ||
|
e7c29b989c | ||
|
2100e427d9 | ||
|
2550d6dc63 | ||
|
ca72fae884 | ||
|
4fc1af14a7 | ||
|
1a30ec6da6 | ||
|
e77d519482 | ||
|
59806eee38 | ||
|
5968b10b0b | ||
|
e6f0103940 | ||
|
cbaad3dbd9 | ||
|
ee43a6a603 | ||
|
1ac1147ecb | ||
|
1edbc1f1f9 | ||
|
146b4c93ba | ||
|
94f90f457a | ||
|
6b7d56ac49 | ||
|
1635d7be8c | ||
|
992cd088cf | ||
|
f6010b2a59 | ||
|
9222a5fd6d | ||
|
6f7fb6ba5a | ||
|
a57a144f8e | ||
|
7b47e3225b | ||
|
6aa893e091 | ||
|
5aa03bcb0d | ||
|
d7060025e0 | ||
|
00883016af | ||
|
f0d8b614d0 | ||
|
ddbd574643 | ||
|
5ea3777599 | ||
|
a3949763f2 | ||
|
1b961a9ae2 | ||
|
d9f6b268d3 | ||
|
934b91f65f | ||
|
c3050231d1 | ||
|
4d7a01562e | ||
|
650eed7f72 | ||
|
ec8614e8e4 | ||
|
cb41b96a9e | ||
|
872b46a527 | ||
|
b1c8613dbe | ||
|
de6cd4f0d2 | ||
|
aec2fb939f | ||
|
69293db804 | ||
|
61a7ebf980 | ||
|
f14762b026 | ||
|
187d261400 | ||
|
e905f7ff7c | ||
|
aefc630d29 | ||
|
a5e929ce36 | ||
|
1641d365f5 | ||
|
07d9cd8efe | ||
|
29868b2a05 | ||
|
691b6b88ea | ||
|
2ee1a00177 | ||
|
144cf2d040 | ||
|
e1a308d151 | ||
|
bbfaacb598 | ||
|
d89ff71819 | ||
|
141c725489 | ||
|
bbc3aa4ff9 | ||
|
f7856f29fd | ||
|
7b69c58deb | ||
|
f60d245e32 | ||
|
f04e5bd590 | ||
|
90c428b4a7 | ||
|
97b5fad131 | ||
|
285a91715d | ||
|
880468f5a3 | ||
|
6ddbb2a402 | ||
|
7eab565225 | ||
|
b34101d45d | ||
|
6c21a7be0b | ||
|
a6f2bcb220 | ||
|
ef0db01d5c | ||
|
ef33ec639c | ||
|
27ca4434e2 | ||
|
9861c7d25c | ||
|
13ef82fc4d | ||
|
b33ca43e14 | ||
|
39e07a8d56 | ||
|
5286743cbe | ||
|
58bb998ef0 | ||
|
a56b2900dd | ||
|
ff34124394 | ||
|
03b60a2d5e | ||
|
d939d04885 | ||
|
73fb28a058 | ||
|
65eaf8e8c4 | ||
|
beeedb5141 | ||
|
1d40750a60 | ||
|
96baf9769a | ||
|
5044031b53 | ||
|
9f7119ee58 | ||
|
c514c41d0e | ||
|
45848c5298 | ||
|
8c61038b9f | ||
|
b5cb2f7e41 | ||
|
8af0d4b51f | ||
|
378ad75d48 | ||
|
01d19e2aa4 | ||
|
64e16ecaf1 | ||
|
6a047e53a8 | ||
|
31a7bc70c9 | ||
|
874cae1dab | ||
|
7a3dd41dba | ||
|
149962670a | ||
|
849e3c8b4b | ||
|
c9807f5afe | ||
|
9a9899597c | ||
|
fecb7af66e | ||
|
f5efb15cba | ||
|
d7d4fed0f3 | ||
|
c2c2635763 | ||
|
fb33e83c96 | ||
|
291ad17a22 | ||
|
0f052d46b2 | ||
|
506423cf23 | ||
|
946a496a2e | ||
|
d20526570b | ||
|
8312b9d9ca | ||
|
992f092968 | ||
|
60835227a1 | ||
|
2b6b35d91f | ||
|
897164c66c | ||
|
441d944c08 | ||
|
2b8ad6c4b5 | ||
|
99b2da4c47 | ||
|
8243b5493b | ||
|
d5ef906cff | ||
|
a720d8bc79 | ||
|
57691eacc5 | ||
|
526e24f5b1 | ||
|
2a79152762 | ||
|
f03acaf7ab | ||
|
4e7ce9edcf | ||
|
ff72619333 | ||
|
59692599ea | ||
|
4761641098 | ||
|
afaa275dc8 | ||
|
c736deb83b | ||
|
e930a20522 | ||
|
137f32f9ef | ||
|
195b98f19a | ||
|
87e0a28482 | ||
|
3ca3d7efef | ||
|
d8d8322912 | ||
|
1ea1a70fd2 | ||
|
1d5bc2838b | ||
|
45ec3fc389 | ||
|
3a5eee7dbe | ||
|
0cda6f42b8 | ||
|
0d99ef7cee | ||
|
7583810c90 | ||
|
1341bc0b19 | ||
|
fd073deea9 | ||
|
5652ab0a61 | ||
|
2ff23b08be | ||
|
0336af06f1 | ||
|
2af9f1ad62 | ||
|
e657da6658 | ||
|
fd00aa98ea | ||
|
de8a8d7bde | ||
|
eb6fbf907f | ||
|
4035f86b6d | ||
|
855b44f2ed | ||
|
f2e0097cac | ||
|
7c9bc7a204 | ||
|
f4f104c9f9 | ||
|
28a6f0df05 | ||
|
0eab4deab0 | ||
|
6e8e467cc9 | ||
|
ca9801f5fb | ||
|
6b6fc1e5d8 | ||
|
e3641d0568 | ||
|
a5b88a53c2 | ||
|
e4d0114e0d | ||
|
f974c5343e | ||
|
bc39da0619 | ||
|
1995b7f34b | ||
|
36eb7c40d0 | ||
|
56af472cfc | ||
|
d1fcfa58b9 | ||
|
cf23324749 | ||
|
b79c26b39e | ||
|
532b8c71a8 | ||
|
7c5b8911d8 | ||
|
e141d61593 | ||
|
9595d440cf | ||
|
1063924bd0 | ||
|
42fedfc870 | ||
|
24836c0351 | ||
|
21b6c8b5d8 | ||
|
41fb6f6a8e | ||
|
071ea6b559 | ||
|
397a71ca8b | ||
|
40c10f83e2 | ||
|
fb31581bb4 | ||
|
536a67ec96 | ||
|
53fe751371 | ||
|
7901ab857b | ||
|
8f585f7a53 | ||
|
874b19b27e | ||
|
fe7b11b4e9 | ||
|
601dfeeff9 | ||
|
cf623ce774 | ||
|
36b49950e8 | ||
|
77feb51b9c | ||
|
710ef00dfe | ||
|
0c8124828f | ||
|
0605c3c167 | ||
|
93d795e7c0 | ||
|
d55f938f7c | ||
|
45bb4dc80c | ||
|
53af35d256 | ||
|
51a6b29e01 | ||
|
e3835476ba | ||
|
256b094b13 | ||
|
699adb0b10 | ||
|
c91b5eaa41 | ||
|
7e1f20bf4c | ||
|
f9fe640905 | ||
|
34ea99006f | ||
|
06cce81a97 | ||
|
4a1a7940d5 | ||
|
1108d00014 | ||
|
034672e84e | ||
|
00c885c93c | ||
|
114f0bd8d6 | ||
|
24c67efdfd | ||
|
6a3748146d | ||
|
92ec754737 | ||
|
d11fbbc478 | ||
|
f11f0da11c | ||
|
ebdf2989f8 | ||
|
bc35c5d494 | ||
|
70a3e5e8ce | ||
|
74ff61a937 | ||
|
280d7e57bd | ||
|
03f5a368ec | ||
|
0b15aba82a | ||
|
d8fa9de93a | ||
|
afabbc4957 | ||
|
d978ba31d6 | ||
|
71efa96ef2 | ||
|
e336fe2bf8 | ||
|
d7f15c15e9 | ||
|
fff570538c | ||
|
38166a67c7 | ||
|
01b94db73d | ||
|
c804645382 | ||
|
384081ce0a | ||
|
afccb86f7e | ||
|
0ba5631100 | ||
|
c72589f0ee | ||
|
f2e5775380 | ||
|
a7164208d3 | ||
|
20f3d1608d | ||
|
9320148d71 | ||
|
ad617a0e06 | ||
|
62af8365f6 | ||
|
29afe5a688 | ||
|
2d3885a44a | ||
|
75a297632e | ||
|
572649740e | ||
|
b5938faa06 | ||
|
a4baac7193 | ||
|
bdde41e290 | ||
|
d888402bf9 | ||
|
378bd9fab2 | ||
|
4ad5e77907 | ||
|
4fb70c5e4d | ||
|
d5963ad109 | ||
|
b5fe434fea | ||
|
224c2674ab | ||
|
878b34fae3 | ||
|
5fe433418d | ||
|
02ba9bc1da | ||
|
2336120010 | ||
|
0d54d73a51 | ||
|
6c09832b9b | ||
|
1758f88492 | ||
|
34ffdc6e3f | ||
|
108933b655 | ||
|
3344bcaf92 | ||
|
f22ec063a1 | ||
|
0fcf01ddd5 | ||
|
1119a74ff0 | ||
|
18ea60e235 | ||
|
d752828977 | ||
|
1034271d9a | ||
|
f013d3b5d6 | ||
|
5f41d26abc | ||
|
7d5826ccf7 | ||
|
2c9f2325e2 | ||
|
daded2bc86 | ||
|
bc7619abaf | ||
|
459d6e1349 | ||
|
6e108d310a | ||
|
9c84fa127a | ||
|
84c6708366 | ||
|
f7e3016949 | ||
|
dd1110ca5c | ||
|
28c4adac24 | ||
|
cf20cfd31e | ||
|
7e579bb59a | ||
|
96e1b85c2c | ||
|
71e616d17e | ||
|
f85d939e5e | ||
|
8d014d6cb0 | ||
|
f7f8990f7a | ||
|
d6f288427a | ||
|
2a8f371643 | ||
|
dee863dbb2 | ||
|
7d6877ec80 | ||
|
f426d23690 | ||
|
6bd0dc3e78 | ||
|
4f0c920a8e | ||
|
b0b793dd94 | ||
|
efbb649eee | ||
|
e128a77eed | ||
|
5cd2ee927a | ||
|
90dfb5e138 | ||
|
e854b90293 | ||
|
6d042d9e61 | ||
|
4310f24a4e | ||
|
aebf8e3c29 | ||
|
fcd449f0d4 | ||
|
ab1b117d91 | ||
|
1253296387 | ||
|
466484176f | ||
|
20289ad8e1 | ||
|
0abb8c6862 | ||
|
147386189f | ||
|
9cec9e4ce2 | ||
|
26119af7a6 | ||
|
478d1f71e3 | ||
|
b1d952b8a2 | ||
|
b9bcdbbfdc | ||
|
6c31ed53f4 | ||
|
aa95ae774f | ||
|
65adfd9243 | ||
|
c4a8c0893b | ||
|
e90f5e8a20 | ||
|
526c76181e | ||
|
cf352374ae | ||
|
98b99201b0 | ||
|
bce4d669ee | ||
|
e7a326e230 | ||
|
9eaeaa8452 | ||
|
2031c5bf90 | ||
|
9fefa7b44c | ||
|
a2a70c3b65 | ||
|
0b4ed8d791 | ||
|
c34f98931e | ||
|
2feac2772f | ||
|
fdda4e4e99 | ||
|
e1cf0cff26 | ||
|
634fa772c9 | ||
|
4b3bbe0ecd | ||
|
cde43541d0 | ||
|
186287ecfb | ||
|
bd5d1615ac | ||
|
21299cc7e4 | ||
|
e747ea7dfd | ||
|
810cd7881e | ||
|
a8213d7f45 | ||
|
e6f6d1e478 | ||
|
933d241bba | ||
|
7249c3a09b | ||
|
d13f8ac3a9 | ||
|
fa35e3b874 | ||
|
853883c6e5 | ||
|
b467279c7d | ||
|
c6a5ac1d16 | ||
|
e41288de4f | ||
|
b886988a54 | ||
|
bb8a459fe2 | ||
|
d5143a1bf0 | ||
|
12611fa142 | ||
|
3e319b409b | ||
|
f2b16836c2 | ||
|
14bf45a0d5 | ||
|
0c6a6b3370 | ||
|
9521f609d8 | ||
|
7533369695 | ||
|
f31765d5dd | ||
|
d33062795c | ||
|
2da8d9b0ac | ||
|
3f56e8191f | ||
|
bf4c3dc2c5 | ||
|
a5365ec8cb | ||
|
ec94ec0286 | ||
|
af0973c847 | ||
|
e71f6b0bc0 | ||
|
1738724e4a | ||
|
e9e09be37e | ||
|
8a923e02a1 | ||
|
4f12e2f711 | ||
|
addcf57b4d | ||
|
db08bccb11 | ||
|
02f0681344 | ||
|
62dbadd536 | ||
|
0588db8a69 | ||
|
58b1a13453 | ||
|
df70dbbae4 | ||
|
81c55b06d2 | ||
|
591c2f0595 | ||
|
9c5a42be0d | ||
|
45b7fa15e5 | ||
|
e3de92f1ea | ||
|
2ffa2be64e | ||
|
387078b40c | ||
|
5203bf0b83 | ||
|
fb93baeae4 | ||
|
9fa4c2f5b8 | ||
|
cc9528eaec | ||
|
73dda96711 | ||
|
d711acc954 | ||
|
ab59c47880 | ||
|
e4b7847904 | ||
|
308115ebae | ||
|
1cb72536ea | ||
|
f24429e84a | ||
|
fc4402b456 | ||
|
077aec5d32 | ||
|
548949214c | ||
|
2aec47f56f | ||
|
344eb21bee | ||
|
4fb55b3270 | ||
|
75764c284d | ||
|
c95a32def8 | ||
|
142f7862ed | ||
|
b6412adc32 | ||
|
7eece7e769 | ||
|
7f6608cbed | ||
|
f816a8fb82 | ||
|
3c2484142d | ||
|
2192bb3dde | ||
|
e1df9a043f | ||
|
338d3ffa13 | ||
|
6039a36183 | ||
|
c551f693c2 | ||
|
5d2278a5ca | ||
|
ea5e186bb8 | ||
|
69b181f263 | ||
|
3132b10bc0 | ||
|
7335e166b7 | ||
|
91bba794a6 | ||
|
a6bd0c7eed | ||
|
ff351721b2 | ||
|
538aa6c200 | ||
|
f546e03d31 | ||
|
bdbea0d037 | ||
|
474b4ac1af | ||
|
99e0929d6c | ||
|
e75e44bdcc | ||
|
7975bbfcaa | ||
|
11bca98a29 | ||
|
618186723a | ||
|
a5986f0dcd | ||
|
c162d7148f | ||
|
7e1a210ae0 | ||
|
bf5e3efd54 | ||
|
08d52bee14 | ||
|
a6e9a9b644 | ||
|
dc96542742 | ||
|
e2afb59a0b | ||
|
daa5d5aead | ||
|
fd0a03cf78 | ||
|
34d99ea1d0 | ||
|
90355c0b27 | ||
|
538cf9e294 | ||
|
8e3f2b879e | ||
|
8fa6a25aa5 | ||
|
96a300b2de | ||
|
aeca9cb7ba | ||
|
c2727e6e04 | ||
|
8be0918d7e | ||
|
612d3bca7d | ||
|
e9fe270e94 | ||
|
8402665c55 | ||
|
79090f1755 | ||
|
3d84a38867 | ||
|
5155fac94f | ||
|
7a4d15dc67 | ||
|
e4d8d50a8b | ||
|
3c9a13e6cf | ||
|
2c97d44281 | ||
|
2d3a398678 | ||
|
d380ed2b3a | ||
|
644a45714a | ||
|
324683993e | ||
|
f6f6241627 | ||
|
6a33bed353 | ||
|
f83ee0be23 | ||
|
7442bdc383 | ||
|
82950528ed | ||
|
97eaef8308 | ||
|
92189cf96a | ||
|
b8a651df47 | ||
|
c0ed89be9a | ||
|
ade4bcb125 | ||
|
c5dd34344f | ||
|
c90cc976a5 | ||
|
bd9bcd5905 | ||
|
0ddcbb52e6 | ||
|
2457f3d54c | ||
|
1cc207af32 | ||
|
f4a0d57c07 | ||
|
a76ee61e97 | ||
|
fac367495b | ||
|
76177b6065 | ||
|
433f305fa9 | ||
|
fce824e78f | ||
|
c4b768a4ec | ||
|
6d1be832d9 | ||
|
a828d4318e | ||
|
a36ccd7f42 | ||
|
b4a7fe8d8f | ||
|
43e4848872 | ||
|
80d4a08e30 | ||
|
47d0b5ad0c | ||
|
c59b433395 | ||
|
18d06a1cd5 | ||
|
f13041360a | ||
|
0236fe80c1 | ||
|
2caf283323 | ||
|
6fb66e299a | ||
|
398a74d871 | ||
|
08ca8a361e | ||
|
1f141c1953 | ||
|
1e14a91cb9 | ||
|
074b933ae4 | ||
|
7b7f3342d8 | ||
|
adc4bcbd24 | ||
|
130ff5f841 | ||
|
fea1b151e6 | ||
|
6e0fffa0f8 | ||
|
d2c95a1b13 | ||
|
8f8c5040db | ||
|
3b69facf0b | ||
|
a6bc4c95b1 | ||
|
59fd171515 | ||
|
3db0d06901 | ||
|
d7d738d745 | ||
|
ac17217c69 | ||
|
2e5eeb6b92 | ||
|
eb0eac0f03 | ||
|
27077d5be8 | ||
|
fd01723470 | ||
|
994aa41ccc | ||
|
c791185c20 | ||
|
e7ddaf5ed1 | ||
|
2217cf8ea2 | ||
|
3bbeb891c4 | ||
|
ff23a2a582 | ||
|
8396bdb759 | ||
|
351d88f7ae | ||
|
dfb7ab3352 | ||
|
8e3ee58e3f | ||
|
40a9baa2db | ||
|
4b2aae9950 | ||
|
9d3f497a21 | ||
|
517bc0db84 | ||
|
369b03a3d8 | ||
|
2cddec7798 | ||
|
f7fceab40b | ||
|
3b66f63523 | ||
|
96450ed9cc | ||
|
5eee1dfcd1 | ||
|
19d2a4ab94 | ||
|
6ee7535af0 | ||
|
b738054344 | ||
|
b8fa892b70 | ||
|
ca65ee8d50 | ||
|
5eca548acc | ||
|
42679f2903 | ||
|
b431e39d4e | ||
|
606cb51293 | ||
|
62e0c0de59 | ||
|
30f789650f | ||
|
3f96d4b6da | ||
|
0dcd4a5bdb | ||
|
8a599b2582 | ||
|
a798edc360 | ||
|
e51c32b9c1 | ||
|
048a0172a0 | ||
|
64f6118af4 | ||
|
14b5a5a4c7 | ||
|
4083f7e47f | ||
|
2854d0339c | ||
|
98fffe6f23 | ||
|
f083849ebb | ||
|
deb58339b9 | ||
|
65ad9d6d96 | ||
|
e0f13ecae7 | ||
|
880ceebae4 | ||
|
8c014e63af | ||
|
ecd40fa265 | ||
|
3b140a05a4 | ||
|
d38f81999e | ||
|
efcfd23652 | ||
|
70b83c9a70 | ||
|
4779e4e488 | ||
|
13931463bd | ||
|
ecc861bf06 | ||
|
475c07e935 | ||
|
0c8d97e3f7 | ||
|
8d4f8f0cfc | ||
|
289b50785b | ||
|
68c14242b2 | ||
|
4af54fb410 | ||
|
13b4a4b24c | ||
|
e07fde5c81 | ||
|
8f27b3fcf6 | ||
|
251bd15597 | ||
|
dd738d2787 | ||
|
18d92c3f16 | ||
|
f4c36fe1ce | ||
|
23d7392eb9 | ||
|
996eeec16c | ||
|
641915974b | ||
|
528ec4dded | ||
|
366b946f5b | ||
|
9e6a55a086 | ||
|
285781724f | ||
|
2d103cf80c | ||
|
c8d991e4de | ||
|
a165bb9f46 | ||
|
33ed42d985 | ||
|
1ee4f6138b | ||
|
7b61ef9e0f | ||
|
b46d077b3a | ||
|
e32331d002 | ||
|
05928608ec | ||
|
d8c9a67d20 | ||
|
c352fe9ab0 | ||
|
e396874f3c | ||
|
f6c53ced0d | ||
|
ee26e282cc | ||
|
894f893223 | ||
|
67d7e2007f | ||
|
3a9cca74fc | ||
|
fe9c0db603 | ||
|
fde32c5219 | ||
|
213024a560 | ||
|
e5e18ddffb | ||
|
b3e03fa6f0 | ||
|
c0586ca6e2 | ||
|
4430314514 | ||
|
4087055b18 | ||
|
a47c0065fb | ||
|
6883c2214b | ||
|
7f6fdd6e7b | ||
|
24124452d5 | ||
|
0dff89d9fb | ||
|
f0f64f42ee | ||
|
d278afc85b | ||
|
423b8209a1 | ||
|
559f74e0c1 | ||
|
66c3a43e96 | ||
|
d83554121f | ||
|
2688b94133 | ||
|
e035baee8a | ||
|
f1ff8f9aad | ||
|
115ea624d9 | ||
|
6ecae6c5f8 | ||
|
6d76b587cf | ||
|
8e62ff50fe | ||
|
0daa905a27 | ||
|
d1a4ad3db6 | ||
|
2c1bd399d2 | ||
|
fac5fba0dc | ||
|
c907ad83b0 | ||
|
585ba777c2 | ||
|
f8ee4cfea5 | ||
|
35d2cbefe6 | ||
|
004f0a6596 | ||
|
b68e0bb3fb | ||
|
92f0216605 | ||
|
e317b9be00 | ||
|
2e52386be5 | ||
|
9431c70a6a | ||
|
6e67d44aa3 | ||
|
e622013f7e | ||
|
3886f0c530 | ||
|
eb9c204535 | ||
|
ab9e99218f | ||
|
714c610d6b | ||
|
8706d69e60 | ||
|
55a242bd81 | ||
|
61b40c47f9 | ||
|
710d0620a4 | ||
|
71cb7c2063 | ||
|
a482d870dd | ||
|
bc4992fef9 | ||
|
b38d0d7d9e | ||
|
853a9c7a8c | ||
|
26b9254ac7 | ||
|
a51f11999a | ||
|
f11c23f407 | ||
|
0c8de4e561 | ||
|
13f9993007 | ||
|
b2b451d762 | ||
|
2e146a56f7 | ||
|
34197d4f8a | ||
|
39dbd91bb0 | ||
|
901d99d7c5 | ||
|
8f6e3848f6 | ||
|
3548350dfa | ||
|
caae240bc7 | ||
|
f5f6ceece5 | ||
|
4caceb5dd4 | ||
|
3da41b6021 | ||
|
9b9fb4d7a3 | ||
|
ca8b00e871 | ||
|
4434889e41 | ||
|
475352fbc0 | ||
|
ad30ac3932 | ||
|
9d52ca1887 | ||
|
ec537d75e4 | ||
|
b47ea9421f | ||
|
845d2e5433 | ||
|
50310f7b14 | ||
|
af944aa74c | ||
|
b5077d02ed | ||
|
6a3bd1c4d1 | ||
|
2fcd0e21bd | ||
|
5127726bbc | ||
|
db456a70ee | ||
|
770e848953 | ||
|
9e1dd15e31 | ||
|
27b9a9e7ef | ||
|
a020c901ba | ||
|
cdad68e858 | ||
|
ef36028526 | ||
|
69b1b19315 | ||
|
516f71bbdc | ||
|
d820fea7a4 | ||
|
3e8d157118 | ||
|
67f45940ce | ||
|
95400e6451 | ||
|
d46fe31f54 | ||
|
4f67be1c8e | ||
|
c13e164f25 | ||
|
eba8f36d4f | ||
|
37f11ab77d | ||
|
8b898818c2 | ||
|
0f62ab6c42 | ||
|
c524b72d13 | ||
|
b5313dbd4d | ||
|
b9a1827da7 | ||
|
1057189ea2 | ||
|
879b2845ad | ||
|
ecce3756d4 | ||
|
6e4dd5811d | ||
|
598e1304f6 | ||
|
e3fbc0ee9c | ||
|
4021734047 | ||
|
5a307fa7f3 | ||
|
617d12fd77 | ||
|
837f398a9b | ||
|
e18211deca | ||
|
32a547cc3e | ||
|
365afa381a | ||
|
b7d3c073f8 | ||
|
56b0095622 | ||
|
39f0c48eb2 | ||
|
7d24e1405e | ||
|
3680ae220a | ||
|
f309fa21c9 | ||
|
61e7326f22 | ||
|
dc13ff97e2 | ||
|
af28237569 | ||
|
ff8de0a93f | ||
|
aefabcc056 | ||
|
1d6c6fc3b8 | ||
|
8645773fc6 | ||
|
d663909159 | ||
|
e3ff92bc87 | ||
|
2d43ecf8ca | ||
|
5f4beb711f | ||
|
da514187f5 | ||
|
6bd9ce7b55 | ||
|
ec21d354b9 | ||
|
8cf4ce5d9e | ||
|
09b6c37e1d | ||
|
3161dbfff2 | ||
|
8412928a14 | ||
|
60a7830ba5 | ||
|
ac473282a2 | ||
|
20f9e0f144 | ||
|
71a9e5d8c2 | ||
|
a605fcc2bd | ||
|
3eaebf1e0b | ||
|
e540ccbd34 | ||
|
55ce61d1a8 | ||
|
8e14f43398 | ||
|
bbbcc72460 | ||
|
c2b1b00e52 | ||
|
05c2e35c5d | ||
|
8efde9c48c | ||
|
247fc2e471 | ||
|
9d2ca90b4c | ||
|
3a5f8b6192 | ||
|
16b5a88097 | ||
|
fdf2e046c3 | ||
|
531d57f30c | ||
|
841bf67bb9 | ||
|
399b457f54 | ||
|
fed734edfc | ||
|
c84c014536 | ||
|
1e994419ee | ||
|
0d2ea14ac1 | ||
|
aec87a3514 |
@@ -24,9 +24,9 @@ variables:
|
||||
BACKEND_FLAGS: "-Dx11-backend=true -Dwayland-backend=true -Dbroadway-backend=true"
|
||||
FEATURE_FLAGS: "-Dvulkan=enabled -Dcloudproviders=enabled"
|
||||
MESON_TEST_TIMEOUT_MULTIPLIER: 3
|
||||
FEDORA_IMAGE: "registry.gitlab.gnome.org/gnome/gtk/fedora:v25"
|
||||
FEDORA_IMAGE: "registry.gitlab.gnome.org/gnome/gtk/fedora:v31"
|
||||
FLATPAK_IMAGE: "registry.gitlab.gnome.org/gnome/gnome-runtime-images/gnome:master"
|
||||
DOCS_IMAGE: "registry.gitlab.gnome.org/gnome/gtk/fedora-docs:v25"
|
||||
DOCS_IMAGE: "registry.gitlab.gnome.org/gnome/gtk/fedora:v31"
|
||||
|
||||
.only-default:
|
||||
only:
|
||||
@@ -43,6 +43,7 @@ style-check-diff:
|
||||
- .gitlab-ci/run-style-check-diff.sh
|
||||
|
||||
.build-fedora-default:
|
||||
extends: .only-default
|
||||
image: $FEDORA_IMAGE
|
||||
artifacts:
|
||||
when: always
|
||||
@@ -76,6 +77,7 @@ fedora-x86_64:
|
||||
variables:
|
||||
EXTRA_MESON_FLAGS: "--buildtype=debug --default-library=both"
|
||||
script:
|
||||
- .gitlab-ci/show-info-linux.sh
|
||||
- meson subprojects update
|
||||
- meson ${COMMON_MESON_FLAGS} ${EXTRA_MESON_FLAGS} ${BACKEND_FLAGS} ${FEATURE_FLAGS}
|
||||
_build
|
||||
@@ -91,6 +93,7 @@ release-build:
|
||||
variables:
|
||||
EXTRA_MESON_FLAGS: "--buildtype=release"
|
||||
script:
|
||||
- .gitlab-ci/show-info-linux.sh
|
||||
- meson subprojects update
|
||||
- meson ${COMMON_MESON_FLAGS} ${EXTRA_MESON_FLAGS} ${BACKEND_FLAGS} ${FEATURE_FLAGS}
|
||||
_build
|
||||
@@ -105,6 +108,7 @@ installed-tests:
|
||||
EXTRA_MESON_FLAGS: "--prefix=/usr --libdir=/usr/lib64 -Dinstall-tests=true"
|
||||
G_TEST_ACCESSIBLE: 1
|
||||
script:
|
||||
- .gitlab-ci/show-info-linux.sh
|
||||
- meson subprojects update
|
||||
- meson ${COMMON_MESON_FLAGS} ${EXTRA_MESON_FLAGS} ${BACKEND_FLAGS} ${FEATURE_FLAGS}
|
||||
_build
|
||||
@@ -121,6 +125,7 @@ installed-tests:
|
||||
|
||||
|
||||
.mingw-defaults:
|
||||
extends: .only-default
|
||||
stage: build
|
||||
tags:
|
||||
- win32-ps
|
||||
@@ -144,6 +149,48 @@ msys2-mingw64:
|
||||
MSYSTEM: "MINGW64"
|
||||
CHERE_INVOKING: "yes"
|
||||
|
||||
macos:
|
||||
extends: .only-default
|
||||
only:
|
||||
- branches@GNOME/gtk
|
||||
stage: build
|
||||
tags:
|
||||
- macos
|
||||
needs: []
|
||||
before_script:
|
||||
- bash .gitlab-ci/show-info-osx.sh
|
||||
- pip3 install --user meson==0.56
|
||||
- pip3 install --user ninja
|
||||
- export PATH=/Users/gitlabrunner/Library/Python/3.7/bin:$PATH
|
||||
- export MESON_FORCE_BACKTRACE=1
|
||||
script:
|
||||
- meson -Dx11-backend=false
|
||||
-Dintrospection=disabled
|
||||
-Dcpp_std=c++11
|
||||
-Dpixman:tests=disabled
|
||||
_build
|
||||
- ninja -C _build
|
||||
artifacts:
|
||||
when: always
|
||||
paths:
|
||||
- "${CI_PROJECT_DIR}/_build/meson-logs"
|
||||
|
||||
vs2017-x64:
|
||||
extends: .only-default
|
||||
# TODO: Uncomment this when ready to merge.
|
||||
#only:
|
||||
# - branches@GNOME/gtk
|
||||
stage: build
|
||||
tags:
|
||||
- win32-ps
|
||||
needs: []
|
||||
script:
|
||||
- .gitlab-ci/test-msvc.bat
|
||||
artifacts:
|
||||
when: always
|
||||
paths:
|
||||
- "${CI_PROJECT_DIR}/_build/meson-logs"
|
||||
|
||||
.flatpak-defaults:
|
||||
image: $FLATPAK_IMAGE
|
||||
stage: flatpak
|
||||
@@ -259,14 +306,24 @@ reference:
|
||||
stage: docs
|
||||
needs: []
|
||||
variables:
|
||||
EXTRA_MESON_FLAGS: "--buildtype=release"
|
||||
EXTRA_MESON_FLAGS: "--buildtype=release --force-fallback-for=gdk-pixbuf,pango"
|
||||
script:
|
||||
- meson ${COMMON_MESON_FLAGS} ${EXTRA_MESON_FLAGS} -Dgtk_doc=true _build
|
||||
- ninja -C _build gdk4-doc gsk4-doc gtk4-doc
|
||||
- meson ${COMMON_MESON_FLAGS} ${EXTRA_MESON_FLAGS} -Dgtk_doc=true -Dgdk-pixbuf:gtk_doc=true -Dpango:gtk_doc=true _build
|
||||
- meson compile -C _build
|
||||
- mkdir -p _reference/
|
||||
- mv _build/docs/reference/gdk/html/ _reference/gdk/
|
||||
- mv _build/docs/reference/gsk/html/ _reference/gsk/
|
||||
- mv _build/docs/reference/gtk/html/ _reference/gtk/
|
||||
- mv _build/docs/reference/gdk/gdk4/ _reference/gdk4/
|
||||
- mv _build/docs/reference/gdk/gdk4-x11/ _reference/gdk4-x11/
|
||||
- mv _build/docs/reference/gdk/gdk4-wayland/ _reference/gdk4-wayland/
|
||||
- mv _build/docs/reference/gsk/gsk4/ _reference/gsk4/
|
||||
- mv _build/docs/reference/gtk/gtk4/ _reference/gtk4/
|
||||
- mv _build/subprojects/pango/docs/Pango/ _reference/Pango/
|
||||
- mv _build/subprojects/pango/docs/PangoCairo/ _reference/PangoCairo/
|
||||
- mv _build/subprojects/pango/docs/PangoFc/ _reference/PangoFc/
|
||||
- mv _build/subprojects/pango/docs/PangoFT2/ _reference/PangoFT2/
|
||||
- mv _build/subprojects/pango/docs/PangoOT/ _reference/PangoOT/
|
||||
- mv _build/subprojects/pango/docs/PangoXft/ _reference/PangoXft/
|
||||
- mv _build/subprojects/gdk-pixbuf/docs/gdk-pixbuf/ _reference/gdk-pixbuf/
|
||||
- mv _build/subprojects/gdk-pixbuf/docs/gdk-pixdata/ _reference/gdk-pixdata/
|
||||
artifacts:
|
||||
paths:
|
||||
- _reference
|
||||
@@ -276,6 +333,7 @@ pages:
|
||||
needs: ['reference']
|
||||
script:
|
||||
- mv _reference/ public/
|
||||
- cp .gitlab-ci/pages/* public/
|
||||
artifacts:
|
||||
paths:
|
||||
- public
|
||||
|
@@ -17,8 +17,8 @@ branch, as well as their available versions.
|
||||
### Checklist for Updating a CI image
|
||||
|
||||
- [ ] Update the `${image}.Dockerfile` file with the dependencies
|
||||
- [ ] Run `./run-docker.sh build --base ${image} --base-version ${number}`
|
||||
- [ ] Run `./run-docker.sh push --base ${image} --base-version ${number}`
|
||||
- [ ] Run `./run-docker.sh build --base ${image} --version ${number}`
|
||||
- [ ] Run `./run-docker.sh push --base ${image} --version ${number}`
|
||||
once the Docker image is built; you may need to log in by using
|
||||
`docker login` or `podman login`
|
||||
- [ ] Update the `image` keys in the `.gitlab-ci.yml` file with the new
|
||||
@@ -30,8 +30,8 @@ branch, as well as their available versions.
|
||||
- [ ] Write a new `${image}.Dockerfile` with the instructions to set up
|
||||
a build environment
|
||||
- [ ] Add the `pip3 install meson` incantation
|
||||
- [ ] Run `./run-docker.sh build --base ${image} --base-version ${number}`
|
||||
- [ ] Run `./run-docker.sh push --base ${image} --base-version ${number}`
|
||||
- [ ] Run `./run-docker.sh build --base ${image} --version ${number}`
|
||||
- [ ] Run `./run-docker.sh push --base ${image} --version ${number}`
|
||||
- [ ] Add the new job to `.gitlab-ci.yml` referencing the image
|
||||
- [ ] Open a merge request with your changes and let it run
|
||||
|
||||
|
@@ -1,91 +0,0 @@
|
||||
FROM fedora:31
|
||||
|
||||
RUN dnf -y install \
|
||||
adwaita-icon-theme \
|
||||
atk-devel \
|
||||
at-spi2-atk-devel \
|
||||
avahi-gobject-devel \
|
||||
cairo-devel \
|
||||
cairo-gobject-devel \
|
||||
ccache \
|
||||
clang \
|
||||
clang-analyzer \
|
||||
colord-devel \
|
||||
cups-devel \
|
||||
dbus-daemon \
|
||||
dbus-x11 \
|
||||
dejavu-sans-mono-fonts \
|
||||
desktop-file-utils \
|
||||
diffutils \
|
||||
elfutils-libelf-devel \
|
||||
fribidi-devel \
|
||||
gcc \
|
||||
gcc-c++ \
|
||||
gdk-pixbuf2-devel \
|
||||
gdk-pixbuf2-modules \
|
||||
gettext \
|
||||
git \
|
||||
glib2-devel \
|
||||
glib2-static \
|
||||
glibc-devel \
|
||||
glibc-headers \
|
||||
gnome-desktop-testing \
|
||||
gobject-introspection-devel \
|
||||
graphene-devel \
|
||||
gstreamer1-devel \
|
||||
gstreamer1-plugins-good \
|
||||
gstreamer1-plugins-bad-free-devel \
|
||||
gstreamer1-plugins-base-devel \
|
||||
gtk-doc \
|
||||
hicolor-icon-theme \
|
||||
iso-codes \
|
||||
itstool \
|
||||
json-glib-devel \
|
||||
lcov \
|
||||
libasan \
|
||||
libattr-devel \
|
||||
libcloudproviders-devel \
|
||||
libepoxy-devel \
|
||||
libffi-devel \
|
||||
libmount-devel \
|
||||
librsvg2 \
|
||||
libselinux-devel \
|
||||
libubsan \
|
||||
libXcomposite-devel \
|
||||
libXcursor-devel \
|
||||
libXcursor-devel \
|
||||
libXdamage-devel \
|
||||
libXfixes-devel \
|
||||
libXi-devel \
|
||||
libXinerama-devel \
|
||||
libxkbcommon-devel \
|
||||
libXrandr-devel \
|
||||
libXrender-devel \
|
||||
libXtst-devel \
|
||||
libxslt \
|
||||
mesa-dri-drivers \
|
||||
mesa-libEGL-devel \
|
||||
mesa-libwayland-egl-devel \
|
||||
ninja-build \
|
||||
pango-devel \
|
||||
pcre-devel \
|
||||
pcre-static \
|
||||
python3 \
|
||||
python3-jinja2 \
|
||||
python3-pip \
|
||||
python3-pygments \
|
||||
python3-wheel \
|
||||
redhat-rpm-config \
|
||||
sassc \
|
||||
systemtap-sdt-devel \
|
||||
vulkan-devel \
|
||||
wayland-devel \
|
||||
wayland-protocols-devel \
|
||||
weston \
|
||||
weston-libs \
|
||||
which \
|
||||
xorg-x11-server-Xvfb \
|
||||
&& dnf clean all
|
||||
|
||||
RUN pip3 install meson==0.55.3
|
||||
|
@@ -1,12 +0,0 @@
|
||||
FROM registry.gitlab.gnome.org/gnome/gtk/fedora-base:v25
|
||||
|
||||
RUN dnf -y install pandoc
|
||||
|
||||
ARG HOST_USER_ID=5555
|
||||
ENV HOST_USER_ID ${HOST_USER_ID}
|
||||
RUN useradd -u $HOST_USER_ID -ms /bin/bash user
|
||||
|
||||
USER user
|
||||
WORKDIR /home/user
|
||||
|
||||
ENV LANG C.UTF-8
|
@@ -1,4 +1,98 @@
|
||||
FROM registry.gitlab.gnome.org/gnome/gtk/fedora-base:v25
|
||||
FROM fedora:34
|
||||
|
||||
RUN dnf -y install \
|
||||
adwaita-icon-theme \
|
||||
atk-devel \
|
||||
at-spi2-atk-devel \
|
||||
avahi-gobject-devel \
|
||||
cairo-devel \
|
||||
cairo-gobject-devel \
|
||||
ccache \
|
||||
clang \
|
||||
clang-analyzer \
|
||||
clang-tools-extra \
|
||||
colord-devel \
|
||||
cups-devel \
|
||||
dbus-daemon \
|
||||
dbus-x11 \
|
||||
dejavu-sans-mono-fonts \
|
||||
desktop-file-utils \
|
||||
diffutils \
|
||||
elfutils-libelf-devel \
|
||||
fribidi-devel \
|
||||
gcc \
|
||||
gcc-c++ \
|
||||
gdk-pixbuf2-devel \
|
||||
gdk-pixbuf2-modules \
|
||||
gettext \
|
||||
git \
|
||||
glib2-devel \
|
||||
glib2-static \
|
||||
glibc-devel \
|
||||
glibc-headers \
|
||||
gnome-desktop-testing \
|
||||
gobject-introspection-devel \
|
||||
graphene-devel \
|
||||
graphviz \
|
||||
gstreamer1-devel \
|
||||
gstreamer1-plugins-good \
|
||||
gstreamer1-plugins-bad-free-devel \
|
||||
gstreamer1-plugins-base-devel \
|
||||
gtk-doc \
|
||||
hicolor-icon-theme \
|
||||
iso-codes \
|
||||
itstool \
|
||||
json-glib-devel \
|
||||
lcov \
|
||||
libasan \
|
||||
libattr-devel \
|
||||
libcloudproviders-devel \
|
||||
libepoxy-devel \
|
||||
libffi-devel \
|
||||
libmount-devel \
|
||||
librsvg2 \
|
||||
libselinux-devel \
|
||||
libubsan \
|
||||
libXcomposite-devel \
|
||||
libXcursor-devel \
|
||||
libXcursor-devel \
|
||||
libXdamage-devel \
|
||||
libXfixes-devel \
|
||||
libXi-devel \
|
||||
libXinerama-devel \
|
||||
libxkbcommon-devel \
|
||||
libXrandr-devel \
|
||||
libXrender-devel \
|
||||
libXtst-devel \
|
||||
libxslt \
|
||||
mesa-dri-drivers \
|
||||
mesa-libEGL-devel \
|
||||
mesa-libGLES-devel \
|
||||
meson \
|
||||
ninja-build \
|
||||
pango-devel \
|
||||
pcre-devel \
|
||||
pcre-static \
|
||||
python3 \
|
||||
python3-gobject \
|
||||
python3-jinja2 \
|
||||
python3-markdown \
|
||||
python3-pip \
|
||||
python3-pygments \
|
||||
python3-toml \
|
||||
python3-typogrify \
|
||||
python3-wheel \
|
||||
redhat-rpm-config \
|
||||
sassc \
|
||||
systemtap-sdt-devel \
|
||||
vulkan-devel \
|
||||
wayland-devel \
|
||||
wayland-protocols-devel \
|
||||
weston \
|
||||
weston-libs \
|
||||
which \
|
||||
xorg-x11-server-Xvfb \
|
||||
&& dnf clean all
|
||||
|
||||
# Enable sudo for wheel users
|
||||
RUN sed -i -e 's/# %wheel/%wheel/' -e '0,/%wheel/{s/%wheel/# %wheel/}' /etc/sudoers
|
||||
|
@@ -24,6 +24,7 @@ flatpak build ${builddir} meson \
|
||||
-Dbuild-examples=false \
|
||||
-Dintrospection=disabled \
|
||||
-Ddemos=true \
|
||||
-Dprofile=devel \
|
||||
_flatpak_build
|
||||
|
||||
flatpak build ${builddir} ninja -C _flatpak_build install
|
||||
|
154
.gitlab-ci/pages/fonts.css
Normal file
@@ -0,0 +1,154 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2021 GNOME Foundation
|
||||
*
|
||||
* SPDX-License-Identifier: LGPL-2.1-or-later
|
||||
*/
|
||||
|
||||
/**
|
||||
* RedHat Fonts taken from https://github.com/RedHatOfficial/RedHatFont
|
||||
* License: SIL Open Font License 1.1 http://scripts.sil.org/OFL
|
||||
*/
|
||||
@import url('https://fonts.googleapis.com/css2?family=Noto+Serif:ital,wght@0,400;0,700;1,400;1,700&family=Red+Hat+Display:ital,wght@0,400;0,500;0,700;0,900;1,400;1,500;1,700;1,900&display=swap');
|
||||
@import url('https://fonts.googleapis.com/css2?family=Noto+Serif:ital,wght@0,400;0,700;1,400;1,700&display=swap');
|
||||
@import url('https://fonts.googleapis.com/css2?family=Source+Code+Pro:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500;1,600&display=swap');
|
||||
|
||||
@font-face {
|
||||
font-family: "RedHatDisplayWeb";
|
||||
src: local('RedHatDisplayWeb'),
|
||||
url("RedHatDisplay-Regular.woff2") format("woff2"),
|
||||
url("RedHatDisplay-Regular.woff") format("woff");
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
font-display: fallback;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "RedHatDisplayWeb";
|
||||
src: local('RedHatDisplayWeb'),
|
||||
url("RedHatDisplay-RegularItalic.woff2") format("woff2"),
|
||||
url("RedHatDisplay-RegularItalic.woff") format("woff");
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
font-display: fallback;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "RedHatDisplayWeb";
|
||||
src: local('RedHatDisplayWeb'),
|
||||
url("RedHatDisplay-Medium.woff2") format("woff2"),
|
||||
url("RedHatDisplay-Medium.woff") format("woff");
|
||||
font-style: normal;
|
||||
font-weight: 500;
|
||||
font-display: fallback;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "RedHatDisplayWeb";
|
||||
src: local('RedHatDisplayWeb'),
|
||||
url("RedHatDisplay-MediumItalic.woff2") format("woff2"),
|
||||
url("RedHatDisplay-MediumItalic.woff") format("woff");
|
||||
font-style: italic;
|
||||
font-weight: 500;
|
||||
font-display: fallback;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "RedHatDisplayWeb";
|
||||
src: local('RedHatDisplayWeb'),
|
||||
url("RedHatDisplay-Bold.woff2") format("woff2"),
|
||||
url("RedHatDisplay-Bold.woff") format("woff");
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
font-display: fallback;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "RedHatDisplayWeb";
|
||||
src: local('RedHatDisplayWeb'),
|
||||
url("RedHatDisplay-BoldItalic.woff2") format("woff2"),
|
||||
url("RedHatDisplay-BoldItalic.woff") format("woff");
|
||||
font-style: italic;
|
||||
font-weight: 700;
|
||||
font-display: fallback;
|
||||
}
|
||||
|
||||
|
||||
@font-face {
|
||||
font-family: "RedHatDisplayWeb";
|
||||
src: local('RedHatDisplayWeb'),
|
||||
url("RedHatDisplay-Black.woff2") format("woff2"),
|
||||
url("RedHatDisplay-Black.woff") format("woff");
|
||||
font-style: normal;
|
||||
font-weight: 900;
|
||||
font-display: fallback;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "RedHatDisplayWeb";
|
||||
src: local('RedHatDisplayWeb'),
|
||||
url("RedHatDisplay-BlackItalic.woff2") format("woff2"),
|
||||
url("RedHatDisplay-BlackItalic.woff") format("woff");
|
||||
font-style: italic;
|
||||
font-weight: 900;
|
||||
font-display: fallback;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "RedHatTextWeb";
|
||||
src: local('RedHatTextWeb'),
|
||||
url("RedHatText-Regular.woff2") format("woff2"),
|
||||
url("RedHatText-Regular.woff") format("woff");
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
font-display: fallback;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "RedHatTextWeb";
|
||||
src: local('RedHatTextWeb'),
|
||||
url("RedHatText-RegularItalic.woff2") format("woff2"),
|
||||
url("RedHatText-RegularItalic.woff") format("woff");
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
font-display: fallback;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "RedHatTextWeb";
|
||||
src: local('RedHatTextWeb'),
|
||||
url("RedHatText-Medium.woff2") format("woff2"),
|
||||
url("RedHatText-Medium.woff") format("woff");
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
font-display: fallback;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "RedHatTextWeb";
|
||||
src: local('RedHatTextWeb'),
|
||||
url("RedHatText-MediumItalic.woff2") format("woff2"),
|
||||
url("RedHatText-MediumItalic.woff") format("woff");
|
||||
font-style: italic;
|
||||
font-weight: 700;
|
||||
font-display: fallback;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "RedHatTextWeb";
|
||||
src: local('RedHatTextWeb'),
|
||||
url("RedHatText-Bold.woff2") format("woff2"),
|
||||
url("RedHatText-Bold.woff") format("woff");
|
||||
font-style: normal;
|
||||
font-weight: 900;
|
||||
font-display: fallback;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "RedHatTextWeb";
|
||||
src: local('RedHatTextWeb'),
|
||||
url("RedHatText-BoldItalic.woff2") format("woff2"),
|
||||
url("RedHatText-BoldItalic.woff") format("woff");
|
||||
font-style: italic;
|
||||
font-weight: 900;
|
||||
font-display: fallback;
|
||||
}
|
138
.gitlab-ci/pages/gtk-logo.svg
Normal file
@@ -0,0 +1,138 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="128"
|
||||
height="128"
|
||||
id="svg6843"
|
||||
sodipodi:version="0.32"
|
||||
inkscape:version="0.92.4 5da689c313, 2019-01-14"
|
||||
version="1.0"
|
||||
sodipodi:docname="gtk-logo.svg"
|
||||
inkscape:output_extension="org.inkscape.output.svg.inkscape"
|
||||
inkscape:export-filename="/home/ebassi/Pictures/gtk-logo-256.png"
|
||||
inkscape:export-xdpi="192"
|
||||
inkscape:export-ydpi="192">
|
||||
<defs
|
||||
id="defs6845">
|
||||
<inkscape:perspective
|
||||
sodipodi:type="inkscape:persp3d"
|
||||
inkscape:vp_x="-50 : 600 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_z="700 : 600 : 1"
|
||||
inkscape:persp3d-origin="300 : 400 : 1"
|
||||
id="perspective13" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="2.8284271"
|
||||
inkscape:cx="69.874353"
|
||||
inkscape:cy="64.313526"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:document-units="px"
|
||||
inkscape:grid-bbox="true"
|
||||
width="128px"
|
||||
height="128px"
|
||||
showguides="true"
|
||||
inkscape:guide-bbox="true"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1016"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="27"
|
||||
inkscape:window-maximized="1">
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid7947" />
|
||||
</sodipodi:namedview>
|
||||
<metadata
|
||||
id="metadata6848">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title />
|
||||
<dc:date />
|
||||
<dc:creator>
|
||||
<cc:Agent>
|
||||
<dc:title />
|
||||
</cc:Agent>
|
||||
</dc:creator>
|
||||
<dc:rights>
|
||||
<cc:Agent>
|
||||
<dc:title />
|
||||
</cc:Agent>
|
||||
</dc:rights>
|
||||
<dc:publisher>
|
||||
<cc:Agent>
|
||||
<dc:title />
|
||||
</cc:Agent>
|
||||
</dc:publisher>
|
||||
<dc:identifier />
|
||||
<dc:source />
|
||||
<dc:relation />
|
||||
<dc:language />
|
||||
<dc:subject>
|
||||
<rdf:Bag />
|
||||
</dc:subject>
|
||||
<dc:coverage />
|
||||
<dc:description />
|
||||
<dc:contributor>
|
||||
<cc:Agent>
|
||||
<dc:title />
|
||||
</cc:Agent>
|
||||
</dc:contributor>
|
||||
<cc:license
|
||||
rdf:resource="" />
|
||||
</cc:Work>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
id="layer1"
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer">
|
||||
<path
|
||||
sodipodi:nodetypes="ccccc"
|
||||
id="path6976"
|
||||
d="M 20.88413,30.82696 L 53.816977,55.527708 L 107.33282,39.060543 L 70.587303,17.177763 L 20.88413,30.82696 z"
|
||||
style="fill:#729fcf;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:2.12364459;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline" />
|
||||
<path
|
||||
id="path6978"
|
||||
d="M 22.94243,82.287118 L 20.88413,30.82696 L 53.816977,55.527708 L 53.816977,111.10486 L 22.94243,82.287118 z"
|
||||
style="fill:#e40000;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:2.12364459;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline" />
|
||||
<path
|
||||
id="path6980"
|
||||
d="M 53.816977,111.10486 L 103.21619,90.5207 L 107.33282,39.060543 L 53.816977,55.527708 L 53.816977,111.10486 z"
|
||||
style="fill:#7fe719;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:2.12364459;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline" />
|
||||
<path
|
||||
sodipodi:nodetypes="ccc"
|
||||
id="path6982"
|
||||
d="M 23.216626,81.319479 L 70.48573,67.361442 L 103.38422,90.444516"
|
||||
style="opacity:1;fill:none;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
<path
|
||||
sodipodi:nodetypes="cc"
|
||||
id="path6984"
|
||||
d="M 70.434539,17.875593 L 70.434539,66.984877"
|
||||
style="opacity:1;fill:#babdb6;fill-rule:evenodd;stroke:#ffffff;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 4.8 KiB |
149
.gitlab-ci/pages/index.html
Normal file
@@ -0,0 +1,149 @@
|
||||
<!--
|
||||
SPDX-FileCopyrightText: 2021 GNOME Foundation
|
||||
|
||||
SPDX-License-Identifier: LGPL-2.1-or-later
|
||||
-->
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<title>GTK Documentation</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
<meta charset="utf-8" />
|
||||
|
||||
<meta property="og:site_name" content="https://docs.gtk.org"/>
|
||||
<meta property="og:title" content="GTK Documentation"/>
|
||||
<meta property="og:url" content="https://docs.gtk.org"/>
|
||||
<meta property="og:type" content="website"/>
|
||||
<meta property="og:description" content="API reference for GTK"/>
|
||||
|
||||
<meta name="twitter:title" content="GTK Documentation"/>
|
||||
<meta name="twitter:url" content="https://docs.gtk.org"/>
|
||||
<meta name="twitter:card" content="summary"/>
|
||||
|
||||
<link rel="canonical" href="https://docs.gtk.org"/>
|
||||
|
||||
<link rel="stylesheet" href="style.css" type="text/css" />
|
||||
|
||||
<script src="main.js"></script>
|
||||
|
||||
<!--[if IE]><script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="body-wrapper" tabindex="-1">
|
||||
|
||||
<nav class="sidebar">
|
||||
|
||||
<div class="section">
|
||||
<img src="gtk-logo.svg" class="logo"/>
|
||||
</div>
|
||||
|
||||
<div class="section">
|
||||
<h5>Sections</h5>
|
||||
<div class="links">
|
||||
<a href="#user-interface">User interface</a>
|
||||
<a href="#core-libraries">Core libraries</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</nav>
|
||||
|
||||
<button id="btn-to-top" class="hidden"><span class="up-arrow"></span></button>
|
||||
|
||||
<section id="main" class="content">
|
||||
<header>
|
||||
<h1>GTK Documentation</h1>
|
||||
</header>
|
||||
|
||||
<div class="toggle-wrapper">
|
||||
<h4 id="user-interface">
|
||||
User interface
|
||||
<a href="#user-interface" class="anchor"></a>
|
||||
</h4>
|
||||
|
||||
<div class="docblock">
|
||||
<h5 id="gdk">GTK</h5>
|
||||
<p>GTK is the primary library used to construct user interfaces. It
|
||||
provides user interface controls and signal callbacks to respond to
|
||||
user actions.</p>
|
||||
<p><a href="https://docs.gtk.org/gtk4/">GTK API reference</a></p>
|
||||
</div>
|
||||
|
||||
<div class="docblock">
|
||||
<h5 id="gdk">GSK</h5>
|
||||
<p>An intermediate layer which provides a rendering API implemented using Cairo, OpenGL or Vulkan.</p>
|
||||
<p><a href="https://docs.gtk.org/gsk4/">GSK API reference</a></p>
|
||||
</div>
|
||||
|
||||
<div class="docblock">
|
||||
<h5 id="gdk">GDK</h5>
|
||||
<p>An intermediate layer which isolates GTK from the details of the windowing system.</p>
|
||||
<p><a href="https://docs.gtk.org/gdk4/">GDK API reference</a></p>
|
||||
</div>
|
||||
|
||||
<div class="docblock">
|
||||
<h5 id="pango">Pango</h5>
|
||||
<p>Pango is the core text and font handling library used in GTK
|
||||
applications. It has extensive support for the different writing
|
||||
systems used throughout the world.</p>
|
||||
<p><a href="https://docs.gtk.org/Pango/">Pango API reference</a></p>
|
||||
</div>
|
||||
|
||||
<div class="docblock">
|
||||
<h5 id="gdk-pixbuf">GdkPixbuf</h5>
|
||||
<p>GdkPixbuf is a library for image loading and manipulation.</p>
|
||||
<p><a href="https://docs.gtk.org/gdk-pixbuf/">GdkPixbuf API reference</a></p>
|
||||
</div>
|
||||
|
||||
<div class="docblock">
|
||||
<h5 id="cairo">Cairo</h5>
|
||||
<p>Cairo is a 2D graphics library with support for multiple output
|
||||
devices. It is designed to produce consistent, high quality output
|
||||
on all media.</p>
|
||||
<p><a href="https://www.cairographics.org/manual/" class="external">Cairo API reference</a></p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="toggle-wrapper">
|
||||
<h4 id="core-libraries" style="display:flex;">
|
||||
Core libraries
|
||||
<a href="#core-libraries" class="anchor"></a>
|
||||
</h4>
|
||||
|
||||
<div class="docblock">
|
||||
<h5 id="glib">GLib</h5>
|
||||
<p>GLib provides the core application building blocks for libraries
|
||||
and applications written in C. It provides common data types
|
||||
used in GTK, the main loop implementation, and a large set of
|
||||
utility functions for strings and general portability across
|
||||
different platforms.</p>
|
||||
<p><a href="https://developer.gnome.org/glib/" class="external">GLib API reference</a></p>
|
||||
</div>
|
||||
|
||||
<div class="docblock">
|
||||
<h5 id="gobject">GObject</h5>
|
||||
<p>GObject provides the object system used by GTK.</p>
|
||||
<p><a href="https://developer.gnome.org/gobject/" class="external">GObject API reference</a></p>
|
||||
</div>
|
||||
|
||||
<div class="docblock">
|
||||
<h5 id="gio">GIO</h5>
|
||||
<p>GIO provides a portable, modern and easy-to-use file system
|
||||
abstraction API for accessing local and remote files; a set of
|
||||
low and high level abstractions over the <a href="https://www.freedesktop.org/wiki/Software/dbus/" class="external">DBus</a>
|
||||
IPC specification; an application settings API; portable networking
|
||||
abstractions; and additional utilities for writing asynchronous
|
||||
operations without blocking the user interface of your application.</p>
|
||||
<p><a href="https://developer.gnome.org/gio/" class="external">GIO API reference</a></p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
||||
<footer>
|
||||
</footer>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
140
.gitlab-ci/pages/main.js
Normal file
@@ -0,0 +1,140 @@
|
||||
// SPDX-FileCopyrightText: 2021 GNOME Foundation
|
||||
//
|
||||
// SPDX-License-Identifier: LGPL-2.1-or-later
|
||||
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
function hasClass(elem, className) {
|
||||
return elem && elem.classList && elem.classList.contains(className);
|
||||
}
|
||||
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
function addClass(elem, className) {
|
||||
if (!elem || !elem.classList) {
|
||||
return;
|
||||
}
|
||||
elem.classList.add(className);
|
||||
}
|
||||
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
function removeClass(elem, className) {
|
||||
if (!elem || !elem.classList) {
|
||||
return;
|
||||
}
|
||||
elem.classList.remove(className);
|
||||
}
|
||||
|
||||
function insertAfter(newNode, referenceNode) {
|
||||
referenceNode.parentNode.insertBefore(newNode, referenceNode.nextSibling);
|
||||
}
|
||||
|
||||
function onEach(arr, func, reversed) {
|
||||
if (arr && arr.length > 0 && func) {
|
||||
var length = arr.length;
|
||||
var i;
|
||||
if (reversed !== true) {
|
||||
for (i = 0; i < length; ++i) {
|
||||
if (func(arr[i]) === true) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
for (i = length - 1; i >= 0; --i) {
|
||||
if (func(arr[i]) === true) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function onEachLazy(lazyArray, func, reversed) {
|
||||
return onEach(
|
||||
Array.prototype.slice.call(lazyArray),
|
||||
func,
|
||||
reversed);
|
||||
}
|
||||
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
function hasOwnProperty(obj, property) {
|
||||
return Object.prototype.hasOwnProperty.call(obj, property);
|
||||
}
|
||||
|
||||
window.addEventListener("load", function() {
|
||||
"use strict;"
|
||||
|
||||
var main = document.getElementById("main");
|
||||
var btnToTop = document.getElementById("btn-to-top");
|
||||
|
||||
function labelForToggleButton(isCollapsed) {
|
||||
if (isCollapsed) {
|
||||
return "+";
|
||||
}
|
||||
return "\u2212";
|
||||
}
|
||||
|
||||
function createToggle(isCollapsed) {
|
||||
var toggle = document.createElement("a");
|
||||
toggle.href = "javascript:void(0)";
|
||||
toggle.className = "collapse-toggle";
|
||||
toggle.innerHTML = "[<span class=\"inner\">"
|
||||
+ labelForToggleButton(isCollapsed)
|
||||
+ "</span>]";
|
||||
|
||||
return toggle;
|
||||
}
|
||||
|
||||
function toggleClicked() {
|
||||
if (hasClass(this, "collapsed")) {
|
||||
removeClass(this, "collapsed");
|
||||
this.innerHTML = "[<span class=\"inner\">"
|
||||
+ labelForToggleButton(false)
|
||||
+ "</span>]";
|
||||
onEachLazy(this.parentNode.getElementsByClassName("docblock"), function(e) {
|
||||
removeClass(e, "hidden");
|
||||
});
|
||||
} else {
|
||||
addClass(this, "collapsed");
|
||||
this.innerHTML = "[<span class=\"inner\">"
|
||||
+ labelForToggleButton(true)
|
||||
+ "</span>]";
|
||||
onEachLazy(this.parentNode.getElementsByClassName("docblock"), function(e) {
|
||||
addClass(e, "hidden");
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
onEachLazy(document.getElementsByClassName("toggle-wrapper"), function(e) {
|
||||
let sectionHeader = e.querySelector(".section-header");
|
||||
let fragmentMatches = sectionHeader !== null && location.hash === "#" + sectionHeader.getAttribute('id');
|
||||
collapsedByDefault = hasClass(e, "default-hide") && !fragmentMatches;
|
||||
var toggle = createToggle(collapsedByDefault);
|
||||
toggle.onclick = toggleClicked;
|
||||
e.insertBefore(toggle, e.firstChild);
|
||||
if (collapsedByDefault) {
|
||||
addClass(toggle, "collapsed");
|
||||
onEachLazy(e.getElementsByClassName("docblock"), function(d) {
|
||||
addClass(d, "hidden");
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
function scrollBackTop(e) {
|
||||
e.preventDefault();
|
||||
window.scroll({
|
||||
top: 0,
|
||||
behavior: 'smooth',
|
||||
});
|
||||
}
|
||||
|
||||
function toggleScrollButton() {
|
||||
if (window.scrollY < 400) {
|
||||
addClass(btnToTop, "hidden");
|
||||
} else {
|
||||
removeClass(btnToTop, "hidden");
|
||||
}
|
||||
}
|
||||
|
||||
window.onscroll = toggleScrollButton;
|
||||
btnToTop.onclick = scrollBackTop;
|
||||
}, false);
|
747
.gitlab-ci/pages/style.css
Normal file
@@ -0,0 +1,747 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2021 GNOME Foundation
|
||||
*
|
||||
* SPDX-License-Identifier: LGPL-2.1-or-later
|
||||
*/
|
||||
|
||||
@import url("fonts.css");
|
||||
|
||||
/*********************************
|
||||
* LIGHT THEME
|
||||
*********************************/
|
||||
:root {
|
||||
|
||||
/* colors */
|
||||
--text-color: #333;
|
||||
--text-color-muted: #999;
|
||||
--primary: rgb(28, 118, 228);
|
||||
--body-bg: #fff;
|
||||
--sidebar-primary: rgb(144, 194, 255);
|
||||
--sidebar-bg: #151515;
|
||||
--sidebar-selected-bg: var(--primary);
|
||||
--sidebar-text-color: #fafafa;
|
||||
--sidebar-padding: 1.5em;
|
||||
|
||||
/* boxes, e.g. code blocks */
|
||||
--box-bg: rgba(135, 135, 135, 0.085);
|
||||
--box-radius: 0.35rem;
|
||||
--box-padding: 0.75rem;
|
||||
--box-margin: 0.75rem 0;
|
||||
--box-text-color: #111;
|
||||
|
||||
/* typography */
|
||||
--body-font-family: "Noto Serif",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";
|
||||
--body-font-scale: 0.95;
|
||||
--body-font-size: calc(var(--body-font-scale) * clamp(16px, 1vw, 20px));
|
||||
--body-font-weight: normal;
|
||||
|
||||
--monospace-font-family: "Source Code Pro", monospace;
|
||||
--monospace-font-size: calc(0.86 * var(--body-font-size)); /* Monospace fonts are very different in terms of font-sizes. Adjust this value to scale it */
|
||||
|
||||
--heading-font-family: "Red Hat Display", var(--body-font-family);
|
||||
--heading-weight: 900;
|
||||
--heading-font-scale: 1.05;
|
||||
|
||||
--heading-small-font-family: var(--heading-font-family);
|
||||
--heading-small-weight: 600;
|
||||
--heading-small-font-scale: 1;
|
||||
|
||||
--heading-table-font-family: var(--heading-font-family);
|
||||
--heading-table-weight: 600;
|
||||
|
||||
--heading-docblock-color: #6d6d6d; /* docblocks have headings from source comments. we want them to differ.*/
|
||||
--heading-docblock-scale: 0.9; /* docblocks have headings from source comments. we want them to differ.*/
|
||||
|
||||
--symbol-font-family: var(--heading-font-family);
|
||||
--symbol-font-weight: 500;
|
||||
--symbol-font-scale: 1;
|
||||
|
||||
--table-font-size: 0.92em; /* Tables often contain lots information. It's better to scale them down a big to get more sutff fitted inside */
|
||||
|
||||
/* misc */
|
||||
--prefered-content-width: 90ch; /* The preferred width for the readable content */
|
||||
--anchor-sign: "#";
|
||||
|
||||
}
|
||||
|
||||
/*********************************
|
||||
* DARK THEME (overrides)
|
||||
*********************************/
|
||||
@media (prefers-color-scheme: dark) {
|
||||
:root {
|
||||
--primary: rgb(144, 194, 255);
|
||||
--text-color: #f6f6f6;
|
||||
--text-color-muted: #686868;
|
||||
--body-bg: #121212;
|
||||
--sidebar-primary: rgb(144, 194, 255);
|
||||
--sidebar-bg: #1e1e1e;
|
||||
--sidebar-selected-bg: rgb(17, 112, 228);
|
||||
--sidebar-text-color: #fafafa;
|
||||
--box-bg: rgba(135, 135, 135, 0.1);
|
||||
--box-text-color: #fff;
|
||||
--heading-docblock-color: #b7b7b7;
|
||||
}
|
||||
|
||||
/* fix dark theme syntax highlighting with a filter (for now) */
|
||||
.highlight pre span {
|
||||
filter: brightness(6);
|
||||
}
|
||||
}
|
||||
|
||||
/*********************************
|
||||
* GENERAL STYLING
|
||||
*********************************/
|
||||
*,
|
||||
*:before,
|
||||
*:after {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
::-moz-selection {
|
||||
color: white;
|
||||
background: var(--primary);
|
||||
}
|
||||
|
||||
::selection {
|
||||
color: white;
|
||||
background: var(--primary);
|
||||
}
|
||||
|
||||
::-webkit-scrollbar {
|
||||
width: 8px;
|
||||
height: 8px;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-thumb {
|
||||
border-radius: 10px;
|
||||
background: rgba(128, 128, 128, 0.6);
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-thumb:hover {
|
||||
background: rgba(128, 128, 128, 1);
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-track {
|
||||
background: rgba(128, 128, 128, 0.15);
|
||||
}
|
||||
|
||||
* {
|
||||
scrollbar-width: initial;
|
||||
}
|
||||
|
||||
body {
|
||||
font: 16px/1.5 var(--body-font-family);
|
||||
font-weight: var(--body-font-weight);
|
||||
font-size: var(--body-font-size);
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
position: relative;
|
||||
|
||||
-webkit-font-feature-settings: "kern", "liga";
|
||||
-moz-font-feature-settings: "kern", "liga";
|
||||
font-feature-settings: "kern", "liga";
|
||||
color: var(--text-color);
|
||||
background: var(--body-bg);
|
||||
}
|
||||
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
font-family: var(--heading-font-family);
|
||||
font-weight: var(--heading-weight);
|
||||
margin: 1.75em 0 0.75em 0;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: calc(1.75em * var(--heading-font-scale));
|
||||
}
|
||||
|
||||
|
||||
header h1 {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: calc(1.4em * var(--heading-font-scale));
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-size: calc(1.2em * var(--heading-font-scale));
|
||||
}
|
||||
|
||||
header h3 {
|
||||
color: var(--text-color-muted);
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
h4, h5 {
|
||||
font-size: calc(1em * var(--heading-font-scale));
|
||||
}
|
||||
|
||||
h6 {
|
||||
font-size: calc(1em * var(--heading-small-font-scale));
|
||||
font-family: var(--heading-small-font-family);
|
||||
font-weight: var(--heading-small-weight);
|
||||
}
|
||||
|
||||
ol, ul {
|
||||
padding-left: 1rem;
|
||||
}
|
||||
|
||||
ul ul, ol ul, ul ol, ol ol {
|
||||
margin-bottom: .6em;
|
||||
}
|
||||
|
||||
p {
|
||||
margin: 0 0 .6em 0;
|
||||
}
|
||||
|
||||
a {
|
||||
color: var(--primary);
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
summary {
|
||||
outline: none;
|
||||
}
|
||||
|
||||
blockquote {
|
||||
border-left: 3px solid var(--primary);
|
||||
background: var(--box-bg);
|
||||
padding: var(--box-padding);
|
||||
border-radius: var(--box-radius);
|
||||
margin: var(--box--margin);
|
||||
}
|
||||
|
||||
code,
|
||||
pre {
|
||||
font-family: var(--monospace-font-family);
|
||||
font-size: var(--monospace-font-size);
|
||||
color: var(--box-text-color);
|
||||
}
|
||||
|
||||
pre {
|
||||
background: var(--box-bg);
|
||||
padding: var(--box-padding);
|
||||
border-radius: var(--box-radius);
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
code {
|
||||
background: var(--box-bg);
|
||||
padding: 0 0.35em;
|
||||
border-radius: 0.35rem;
|
||||
word-break: break-word;
|
||||
}
|
||||
|
||||
a > code {
|
||||
color: var(--primary);
|
||||
}
|
||||
|
||||
|
||||
pre pre,
|
||||
pre code {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
font-size: 1em;
|
||||
background: none;
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
h1 code, h2 code, h3 code, h4 code, h5 code, h6 code {
|
||||
font-family: inherit;
|
||||
font-weight: inherit;
|
||||
font-size: 0.85em;
|
||||
}
|
||||
|
||||
strong, b {
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
/* fix unwanted margins in tables, code, lists and blockquotes */
|
||||
li > *:first-child,
|
||||
li > *:first-child > *:first-child,
|
||||
li > *:first-child > *:first-child > *:first-child,
|
||||
td > *:first-child,
|
||||
td > *:first-child > *:first-child,
|
||||
td > *:first-child > *:first-child > *:first-child,
|
||||
pre > *:first-child,
|
||||
pre > *:first-child > *:first-child,
|
||||
pre > *:first-child > *:first-child > *:first-child,
|
||||
blockquote > *:first-child,
|
||||
blockquote > *:first-child > *:first-child,
|
||||
blockquote > *:first-child > *:first-child > *:first-child {
|
||||
margin-top: 0;
|
||||
}
|
||||
li > *:last-child,
|
||||
li > *:last-child > *:last-child,
|
||||
li > *:last-child > *:last-child > *:last-child,
|
||||
td > *:last-child,
|
||||
td > *:last-child > *:last-child,
|
||||
td > *:last-child > *:last-child > *:last-child,
|
||||
pre > *:last-child,
|
||||
pre > *:last-child > *:last-child,
|
||||
pre > *:last-child > *:last-child > *:last-child,
|
||||
blockquote > *:last-child,
|
||||
blockquote > *:last-child > *:last-child,
|
||||
blockquote > *:last-child > *:last-child > *:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
/*********************************
|
||||
* PAGE STRUCTURE
|
||||
*********************************/
|
||||
#body-wrapper {
|
||||
display: flex;
|
||||
flex-wrap: nowrap;
|
||||
flex-direction: row;
|
||||
}
|
||||
|
||||
#body-wrapper:focus {
|
||||
outline: none;
|
||||
}
|
||||
|
||||
#main {
|
||||
position: relative;
|
||||
flex-grow: 1;
|
||||
min-width: 0;
|
||||
box-shadow: 0 0 134px rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
footer {
|
||||
width: 100%;
|
||||
display: none;
|
||||
}
|
||||
|
||||
/*********************************
|
||||
* Button
|
||||
*********************************/
|
||||
|
||||
#btn-to-top {
|
||||
position: fixed;
|
||||
bottom: 12px;
|
||||
right: 32px;
|
||||
z-index: 1000;
|
||||
border-radius: 50%;
|
||||
width: 42px;
|
||||
height: 42px;
|
||||
border: 1px solid var(--primary);
|
||||
background: var(--box-bg);
|
||||
color: var(--text-color);
|
||||
cursor: pointer;
|
||||
text-transform: none;
|
||||
}
|
||||
|
||||
#btn-to-top > .up-arrow:after {
|
||||
content: "🡅"
|
||||
}
|
||||
|
||||
/*********************************
|
||||
* SIDEBAR
|
||||
*********************************/
|
||||
.sidebar {
|
||||
scrollbar-width: thin;
|
||||
background: var(--sidebar-bg);
|
||||
border-right: 1px solid var(--sidebar-bg);
|
||||
min-width: 40ch;
|
||||
padding: var(--sidebar-padding);
|
||||
color: var(--sidebar-text-color);
|
||||
position: sticky;
|
||||
top: 0;
|
||||
z-index: 2;
|
||||
height: 100vh;
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
.sidebar a,
|
||||
.sidebar a:hover {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.sidebar .logo {
|
||||
display: block;
|
||||
margin: 2rem auto 0 auto;
|
||||
width: 70%;
|
||||
}
|
||||
|
||||
.sidebar .section > ul > li {
|
||||
margin-right: -10px;
|
||||
}
|
||||
|
||||
.sidebar .section h3, .sidebar .section h5 {
|
||||
text-align: left;
|
||||
padding-left: 0.5rem;
|
||||
padding-right: 0.5rem;
|
||||
font-weight: var(--heading-weight);
|
||||
}
|
||||
|
||||
.sidebar .section h5 {
|
||||
font-size: 1em;
|
||||
margin-bottom: 0.5em;
|
||||
}
|
||||
|
||||
.sidebar .namespace > h3 {
|
||||
margin-bottom: 0;
|
||||
padding: 0;
|
||||
font-size: 1.5em;
|
||||
text-transform: uppercase;
|
||||
font-weight: 900;
|
||||
}
|
||||
|
||||
.sidebar .namespace > p {
|
||||
font-size: 0.9em;
|
||||
opacity: 0.8;
|
||||
padding-left: 0.5rem;
|
||||
}
|
||||
|
||||
.sidebar .section {
|
||||
padding-left: 0.5rem;
|
||||
padding-right: 0.5rem;
|
||||
}
|
||||
|
||||
.sidebar .links {
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
.sidebar .section a {
|
||||
display: block;
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
transition: background-color 150ms ease;
|
||||
color: var(--sidebar-primary);
|
||||
border-radius: var(--box-radius);
|
||||
padding: 0.2rem 0.5rem;
|
||||
margin-bottom: 0.15rem;
|
||||
}
|
||||
|
||||
.sidebar .section a:hover {
|
||||
background-color: rgba(127, 127, 127, 0.2);
|
||||
color: var(--sidebar-text-color);
|
||||
}
|
||||
|
||||
.sidebar .section a.current {
|
||||
background-color: var(--sidebar-selected-bg);
|
||||
color: white;
|
||||
}
|
||||
|
||||
.sidebar .search {
|
||||
box-sizing: border-box;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.sidebar .search input[type="text"] {
|
||||
border-color: transparent;
|
||||
width: 100%;
|
||||
border: 1px solid #ccc;
|
||||
border-radius: 50px;
|
||||
padding: 6px 12px;
|
||||
display: inline-block;
|
||||
font-size: 80%;
|
||||
box-shadow: inset 0 1px 3px #ddd;
|
||||
transition: border .3s linear;
|
||||
}
|
||||
|
||||
/*********************************
|
||||
* ANCHORS & TOGGLERS
|
||||
*********************************/
|
||||
.anchor,
|
||||
.md-anchor {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
text-decoration: none;
|
||||
padding: 0 0.5em;
|
||||
color: var(--text-color-muted);
|
||||
}
|
||||
|
||||
.anchor:hover,
|
||||
.md-anchor:hover {
|
||||
color: var(--primary);
|
||||
}
|
||||
|
||||
.anchor:not([href]),
|
||||
.md-anchor:not([href]) {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.anchor:before,
|
||||
.md-anchor:before {
|
||||
content: var(--anchor-sign); /*'§'*/
|
||||
}
|
||||
|
||||
.toggle-wrapper {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.collapse-toggle {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
left: -2em;
|
||||
white-space: nowrap;
|
||||
text-decoration: none;
|
||||
font-size: 0.8em;
|
||||
color: transparent;
|
||||
}
|
||||
|
||||
.collapse-toggle > .inner {
|
||||
width: 1rem;
|
||||
height: 1rem;
|
||||
border-radius: calc(0.75 * var(--box-radius));
|
||||
display: inline-flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
text-align: center;
|
||||
vertical-align: middle;
|
||||
color: var(--box-text-color);
|
||||
position: relative;
|
||||
left: -0.25rem;
|
||||
font-family: monospace;
|
||||
font-size: 0.7rem;
|
||||
font-weight: bold;
|
||||
background: var(--box-bg);
|
||||
}
|
||||
|
||||
/*********************************
|
||||
* UTILITY
|
||||
*********************************/
|
||||
.deprecated > h6 > a {
|
||||
opacity: 0.65;
|
||||
}
|
||||
|
||||
.hidden {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
/*********************************
|
||||
* CONTENT STYLING
|
||||
*********************************/
|
||||
.content {
|
||||
padding: 2em 4em;
|
||||
overflow: visible;
|
||||
max-width: calc(var(--prefered-content-width) + 8em);
|
||||
}
|
||||
|
||||
.content table:not(.table-display) {
|
||||
border-spacing: 0 0.25rem;
|
||||
}
|
||||
|
||||
.content td {
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.content td:first-child {
|
||||
padding-right: 1rem;
|
||||
}
|
||||
|
||||
.content td p:first-child {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.content td h1, .content td h2 {
|
||||
margin-left: 0;
|
||||
font-size: 1.1em;
|
||||
}
|
||||
|
||||
.content tr:first-child td {
|
||||
border-top: 0;
|
||||
}
|
||||
|
||||
kbd {
|
||||
display: inline-block;
|
||||
padding: 3px 5px;
|
||||
font: 15px monospace;
|
||||
line-height: 10px;
|
||||
vertical-align: middle;
|
||||
border: solid 1px;
|
||||
border-radius: 3px;
|
||||
box-shadow: inset 0 -1px 0;
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
.content tr:first-child {
|
||||
border-bottom: 1px solid rgba(0, 0, 0, 0.35);
|
||||
}
|
||||
|
||||
.content td {
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.content td:first-child {
|
||||
padding-right: 1rem;
|
||||
}
|
||||
|
||||
.content td p:first-child {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.content td h4, .content td h5 {
|
||||
margin-left: 0;
|
||||
font-size: 1.1em;
|
||||
}
|
||||
|
||||
.content tr:first-child td {
|
||||
border-top: 0;
|
||||
}
|
||||
|
||||
.srclink {
|
||||
color: var(--text-color-muted);
|
||||
font-size: 1rem;
|
||||
font-weight: var(--body-font-weight);
|
||||
flex-grow: 0;
|
||||
text-decoration: none;
|
||||
margin-left: auto;
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.meta tr > td:not(:first-child) {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.meta tr > td:first-child {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
/*********************************
|
||||
* DOCBLOCK STYLING
|
||||
*********************************/
|
||||
.docblock {
|
||||
position: relative;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.docblock h1 {
|
||||
font-size: calc(1.3em * var(--heading-docblock-scale) * var(--heading-font-scale));
|
||||
}
|
||||
|
||||
.docblock h2 {
|
||||
font-size: calc(1.2em * var(--heading-docblock-scale) * var(--heading-font-scale));
|
||||
}
|
||||
|
||||
.docblock h3 {
|
||||
font-size: calc(1.1em * var(--heading-docblock-scale) * var(--heading-font-scale));
|
||||
}
|
||||
|
||||
.docblock h4 {
|
||||
font-size: calc(1.05em * var(--heading-docblock-scale) * var(--heading-font-scale));
|
||||
}
|
||||
|
||||
.docblock h1,
|
||||
.docblock h2,
|
||||
.docblock h3,
|
||||
.docblock h4,
|
||||
.docblock h5,
|
||||
.docblock h6 {
|
||||
color: var(--heading-docblock-color)
|
||||
}
|
||||
|
||||
.docblock table {
|
||||
margin: .25em 0;
|
||||
max-width: 100%;
|
||||
font-size: var(--table-font-size);
|
||||
}
|
||||
|
||||
.docblock table td {
|
||||
padding: .25em;
|
||||
}
|
||||
|
||||
.docblock table th {
|
||||
padding: .25em;
|
||||
text-align: left;
|
||||
font-family: var(--heading-table-font-family);
|
||||
font-weight: var(--heading-table-weight);
|
||||
}
|
||||
|
||||
.docblock table tr th:first-child,
|
||||
.docblock table tr td:first-child {
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
.docblock table tr th:last-child,
|
||||
.docblock table tr td:last-child {
|
||||
padding-right: 0;
|
||||
}
|
||||
|
||||
table.enum-members,
|
||||
table.results {
|
||||
border-radius: var(--box-radius);
|
||||
border: 1px solid var(--text-color-muted);
|
||||
border-spacing: 0 0 !important;
|
||||
font-size: 80%;
|
||||
}
|
||||
|
||||
table.enum-members tr th,
|
||||
table.results tr th {
|
||||
border-top-color: var(--body-bg);
|
||||
background-color: var(--box-bg);
|
||||
border-bottom: 1px solid var(--text-color-muted);
|
||||
}
|
||||
|
||||
table.enum-members tr th:first-child,
|
||||
table.enum-members tr td:first-child {
|
||||
min-width: 25em;
|
||||
padding-left: .5em;
|
||||
}
|
||||
|
||||
table.results tr th:first-child,
|
||||
table.results tr td:first-child {
|
||||
padding-left: .5em;
|
||||
}
|
||||
|
||||
table.enum-members tr th:last-child,
|
||||
table.enum-members tr td:last-child,
|
||||
table.results tr th:last-child,
|
||||
table.results tr td:last-child {
|
||||
max-width: 35em;
|
||||
padding-right: .5em;
|
||||
}
|
||||
|
||||
table.results tr td code {
|
||||
font-size: 100%;
|
||||
}
|
||||
|
||||
.docblock ul li,
|
||||
.docblock ol li {
|
||||
padding-top: 0.15rem;
|
||||
padding-bottom: 0.15rem;
|
||||
}
|
||||
|
||||
.docblock ul.type {
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
.docblock ul.type li::before {
|
||||
content: "»";
|
||||
color: var(--text-color);
|
||||
display: inline-block;
|
||||
width: 1em;
|
||||
margin-left: -1em;
|
||||
}
|
||||
|
||||
/**************************
|
||||
RESPONSIVENESS
|
||||
**************************/
|
||||
@media (max-width: 700px) {
|
||||
body {
|
||||
padding-top: 0px;
|
||||
}
|
||||
|
||||
#body-wrapper {
|
||||
flex-direction: column;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
#main {
|
||||
width: 100%;
|
||||
padding: 2rem;
|
||||
}
|
||||
|
||||
.sidebar {
|
||||
position: static;
|
||||
height: initial;
|
||||
order: 1;
|
||||
}
|
||||
}
|
@@ -32,7 +32,7 @@ while (($# > 0)); do
|
||||
list) list=1;;
|
||||
help) print_help=1;;
|
||||
--base|-b) read_arg base "$@" || shift;;
|
||||
--base-version) read_arg base_version "$@" || shift;;
|
||||
--version|-v) read_arg base_version "$@" || shift;;
|
||||
--no-login) no_login=1;;
|
||||
*) echo -e "\e[1;31mERROR\e[0m: Unknown option '$1'"; exit 1;;
|
||||
esac
|
||||
|
@@ -8,7 +8,8 @@ builddir=$1
|
||||
backend=$2
|
||||
|
||||
# Ignore memory leaks lower in dependencies
|
||||
export LSAN_OPTIONS=suppressions=$srcdir/lsan.supp
|
||||
export LSAN_OPTIONS=suppressions=$srcdir/lsan.supp:print_suppressions=0
|
||||
export G_SLICE=always-malloc
|
||||
|
||||
case "${backend}" in
|
||||
x11)
|
||||
|
5
.gitlab-ci/show-info-linux.sh
Executable file
@@ -0,0 +1,5 @@
|
||||
#! /bin/sh
|
||||
|
||||
. /etc/os-release
|
||||
|
||||
echo $PRETTY_NAME
|
8
.gitlab-ci/show-info-osx.sh
Executable file
@@ -0,0 +1,8 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -eux -o pipefail
|
||||
|
||||
xcodebuild -version || :
|
||||
xcodebuild -showsdks || :
|
||||
|
||||
system_profiler SPSoftwareDataType || :
|
14
.gitlab-ci/test-msvc.bat
Normal file
@@ -0,0 +1,14 @@
|
||||
@echo on
|
||||
:: vcvarsall.bat sets various env vars like PATH, INCLUDE, LIB, LIBPATH for the
|
||||
:: specified build architecture
|
||||
call "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Auxiliary\Build\vcvarsall.bat" x64
|
||||
@echo on
|
||||
|
||||
:: FIXME: make warnings fatal
|
||||
pip3 install --upgrade --user meson==0.56.2 || goto :error
|
||||
meson _build || goto :error
|
||||
ninja -C _build || goto :error
|
||||
|
||||
goto :EOF
|
||||
:error
|
||||
exit /b 1
|
@@ -1,4 +1,13 @@
|
||||
<!--
|
||||
Please, read the CONTRIBUTING.md guide on how to file a new issue.
|
||||
|
||||
https://gitlab.gnome.org/GNOME/gtk/-/blob/master/CONTRIBUTING.md
|
||||
-->
|
||||
## Steps to reproduce
|
||||
<!--
|
||||
Please, explain the sequence of actions necessary to reproduce the
|
||||
bug
|
||||
-->
|
||||
|
||||
1. ...
|
||||
2. ...
|
||||
@@ -32,5 +41,8 @@
|
||||
## Additional information
|
||||
<!--
|
||||
- Screenshots or screen recordings are useful for visual errors
|
||||
- Attaching a screenshot or a video without explaining the current
|
||||
behavior and the actions necessary to reproduce the bug will lead
|
||||
to the bug being closed
|
||||
- Please report any warning or message printed on the terminal
|
||||
-->
|
||||
|
@@ -1,4 +1,14 @@
|
||||
<!--
|
||||
Please, read the CONTRIBUTING.md guide on how to file a new issue.
|
||||
|
||||
https://gitlab.gnome.org/GNOME/gtk/-/blob/master/CONTRIBUTING.md
|
||||
-->
|
||||
|
||||
## Steps to reproduce
|
||||
<!--
|
||||
Please, explain the sequence of actions necessary to reproduce the
|
||||
crash
|
||||
-->
|
||||
|
||||
1. ...
|
||||
2. ...
|
||||
|
@@ -56,6 +56,12 @@ If the issue includes a crash, you should also include:
|
||||
0. the eventual warnings printed on the terminal
|
||||
0. a backtrace, obtained with tools such as GDB or LLDB
|
||||
|
||||
It is fine to include screenshots of screen recordings to demonstrate
|
||||
an issue that is best to understand visually, but please don't just
|
||||
dump screen recordings without further details into issues. It is
|
||||
essential that the problem is described in enough detail to reproduce
|
||||
it without watching a video.
|
||||
|
||||
For small issues, such as:
|
||||
|
||||
- spelling/grammar fixes in the documentation
|
||||
|
9178
NEWS.pre-4.0
Normal file
25
README.md
@@ -17,7 +17,7 @@ license fees or royalties.
|
||||
|
||||
The official download location
|
||||
|
||||
- https://download.gnome.org/sources/gtk+
|
||||
- https://download.gnome.org/sources/gtk/
|
||||
|
||||
The official web site
|
||||
|
||||
@@ -32,9 +32,16 @@ Discussion forum
|
||||
- https://discourse.gnome.org/c/platform/core/
|
||||
|
||||
Nightly documentation can be found at
|
||||
- Gtk: https://gnome.pages.gitlab.gnome.org/gtk/gtk/
|
||||
- Gdk: https://gnome.pages.gitlab.gnome.org/gtk/gdk/
|
||||
- Gsk: https://gnome.pages.gitlab.gnome.org/gtk/gsk/
|
||||
- Gtk: https://gnome.pages.gitlab.gnome.org/gtk/gtk4/
|
||||
- Gdk: https://gnome.pages.gitlab.gnome.org/gtk/gdk4/
|
||||
- Gsk: https://gnome.pages.gitlab.gnome.org/gtk/gsk4/
|
||||
|
||||
Nightly flatpaks of our demos can be installed from the
|
||||
[GNOME Nightly](https://wiki.gnome.org/Apps/Nightly) repository:
|
||||
- `flatpak remote-add --if-not-exists gnome-nightly https://nightly.gnome.org/gnome-nightly.flatpakrepo`
|
||||
- `flatpak install gnome-nightly org.gtk.Demo4`
|
||||
- `flatpak install gnome-nightly org.gtk.WidgetFactory4`
|
||||
- `flatpak install gnome-nightly org.gtk.IconBrowser4`
|
||||
|
||||
Building and installing
|
||||
-----------------------
|
||||
@@ -49,11 +56,11 @@ In order to build GTK you will need:
|
||||
You will also need various dependencies, based on the platform you are
|
||||
building for:
|
||||
|
||||
- [GLib](https://download.gnome.org/sources/glib)
|
||||
- [GdkPixbuf](https://download.gnome.org/sources/gdk-pixbuf)
|
||||
- [GObject-Introspection](https://download.gnome.org/sources/gobject-introspection)
|
||||
- [Cairo](https://www.cairographics.org)
|
||||
- [Pango](https://download.gnome.org/sources/pango)
|
||||
- [GLib](https://download.gnome.org/sources/glib/)
|
||||
- [GdkPixbuf](https://download.gnome.org/sources/gdk-pixbuf/)
|
||||
- [GObject-Introspection](https://download.gnome.org/sources/gobject-introspection/)
|
||||
- [Cairo](https://www.cairographics.org/)
|
||||
- [Pango](https://download.gnome.org/sources/pango/)
|
||||
- [Epoxy](https://github.com/anholt/libepoxy)
|
||||
- [Graphene](https://github.com/ebassi/graphene)
|
||||
- [Xkb-common](https://github.com/xkbcommon/libxkbcommon)
|
||||
|
43
build-aux/flatpak/lua-5.1.5-so.patch
Normal file
@@ -0,0 +1,43 @@
|
||||
diff -ur lua-5.1.4/src/Makefile lua-5.1.4-new/src/Makefile
|
||||
--- lua-5.1.4/src/Makefile 2008-01-19 20:37:58.000000000 +0100
|
||||
+++ lua-5.1.4-new/src/Makefile 2012-02-23 18:26:43.000000000 +0100
|
||||
@@ -23,6 +23,7 @@
|
||||
PLATS= aix ansi bsd freebsd generic linux macosx mingw posix solaris
|
||||
|
||||
LUA_A= liblua.a
|
||||
+LUA_SO= liblua.so
|
||||
CORE_O= lapi.o lcode.o ldebug.o ldo.o ldump.o lfunc.o lgc.o llex.o lmem.o \
|
||||
lobject.o lopcodes.o lparser.o lstate.o lstring.o ltable.o ltm.o \
|
||||
lundump.o lvm.o lzio.o
|
||||
@@ -36,7 +37,7 @@
|
||||
LUAC_O= luac.o print.o
|
||||
|
||||
ALL_O= $(CORE_O) $(LIB_O) $(LUA_O) $(LUAC_O)
|
||||
-ALL_T= $(LUA_A) $(LUA_T) $(LUAC_T)
|
||||
+ALL_T= $(LUA_A) $(LUA_SO) $(LUA_T) $(LUAC_T)
|
||||
ALL_A= $(LUA_A)
|
||||
|
||||
default: $(PLAT)
|
||||
@@ -51,6 +52,11 @@
|
||||
$(AR) $@ $?
|
||||
$(RANLIB) $@
|
||||
|
||||
+$(LUA_SO): $(CORE_O) $(LIB_O)
|
||||
+ $(CC) -shared -ldl -Wl,-soname,$(LUA_SO).$(V) -o $@.$(R) $? -lm $(MYLDFLAGS)
|
||||
+ ln -sf $(LUA_SO).$(R) $(LUA_SO).$(V)
|
||||
+ ln -sf $(LUA_SO).$(R) $(LUA_SO)
|
||||
+
|
||||
$(LUA_T): $(LUA_O) $(LUA_A)
|
||||
$(CC) -o $@ $(MYLDFLAGS) $(LUA_O) $(LUA_A) $(LIBS)
|
||||
|
||||
--- lua-5.1.4/Makefile 2008-08-12 02:40:48.000000000 +0200
|
||||
+++ lua-5.1.4-new/Makefile 2012-02-23 19:06:32.000000000 +0100
|
||||
@@ -53,7 +53,7 @@
|
||||
all: $(PLAT)
|
||||
|
||||
$(PLATS) clean:
|
||||
- cd src && $(MAKE) $@
|
||||
+ cd src && $(MAKE) $@ V=$(V) R=$(R)
|
||||
|
||||
test: dummy
|
||||
src/lua test/hello.lua
|
@@ -35,15 +35,15 @@
|
||||
"modules" : [
|
||||
{
|
||||
"name" : "wayland",
|
||||
"buildsystem" : "autotools",
|
||||
"buildsystem" : "meson",
|
||||
"builddir" : true,
|
||||
"config-opts" : [
|
||||
"--disable-documentation"
|
||||
"-Ddocumentation=false"
|
||||
],
|
||||
"sources" : [
|
||||
{
|
||||
"type" : "git",
|
||||
"url" : "https://github.com/wayland-project/wayland.git"
|
||||
"url" : "https://gitlab.freedesktop.org/wayland/wayland.git"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -93,6 +93,77 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "boost",
|
||||
"buildsystem": "simple",
|
||||
"build-commands": [
|
||||
"./bootstrap.sh --prefix=/app --with-libraries=date_time,filesystem,iostreams,locale,regex,system,thread,python,program_options,test,serialization",
|
||||
"./b2 --build-type=minimal link=shared -j $FLATPAK_BUILDER_N_JOBS",
|
||||
"./b2 --build-type=minimal link=shared install"
|
||||
],
|
||||
"sources": [
|
||||
{
|
||||
"type": "archive",
|
||||
"url": "https://boostorg.jfrog.io/artifactory/main/release/1.69.0/source/boost_1_69_0.tar.bz2",
|
||||
"sha256": "8f32d4617390d1c2d16f26a27ab60d97807b35440d45891fa340fc2648b04406"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "lua-5.1",
|
||||
"buildsystem": "simple",
|
||||
"build-commands": [
|
||||
"make -j $FLATPAK_BUILDER_N_JOBS CFLAGS=\"$CFLAGS -fPIC -DLUA_USE_LINUX\" linux",
|
||||
"make INSTALL_TOP=$FLATPAK_DEST TO_LIB='liblua.a liblua.so.5.1.5' install",
|
||||
"ln -sf liblua.so.5.1.5 $FLATPAK_DEST/lib/liblua.so",
|
||||
"ln -sf liblua.so.5.1.5 $FLATPAK_DEST/lib/liblua.so.5.1",
|
||||
"install -Dm0644 etc/lua.pc $FLATPAK_DEST/lib/pkgconfig/lua.pc",
|
||||
"ln -sf lua.pc $FLATPAK_DEST/lib/pkgconfig/lua51.pc",
|
||||
"ln -sf lua.pc $FLATPAK_DEST/lib/pkgconfig/lua5.1.pc",
|
||||
"ln -sf lua.pc $FLATPAK_DEST/lib/pkgconfig/lua-5.1.pc"
|
||||
],
|
||||
"sources": [
|
||||
{
|
||||
"type": "archive",
|
||||
"url": "https://www.lua.org/ftp/lua-5.1.5.tar.gz",
|
||||
"sha256": "2640fc56a795f29d28ef15e13c34a47e223960b0240e8cb0a82d9b0738695333"
|
||||
},
|
||||
{
|
||||
"type": "patch",
|
||||
"path": "lua-5.1.5-so.patch"
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"commands": [
|
||||
"sed -i \"s|/usr/local|$FLATPAK_DEST|\" etc/lua.pc src/luaconf.h"
|
||||
]
|
||||
}
|
||||
],
|
||||
"cleanup": [
|
||||
"*.a",
|
||||
"/bin",
|
||||
"/include",
|
||||
"/lib/pkgconfig",
|
||||
"/man"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name" : "highlight",
|
||||
"buildsystem" : "simple",
|
||||
"builddir" : true,
|
||||
"build-commands" : [
|
||||
"sed -i -e 's#^PREFIX = /usr#PREFIX = /app#' makefile",
|
||||
"make",
|
||||
"make install"
|
||||
],
|
||||
"sources" : [
|
||||
{
|
||||
"type" : "archive",
|
||||
"url" : "http://www.andre-simon.de/zip/highlight-4.0.tar.bz2",
|
||||
"sha256" : "f40dcba26e011a2c67df874f4d9b0238c2c6b065163ce8de3d8371b9dfce864d"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name" : "gtk",
|
||||
"buildsystem" : "meson",
|
||||
@@ -100,7 +171,8 @@
|
||||
"config-opts" : [
|
||||
"--libdir=/app/lib",
|
||||
"-Denable_vulkan=no",
|
||||
"-Dbuildtype=debugoptimized"
|
||||
"-Dbuildtype=debugoptimized",
|
||||
"-Dprofile=devel"
|
||||
],
|
||||
"sources" : [
|
||||
{
|
||||
|
@@ -35,15 +35,15 @@
|
||||
"modules" : [
|
||||
{
|
||||
"name" : "wayland",
|
||||
"buildsystem" : "autotools",
|
||||
"buildsystem" : "meson",
|
||||
"builddir" : true,
|
||||
"config-opts" : [
|
||||
"--disable-documentation"
|
||||
"-Ddocumentation=false"
|
||||
],
|
||||
"sources" : [
|
||||
{
|
||||
"type" : "git",
|
||||
"url" : "https://github.com/wayland-project/wayland.git"
|
||||
"url" : "https://gitlab.freedesktop.org/wayland/wayland.git"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -100,7 +100,8 @@
|
||||
"config-opts" : [
|
||||
"--libdir=/app/lib",
|
||||
"-Denable_vulkan=no",
|
||||
"-Dbuildtype=debugoptimized"
|
||||
"-Dbuildtype=debugoptimized",
|
||||
"-Dprofile=devel"
|
||||
],
|
||||
"sources" : [
|
||||
{
|
||||
|
@@ -35,15 +35,15 @@
|
||||
"modules" : [
|
||||
{
|
||||
"name" : "wayland",
|
||||
"buildsystem" : "autotools",
|
||||
"buildsystem" : "meson",
|
||||
"builddir" : true,
|
||||
"config-opts" : [
|
||||
"--disable-documentation"
|
||||
"-Ddocumentation=false"
|
||||
],
|
||||
"sources" : [
|
||||
{
|
||||
"type" : "git",
|
||||
"url" : "https://github.com/wayland-project/wayland.git"
|
||||
"url" : "https://gitlab.freedesktop.org/wayland/wayland.git"
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -100,7 +100,8 @@
|
||||
"config-opts" : [
|
||||
"--libdir=/app/lib",
|
||||
"-Denable_vulkan=no",
|
||||
"-Dbuildtype=debugoptimized"
|
||||
"-Dbuildtype=debugoptimized",
|
||||
"-Dprofile=devel"
|
||||
],
|
||||
"sources" : [
|
||||
{
|
||||
|
39
build-aux/meson/dist-data.py
Normal file
@@ -0,0 +1,39 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import os
|
||||
import shutil
|
||||
import subprocess
|
||||
|
||||
from pathlib import PurePath
|
||||
|
||||
|
||||
stylesheets = [
|
||||
'gtk/theme/Default/Default-light.css',
|
||||
'gtk/theme/Default/Default-dark.css',
|
||||
'gtk/theme/Default/Default-hc.css',
|
||||
'gtk/theme/Default/Default-hc-dark.css',
|
||||
]
|
||||
|
||||
references = [
|
||||
'docs/reference/gtk/gtk4',
|
||||
'docs/reference/gsk/gsk4',
|
||||
'docs/reference/gdk/gdk4',
|
||||
'docs/reference/gdk/gdk4-wayland',
|
||||
'docs/reference/gdk/gdk4-x11',
|
||||
]
|
||||
|
||||
sourceroot = os.environ.get('MESON_SOURCE_ROOT')
|
||||
buildroot = os.environ.get('MESON_BUILD_ROOT')
|
||||
distroot = os.environ.get('MESON_DIST_ROOT')
|
||||
|
||||
for stylesheet in stylesheets:
|
||||
stylesheet_path = PurePath(stylesheet)
|
||||
src = PurePath(sourceroot, stylesheet_path.with_suffix('.scss'))
|
||||
dst = PurePath(distroot, stylesheet_path)
|
||||
subprocess.call(['sassc', '-a', '-M', '-t', 'compact', src, dst])
|
||||
|
||||
for reference in references:
|
||||
src_path = os.path.join(buildroot, reference)
|
||||
if os.path.isdir(src_path):
|
||||
dst_path = os.path.join(distroot, reference)
|
||||
shutil.copytree(src_path, dst_path)
|
26
build-aux/meson/gen-demo-header.py
Executable file
@@ -0,0 +1,26 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import os
|
||||
import subprocess
|
||||
import sys
|
||||
|
||||
repodir = sys.argv[1]
|
||||
profile = sys.argv[2]
|
||||
|
||||
sys.stdout.write("/* This file is auto-generated. Do not edit. */\n")
|
||||
sys.stdout.write("#pragma once\n")
|
||||
sys.stdout.write("\n")
|
||||
sys.stdout.write(f"#define PROFILE \"{profile}\"\n")
|
||||
|
||||
short_sha = os.environ.get('CI_COMMIT_SHORT_SHA')
|
||||
if short_sha is None:
|
||||
cmd = ["git", "-C", repodir, "rev-parse", "--short", "HEAD"]
|
||||
try:
|
||||
with subprocess.Popen(cmd, stdout=subprocess.PIPE) as p:
|
||||
short_sha = p.stdout.read().decode('utf-8').rstrip("\n")
|
||||
except FileNotFoundError:
|
||||
short_sha = ''
|
||||
if profile != 'default':
|
||||
short_sha = 'devel'
|
||||
|
||||
sys.stdout.write(f"#define VCS_TAG \"{short_sha}\"\n")
|
@@ -1,20 +1,21 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import os
|
||||
import sys
|
||||
import subprocess
|
||||
|
||||
if 'DESTDIR' not in os.environ:
|
||||
gtk_api_version = sys.argv[1]
|
||||
gtk_abi_version = sys.argv[2]
|
||||
|
||||
import os
|
||||
import sys
|
||||
import subprocess
|
||||
|
||||
if 'DESTDIR' not in os.environ:
|
||||
gtk_api_version = sys.argv[1]
|
||||
gtk_abi_version = sys.argv[2]
|
||||
gtk_libdir = sys.argv[3]
|
||||
gtk_datadir = sys.argv[4]
|
||||
|
||||
gtk_moduledir = os.path.join(gtk_libdir, 'gtk-' + gtk_api_version, gtk_abi_version)
|
||||
gtk_printmodule_dir = os.path.join(gtk_moduledir, 'printbackends')
|
||||
gtk_immodule_dir = os.path.join(gtk_moduledir, 'immodules')
|
||||
|
||||
print('Compiling GSettings schemas...')
|
||||
gtk_bindir = sys.argv[5]
|
||||
|
||||
gtk_moduledir = os.path.join(gtk_libdir, 'gtk-' + gtk_api_version, gtk_abi_version)
|
||||
gtk_printmodule_dir = os.path.join(gtk_moduledir, 'printbackends')
|
||||
gtk_immodule_dir = os.path.join(gtk_moduledir, 'immodules')
|
||||
|
||||
print('Compiling GSettings schemas...')
|
||||
glib_compile_schemas = subprocess.check_output(['pkg-config',
|
||||
'--variable=glib_compile_schemas',
|
||||
'gio-2.0']).strip()
|
||||
@@ -22,13 +23,14 @@ if 'DESTDIR' not in os.environ:
|
||||
# pkg-config variables only available since GLib 2.62.0.
|
||||
glib_compile_schemas = 'glib-compile-schemas'
|
||||
subprocess.call([glib_compile_schemas,
|
||||
os.path.join(gtk_datadir, 'glib-2.0', 'schemas')])
|
||||
|
||||
print('Updating icon cache...')
|
||||
subprocess.call(['gtk4-update-icon-cache', '-q', '-t' ,'-f',
|
||||
os.path.join(gtk_datadir, 'icons', 'hicolor')])
|
||||
|
||||
print('Updating module cache for print backends...')
|
||||
os.path.join(gtk_datadir, 'glib-2.0', 'schemas')])
|
||||
|
||||
print('Updating icon cache...')
|
||||
update_icon_cache = os.path.join(gtk_bindir, 'gtk4-update-icon-cache')
|
||||
subprocess.call([update_icon_cache, '-q', '-t' ,'-f',
|
||||
os.path.join(gtk_datadir, 'icons', 'hicolor')])
|
||||
|
||||
print('Updating module cache for print backends...')
|
||||
os.makedirs(gtk_printmodule_dir, exist_ok=True)
|
||||
gio_querymodules = subprocess.check_output(['pkg-config',
|
||||
'--variable=gio_querymodules',
|
||||
@@ -37,7 +39,7 @@ if 'DESTDIR' not in os.environ:
|
||||
# pkg-config variables only available since GLib 2.62.0.
|
||||
gio_querymodules = 'gio-querymodules'
|
||||
subprocess.call([gio_querymodules, gtk_printmodule_dir])
|
||||
|
||||
print('Updating module cache for input methods...')
|
||||
|
||||
print('Updating module cache for input methods...')
|
||||
os.makedirs(gtk_immodule_dir, exist_ok=True)
|
||||
subprocess.call([gio_querymodules, gtk_immodule_dir])
|
||||
|
@@ -76,6 +76,9 @@
|
||||
/* Define to 1 if you have a working `mmap' system call. */
|
||||
#mesondefine HAVE_MMAP
|
||||
|
||||
/* Define to 1 if you have a working `madvise' system call. */
|
||||
#mesondefine HAVE_MADVISE
|
||||
|
||||
/* Define to 1 if you have the `posix_fallocate' function. */
|
||||
#mesondefine HAVE_POSIX_FALLOCATE
|
||||
|
||||
@@ -279,3 +282,8 @@
|
||||
|
||||
/* Define if tracker3 is available */
|
||||
#mesondefine HAVE_TRACKER3
|
||||
|
||||
#mesondefine HAVE_F16C
|
||||
|
||||
/* Does the OS support GDesktopAppInfo? */
|
||||
#mesondefine HAVE_DESKTOPAPPINFO
|
||||
|
@@ -8,14 +8,16 @@ constraint_editor_sources = [
|
||||
]
|
||||
|
||||
constraint_editor_resources = gnome.compile_resources('constraint_editor_resources',
|
||||
'constraint-editor.gresource.xml',
|
||||
source_dir: '.')
|
||||
'constraint-editor.gresource.xml',
|
||||
source_dir: '.',
|
||||
)
|
||||
|
||||
executable('gtk4-constraint-editor',
|
||||
constraint_editor_sources, constraint_editor_resources,
|
||||
c_args: common_cflags,
|
||||
dependencies: libgtk_dep,
|
||||
include_directories: confinc,
|
||||
gui_app: true,
|
||||
link_args: extra_demo_ldflags,
|
||||
install: false)
|
||||
sources: [ constraint_editor_sources, constraint_editor_resources, ],
|
||||
c_args: common_cflags,
|
||||
dependencies: libgtk_dep,
|
||||
include_directories: confinc,
|
||||
gui_app: true,
|
||||
link_args: extra_demo_ldflags,
|
||||
install: false,
|
||||
)
|
||||
|
@@ -67,7 +67,7 @@ vec2 raySphere(vec3 ro, vec3 rd, vec4 sphere) {
|
||||
return vec2(t0, t1);
|
||||
}
|
||||
|
||||
float noise1(vec2 p) {
|
||||
float noize1(vec2 p) {
|
||||
vec2 n = mod2(p, vec2(cellWidth));
|
||||
vec2 hh = hash(sqrt(2.0)*(n+1000.0));
|
||||
hh.x *= hh.y;
|
||||
@@ -81,7 +81,7 @@ float noise1(vec2 p) {
|
||||
return h*0.25;
|
||||
}
|
||||
|
||||
float noise2(vec2 p) {
|
||||
float noize2(vec2 p) {
|
||||
vec2 n = mod2(p, vec2(cellWidth));
|
||||
vec2 hh = hash(sqrt(2.0)*(n+1000.0));
|
||||
hh.x *= hh.y;
|
||||
@@ -114,7 +114,7 @@ float height(vec2 p, float dd, int mx) {
|
||||
int i = 0;
|
||||
|
||||
for (; i < 4;++i) {
|
||||
float nn = a*noise2(p);
|
||||
float nn = a*noize2(p);
|
||||
s += nn;
|
||||
d += abs(a);
|
||||
p += o;
|
||||
@@ -130,7 +130,7 @@ float height(vec2 p, float dd, int mx) {
|
||||
mx = int(mix(float(4), float(mx), step(rdd, far)));
|
||||
|
||||
for (; i < mx; ++i) {
|
||||
float nn = a*noise1(p);
|
||||
float nn = a*noize1(p);
|
||||
s += nn;
|
||||
d += abs(a);
|
||||
p += o;
|
||||
|
@@ -465,7 +465,7 @@ demo_application_window_size_allocate (GtkWidget *widget,
|
||||
baseline);
|
||||
|
||||
if (!window->maximized && !window->fullscreen)
|
||||
gtk_window_get_size (GTK_WINDOW (window), &window->width, &window->height);
|
||||
gtk_window_get_default_size (GTK_WINDOW (window), &window->width, &window->height);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@@ -98,6 +98,9 @@ create_page1 (GtkWidget *assistant)
|
||||
gtk_box_append (GTK_BOX (box), label);
|
||||
|
||||
entry = gtk_entry_new ();
|
||||
gtk_accessible_update_relation (GTK_ACCESSIBLE (entry),
|
||||
GTK_ACCESSIBLE_RELATION_LABELLED_BY, label, NULL,
|
||||
-1);
|
||||
gtk_entry_set_activates_default (GTK_ENTRY (entry), TRUE);
|
||||
gtk_widget_set_valign (entry, GTK_ALIGN_CENTER);
|
||||
gtk_box_append (GTK_BOX (box), entry);
|
||||
|
@@ -20,7 +20,7 @@ mainImage(out vec4 fragColor, in vec2 fragCoord, in vec2 resolution, in vec2 uv)
|
||||
float b = 1.0/distance (pos, p2);
|
||||
float sum = r + g + b;
|
||||
|
||||
float alpha = 1.0 - pow (1.0/(sum), 40)*pow (10.0, 40*0.7);
|
||||
float alpha = 1.0 - pow (1.0/(sum), 40.0)*pow (10.0, 40.0*0.7);
|
||||
|
||||
fragColor = vec4 (r*0.5, g*0.5, b*0.5, 1.0) * alpha;
|
||||
}
|
||||
|
@@ -177,7 +177,7 @@ float ccell2(vec2 p, float r) {
|
||||
float df(vec2 p, float scale, inout vec2 nn) {
|
||||
p /= scale;
|
||||
nn = hextile(p);
|
||||
nn = round(nn);
|
||||
nn = floor(nn + 0.5);
|
||||
float r = hash(nn);
|
||||
|
||||
float d;;
|
||||
|
@@ -179,7 +179,7 @@ float ccell2(vec2 p, float r) {
|
||||
float df(vec2 p, float scale, inout vec2 nn) {
|
||||
p /= scale;
|
||||
nn = hextile(p);
|
||||
nn = round(nn);
|
||||
nn = floor(nn + 0.5);
|
||||
float r = hash(nn);
|
||||
|
||||
float d;;
|
||||
|
@@ -128,6 +128,9 @@
|
||||
<file>gtkfishbowl.c</file>
|
||||
<file>gtkfishbowl.h</file>
|
||||
</gresource>
|
||||
<gresource prefix="/frames">
|
||||
<file>frames.ui</file>
|
||||
</gresource>
|
||||
<gresource prefix="/gears">
|
||||
<file>gtkgears.c</file>
|
||||
<file>gtkgears.h</file>
|
||||
@@ -276,6 +279,7 @@
|
||||
<file>fishbowl.c</file>
|
||||
<file>fixed.c</file>
|
||||
<file>flowbox.c</file>
|
||||
<file>frames.c</file>
|
||||
<file>font_features.c</file>
|
||||
<file>fontplane.c</file>
|
||||
<file>fontrendering.c</file>
|
||||
|
@@ -97,9 +97,9 @@ demo3_widget_size_allocate (GtkWidget *widget,
|
||||
|
||||
/* Since we are not using a layout manager (who would do this
|
||||
* for us), we need to allocate a size for our menu by calling
|
||||
* gtk_native_check_resize().
|
||||
* gtk_popover_present().
|
||||
*/
|
||||
gtk_native_check_resize (GTK_NATIVE (self->menu));
|
||||
gtk_popover_present (GTK_POPOVER (self->menu));
|
||||
}
|
||||
|
||||
static void
|
||||
|
@@ -119,13 +119,12 @@ create_label (void)
|
||||
static GtkWidget *
|
||||
create_video (void)
|
||||
{
|
||||
GtkMediaStream *stream = gtk_media_file_new_for_resource ("/images/gtk-logo.webm");
|
||||
GtkWidget *w = gtk_picture_new_for_paintable (GDK_PAINTABLE (stream));
|
||||
GtkWidget *w = gtk_video_new ();
|
||||
|
||||
gtk_widget_set_size_request (w, 64, 64);
|
||||
gtk_media_stream_set_loop (stream, TRUE);
|
||||
gtk_media_stream_play (stream);
|
||||
g_object_unref (stream);
|
||||
gtk_video_set_loop (GTK_VIDEO (w), TRUE);
|
||||
gtk_video_set_autoplay (GTK_VIDEO (w), TRUE);
|
||||
gtk_video_set_resource (GTK_VIDEO (w), "/images/gtk-logo.webm");
|
||||
|
||||
return w;
|
||||
}
|
||||
|
@@ -13,13 +13,13 @@
|
||||
</style>
|
||||
<child>
|
||||
<object class="GtkButton">
|
||||
<property name="icon-name">pan-start-symbolic</property>
|
||||
<property name="icon-name">go-previous-symbolic</property>
|
||||
<signal name="clicked" handler="fishbowl_prev_button_clicked_cb" object="bowl" swapped="no"/>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton">
|
||||
<property name="icon-name">pan-end-symbolic</property>
|
||||
<property name="icon-name">go-next-symbolic</property>
|
||||
<signal name="clicked" handler="fishbowl_next_button_clicked_cb" object="bowl" swapped="no"/>
|
||||
</object>
|
||||
</child>
|
||||
|
@@ -10,12 +10,8 @@
|
||||
<object class="GtkButton" id="reset">
|
||||
<property name="receives-default">1</property>
|
||||
<property name="tooltip-text">Reset</property>
|
||||
<property name="icon-name">view-refresh-symbolic</property>
|
||||
<signal name="clicked" handler="font_features_reset_features" swapped="no"/>
|
||||
<child>
|
||||
<object class="GtkImage">
|
||||
<property name="icon-name">view-refresh-symbolic</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
|
@@ -1136,7 +1136,7 @@ done:
|
||||
g_free (design_coords);
|
||||
}
|
||||
|
||||
void
|
||||
G_MODULE_EXPORT void
|
||||
font_features_font_changed (void)
|
||||
{
|
||||
update_script_combo ();
|
||||
@@ -1144,14 +1144,14 @@ font_features_font_changed (void)
|
||||
update_font_variations ();
|
||||
}
|
||||
|
||||
void
|
||||
G_MODULE_EXPORT void
|
||||
font_features_script_changed (void)
|
||||
{
|
||||
update_features ();
|
||||
update_display ();
|
||||
}
|
||||
|
||||
void
|
||||
G_MODULE_EXPORT void
|
||||
font_features_reset_features (void)
|
||||
{
|
||||
GList *l;
|
||||
@@ -1197,7 +1197,7 @@ switch_to_label (void)
|
||||
update_display ();
|
||||
}
|
||||
|
||||
void
|
||||
G_MODULE_EXPORT void
|
||||
font_features_toggle_edit (void)
|
||||
{
|
||||
if (strcmp (gtk_stack_get_visible_child_name (GTK_STACK (stack)), "label") == 0)
|
||||
@@ -1206,7 +1206,7 @@ font_features_toggle_edit (void)
|
||||
switch_to_label ();
|
||||
}
|
||||
|
||||
void
|
||||
G_MODULE_EXPORT void
|
||||
font_features_stop_edit (void)
|
||||
{
|
||||
g_signal_emit_by_name (edit_toggle, "clicked");
|
||||
|
165
demos/gtk-demo/frames.c
Normal file
@@ -0,0 +1,165 @@
|
||||
/* Benchmark/Frames
|
||||
*
|
||||
* This demo is intentionally as simple as possible, to see what
|
||||
* framerate the windowing system can deliver on its own.
|
||||
*
|
||||
* It does nothing but change the drawn color, for every frame.
|
||||
*/
|
||||
|
||||
#include <gtk/gtk.h>
|
||||
|
||||
typedef struct
|
||||
{
|
||||
GtkWidget parent_instance;
|
||||
|
||||
GdkRGBA color1;
|
||||
GdkRGBA color2;
|
||||
guint64 time2;
|
||||
float t;
|
||||
|
||||
guint tick_cb;
|
||||
} ColorWidget;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
GtkWidgetClass parent_class;
|
||||
} ColorWidgetClass;
|
||||
|
||||
G_DEFINE_TYPE (ColorWidget, color_widget, GTK_TYPE_WIDGET)
|
||||
|
||||
#define TIME_SPAN (3.0 * G_TIME_SPAN_SECOND)
|
||||
|
||||
static gboolean
|
||||
change_color (GtkWidget *widget,
|
||||
GdkFrameClock *frame_clock,
|
||||
gpointer data)
|
||||
{
|
||||
ColorWidget *color = (ColorWidget *)widget;
|
||||
gint64 time;
|
||||
|
||||
time = gdk_frame_clock_get_frame_time (frame_clock);
|
||||
|
||||
if (time >= color->time2)
|
||||
{
|
||||
color->time2 = time + TIME_SPAN;
|
||||
|
||||
color->color1 = color->color2;
|
||||
color->color2.red = g_random_double_range (0, 1);
|
||||
color->color2.green = g_random_double_range (0, 1);
|
||||
color->color2.blue = g_random_double_range (0, 1);
|
||||
color->color2.alpha = 1;
|
||||
}
|
||||
|
||||
color->t = 1 - (color->time2 - time) / TIME_SPAN;
|
||||
|
||||
gtk_widget_queue_draw (widget);
|
||||
|
||||
return G_SOURCE_CONTINUE;
|
||||
}
|
||||
|
||||
static void
|
||||
color_widget_snapshot (GtkWidget *widget,
|
||||
GtkSnapshot *snapshot)
|
||||
{
|
||||
ColorWidget *color = (ColorWidget *)widget;
|
||||
float w, h;
|
||||
GdkRGBA c;
|
||||
|
||||
w = gtk_widget_get_width (widget);
|
||||
h = gtk_widget_get_height (widget);
|
||||
|
||||
c.red = (1 - color->t) * color->color1.red + color->t * color->color2.red;
|
||||
c.green = (1 - color->t) * color->color1.green + color->t * color->color2.green;
|
||||
c.blue = (1 - color->t) * color->color1.blue + color->t * color->color2.blue;
|
||||
c.alpha = 1;
|
||||
|
||||
gtk_snapshot_append_color (snapshot, &c, &GRAPHENE_RECT_INIT (0, 0, w, h));
|
||||
}
|
||||
|
||||
static void
|
||||
color_widget_init (ColorWidget *color)
|
||||
{
|
||||
gtk_widget_add_tick_callback (GTK_WIDGET (color), change_color, NULL, NULL);
|
||||
gtk_widget_set_hexpand (GTK_WIDGET (color), TRUE);
|
||||
gtk_widget_set_vexpand (GTK_WIDGET (color), TRUE);
|
||||
}
|
||||
|
||||
static void
|
||||
color_widget_class_init (ColorWidgetClass *class)
|
||||
{
|
||||
GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (class);
|
||||
|
||||
widget_class->snapshot = color_widget_snapshot;
|
||||
}
|
||||
|
||||
GtkWidget *
|
||||
color_widget_new (void)
|
||||
{
|
||||
return g_object_new (color_widget_get_type (), NULL);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
update_fps_label (gpointer data)
|
||||
{
|
||||
GtkWidget *label = GTK_WIDGET (data);
|
||||
GdkFrameClock *frame_clock;
|
||||
|
||||
frame_clock = gtk_widget_get_frame_clock (label);
|
||||
|
||||
if (frame_clock)
|
||||
{
|
||||
char *fps;
|
||||
|
||||
fps = g_strdup_printf ("%.2f fps", gdk_frame_clock_get_fps (frame_clock));
|
||||
gtk_label_set_label (GTK_LABEL (label), fps);
|
||||
g_free (fps);
|
||||
}
|
||||
else
|
||||
gtk_label_set_label (GTK_LABEL (label), "");
|
||||
|
||||
return G_SOURCE_CONTINUE;
|
||||
}
|
||||
|
||||
static void
|
||||
remove_id (gpointer data)
|
||||
{
|
||||
guint id = GPOINTER_TO_UINT (data);
|
||||
|
||||
g_source_remove (id);
|
||||
}
|
||||
|
||||
GtkWidget *
|
||||
do_frames (GtkWidget *do_widget)
|
||||
{
|
||||
static GtkWidget *window = NULL;
|
||||
|
||||
if (!window)
|
||||
{
|
||||
GtkBuilder *builder;
|
||||
GtkWidget *box;
|
||||
GtkWidget *label;
|
||||
guint id;
|
||||
|
||||
builder = gtk_builder_new_from_resource ("/frames/frames.ui");
|
||||
window = GTK_WIDGET (gtk_builder_get_object (builder, "window"));
|
||||
g_object_add_weak_pointer (G_OBJECT (window), (gpointer *)&window);
|
||||
gtk_window_set_display (GTK_WINDOW (window),
|
||||
gtk_widget_get_display (do_widget));
|
||||
|
||||
label = GTK_WIDGET (gtk_builder_get_object (builder, "fps"));
|
||||
box = GTK_WIDGET (gtk_builder_get_object (builder, "box"));
|
||||
|
||||
gtk_box_append (GTK_BOX (box), color_widget_new ());
|
||||
|
||||
id = g_timeout_add (500, update_fps_label, label);
|
||||
g_object_set_data_full (G_OBJECT (label), "tick_cb",
|
||||
GUINT_TO_POINTER (id), remove_id);
|
||||
}
|
||||
|
||||
if (!gtk_widget_get_visible (window))
|
||||
gtk_widget_show (window);
|
||||
else
|
||||
gtk_window_destroy (GTK_WINDOW (window));
|
||||
|
||||
return window;
|
||||
}
|
24
demos/gtk-demo/frames.ui
Normal file
@@ -0,0 +1,24 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<interface>
|
||||
<object class="GtkWindow" id="window">
|
||||
<property name="resizable">1</property>
|
||||
<property name="default-width">600</property>
|
||||
<property name="default-height">400</property>
|
||||
<property name="title">Frames</property>
|
||||
<child type="titlebar">
|
||||
<object class="GtkHeaderBar" id="header">
|
||||
<child type="end">
|
||||
<object class="GtkLabel" id="fps">
|
||||
<attributes>
|
||||
<attribute name="font-features" value="tnum=1"/>
|
||||
</attributes>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox" id="box">
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</interface>
|
@@ -23,13 +23,10 @@
|
||||
#include "gskshaderpaintable.h"
|
||||
|
||||
/**
|
||||
* SECTION:gskshaderpaintable
|
||||
* @Short_description: Drawing with shaders
|
||||
* @Title: GskShaderPaintable
|
||||
* @see_also: #GdkPaintable
|
||||
* GskShaderPaintable:
|
||||
*
|
||||
* GskShaderPaintable is an implementation of the #GdkPaintable interface
|
||||
* that uses a #GskGLShader to create pixels.
|
||||
* `GskShaderPaintable` is an implementation of the `GdkPaintable` interface
|
||||
* that uses a `GskGLShader` to create pixels.
|
||||
*
|
||||
* You can set the uniform data that the shader needs for rendering
|
||||
* using gsk_shader_paintable_set_args(). This function can
|
||||
@@ -38,7 +35,7 @@
|
||||
*
|
||||
* Commonly, time is passed to shaders as a float uniform containing
|
||||
* the elapsed time in seconds. The convenience API
|
||||
* gsk_shader_paintable_update_time() can be called from a #GtkTickCallback
|
||||
* gsk_shader_paintable_update_time() can be called from a `GtkTickCallback`
|
||||
* to update the time based on the frame time of the frame clock.
|
||||
*/
|
||||
|
||||
@@ -186,7 +183,7 @@ gsk_shader_paintable_init (GskShaderPaintable *self)
|
||||
* pixels. The shader must not require input textures.
|
||||
* If @data is %NULL, all uniform values are set to zero.
|
||||
*
|
||||
* Returns: (transfer full): a new #GskShaderPaintable
|
||||
* Returns: (transfer full): a new `GskShaderPaintable`
|
||||
*/
|
||||
GdkPaintable *
|
||||
gsk_shader_paintable_new (GskGLShader *shader,
|
||||
@@ -215,8 +212,8 @@ gsk_shader_paintable_new (GskGLShader *shader,
|
||||
|
||||
/**
|
||||
* gsk_shader_paintable_set_shader:
|
||||
* @self: a #GskShaderPaintable
|
||||
* @shader: the #GskGLShader to use
|
||||
* @self: a `GskShaderPaintable`
|
||||
* @shader: the `GskGLShader` to use
|
||||
*
|
||||
* Sets the shader that the paintable will use
|
||||
* to create pixels. The shader must not require
|
||||
@@ -241,11 +238,11 @@ gsk_shader_paintable_set_shader (GskShaderPaintable *self,
|
||||
|
||||
/**
|
||||
* gsk_shader_paintable_get_shader:
|
||||
* @self: a #GskShaderPaintable
|
||||
* @self: a `GskShaderPaintable`
|
||||
*
|
||||
* Returns the shader that the paintable is using.
|
||||
*
|
||||
* Returns: (transfer none): the #GskGLShader that is used
|
||||
* Returns: (transfer none): the `GskGLShader` that is used
|
||||
*/
|
||||
GskGLShader *
|
||||
gsk_shader_paintable_get_shader (GskShaderPaintable *self)
|
||||
@@ -257,12 +254,12 @@ gsk_shader_paintable_get_shader (GskShaderPaintable *self)
|
||||
|
||||
/**
|
||||
* gsk_shader_paintable_set_args:
|
||||
* @self: a #GskShaderPaintable
|
||||
* @self: a `GskShaderPaintable`
|
||||
* @data: Data block with uniform data for the shader
|
||||
*
|
||||
* Sets the uniform data that will be passed to the
|
||||
* shader when rendering. The @data will typically
|
||||
* be produced by a #GskUniformDataBuilder.
|
||||
* be produced by a `GskUniformDataBuilder`.
|
||||
*
|
||||
* Note that the @data should be considered immutable
|
||||
* after it has been passed to this function.
|
||||
@@ -284,7 +281,7 @@ gsk_shader_paintable_set_args (GskShaderPaintable *self,
|
||||
|
||||
/**
|
||||
* gsk_shader_paintable_get_args:
|
||||
* @self: a #GskShaderPaintable
|
||||
* @self: a `GskShaderPaintable`
|
||||
*
|
||||
* Returns the uniform data set with
|
||||
* gsk_shader_paintable_get_args().
|
||||
@@ -301,9 +298,9 @@ gsk_shader_paintable_get_args (GskShaderPaintable *self)
|
||||
|
||||
/**
|
||||
* gsk_shader_paintable_update_time:
|
||||
* @self: a #GskShaderPaintable
|
||||
* @self: a `GskShaderPaintable`
|
||||
* @time_idx: the index of the uniform for time in seconds as float
|
||||
* @frame_time: the current frame time, as returned by #GdkFrameClock
|
||||
* @frame_time: the current frame time, as returned by `GdkFrameClock`
|
||||
*
|
||||
* This function is a convenience wrapper for
|
||||
* gsk_shader_paintable_set_args() that leaves all
|
||||
@@ -311,7 +308,7 @@ gsk_shader_paintable_get_args (GskShaderPaintable *self)
|
||||
* index @time_idx, which will be set to the elapsed time
|
||||
* in seconds, since the first call to this function.
|
||||
*
|
||||
* This function is usually called from a #GtkTickCallback.
|
||||
* This function is usually called from a `GtkTickCallback`.
|
||||
*/
|
||||
void
|
||||
gsk_shader_paintable_update_time (GskShaderPaintable *self,
|
||||
|
@@ -74,9 +74,9 @@ gtk_fishbowl_init (GtkFishbowl *fishbowl)
|
||||
/**
|
||||
* gtk_fishbowl_new:
|
||||
*
|
||||
* Creates a new #GtkFishbowl.
|
||||
* Creates a new `GtkFishbowl`.
|
||||
*
|
||||
* Returns: a new #GtkFishbowl.
|
||||
* Returns: a new `GtkFishbowl`.
|
||||
*/
|
||||
GtkWidget*
|
||||
gtk_fishbowl_new (void)
|
||||
|
@@ -787,6 +787,8 @@ gtk_gears_realize (GtkWidget *widget)
|
||||
glLinkProgram(program);
|
||||
glGetProgramInfoLog(program, sizeof msg, NULL, msg);
|
||||
g_debug ("program info: %s\n", msg);
|
||||
glDetachShader (program, v);
|
||||
glDetachShader (program, f);
|
||||
glDeleteShader (v);
|
||||
glDeleteShader (f);
|
||||
|
||||
|
@@ -18,8 +18,6 @@ do_headerbar (GtkWidget *do_widget)
|
||||
GtkWidget *header;
|
||||
GtkWidget *button;
|
||||
GtkWidget *box;
|
||||
GtkWidget *image;
|
||||
GIcon *icon;
|
||||
|
||||
if (!window)
|
||||
{
|
||||
@@ -32,20 +30,14 @@ do_headerbar (GtkWidget *do_widget)
|
||||
|
||||
header = gtk_header_bar_new ();
|
||||
|
||||
button = gtk_button_new ();
|
||||
icon = g_themed_icon_new ("mail-send-receive-symbolic");
|
||||
image = gtk_image_new_from_gicon (icon);
|
||||
g_object_unref (icon);
|
||||
gtk_button_set_child (GTK_BUTTON (button), image);
|
||||
button = gtk_button_new_from_icon_name ("mail-send-receive-symbolic");
|
||||
gtk_header_bar_pack_end (GTK_HEADER_BAR (header), button);
|
||||
|
||||
box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
|
||||
gtk_widget_add_css_class (box, "linked");
|
||||
button = gtk_button_new ();
|
||||
gtk_button_set_child (GTK_BUTTON (button), gtk_image_new_from_icon_name ("pan-start-symbolic"));
|
||||
button = gtk_button_new_from_icon_name ("go-previous-symbolic");
|
||||
gtk_box_append (GTK_BOX (box), button);
|
||||
button = gtk_button_new ();
|
||||
gtk_button_set_child (GTK_BUTTON (button), gtk_image_new_from_icon_name ("pan-end-symbolic"));
|
||||
button = gtk_button_new_from_icon_name ("go-next-symbolic");
|
||||
gtk_box_append (GTK_BOX (box), button);
|
||||
|
||||
gtk_header_bar_pack_start (GTK_HEADER_BAR (header), box);
|
||||
|
@@ -13,7 +13,7 @@ static GtkWidget *window = NULL;
|
||||
static GtkWidget *scrolledwindow;
|
||||
static int selected;
|
||||
|
||||
#define N_WIDGET_TYPES 7
|
||||
#define N_WIDGET_TYPES 8
|
||||
|
||||
|
||||
static int hincrement = 5;
|
||||
@@ -110,6 +110,46 @@ populate_text (gboolean highlight)
|
||||
gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW (scrolledwindow), textview);
|
||||
}
|
||||
|
||||
static void
|
||||
populate_emoji_text (void)
|
||||
{
|
||||
GtkWidget *textview;
|
||||
GtkTextBuffer *buffer;
|
||||
GString *s;
|
||||
GtkTextIter iter;
|
||||
|
||||
s = g_string_sized_new (500 * 30 * 4);
|
||||
|
||||
for (int i = 0; i < 500; i++)
|
||||
{
|
||||
if (i % 2)
|
||||
g_string_append (s, "<span underline=\"single\" underline_color=\"red\">x</span>");
|
||||
for (int j = 0; j < 30; j++)
|
||||
{
|
||||
g_string_append (s, "💓");
|
||||
g_string_append (s, "<span underline=\"single\" underline_color=\"red\">x</span>");
|
||||
}
|
||||
g_string_append (s, "\n");
|
||||
}
|
||||
|
||||
buffer = gtk_text_buffer_new (NULL);
|
||||
gtk_text_buffer_get_start_iter (buffer, &iter);
|
||||
gtk_text_buffer_insert_markup (buffer, &iter, s->str, s->len);
|
||||
|
||||
g_string_free (s, TRUE);
|
||||
|
||||
textview = gtk_text_view_new ();
|
||||
gtk_text_view_set_buffer (GTK_TEXT_VIEW (textview), buffer);
|
||||
|
||||
hincrement = 0;
|
||||
vincrement = 5;
|
||||
|
||||
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow),
|
||||
GTK_POLICY_NEVER,
|
||||
GTK_POLICY_AUTOMATIC);
|
||||
gtk_scrolled_window_set_child (GTK_SCROLLED_WINDOW (scrolledwindow), textview);
|
||||
}
|
||||
|
||||
static void
|
||||
populate_image (void)
|
||||
{
|
||||
@@ -224,21 +264,26 @@ set_widget_type (int type)
|
||||
break;
|
||||
|
||||
case 3:
|
||||
gtk_window_set_title (GTK_WINDOW (window), "Scrolling text with Emoji");
|
||||
populate_emoji_text ();
|
||||
break;
|
||||
|
||||
case 4:
|
||||
gtk_window_set_title (GTK_WINDOW (window), "Scrolling a big image");
|
||||
populate_image ();
|
||||
break;
|
||||
|
||||
case 4:
|
||||
case 5:
|
||||
gtk_window_set_title (GTK_WINDOW (window), "Scrolling a list");
|
||||
populate_list ();
|
||||
break;
|
||||
|
||||
case 5:
|
||||
case 6:
|
||||
gtk_window_set_title (GTK_WINDOW (window), "Scrolling a columned list");
|
||||
populate_list2 ();
|
||||
break;
|
||||
|
||||
case 6:
|
||||
case 7:
|
||||
gtk_window_set_title (GTK_WINDOW (window), "Scrolling a grid");
|
||||
populate_grid ();
|
||||
break;
|
||||
|
@@ -13,13 +13,13 @@
|
||||
</style>
|
||||
<child>
|
||||
<object class="GtkButton">
|
||||
<property name="icon-name">pan-start-symbolic</property>
|
||||
<property name="icon-name">go-previous-symbolic</property>
|
||||
<signal name="clicked" handler="iconscroll_prev_clicked_cb"/>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton">
|
||||
<property name="icon-name">pan-end-symbolic</property>
|
||||
<property name="icon-name">go-next-symbolic</property>
|
||||
<signal name="clicked" handler="iconscroll_next_clicked_cb"/>
|
||||
</object>
|
||||
</child>
|
||||
|
@@ -8,8 +8,8 @@
|
||||
|
||||
#include <gtk/gtk.h>
|
||||
|
||||
/* This is the function that creates the #GListModel that we need.
|
||||
* GTK list widgets need a #GListModel to display, as models support change
|
||||
/* This is the function that creates the GListModel that we need.
|
||||
* GTK list widgets need a GListModel to display, as models support change
|
||||
* notifications.
|
||||
* Unfortunately various older APIs do not provide list models, so we create
|
||||
* our own.
|
||||
@@ -20,10 +20,10 @@ create_application_list (void)
|
||||
GListStore *store;
|
||||
GList *apps, *l;
|
||||
|
||||
/* We use a #GListStore here, which is a simple array-like list implementation
|
||||
/* We use a GListStore here, which is a simple array-like list implementation
|
||||
* for manual management.
|
||||
* List models need to know what type of data they provide, so we need to
|
||||
* provide the type here. As we want to do a list of applications, #GAppInfo
|
||||
* provide the type here. As we want to do a list of applications, GAppInfo
|
||||
* is the object we provide.
|
||||
*/
|
||||
store = g_list_store_new (G_TYPE_APP_INFO);
|
||||
@@ -39,7 +39,7 @@ create_application_list (void)
|
||||
}
|
||||
|
||||
/* This is the function we use for setting up new listitems to display.
|
||||
* We add just an #GtkImage and a #GtkKabel here to display the application's
|
||||
* We add just an GtkImage and a GtkLabel here to display the application's
|
||||
* icon and name, as this is just a simple demo.
|
||||
*/
|
||||
static void
|
||||
@@ -61,8 +61,8 @@ setup_listitem_cb (GtkListItemFactory *factory,
|
||||
|
||||
/* Here we need to prepare the listitem for displaying its item. We get the
|
||||
* listitem already set up from the previous function, so we can reuse the
|
||||
* #GtkImage widget we set up above.
|
||||
* We get the item - which we know is a #GAppInfo because it comes out of
|
||||
* GtkImage widget we set up above.
|
||||
* We get the item - which we know is a GAppInfo because it comes out of
|
||||
* the model we set up above, grab its icon and display it.
|
||||
*/
|
||||
static void
|
||||
@@ -85,7 +85,7 @@ bind_listitem_cb (GtkListItemFactory *factory,
|
||||
* the listitem, but this is simple code, so the default implementations are
|
||||
* enough. If we had connected signals, this step would have been necessary.
|
||||
*
|
||||
* The #GtkSignalListItemFactory documentation contains more information about
|
||||
* The GtkSignalListItemFactory documentation contains more information about
|
||||
* this step.
|
||||
*/
|
||||
|
||||
@@ -108,8 +108,8 @@ activate_cb (GtkListView *list,
|
||||
app_info = g_list_model_get_item (G_LIST_MODEL (gtk_list_view_get_model (list)), position);
|
||||
|
||||
/* Prepare the context for launching the application and launch it. This
|
||||
* code is explained in detail in the documentation for #GdkAppLaunchContext
|
||||
* and #GAppInfo.
|
||||
* code is explained in detail in the documentation for GdkAppLaunchContext
|
||||
* and GAppInfo.
|
||||
*/
|
||||
context = gdk_display_get_app_launch_context (gtk_widget_get_display (GTK_WIDGET (list)));
|
||||
if (!g_app_info_launch (app_info,
|
||||
@@ -155,13 +155,13 @@ do_listview_applauncher (GtkWidget *do_widget)
|
||||
gtk_window_set_title (GTK_WINDOW (window), "Application Launcher");
|
||||
g_object_add_weak_pointer (G_OBJECT (window), (gpointer *) &window);
|
||||
|
||||
/* The #GtkListitemFactory is what is used to create #GtkListItems
|
||||
/* The GtkListitemFactory is what is used to create GtkListItems
|
||||
* to display the data from the model. So it is absolutely necessary
|
||||
* to create one.
|
||||
* We will use a #GtkSignalListItemFactory because it is the simplest
|
||||
* We will use a GtkSignalListItemFactory because it is the simplest
|
||||
* one to use. Different ones are available for different use cases.
|
||||
* The most powerful one is #GtkBuilderListItemFactory which uses
|
||||
* #GtkBuilder .ui files, so it requires little code.
|
||||
* The most powerful one is GtkBuilderListItemFactory which uses
|
||||
* GtkBuilder .ui files, so it requires little code.
|
||||
*/
|
||||
factory = gtk_signal_list_item_factory_new ();
|
||||
g_signal_connect (factory, "setup", G_CALLBACK (setup_listitem_cb), NULL);
|
||||
@@ -184,7 +184,7 @@ do_listview_applauncher (GtkWidget *do_widget)
|
||||
*/
|
||||
g_signal_connect (list, "activate", G_CALLBACK (activate_cb), NULL);
|
||||
|
||||
/* List widgets should always be contained in a #GtkScrolledWindow,
|
||||
/* List widgets should always be contained in a GtkScrolledWindow,
|
||||
* because otherwise they might get too large or they might not
|
||||
* be scrollable.
|
||||
*/
|
||||
|
@@ -34,6 +34,7 @@ enum {
|
||||
};
|
||||
|
||||
#define FILE_BROWSER_TYPE_VIEW (file_browser_view_get_type ())
|
||||
G_MODULE_EXPORT
|
||||
G_DECLARE_FINAL_TYPE (FileBrowserView, file_browser_view, FILE_BROWSER, VIEW, GObject);
|
||||
|
||||
G_DEFINE_TYPE (FileBrowserView, file_browser_view, G_TYPE_OBJECT);
|
||||
@@ -159,7 +160,7 @@ static void file_browser_view_init (FileBrowserView *self)
|
||||
{
|
||||
}
|
||||
|
||||
char *
|
||||
G_MODULE_EXPORT char *
|
||||
filebrowser_get_display_name (GObject *object,
|
||||
GFileInfo *info)
|
||||
{
|
||||
@@ -169,7 +170,7 @@ filebrowser_get_display_name (GObject *object,
|
||||
return g_strdup (g_file_info_get_attribute_string (info, "standard::display-name"));
|
||||
}
|
||||
|
||||
char *
|
||||
G_MODULE_EXPORT char *
|
||||
filebrowser_get_content_type (GObject *object,
|
||||
GFileInfo *info)
|
||||
{
|
||||
@@ -179,7 +180,7 @@ filebrowser_get_content_type (GObject *object,
|
||||
return g_strdup (g_file_info_get_attribute_string (info, "standard::content-type"));
|
||||
}
|
||||
|
||||
char *
|
||||
G_MODULE_EXPORT char *
|
||||
filebrowser_get_size (GObject *object,
|
||||
GFileInfo *info)
|
||||
{
|
||||
@@ -189,7 +190,7 @@ filebrowser_get_size (GObject *object,
|
||||
return g_format_size (g_file_info_get_attribute_uint64 (info, "standard::size"));
|
||||
}
|
||||
|
||||
GIcon *
|
||||
G_MODULE_EXPORT GIcon *
|
||||
filebrowser_get_icon (GObject *object,
|
||||
GFileInfo *info)
|
||||
{
|
||||
@@ -206,7 +207,7 @@ filebrowser_get_icon (GObject *object,
|
||||
return icon;
|
||||
}
|
||||
|
||||
void
|
||||
G_MODULE_EXPORT void
|
||||
filebrowser_up_clicked_cb (GtkButton *button,
|
||||
GtkDirectoryList *list)
|
||||
{
|
||||
@@ -219,7 +220,7 @@ filebrowser_up_clicked_cb (GtkButton *button,
|
||||
gtk_directory_list_set_file (list, file);
|
||||
}
|
||||
|
||||
void
|
||||
G_MODULE_EXPORT void
|
||||
filebrowser_view_activated_cb (GtkGridView *view,
|
||||
guint pos,
|
||||
GtkDirectoryList *list)
|
||||
|
@@ -142,16 +142,39 @@ load_file (GtkStringList *list,
|
||||
}
|
||||
|
||||
static void
|
||||
file_selected_cb (GtkWidget *button,
|
||||
GtkStringList *stringlist)
|
||||
open_response_cb (GtkNativeDialog *dialog,
|
||||
int response,
|
||||
GtkStringList *stringlist)
|
||||
{
|
||||
GFile *file = gtk_file_chooser_get_file (GTK_FILE_CHOOSER (button));
|
||||
gtk_native_dialog_hide (dialog);
|
||||
|
||||
if (file)
|
||||
if (response == GTK_RESPONSE_ACCEPT)
|
||||
{
|
||||
GFile *file;
|
||||
|
||||
file = gtk_file_chooser_get_file (GTK_FILE_CHOOSER (dialog));
|
||||
load_file (stringlist, file);
|
||||
g_object_unref (file);
|
||||
}
|
||||
|
||||
gtk_native_dialog_destroy (dialog);
|
||||
}
|
||||
|
||||
static void
|
||||
file_open_cb (GtkWidget *button,
|
||||
GtkStringList *stringlist)
|
||||
{
|
||||
GtkFileChooserNative *dialog;
|
||||
|
||||
dialog = gtk_file_chooser_native_new ("Open file",
|
||||
GTK_WINDOW (gtk_widget_get_root (button)),
|
||||
GTK_FILE_CHOOSER_ACTION_OPEN,
|
||||
"_Load",
|
||||
"_Cancel");
|
||||
gtk_native_dialog_set_modal (GTK_NATIVE_DIALOG (dialog), TRUE);
|
||||
|
||||
g_signal_connect (dialog, "response", G_CALLBACK (open_response_cb), stringlist);
|
||||
gtk_native_dialog_show (GTK_NATIVE_DIALOG (dialog));
|
||||
}
|
||||
|
||||
GtkWidget *
|
||||
@@ -189,8 +212,8 @@ do_listview_words (GtkWidget *do_widget)
|
||||
|
||||
header = gtk_header_bar_new ();
|
||||
gtk_header_bar_set_show_title_buttons (GTK_HEADER_BAR (header), TRUE);
|
||||
open_button = gtk_file_chooser_button_new ("_Open", GTK_FILE_CHOOSER_ACTION_OPEN);
|
||||
g_signal_connect (open_button, "file-set", G_CALLBACK (file_selected_cb), stringlist);
|
||||
open_button = gtk_button_new_with_mnemonic ("_Open");
|
||||
g_signal_connect (open_button, "clicked", G_CALLBACK (file_open_cb), stringlist);
|
||||
gtk_header_bar_pack_start (GTK_HEADER_BAR (header), open_button);
|
||||
gtk_window_set_titlebar (GTK_WINDOW (window), header);
|
||||
|
||||
|
@@ -25,6 +25,8 @@
|
||||
#include "demos.h"
|
||||
#include "fontify.h"
|
||||
|
||||
#include "demo_conf.h"
|
||||
|
||||
static GtkWidget *info_view;
|
||||
static GtkWidget *source_view;
|
||||
|
||||
@@ -196,16 +198,20 @@ activate_about (GSimpleAction *action,
|
||||
gtk_get_micro_version ());
|
||||
g_string_append_printf (s, "\nA link can appear here: <http://www.gtk.org>");
|
||||
|
||||
version = g_strdup_printf ("%s\nRunning against GTK %d.%d.%d",
|
||||
version = g_strdup_printf ("%s%s%s\nRunning against GTK %d.%d.%d",
|
||||
PACKAGE_VERSION,
|
||||
g_strcmp0 (PROFILE, "devel") == 0 ? "-" : "",
|
||||
g_strcmp0 (PROFILE, "devel") == 0 ? VCS_TAG : "",
|
||||
gtk_get_major_version (),
|
||||
gtk_get_minor_version (),
|
||||
gtk_get_micro_version ());
|
||||
|
||||
gtk_show_about_dialog (GTK_WINDOW (gtk_application_get_active_window (app)),
|
||||
"program-name", "GTK Demo",
|
||||
"program-name", g_strcmp0 (PROFILE, "devel") == 0
|
||||
? "GTK Demo (Development)"
|
||||
: "GTK Demo",
|
||||
"version", version,
|
||||
"copyright", "© 1997—2020 The GTK Team",
|
||||
"copyright", "© 1997—2021 The GTK Team",
|
||||
"license-type", GTK_LICENSE_LGPL_2_1,
|
||||
"website", "http://www.gtk.org",
|
||||
"comments", "Program to demonstrate GTK widgets",
|
||||
@@ -745,7 +751,6 @@ demo_filter_by_name (gpointer item,
|
||||
gpointer user_data)
|
||||
{
|
||||
GtkTreeListRow *row = item;
|
||||
GtkFilterListModel *model = user_data;
|
||||
GListModel *children;
|
||||
GtkDemo *demo;
|
||||
guint i, n;
|
||||
@@ -756,7 +761,7 @@ demo_filter_by_name (gpointer item,
|
||||
return TRUE;
|
||||
|
||||
g_assert (GTK_IS_TREE_LIST_ROW (row));
|
||||
g_assert (GTK_IS_FILTER_LIST_MODEL (model));
|
||||
g_assert (GTK_IS_FILTER_LIST_MODEL (user_data));
|
||||
|
||||
/* Show a row if itself of any parent matches */
|
||||
for (parent = row; parent; parent = gtk_tree_list_row_get_parent (parent))
|
||||
@@ -901,6 +906,9 @@ activate (GApplication *app)
|
||||
window = (GtkWidget *)gtk_builder_get_object (builder, "window");
|
||||
gtk_application_add_window (GTK_APPLICATION (app), GTK_WINDOW (window));
|
||||
|
||||
if (g_strcmp0 (PROFILE, "devel") == 0)
|
||||
gtk_widget_add_css_class (window, "devel");
|
||||
|
||||
action = g_simple_action_new ("run", NULL);
|
||||
g_signal_connect (action, "activate", G_CALLBACK (activate_run), window);
|
||||
g_action_map_add_action (G_ACTION_MAP (window), G_ACTION (action));
|
||||
@@ -1043,10 +1051,10 @@ out:
|
||||
static void
|
||||
print_version (void)
|
||||
{
|
||||
g_print ("gtk4-demo %d.%d.%d\n",
|
||||
gtk_get_major_version (),
|
||||
gtk_get_minor_version (),
|
||||
gtk_get_micro_version ());
|
||||
g_print ("gtk4-demo %s%s%s\n",
|
||||
PACKAGE_VERSION,
|
||||
g_strcmp0 (PROFILE, "devel") == 0 ? "-" : "",
|
||||
g_strcmp0 (PROFILE, "devel") == 0 ? VCS_TAG : "");
|
||||
}
|
||||
|
||||
static int
|
||||
|
@@ -25,12 +25,25 @@
|
||||
<object class="GtkButton">
|
||||
<property name="valign">center</property>
|
||||
<property name="action-name">win.run</property>
|
||||
<property name="focus-on-click">0</property>
|
||||
<property name="label" translatable="yes">Run</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkToggleButton">
|
||||
<property name="icon-name">edit-find-symbolic</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="focus-on-click">0</property>
|
||||
<property name="active" bind-source="searchbar" bind-property="search-mode-enabled" bind-flags="bidirectional|sync-create"/>
|
||||
<accessibility>
|
||||
<property name="label" translatable="yes">Search</property>
|
||||
</accessibility>
|
||||
</object>
|
||||
</child>
|
||||
<child type="end">
|
||||
<object class="GtkMenuButton" id="gear_menu_button">
|
||||
<property name="valign">center</property>
|
||||
<property name="focus-on-click">0</property>
|
||||
<property name="menu-model">gear_menu</property>
|
||||
<property name="icon-name">open-menu-symbolic</property>
|
||||
<accessibility>
|
||||
@@ -43,31 +56,30 @@
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<child>
|
||||
<object class="GtkScrolledWindow">
|
||||
<style>
|
||||
<class name="sidebar"/>
|
||||
</style>
|
||||
<property name="width-request">120</property>
|
||||
<property name="hscrollbar-policy">never</property>
|
||||
<property name="min-content-width">150</property>
|
||||
<object class="GtkBox">
|
||||
<property name="width-request">220</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="width-request">220</property>
|
||||
<property name="orientation">vertical</property>
|
||||
|
||||
<object class="GtkSearchBar" id="searchbar">
|
||||
<property name="key-capture-widget">window</property>
|
||||
<child>
|
||||
<object class="GtkSearchBar" id="searchbar">
|
||||
<property name="key-capture-widget">window</property>
|
||||
<child>
|
||||
<object class="GtkSearchEntry" id="search-entry">
|
||||
<accessibility>
|
||||
<relation name="controls">listview</relation>
|
||||
</accessibility>
|
||||
</object>
|
||||
</child>
|
||||
<object class="GtkSearchEntry" id="search-entry">
|
||||
<accessibility>
|
||||
<relation name="controls">listview</relation>
|
||||
</accessibility>
|
||||
</object>
|
||||
</child>
|
||||
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkScrolledWindow">
|
||||
<style>
|
||||
<class name="sidebar"/>
|
||||
</style>
|
||||
<property name="width-request">120</property>
|
||||
<property name="hscrollbar-policy">never</property>
|
||||
<property name="min-content-width">150</property>
|
||||
<property name="vexpand">1</property>
|
||||
<child>
|
||||
<object class="GtkListView" id="listview">
|
||||
<style>
|
||||
@@ -84,7 +96,6 @@
|
||||
</accessibility>
|
||||
</object>
|
||||
</child>
|
||||
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
|
@@ -29,6 +29,7 @@ demos = files([
|
||||
'fishbowl.c',
|
||||
'fixed.c',
|
||||
'fontrendering.c',
|
||||
'frames.c',
|
||||
'gears.c',
|
||||
'gestures.c',
|
||||
'glarea.c',
|
||||
@@ -100,31 +101,33 @@ demos = files([
|
||||
|
||||
gtkdemo_deps = [ libgtk_dep, ]
|
||||
|
||||
extra_demo_sources = files(['main.c',
|
||||
'fontify.c',
|
||||
'gtkfishbowl.c',
|
||||
'fontplane.c',
|
||||
'gtkgears.c',
|
||||
'gtkshaderbin.c',
|
||||
'gtkshadertoy.c',
|
||||
'gtkshaderstack.c',
|
||||
'gskshaderpaintable.c',
|
||||
'puzzlepiece.c',
|
||||
'bluroverlay.c',
|
||||
'demoimage.c',
|
||||
'demotaggedentry.c',
|
||||
'demochild.c',
|
||||
'demolayout.c',
|
||||
'demowidget.c',
|
||||
'demo2layout.c',
|
||||
'singular_value_decomposition.c',
|
||||
'four_point_transform.c',
|
||||
'demo2widget.c',
|
||||
'demo3widget.c',
|
||||
'pixbufpaintable.c',
|
||||
'script-names.c',
|
||||
'unicode-names.c',
|
||||
'suggestionentry.c'])
|
||||
extra_demo_sources = files([
|
||||
'main.c',
|
||||
'fontify.c',
|
||||
'gtkfishbowl.c',
|
||||
'fontplane.c',
|
||||
'gtkgears.c',
|
||||
'gtkshaderbin.c',
|
||||
'gtkshadertoy.c',
|
||||
'gtkshaderstack.c',
|
||||
'gskshaderpaintable.c',
|
||||
'puzzlepiece.c',
|
||||
'bluroverlay.c',
|
||||
'demoimage.c',
|
||||
'demotaggedentry.c',
|
||||
'demochild.c',
|
||||
'demolayout.c',
|
||||
'demowidget.c',
|
||||
'demo2layout.c',
|
||||
'singular_value_decomposition.c',
|
||||
'four_point_transform.c',
|
||||
'demo2widget.c',
|
||||
'demo3widget.c',
|
||||
'pixbufpaintable.c',
|
||||
'script-names.c',
|
||||
'unicode-names.c',
|
||||
'suggestionentry.c',
|
||||
])
|
||||
|
||||
if harfbuzz_dep.found() and pangoft_dep.found()
|
||||
demos += files(['font_features.c'])
|
||||
@@ -147,14 +150,17 @@ endif
|
||||
gtkdemo_args = [ '-DGDK_DISABLE_DEPRECATED', '-DGTK_DISABLE_DEPRECATED', ]
|
||||
|
||||
demos_h = custom_target('gtk4 demo header',
|
||||
output: 'demos.h',
|
||||
input: demos,
|
||||
command: [ find_program('geninclude.py'), '@OUTPUT@', '@INPUT@' ])
|
||||
output: 'demos.h',
|
||||
input: demos,
|
||||
command: [ find_program('geninclude.py'), '@OUTPUT@', '@INPUT@' ],
|
||||
)
|
||||
|
||||
gtkdemo_resources = gnome.compile_resources('gtkdemo_resources',
|
||||
'demo.gresource.xml',
|
||||
source_dir: '.')
|
||||
'demo.gresource.xml',
|
||||
source_dir: '.',
|
||||
)
|
||||
|
||||
# Use a subset of compiler flags
|
||||
demo_cflags = []
|
||||
foreach flag: common_cflags
|
||||
if flag not in ['-Werror=missing-prototypes', '-Werror=missing-declarations', '-fvisibility=hidden']
|
||||
@@ -162,31 +168,33 @@ foreach flag: common_cflags
|
||||
endif
|
||||
endforeach
|
||||
|
||||
gtkdemo_deps += [ demo_conf_h ]
|
||||
|
||||
executable('gtk4-demo',
|
||||
demos, demos_h, extra_demo_sources, gtkdemo_resources,
|
||||
c_args: gtkdemo_args + demo_cflags,
|
||||
dependencies: gtkdemo_deps,
|
||||
include_directories: confinc,
|
||||
gui_app: true,
|
||||
link_args: extra_demo_ldflags,
|
||||
install: true)
|
||||
sources: [demos, demos_h, extra_demo_sources, gtkdemo_resources],
|
||||
c_args: gtkdemo_args + demo_cflags,
|
||||
dependencies: gtkdemo_deps,
|
||||
include_directories: confinc,
|
||||
gui_app: true,
|
||||
link_args: extra_demo_ldflags,
|
||||
install: true,
|
||||
)
|
||||
|
||||
executable('gtk4-demo-application',
|
||||
'application.c', gtkdemo_resources,
|
||||
c_args: gtkdemo_args + common_cflags,
|
||||
dependencies: gtkdemo_deps,
|
||||
include_directories: confinc,
|
||||
gui_app: true,
|
||||
link_args: extra_demo_ldflags,
|
||||
install: true)
|
||||
sources: ['application.c', gtkdemo_resources],
|
||||
c_args: gtkdemo_args + common_cflags,
|
||||
dependencies: gtkdemo_deps,
|
||||
include_directories: confinc,
|
||||
gui_app: true,
|
||||
link_args: extra_demo_ldflags,
|
||||
install: true,
|
||||
)
|
||||
|
||||
# icons
|
||||
icontheme_dir = join_paths(gtk_datadir, 'icons/hicolor')
|
||||
|
||||
foreach size: ['scalable', 'symbolic']
|
||||
install_subdir('data/' + size,
|
||||
install_dir: icontheme_dir
|
||||
)
|
||||
install_subdir('data/' + size, install_dir: icontheme_dir)
|
||||
endforeach
|
||||
|
||||
# desktop file
|
||||
|
@@ -7,4 +7,3 @@ Terminal=false
|
||||
Type=Application
|
||||
StartupNotify=true
|
||||
Categories=Development;GTK;
|
||||
NoDisplay=true
|
||||
|
@@ -13,19 +13,46 @@
|
||||
|
||||
|
||||
static void
|
||||
file_set (GtkFileChooserButton *button,
|
||||
GtkWidget *picture)
|
||||
open_response_cb (GtkNativeDialog *dialog,
|
||||
int response,
|
||||
GtkPicture *picture)
|
||||
{
|
||||
GFile *file;
|
||||
GdkPaintable *paintable;
|
||||
gtk_native_dialog_hide (dialog);
|
||||
|
||||
file = gtk_file_chooser_get_file (GTK_FILE_CHOOSER (button));
|
||||
if (response == GTK_RESPONSE_ACCEPT)
|
||||
{
|
||||
GFile *file;
|
||||
GdkPaintable *paintable;
|
||||
|
||||
paintable = svg_paintable_new (file);
|
||||
gtk_picture_set_paintable (GTK_PICTURE (picture), paintable);
|
||||
file = gtk_file_chooser_get_file (GTK_FILE_CHOOSER (dialog));
|
||||
paintable = svg_paintable_new (file);
|
||||
gtk_picture_set_paintable (GTK_PICTURE (picture), paintable);
|
||||
g_object_unref (paintable);
|
||||
g_object_unref (file);
|
||||
}
|
||||
|
||||
g_object_unref (paintable);
|
||||
g_object_unref (file);
|
||||
gtk_native_dialog_destroy (dialog);
|
||||
}
|
||||
|
||||
static void
|
||||
show_file_open (GtkWidget *button,
|
||||
GtkPicture *picture)
|
||||
{
|
||||
GtkFileFilter *filter;
|
||||
GtkFileChooserNative *dialog;
|
||||
|
||||
dialog = gtk_file_chooser_native_new ("Open node file",
|
||||
GTK_WINDOW (gtk_widget_get_root (button)),
|
||||
GTK_FILE_CHOOSER_ACTION_OPEN,
|
||||
"_Load",
|
||||
"_Cancel");
|
||||
|
||||
filter = gtk_file_filter_new ();
|
||||
gtk_file_filter_add_mime_type (filter, "image/svg+xml");
|
||||
gtk_file_chooser_set_filter (GTK_FILE_CHOOSER (dialog), filter);
|
||||
gtk_native_dialog_set_modal (GTK_NATIVE_DIALOG (dialog), TRUE);
|
||||
g_signal_connect (dialog, "response", G_CALLBACK (open_response_cb), picture);
|
||||
gtk_native_dialog_show (GTK_NATIVE_DIALOG (dialog));
|
||||
}
|
||||
|
||||
static GtkWidget *window;
|
||||
@@ -35,7 +62,6 @@ do_paintable_svg (GtkWidget *do_widget)
|
||||
{
|
||||
GtkWidget *header;
|
||||
GtkWidget *picture;
|
||||
GtkFileFilter *filter;
|
||||
GtkWidget *button;
|
||||
GFile *file;
|
||||
GdkPaintable *paintable;
|
||||
@@ -49,17 +75,14 @@ do_paintable_svg (GtkWidget *do_widget)
|
||||
gtk_window_set_title (GTK_WINDOW (window), "Paintable — SVG");
|
||||
g_object_add_weak_pointer (G_OBJECT (window), (gpointer *)&window);
|
||||
|
||||
button = gtk_file_chooser_button_new ("Select an SVG file", GTK_FILE_CHOOSER_ACTION_OPEN);
|
||||
filter = gtk_file_filter_new ();
|
||||
gtk_file_filter_add_mime_type (filter, "image/svg+xml");
|
||||
gtk_file_chooser_set_filter (GTK_FILE_CHOOSER (button), filter);
|
||||
button = gtk_button_new_with_mnemonic ("_Open");
|
||||
gtk_header_bar_pack_start (GTK_HEADER_BAR (header), button);
|
||||
|
||||
picture = gtk_picture_new ();
|
||||
gtk_picture_set_can_shrink (GTK_PICTURE (picture), TRUE);
|
||||
gtk_widget_set_size_request (picture, 16, 16);
|
||||
|
||||
g_signal_connect (button, "file-set", G_CALLBACK (file_set), picture);
|
||||
g_signal_connect (button, "clicked", G_CALLBACK (show_file_open), picture);
|
||||
|
||||
gtk_window_set_child (GTK_WINDOW (window), picture);
|
||||
|
||||
|
@@ -1,9 +1,8 @@
|
||||
/* Pickers
|
||||
* #Keywords: GtkColorChooser, GtkFontChooser, GtkFileChooser,
|
||||
* #Keywords: GtkApplicationChooser
|
||||
* #Keywords: GtkColorChooser, GtkFontChooser, GtkApplicationChooser
|
||||
*
|
||||
* These widgets are mainly intended for use in preference dialogs.
|
||||
* They allow to select colors, fonts, files, directories and applications.
|
||||
* They allow to select colors, fonts, directories and applications.
|
||||
*
|
||||
* This demo shows both the default appearance for these dialogs,
|
||||
* as well as some of the customizations that are possible.
|
||||
@@ -63,9 +62,6 @@ do_pickers (GtkWidget *do_widget)
|
||||
|
||||
if (!window)
|
||||
{
|
||||
char *dir;
|
||||
GFile *file;
|
||||
|
||||
window = gtk_window_new ();
|
||||
gtk_window_set_display (GTK_WINDOW (window),
|
||||
gtk_widget_get_display (do_widget));
|
||||
@@ -123,55 +119,14 @@ do_pickers (GtkWidget *do_widget)
|
||||
|
||||
gtk_grid_attach (GTK_GRID (table), picker, 2, 1, 1, 1);
|
||||
|
||||
label = gtk_label_new ("File:");
|
||||
gtk_widget_set_halign (label, GTK_ALIGN_START);
|
||||
gtk_widget_set_valign (label, GTK_ALIGN_CENTER);
|
||||
gtk_widget_set_hexpand (label, TRUE);
|
||||
gtk_grid_attach (GTK_GRID (table), label, 0, 2, 1, 1);
|
||||
|
||||
picker = gtk_file_chooser_button_new ("Pick a File",
|
||||
GTK_FILE_CHOOSER_ACTION_OPEN);
|
||||
gtk_grid_attach (GTK_GRID (table), picker, 1, 2, 1, 1);
|
||||
|
||||
picker = gtk_file_chooser_button_new ("Pick a File",
|
||||
GTK_FILE_CHOOSER_ACTION_OPEN);
|
||||
|
||||
dir = g_get_current_dir ();
|
||||
file = g_file_new_for_path (dir);
|
||||
gtk_file_chooser_add_shortcut_folder (GTK_FILE_CHOOSER (picker), file, NULL);
|
||||
g_object_unref (file);
|
||||
g_free (dir);
|
||||
|
||||
gtk_file_chooser_add_choice (GTK_FILE_CHOOSER (picker),
|
||||
"choice",
|
||||
"Encoding",
|
||||
(const char *[]) { "option1", "option2", NULL },
|
||||
(const char *[]) { "UTF-8", "Other Encoding", NULL });
|
||||
gtk_file_chooser_set_choice (GTK_FILE_CHOOSER (picker), "choice", "option1");
|
||||
gtk_file_chooser_add_choice (GTK_FILE_CHOOSER (picker),
|
||||
"check",
|
||||
"Read backwards",
|
||||
NULL, NULL);
|
||||
gtk_file_chooser_set_choice (GTK_FILE_CHOOSER (picker), "check", "false");
|
||||
|
||||
gtk_grid_attach (GTK_GRID (table), picker, 2, 2, 1, 1);
|
||||
|
||||
label = gtk_label_new ("Folder:");
|
||||
gtk_widget_set_halign (label, GTK_ALIGN_START);
|
||||
gtk_widget_set_valign (label, GTK_ALIGN_CENTER);
|
||||
picker = gtk_file_chooser_button_new ("Pick a Folder",
|
||||
GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER);
|
||||
gtk_grid_attach (GTK_GRID (table), label, 0, 3, 1, 1);
|
||||
gtk_grid_attach (GTK_GRID (table), picker, 1, 3, 1, 1);
|
||||
|
||||
label = gtk_label_new ("Mail:");
|
||||
gtk_widget_set_halign (label, GTK_ALIGN_START);
|
||||
gtk_widget_set_valign (label, GTK_ALIGN_CENTER);
|
||||
gtk_widget_set_hexpand (label, TRUE);
|
||||
picker = gtk_app_chooser_button_new ("x-scheme-handler/mailto");
|
||||
gtk_app_chooser_button_set_show_dialog_item (GTK_APP_CHOOSER_BUTTON (picker), TRUE);
|
||||
gtk_grid_attach (GTK_GRID (table), label, 0, 4, 1, 1);
|
||||
gtk_grid_attach (GTK_GRID (table), picker, 1, 4, 1, 1);
|
||||
gtk_grid_attach (GTK_GRID (table), label, 0, 3, 1, 1);
|
||||
gtk_grid_attach (GTK_GRID (table), picker, 1, 3, 1, 1);
|
||||
}
|
||||
|
||||
if (!gtk_widget_get_visible (window))
|
||||
|
@@ -31,7 +31,7 @@ void mainImage(out vec4 fragColor, in vec2 fragCoord, in vec2 resolution, in vec
|
||||
float propagation_length = time * wave_speed;
|
||||
|
||||
float t = (propagation_length - distance_from_center) / wave_length;
|
||||
float offset_magnitude = 0;
|
||||
float offset_magnitude = 0.0;
|
||||
if (t > 0.0)
|
||||
offset_magnitude = decay(wave_height * sin(t * 2.0 * PI), t);
|
||||
|
||||
|
@@ -25,43 +25,43 @@ show_shortcuts (GtkWidget *window,
|
||||
g_object_unref (builder);
|
||||
}
|
||||
|
||||
void
|
||||
G_MODULE_EXPORT void
|
||||
shortcuts_builder_shortcuts (GtkWidget *window)
|
||||
{
|
||||
show_shortcuts (window, "shortcuts-builder", NULL);
|
||||
}
|
||||
|
||||
void
|
||||
G_MODULE_EXPORT void
|
||||
shortcuts_gedit_shortcuts (GtkWidget *window)
|
||||
{
|
||||
show_shortcuts (window, "shortcuts-gedit", NULL);
|
||||
}
|
||||
|
||||
void
|
||||
G_MODULE_EXPORT void
|
||||
shortcuts_clocks_shortcuts (GtkWidget *window)
|
||||
{
|
||||
show_shortcuts (window, "shortcuts-clocks", NULL);
|
||||
}
|
||||
|
||||
void
|
||||
G_MODULE_EXPORT void
|
||||
shortcuts_clocks_shortcuts_stopwatch (GtkWidget *window)
|
||||
{
|
||||
show_shortcuts (window, "shortcuts-clocks", "stopwatch");
|
||||
}
|
||||
|
||||
void
|
||||
G_MODULE_EXPORT void
|
||||
shortcuts_boxes_shortcuts (GtkWidget *window)
|
||||
{
|
||||
show_shortcuts (window, "shortcuts-boxes", NULL);
|
||||
}
|
||||
|
||||
void
|
||||
G_MODULE_EXPORT void
|
||||
shortcuts_boxes_shortcuts_wizard (GtkWidget *window)
|
||||
{
|
||||
show_shortcuts (window, "shortcuts-boxes", "wizard");
|
||||
}
|
||||
|
||||
void
|
||||
G_MODULE_EXPORT void
|
||||
shortcuts_boxes_shortcuts_display (GtkWidget *window)
|
||||
{
|
||||
show_shortcuts (window, "shortcuts-boxes", "display");
|
||||
|
@@ -2,6 +2,7 @@
|
||||
#include <float.h>
|
||||
#include <math.h>
|
||||
#include <glib.h>
|
||||
#include <assert.h>
|
||||
|
||||
/* See Golub and Reinsch,
|
||||
* "Handbook for Automatic Computation vol II - Linear Algebra",
|
||||
@@ -39,6 +40,9 @@ householder_reduction (double *A,
|
||||
double *pu, *pui, *pv, *pvi;
|
||||
double half_norm_squared;
|
||||
|
||||
assert (nrows >= 2);
|
||||
assert (ncols >= 2);
|
||||
|
||||
memcpy (U, A, sizeof (double) * nrows * ncols);
|
||||
|
||||
diagonal[0] = 0.0;
|
||||
@@ -205,6 +209,9 @@ givens_reduction (int nrows,
|
||||
int rotation_test;
|
||||
int iteration_count;
|
||||
|
||||
assert (nrows >= 2);
|
||||
assert (ncols >= 2);
|
||||
|
||||
for (i = 0, x = 0.0; i < ncols; i++)
|
||||
{
|
||||
y = fabs (diagonal[i]) + fabs (superdiagonal[i]);
|
||||
@@ -342,6 +349,9 @@ sort_singular_values (int nrows,
|
||||
double temp;
|
||||
double *p1, *p2;
|
||||
|
||||
assert (nrows >= 2);
|
||||
assert (ncols >= 2);
|
||||
|
||||
for (i = 0; i < ncols - 1; i++)
|
||||
{
|
||||
max_index = i;
|
||||
@@ -433,9 +443,12 @@ singular_value_decomposition_solve (double *U,
|
||||
double d;
|
||||
double tolerance;
|
||||
|
||||
assert (nrows >= 2);
|
||||
assert (ncols >= 2);
|
||||
|
||||
tolerance = DBL_EPSILON * S[0] * (double) ncols;
|
||||
|
||||
for ( i = 0, pv = V; i < ncols; i++, pv += ncols)
|
||||
for (i = 0, pv = V; i < ncols; i++, pv += ncols)
|
||||
{
|
||||
x[i] = 0.0;
|
||||
for (j = 0; j < ncols; j++)
|
||||
|
@@ -12,7 +12,7 @@
|
||||
#include <math.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
int
|
||||
G_MODULE_EXPORT int
|
||||
spinbutton_hex_spin_input (GtkSpinButton *spin_button,
|
||||
double *new_val)
|
||||
{
|
||||
@@ -29,7 +29,7 @@ spinbutton_hex_spin_input (GtkSpinButton *spin_button,
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
int
|
||||
G_MODULE_EXPORT int
|
||||
spinbutton_hex_spin_output (GtkSpinButton *spin_button)
|
||||
{
|
||||
GtkAdjustment *adjustment;
|
||||
@@ -49,7 +49,7 @@ spinbutton_hex_spin_output (GtkSpinButton *spin_button)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
int
|
||||
G_MODULE_EXPORT int
|
||||
spinbutton_time_spin_input (GtkSpinButton *spin_button,
|
||||
double *new_val)
|
||||
{
|
||||
@@ -88,7 +88,7 @@ spinbutton_time_spin_input (GtkSpinButton *spin_button,
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
int
|
||||
G_MODULE_EXPORT int
|
||||
spinbutton_time_spin_output (GtkSpinButton *spin_button)
|
||||
{
|
||||
GtkAdjustment *adjustment;
|
||||
@@ -122,7 +122,7 @@ static const char *month[12] = {
|
||||
"December"
|
||||
};
|
||||
|
||||
int
|
||||
G_MODULE_EXPORT int
|
||||
spinbutton_month_spin_input (GtkSpinButton *spin_button,
|
||||
double *new_val)
|
||||
{
|
||||
@@ -151,7 +151,7 @@ spinbutton_month_spin_input (GtkSpinButton *spin_button,
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
int
|
||||
G_MODULE_EXPORT int
|
||||
spinbutton_month_spin_output (GtkSpinButton *spin_button)
|
||||
{
|
||||
GtkAdjustment *adjustment;
|
||||
|
@@ -474,7 +474,7 @@ suggestion_entry_size_allocate (GtkWidget *widget,
|
||||
gtk_widget_set_size_request (self->popup, gtk_widget_get_allocated_width (GTK_WIDGET (self)), -1);
|
||||
gtk_widget_queue_resize (self->popup);
|
||||
|
||||
gtk_native_check_resize (GTK_NATIVE (self->popup));
|
||||
gtk_popover_present (GTK_POPOVER (self->popup));
|
||||
}
|
||||
|
||||
static gboolean
|
||||
|
@@ -1,6 +1,6 @@
|
||||
/* Benchmark/Themes
|
||||
*
|
||||
* This demo switches themes like a maniac, like some of you.
|
||||
* This demo continuously switches themes, like some of you.
|
||||
*
|
||||
* Warning: This demo involves rapidly flashing changes and may
|
||||
* be hazardous to photosensitive viewers.
|
||||
|
@@ -10,11 +10,11 @@
|
||||
static GtkWidget *window = NULL;
|
||||
|
||||
static void
|
||||
open_dialog_response_cb (GtkWidget *dialog,
|
||||
int response,
|
||||
GtkWidget *video)
|
||||
open_dialog_response_cb (GtkNativeDialog *dialog,
|
||||
int response,
|
||||
GtkWidget *video)
|
||||
{
|
||||
gtk_widget_hide (dialog);
|
||||
gtk_native_dialog_hide (dialog);
|
||||
|
||||
if (response == GTK_RESPONSE_ACCEPT)
|
||||
{
|
||||
@@ -25,32 +25,45 @@ open_dialog_response_cb (GtkWidget *dialog,
|
||||
g_object_unref (file);
|
||||
}
|
||||
|
||||
gtk_window_destroy (GTK_WINDOW (dialog));
|
||||
gtk_native_dialog_destroy (dialog);
|
||||
}
|
||||
|
||||
static void
|
||||
open_clicked_cb (GtkWidget *button,
|
||||
GtkWidget *video)
|
||||
{
|
||||
GtkWidget *dialog;
|
||||
GtkFileChooserNative *dialog;
|
||||
GtkFileFilter *filter;
|
||||
|
||||
dialog = gtk_file_chooser_dialog_new ("Select a video",
|
||||
dialog = gtk_file_chooser_native_new ("Select a video",
|
||||
GTK_WINDOW (gtk_widget_get_root (button)),
|
||||
GTK_FILE_CHOOSER_ACTION_OPEN,
|
||||
"_Cancel", GTK_RESPONSE_CANCEL,
|
||||
"_Open", GTK_RESPONSE_ACCEPT,
|
||||
NULL);
|
||||
"_Open",
|
||||
"_Cancel");
|
||||
|
||||
filter = gtk_file_filter_new ();
|
||||
gtk_file_filter_add_pattern (filter, "*");
|
||||
gtk_file_filter_set_name (filter, "All Files");
|
||||
gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (dialog), filter);
|
||||
g_object_unref (filter);
|
||||
|
||||
filter = gtk_file_filter_new ();
|
||||
gtk_file_filter_add_mime_type (filter, "image/*");
|
||||
gtk_file_filter_set_name (filter, "Images");
|
||||
gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (dialog), filter);
|
||||
g_object_unref (filter);
|
||||
|
||||
filter = gtk_file_filter_new ();
|
||||
gtk_file_filter_add_mime_type (filter, "video/*");
|
||||
gtk_file_filter_set_name (filter, "Video");
|
||||
gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (dialog), filter);
|
||||
|
||||
gtk_file_chooser_set_filter (GTK_FILE_CHOOSER (dialog), filter);
|
||||
g_object_unref (filter);
|
||||
gtk_dialog_set_default_response (GTK_DIALOG (dialog), GTK_RESPONSE_ACCEPT);
|
||||
gtk_window_set_modal (GTK_WINDOW (dialog), TRUE);
|
||||
|
||||
gtk_native_dialog_set_modal (GTK_NATIVE_DIALOG (dialog), TRUE);
|
||||
g_signal_connect (dialog, "response", G_CALLBACK (open_dialog_response_cb), video);
|
||||
gtk_widget_show (dialog);
|
||||
gtk_native_dialog_show (GTK_NATIVE_DIALOG (dialog));
|
||||
}
|
||||
|
||||
static void
|
||||
|
@@ -4,6 +4,8 @@
|
||||
#include "iconbrowserapp.h"
|
||||
#include "iconbrowserwin.h"
|
||||
|
||||
#include "demo_conf.h"
|
||||
|
||||
struct _IconBrowserApp
|
||||
{
|
||||
GtkApplication parent;
|
||||
@@ -75,21 +77,25 @@ about_activated (GSimpleAction *action,
|
||||
gtk_get_minor_version (),
|
||||
gtk_get_micro_version ());
|
||||
g_string_append_printf (s, "\nIcon theme\n\t%s", icon_theme);
|
||||
version = g_strdup_printf ("%s\nRunning against GTK %d.%d.%d",
|
||||
version = g_strdup_printf ("%s%s%s\nRunning against GTK %d.%d.%d",
|
||||
PACKAGE_VERSION,
|
||||
g_strcmp0 (PROFILE, "devel") == 0 ? "-" : "",
|
||||
g_strcmp0 (PROFILE, "devel") == 0 ? VCS_TAG : "",
|
||||
gtk_get_major_version (),
|
||||
gtk_get_minor_version (),
|
||||
gtk_get_micro_version ());
|
||||
|
||||
gtk_show_about_dialog (GTK_WINDOW (gtk_application_get_active_window (app)),
|
||||
"program-name", "GTK Icon Browser",
|
||||
"program-name", g_strcmp0 (PROFILE, "devel") == 0
|
||||
? "GTK Icon Browser (Development)"
|
||||
: "GTK Icon Browser",
|
||||
"version", version,
|
||||
"copyright", "© 1997—2020 The GTK Team",
|
||||
"copyright", "© 1997—2021 The GTK Team",
|
||||
"license-type", GTK_LICENSE_LGPL_2_1,
|
||||
"website", "http://www.gtk.org",
|
||||
"comments", "Program to browse themed icons",
|
||||
"authors", authors,
|
||||
"logo-icon-name", "org.gtk.Demo4",
|
||||
"logo-icon-name", "org.gtk.IconBrowser4",
|
||||
"title", "About GTK Icon Browser",
|
||||
"system-information", s->str,
|
||||
NULL);
|
||||
@@ -129,6 +135,10 @@ icon_browser_app_activate (GApplication *app)
|
||||
IconBrowserWindow *win;
|
||||
|
||||
win = icon_browser_window_new (ICON_BROWSER_APP (app));
|
||||
|
||||
if (g_strcmp0 (PROFILE, "devel") == 0)
|
||||
gtk_widget_add_css_class (GTK_WIDGET (win), "devel");
|
||||
|
||||
gtk_window_present (GTK_WINDOW (win));
|
||||
}
|
||||
|
||||
|
@@ -14,8 +14,10 @@ struct _IconBrowserWindow
|
||||
GtkWidget *searchbar;
|
||||
GListModel *icon_filter_model;
|
||||
GListStore *icon_store;
|
||||
GListModel *context_model;
|
||||
GListStore *context_store;
|
||||
GtkFilter *name_filter;
|
||||
GtkFilter *search_mode_filter;
|
||||
GtkWidget *details;
|
||||
GtkWidget *image1;
|
||||
GtkWidget *image2;
|
||||
@@ -279,11 +281,31 @@ drag_prepare_texture (GtkDragSource *source,
|
||||
GtkWidget *widget)
|
||||
{
|
||||
GdkPaintable *paintable = get_image_paintable (GTK_IMAGE (widget));
|
||||
GtkSnapshot *snapshot;
|
||||
double width, height;
|
||||
GskRenderNode *node;
|
||||
GskRenderer *renderer;
|
||||
GdkTexture *texture;
|
||||
GdkContentProvider *ret;
|
||||
|
||||
if (!GDK_IS_PAINTABLE (paintable))
|
||||
return NULL;
|
||||
|
||||
return gdk_content_provider_new_typed (GDK_TYPE_PAINTABLE, paintable);
|
||||
snapshot = gtk_snapshot_new ();
|
||||
width = gdk_paintable_get_intrinsic_width (paintable);
|
||||
height = gdk_paintable_get_intrinsic_height (paintable);
|
||||
gdk_paintable_snapshot (paintable, snapshot, width, height);
|
||||
node = gtk_snapshot_free_to_node (snapshot);
|
||||
|
||||
renderer = gtk_native_get_renderer (gtk_widget_get_native (widget));
|
||||
texture = gsk_renderer_render_texture (renderer, node, &GRAPHENE_RECT_INIT (0, 0, width, height));
|
||||
|
||||
ret = gdk_content_provider_new_typed (GDK_TYPE_TEXTURE, texture);
|
||||
|
||||
g_object_unref (texture);
|
||||
gsk_render_node_unref (node);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static GdkContentProvider *
|
||||
@@ -334,6 +356,28 @@ setup_scalable_image_dnd (GtkWidget *image)
|
||||
gtk_widget_add_controller (image, GTK_EVENT_CONTROLLER (source));
|
||||
}
|
||||
|
||||
static void
|
||||
search_mode_toggled (GtkSearchBar *searchbar,
|
||||
GParamSpec *pspec,
|
||||
IconBrowserWindow *win)
|
||||
{
|
||||
if (gtk_search_bar_get_search_mode (searchbar))
|
||||
gtk_single_selection_set_selected (GTK_SINGLE_SELECTION (win->context_model), GTK_INVALID_LIST_POSITION);
|
||||
else if (gtk_single_selection_get_selected (GTK_SINGLE_SELECTION (win->context_model)) == GTK_INVALID_LIST_POSITION)
|
||||
gtk_single_selection_set_selected (GTK_SINGLE_SELECTION (win->context_model), 0);
|
||||
|
||||
gtk_filter_changed (win->search_mode_filter, GTK_FILTER_CHANGE_DIFFERENT);
|
||||
}
|
||||
|
||||
static void
|
||||
selected_name_changed (GtkSingleSelection *selection,
|
||||
GParamSpec *pspec,
|
||||
IconBrowserWindow *win)
|
||||
{
|
||||
if (gtk_single_selection_get_selected (selection) != GTK_INVALID_LIST_POSITION)
|
||||
gtk_search_bar_set_search_mode (GTK_SEARCH_BAR (win->searchbar), FALSE);
|
||||
}
|
||||
|
||||
static void
|
||||
icon_browser_window_init (IconBrowserWindow *win)
|
||||
{
|
||||
@@ -360,6 +404,9 @@ icon_browser_window_init (IconBrowserWindow *win)
|
||||
win->name_filter = GTK_FILTER (gtk_custom_filter_new (filter_by_icon_name, NULL, NULL));
|
||||
|
||||
gtk_multi_filter_append (GTK_MULTI_FILTER (filter), g_object_ref (win->name_filter));
|
||||
|
||||
g_signal_connect (win->searchbar, "notify::search-mode-enabled", G_CALLBACK (search_mode_toggled), win);
|
||||
g_signal_connect (win->context_model, "notify::selected", G_CALLBACK (selected_name_changed), win);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -389,6 +436,7 @@ icon_browser_window_class_init (IconBrowserWindowClass *class)
|
||||
gtk_widget_class_bind_template_child (GTK_WIDGET_CLASS (class), IconBrowserWindow, searchbar);
|
||||
gtk_widget_class_bind_template_child (GTK_WIDGET_CLASS (class), IconBrowserWindow, icon_store);
|
||||
gtk_widget_class_bind_template_child (GTK_WIDGET_CLASS (class), IconBrowserWindow, icon_filter_model);
|
||||
gtk_widget_class_bind_template_child (GTK_WIDGET_CLASS (class), IconBrowserWindow, context_model);
|
||||
gtk_widget_class_bind_template_child (GTK_WIDGET_CLASS (class), IconBrowserWindow, context_store);
|
||||
|
||||
gtk_widget_class_bind_template_child (GTK_WIDGET_CLASS (class), IconBrowserWindow, details);
|
||||
@@ -402,6 +450,7 @@ icon_browser_window_class_init (IconBrowserWindowClass *class)
|
||||
gtk_widget_class_bind_template_child (GTK_WIDGET_CLASS (class), IconBrowserWindow, image8);
|
||||
gtk_widget_class_bind_template_child (GTK_WIDGET_CLASS (class), IconBrowserWindow, label8);
|
||||
gtk_widget_class_bind_template_child (GTK_WIDGET_CLASS (class), IconBrowserWindow, description);
|
||||
gtk_widget_class_bind_template_child (GTK_WIDGET_CLASS (class), IconBrowserWindow, search_mode_filter);
|
||||
|
||||
gtk_widget_class_bind_template_callback (GTK_WIDGET_CLASS (class), item_activated);
|
||||
gtk_widget_class_bind_template_callback (GTK_WIDGET_CLASS (class), copy_to_clipboard);
|
||||
|
@@ -7,25 +7,25 @@ iconbrowser_sources = [
|
||||
]
|
||||
|
||||
iconbrowser_resources = gnome.compile_resources('iconbrowser_resources',
|
||||
'iconbrowser.gresource.xml',
|
||||
source_dir: '.')
|
||||
'iconbrowser.gresource.xml',
|
||||
source_dir: '.',
|
||||
)
|
||||
|
||||
executable('gtk4-icon-browser',
|
||||
iconbrowser_sources, iconbrowser_resources,
|
||||
c_args: common_cflags,
|
||||
dependencies: libgtk_dep,
|
||||
include_directories: confinc,
|
||||
gui_app: true,
|
||||
link_args: extra_demo_ldflags,
|
||||
install: true)
|
||||
sources: [iconbrowser_sources, iconbrowser_resources],
|
||||
c_args: common_cflags,
|
||||
dependencies: [ libgtk_dep, demo_conf_h ],
|
||||
include_directories: confinc,
|
||||
gui_app: true,
|
||||
link_args: extra_demo_ldflags,
|
||||
install: true,
|
||||
)
|
||||
|
||||
# icons
|
||||
icontheme_dir = join_paths(gtk_datadir, 'icons/hicolor')
|
||||
|
||||
foreach size: ['scalable', 'symbolic']
|
||||
install_subdir('data/' + size,
|
||||
install_dir: icontheme_dir
|
||||
)
|
||||
install_subdir('data/' + size, install_dir: icontheme_dir)
|
||||
endforeach
|
||||
|
||||
# desktop file
|
||||
|
@@ -7,4 +7,3 @@ Terminal=false
|
||||
Type=Application
|
||||
StartupNotify=true
|
||||
Categories=Development;GTK;
|
||||
NoDisplay=true
|
||||
|
@@ -25,12 +25,14 @@
|
||||
</style>
|
||||
<child>
|
||||
<object class="GtkToggleButton" id="normal_radio">
|
||||
<property name="focus-on-click">0</property>
|
||||
<property name="label" translatable="yes">Normal</property>
|
||||
<property name="active">1</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkToggleButton" id="symbolic_radio">
|
||||
<property name="focus-on-click">0</property>
|
||||
<property name="label" translatable="yes">Symbolic</property>
|
||||
<property name="group">normal_radio</property>
|
||||
<signal name="notify::active" handler="symbolic_toggled" swapped="yes" after="yes"/>
|
||||
@@ -40,6 +42,7 @@
|
||||
</child>
|
||||
<child type="end">
|
||||
<object class="GtkMenuButton" id="gear_menu_button">
|
||||
<property name="focus-on-click">0</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="menu-model">gear_menu</property>
|
||||
<property name="icon-name">open-menu-symbolic</property>
|
||||
@@ -47,6 +50,7 @@
|
||||
</child>
|
||||
<child type="end">
|
||||
<object class="GtkToggleButton" id="search">
|
||||
<property name="focus-on-click">0</property>
|
||||
<style>
|
||||
<class name="image-button"/>
|
||||
</style>
|
||||
@@ -151,19 +155,32 @@
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkStringFilter">
|
||||
<property name="ignore-case">0</property>
|
||||
<property name="match-mode">exact</property>
|
||||
<property name="expression">
|
||||
<lookup name="context" type="IbIcon"/>
|
||||
</property>
|
||||
<binding name="search">
|
||||
<lookup name="id" type="IbContext">
|
||||
<lookup name="selected-item" type="GtkSingleSelection">
|
||||
context_model
|
||||
</lookup>
|
||||
</lookup>
|
||||
</binding>
|
||||
<object class="GtkAnyFilter">
|
||||
<child>
|
||||
<object class="GtkBoolFilter" id="search_mode_filter">
|
||||
<property name="expression">
|
||||
<lookup name="search-mode-enabled">
|
||||
searchbar
|
||||
</lookup>
|
||||
</property>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkStringFilter">
|
||||
<property name="ignore-case">0</property>
|
||||
<property name="match-mode">exact</property>
|
||||
<property name="expression">
|
||||
<lookup name="context" type="IbIcon"/>
|
||||
</property>
|
||||
<binding name="search">
|
||||
<lookup name="id" type="IbContext">
|
||||
<lookup name="selected-item" type="GtkSingleSelection">
|
||||
context_model
|
||||
</lookup>
|
||||
</lookup>
|
||||
</binding>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
|
@@ -1,3 +1,16 @@
|
||||
gen_demo_header = find_program('../build-aux/meson/gen-demo-header.py')
|
||||
demo_profile = get_option('profile')
|
||||
|
||||
demo_conf_h = declare_dependency(
|
||||
sources: custom_target('demo-header',
|
||||
command: [gen_demo_header, meson.source_root(), demo_profile],
|
||||
capture: true,
|
||||
output: 'demo_conf.h',
|
||||
build_by_default: true,
|
||||
build_always_stale: true,
|
||||
)
|
||||
)
|
||||
|
||||
subdir('constraint-editor')
|
||||
subdir('gtk-demo')
|
||||
subdir('icon-browser')
|
||||
|
@@ -2,8 +2,8 @@
|
||||
<interface>
|
||||
<object class="GtkWindow" id="window">
|
||||
<property name="title" translatable="yes">Help</property>
|
||||
<property name="default-width">720</property>
|
||||
<property name="default-height">520</property>
|
||||
<property name="default-width">920</property>
|
||||
<property name="default-height">600</property>
|
||||
<child>
|
||||
<object class="GtkScrolledWindow">
|
||||
<child>
|
||||
@@ -13,6 +13,7 @@
|
||||
<property name="right-margin">20</property>
|
||||
<property name="top-margin">20</property>
|
||||
<property name="bottom-margin">20</property>
|
||||
<property name="monospace">1</property>
|
||||
<property name="buffer">
|
||||
<object class="GtkTextBuffer" id="buffer"/>
|
||||
</property>
|
||||
|
@@ -6,25 +6,25 @@ node_editor_sources = [
|
||||
]
|
||||
|
||||
node_editor_resources = gnome.compile_resources('node_editor_resources',
|
||||
'node-editor.gresource.xml',
|
||||
source_dir: '.')
|
||||
'node-editor.gresource.xml',
|
||||
source_dir: '.',
|
||||
)
|
||||
|
||||
executable('gtk4-node-editor',
|
||||
node_editor_sources, node_editor_resources,
|
||||
dependencies: libgtk_dep,
|
||||
include_directories: confinc,
|
||||
c_args: [
|
||||
'-DNODE_EDITOR_SOURCE_DIR="@0@/../../testsuite/gsk/compare/"'.format(meson.current_source_dir())
|
||||
] + common_cflags,
|
||||
gui_app: true,
|
||||
link_args: extra_demo_ldflags,
|
||||
install: false)
|
||||
sources: [node_editor_sources, node_editor_resources],
|
||||
dependencies: [ libgtk_dep, demo_conf_h ],
|
||||
include_directories: confinc,
|
||||
c_args: [
|
||||
'-DNODE_EDITOR_SOURCE_DIR="@0@/../../testsuite/gsk/compare/"'.format(meson.current_source_dir())
|
||||
] + common_cflags,
|
||||
gui_app: true,
|
||||
link_args: extra_demo_ldflags,
|
||||
install: false,
|
||||
)
|
||||
|
||||
# icons, don't install them until we decide to install gtk4-node-editor
|
||||
#icontheme_dir = join_paths(gtk_datadir, 'icons/hicolor')
|
||||
|
||||
#foreach size: ['scalable', 'symbolic']
|
||||
# install_subdir('data/' + size,
|
||||
# install_dir: icontheme_dir
|
||||
# )
|
||||
# install_subdir('data/' + size, install_dir: icontheme_dir)
|
||||
#endforeach
|
||||
|
@@ -23,6 +23,8 @@
|
||||
|
||||
#include "node-editor-window.h"
|
||||
|
||||
#include "demo_conf.h"
|
||||
|
||||
static const char *css =
|
||||
"textview.editor {"
|
||||
" color: rgb(192, 197, 206);"
|
||||
@@ -94,22 +96,26 @@ activate_about (GSimpleAction *action,
|
||||
|
||||
g_string_append_printf (s, "\nRenderer\n\t%s", renderer);
|
||||
|
||||
version = g_strdup_printf ("%s\nRunning against GTK %d.%d.%d",
|
||||
version = g_strdup_printf ("%s%s%s\nRunning against GTK %d.%d.%d",
|
||||
PACKAGE_VERSION,
|
||||
g_strcmp0 (PROFILE, "devel") == 0 ? "-" : "",
|
||||
g_strcmp0 (PROFILE, "devel") == 0 ? VCS_TAG : "",
|
||||
gtk_get_major_version (),
|
||||
gtk_get_minor_version (),
|
||||
gtk_get_micro_version ());
|
||||
|
||||
dialog = g_object_new (GTK_TYPE_ABOUT_DIALOG,
|
||||
"transient-for", gtk_application_get_active_window (app),
|
||||
"program-name", "GTK Node Editor",
|
||||
"program-name", g_strcmp0 (PROFILE, "devel") == 0
|
||||
? "GTK Node Editor (Development)"
|
||||
: "GTK Node Editor",
|
||||
"version", version,
|
||||
"copyright", "© 2019—2020 The GTK Team",
|
||||
"copyright", "© 2019—2021 The GTK Team",
|
||||
"license-type", GTK_LICENSE_LGPL_2_1,
|
||||
"website", "http://www.gtk.org",
|
||||
"comments", "Program to test GTK rendering",
|
||||
"authors", (const char *[]){ "Benjamin Otte", "Timm Bäder", NULL},
|
||||
"logo-icon-name", "org.gtk.gtk4.NodeEditor.Devel",
|
||||
"logo-icon-name", "org.gtk.gtk4.NodeEditor",
|
||||
"title", "About GTK Node Editor",
|
||||
"system-information", s->str,
|
||||
NULL);
|
||||
@@ -207,6 +213,10 @@ node_editor_application_activate (GApplication *app)
|
||||
NodeEditorWindow *win;
|
||||
|
||||
win = node_editor_window_new (NODE_EDITOR_APPLICATION (app));
|
||||
|
||||
if (g_strcmp0 (PROFILE, "devel") == 0)
|
||||
gtk_widget_add_css_class (GTK_WIDGET (win), "devel");
|
||||
|
||||
gtk_window_present (GTK_WINDOW (win));
|
||||
}
|
||||
|
||||
|
@@ -25,6 +25,7 @@
|
||||
|
||||
#include "gsk/gskrendernodeparserprivate.h"
|
||||
#include "gsk/gl/gskglrenderer.h"
|
||||
#include "gsk/ngl/gsknglrenderer.h"
|
||||
#ifdef GDK_WINDOWING_BROADWAY
|
||||
#include "gsk/broadway/gskbroadwayrenderer.h"
|
||||
#endif
|
||||
@@ -634,6 +635,24 @@ export_image_cb (GtkWidget *button,
|
||||
gtk_widget_show (dialog);
|
||||
}
|
||||
|
||||
static void
|
||||
clip_image_cb (GtkWidget *button,
|
||||
NodeEditorWindow *self)
|
||||
{
|
||||
GdkTexture *texture;
|
||||
GdkClipboard *clipboard;
|
||||
|
||||
texture = create_texture (self);
|
||||
if (texture == NULL)
|
||||
return;
|
||||
|
||||
clipboard = gtk_widget_get_clipboard (GTK_WIDGET (self));
|
||||
|
||||
gdk_clipboard_set_texture (clipboard, texture);
|
||||
|
||||
g_object_unref (texture);
|
||||
}
|
||||
|
||||
static void
|
||||
testcase_name_entry_changed_cb (GtkWidget *button,
|
||||
GParamSpec *pspec,
|
||||
@@ -700,6 +719,16 @@ out:
|
||||
g_free (source_dir);
|
||||
}
|
||||
|
||||
static void
|
||||
dark_mode_cb (GtkToggleButton *button,
|
||||
GParamSpec *pspec,
|
||||
NodeEditorWindow *self)
|
||||
{
|
||||
g_object_set (gtk_widget_get_settings (GTK_WIDGET (self)),
|
||||
"gtk-application-prefer-dark-theme", gtk_toggle_button_get_active (button),
|
||||
NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
node_editor_window_finalize (GObject *object)
|
||||
{
|
||||
@@ -752,6 +781,9 @@ node_editor_window_realize (GtkWidget *widget)
|
||||
node_editor_window_add_renderer (self,
|
||||
gsk_gl_renderer_new (),
|
||||
"OpenGL");
|
||||
node_editor_window_add_renderer (self,
|
||||
gsk_ngl_renderer_new (),
|
||||
"NGL");
|
||||
#ifdef GDK_RENDERING_VULKAN
|
||||
node_editor_window_add_renderer (self,
|
||||
gsk_vulkan_renderer_new (),
|
||||
@@ -812,8 +844,10 @@ node_editor_window_class_init (NodeEditorWindowClass *class)
|
||||
gtk_widget_class_bind_template_callback (widget_class, open_cb);
|
||||
gtk_widget_class_bind_template_callback (widget_class, save_cb);
|
||||
gtk_widget_class_bind_template_callback (widget_class, export_image_cb);
|
||||
gtk_widget_class_bind_template_callback (widget_class, clip_image_cb);
|
||||
gtk_widget_class_bind_template_callback (widget_class, testcase_save_clicked_cb);
|
||||
gtk_widget_class_bind_template_callback (widget_class, testcase_name_entry_changed_cb);
|
||||
gtk_widget_class_bind_template_callback (widget_class, dark_mode_cb);
|
||||
}
|
||||
|
||||
static GtkWidget *
|
||||
@@ -910,6 +944,26 @@ node_editor_window_init (NodeEditorWindow *self)
|
||||
self->text_buffer = gtk_text_buffer_new (self->tag_table);
|
||||
g_signal_connect (self->text_buffer, "changed", G_CALLBACK (text_changed), self);
|
||||
gtk_text_view_set_buffer (GTK_TEXT_VIEW (self->text_view), self->text_buffer);
|
||||
|
||||
/* Default */
|
||||
gtk_text_buffer_set_text (self->text_buffer,
|
||||
"shadow {\n"
|
||||
" child: texture {\n"
|
||||
" bounds: 0 0 128 128;\n"
|
||||
" texture: url(\"resource:///org/gtk/gtk4/node-editor/icons/apps/org.gtk.gtk4.NodeEditor.svg\");\n"
|
||||
" }\n"
|
||||
" shadows: rgba(0,0,0,0.5) 0 1 12;\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"transform {\n"
|
||||
" child: text {\n"
|
||||
" color: rgb(46,52,54);\n"
|
||||
" font: \"Cantarell Bold 11\";\n"
|
||||
" glyphs: \"GTK Node Editor\";\n"
|
||||
" offset: 8 14.418;\n"
|
||||
" }\n"
|
||||
" transform: translate(0, 140);\n"
|
||||
"}", -1);
|
||||
}
|
||||
|
||||
NodeEditorWindow *
|
||||
|
@@ -102,6 +102,7 @@
|
||||
<object class="GtkHeaderBar" id="header">
|
||||
<child type="start">
|
||||
<object class="GtkButton">
|
||||
<property name="focus-on-click">0</property>
|
||||
<property name="icon-name">document-open-symbolic</property>
|
||||
<property name="tooltip-text">Open node file</property>
|
||||
<signal name="clicked" handler="open_cb"/>
|
||||
@@ -109,6 +110,7 @@
|
||||
</child>
|
||||
<child type="start">
|
||||
<object class="GtkButton">
|
||||
<property name="focus-on-click">0</property>
|
||||
<property name="icon-name">document-save-symbolic</property>
|
||||
<property name="tooltip-text">Save to node file</property>
|
||||
<signal name="clicked" handler="save_cb"/>
|
||||
@@ -116,29 +118,45 @@
|
||||
</child>
|
||||
<child type="start">
|
||||
<object class="GtkButton">
|
||||
<property name="focus-on-click">0</property>
|
||||
<property name="icon-name">insert-image-symbolic</property>
|
||||
<property name="tooltip-text">Export to image</property>
|
||||
<signal name="clicked" handler="export_image_cb"/>
|
||||
</object>
|
||||
</child>
|
||||
<child type="start">
|
||||
<object class="GtkSeparator">
|
||||
<property name="orientation">vertical</property>
|
||||
<object class="GtkButton">
|
||||
<property name="focus-on-click">0</property>
|
||||
<property name="icon-name">edit-copy-symbolic</property>
|
||||
<property name="tooltip-text">Copy image to clipboard</property>
|
||||
<signal name="clicked" handler="clip_image_cb"/>
|
||||
</object>
|
||||
</child>
|
||||
<child type="start">
|
||||
<object class="GtkMenuButton">
|
||||
<property name="focus-on-click">0</property>
|
||||
<property name="label">Save Testcase</property>
|
||||
<property name="popover">testcase_popover</property>
|
||||
</object>
|
||||
</child>
|
||||
<child type="end">
|
||||
<object class="GtkMenuButton" id="gear_menu_button">
|
||||
<property name="focus-on-click">0</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="menu-model">gear_menu</property>
|
||||
<property name="icon-name">open-menu-symbolic</property>
|
||||
</object>
|
||||
</child>
|
||||
<child type="end">
|
||||
<object class="GtkToggleButton" id="dark_bg_button">
|
||||
<property name="focus-on-click">0</property>
|
||||
<property name="valign">center</property>
|
||||
<property name="has-frame">0</property>
|
||||
<property name="icon-name">display-brightness-symbolic</property>
|
||||
<property name="tooltip-text" translatable="yes">Use a dark background</property>
|
||||
<signal name="notify::active" handler="dark_mode_cb" swapped="0"/>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child>
|
||||
|
@@ -4,6 +4,6 @@
|
||||
<file preprocess="xml-stripblanks">node-editor-window.ui</file>
|
||||
<file preprocess="xml-stripblanks">help-window.ui</file>
|
||||
<file>node-format.md</file>
|
||||
<file alias='icons/apps/org.gtk.gtk4.NodeEditor.Devel.svg'>data/scalable/apps/org.gtk.gtk4.NodeEditor.Devel.svg</file>
|
||||
<file alias='icons/apps/org.gtk.gtk4.NodeEditor.svg'>data/scalable/apps/org.gtk.gtk4.NodeEditor.svg</file>
|
||||
</gresource>
|
||||
</gresources>
|
||||
|
@@ -23,7 +23,7 @@ The **container** node is a special node that allows specifying a list of child
|
||||
|
||||
| property | syntax | default | printed |
|
||||
| -------- | ---------------- | ---------------------- | ----------- |
|
||||
| bottom | `<node>` | color { color: #AF0; } | always |
|
||||
| bottom | `<node>` | color { } | always |
|
||||
| mode | `<blend-mode>` | normal | non-default |
|
||||
| top | `<node>` | color { } | always |
|
||||
|
||||
@@ -42,13 +42,28 @@ Creates a node like `gsk_blur_node_new()` with the given properties.
|
||||
|
||||
| property | syntax | default | printed |
|
||||
| -------- | ---------------- | ---------------------- | ----------- |
|
||||
| color | `<color>{1,4}` | black | non-default |
|
||||
| colors | `<color>{1,4}` | black | non-default |
|
||||
| outline | `<rounded-rect>` | 50 | always |
|
||||
| width | `<number>{1,4}` | 1 | non-default |
|
||||
| widths | `<number>{1,4}` | 1 | non-default |
|
||||
|
||||
Creates a node like `gsk_border_node_new()` with the given properties.
|
||||
|
||||
For the color and width properties, the values follow the typical CSS order of top, right, bottom, left. If the last/left value isn't given, the 2nd/right value is used. If the 3rd/bottom value isn't given, the 1st/top value is used. And if the 2nd/right value also isn't given, the 1st/top value is used for every 4 values.
|
||||
For the color and width properties, the values follow the typical CSS order
|
||||
of top, right, bottom, left. If the last/left value isn't given, the 2nd/right
|
||||
value is used. If the 3rd/bottom value isn't given, the 1st/top value is used.
|
||||
And if the 2nd/right value also isn't given, the 1st/top value is used for
|
||||
every 4 values.
|
||||
|
||||
### cairo
|
||||
|
||||
| property | syntax | default | printed |
|
||||
| -------- | ---------------- | ---------------------- | ----------- |
|
||||
| bounds | `<rect>` | none | always |
|
||||
| pixels | `<url>` | none | non-default |
|
||||
| script | `<url>` | none | non-default |
|
||||
|
||||
The pixels are a base64-encoded data url of png data. The script is
|
||||
a base64-encoded data url of a cairo script.
|
||||
|
||||
### clip
|
||||
|
||||
@@ -59,7 +74,9 @@ For the color and width properties, the values follow the typical CSS order of t
|
||||
|
||||
Creates a node like `gsk_clip_node_new()` with the given properties.
|
||||
|
||||
As an extension, this node allows specifying a rounded rectangle for the clip property. If that rectangle is indeed rounded, a node like `gsk_rounded_clip_node_new()` will be created instead.
|
||||
As an extension, this node allows specifying a rounded rectangle for the
|
||||
clip property. If that rectangle is indeed rounded, a node like
|
||||
`gsk_rounded_clip_node_new()` will be created instead.
|
||||
|
||||
### color
|
||||
|
||||
@@ -70,7 +87,8 @@ As an extension, this node allows specifying a rounded rectangle for the clip pr
|
||||
|
||||
Creates a node like `gsk_color_node_new()` with the given properties.
|
||||
|
||||
The color is chosen as an error pink so it is visible while also reminding people to change it.
|
||||
The color is chosen as an error pink so it is visible while also reminding
|
||||
people to change it.
|
||||
|
||||
### color-matrix
|
||||
|
||||
@@ -82,15 +100,29 @@ The color is chosen as an error pink so it is visible while also reminding peopl
|
||||
|
||||
Creates a node like `gsk_color_matrix_node_new()` with the given properties.
|
||||
|
||||
The matrix property accepts a <transform> for compatibility purposes, but you should be aware that the allowed values are meant to be used on 3D transformations, so their naming might appear awkward. However, it is always possible to use the matrix3d() production to specify all 16 values individually.
|
||||
The matrix property accepts a <transform> for compatibility purposes, but you
|
||||
should be aware that the allowed values are meant to be used on 3D transformations,
|
||||
so their naming might appear awkward. However, it is always possible to use the
|
||||
matrix3d() production to specify all 16 values individually.
|
||||
|
||||
### conic-gradient
|
||||
|
||||
| property | syntax | default | printed |
|
||||
| -------- | ---------------- | ---------------------- | ----------- |
|
||||
| bounds | `<rect>` | 50 | always |
|
||||
| center | `<point>` | 25, 25 | always |
|
||||
| rotation | `<number>` | 0 | always |
|
||||
| stops | `<color-stop>` | 0 #AF0, 1 #F0C | always |
|
||||
|
||||
Creates a node like `gsk_conic_gradient_node_new()` with the given properties.
|
||||
|
||||
### cross-fade
|
||||
|
||||
| property | syntax | default | printed |
|
||||
| -------- | ---------------- | ---------------------- | ----------- |
|
||||
| end | `<node>` | color { } | always |
|
||||
| mode | `<number>` | 0.5 | non-default |
|
||||
| start | `<node>` | color { color: #AF0; } | always |
|
||||
| progress | `<number>` | 0.5 | non-default |
|
||||
| start | `<node>` | color { } | always |
|
||||
|
||||
Creates a node like `gsk_cross_fade_node_new()` with the given properties.
|
||||
|
||||
@@ -121,8 +153,8 @@ Creates a node like `gsk_inset_shadow_node_new()` with the given properties.
|
||||
| property | syntax | default | printed |
|
||||
| -------- | ---------------- | ---------------------- | ----------- |
|
||||
| bounds | `<rect>` | 50 | always |
|
||||
| end | `<point>` | 0 50 | always |
|
||||
| start | `<point>` | 0 0 | always |
|
||||
| end | `<point>` | 0 50 | always |
|
||||
| stops | `<color-stop>` | 0 #AF0, 1 #F0C | always |
|
||||
|
||||
Creates a node like `gsk_linear_gradient_node_new()` with the given properties.
|
||||
@@ -149,16 +181,57 @@ Creates a node like `gsk_transform_node_new()` with the given properties.
|
||||
|
||||
Creates a node like `gsk_outset_shadow_node_new()` with the given properties.
|
||||
|
||||
### repeat
|
||||
### radial-gradient
|
||||
|
||||
| property | syntax | default | printed |
|
||||
| -------- | ---------------- | ---------------------- | ----------- |
|
||||
| bounds | `<rect>` | *bounds of child node* | non-default |
|
||||
| child | `<node>` | color { } | always |
|
||||
| child-bounds| `<rect>` | *bounds of child node* | non-default |
|
||||
| bounds | `<rect>` | 50 | always |
|
||||
| center | `<point>` | 25 25 | always |
|
||||
| hradius | `<number>` | 25 | always |
|
||||
| vradius | `<number>` | 25 | always |
|
||||
| start | `<number>` | 0 | always |
|
||||
| end | `<number>` | 1 | always |
|
||||
| stops | `<color-stop>` | 0 #AF0, 1 #F0C | always |
|
||||
|
||||
Creates a node like `gsk_radial_gradient_node_new()` with the given properties.
|
||||
|
||||
### repeat
|
||||
|
||||
| property | syntax | default | printed |
|
||||
| ----------- | ---------------- | ---------------------- | ----------- |
|
||||
| bounds | `<rect>` | *bounds of child node* | non-default |
|
||||
| child | `<node>` | color { } | always |
|
||||
| child-bounds| `<rect>` | *bounds of child node* | non-default |
|
||||
|
||||
Creates a node like `gsk_repeat_node_new()` with the given properties.
|
||||
|
||||
### repeating-linear-gradient
|
||||
|
||||
| property | syntax | default | printed |
|
||||
| -------- | ---------------- | ---------------------- | ----------- |
|
||||
| bounds | `<rect>` | 50 | always |
|
||||
| start | `<point>` | 0 0 | always |
|
||||
| end | `<point>` | 0 50 | always |
|
||||
| stops | `<color-stop>` | 0 #AF0, 1 #F0C | always |
|
||||
|
||||
Creates a node like `gsk_repeating_linear_gradient_node_new()` with the given
|
||||
properties.
|
||||
|
||||
### repeating radial-gradient
|
||||
|
||||
| property | syntax | default | printed |
|
||||
| -------- | ---------------- | ---------------------- | ----------- |
|
||||
| bounds | `<rect>` | 50 | always |
|
||||
| center | `<point>` | 25 25 | always |
|
||||
| hradius | `<number>` | 25 | always |
|
||||
| vradius | `<number>` | 25 | always |
|
||||
| start | `<number>` | 0 | always |
|
||||
| end | `<number>` | 1 | always |
|
||||
| stops | `<color-stop>` | 0 #AF0, 1 #F0C | always |
|
||||
|
||||
Creates a node like `gsk_repeating_radial_gradient_node_new()` with the given
|
||||
properties.
|
||||
|
||||
### rounded-clip
|
||||
|
||||
| property | syntax | default | printed |
|
||||
@@ -173,7 +246,7 @@ Creates a node like `gsk_rounded_clip_node_new()` with the given properties.
|
||||
| property | syntax | default | printed |
|
||||
| -------- | ---------------- | ---------------------- | ----------- |
|
||||
| child | `<node>` | color { } | always |
|
||||
| shadow | `<shadow>` | black 1 1 | always |
|
||||
| shadows | `<shadow>` | black 1 1 | always |
|
||||
|
||||
Creates a node like `gsk_shadow_node_new()` with the given properties.
|
||||
|
||||
@@ -188,7 +261,8 @@ Creates a node like `gsk_shadow_node_new()` with the given properties.
|
||||
|
||||
Creates a node like `gsk_text_node_new()` with the given properties.
|
||||
|
||||
If the given font does not exist or the given glyphs are invalid for the given font, an error node will be returned.
|
||||
If the given font does not exist or the given glyphs are invalid for the given
|
||||
font, an error node will be returned.
|
||||
|
||||
### texture
|
||||
|
||||
@@ -199,7 +273,9 @@ If the given font does not exist or the given glyphs are invalid for the given f
|
||||
|
||||
Creates a node like `gsk_texture_node_new()` with the given properties.
|
||||
|
||||
The default texture is a 10x10 checkerboard with the top left and bottom right 5x5 being in the color #FF00CC and the other part being transparent. A possible representation for this texture is `url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAABmJLR0QA/wD/AP+gvaeTAAAAKUlEQVQYlWP8z3DmPwMaYGQwYUQXY0IXwAUGUCGGoxkYGBiweXAoeAYAz44F3e3U1xUAAAAASUVORK5CYII=")
|
||||
The default texture is a 10x10 checkerboard with the top left and bottom right
|
||||
5x5 being in the color #FF00CC and the other part being transparent. A possible
|
||||
representation for this texture is `url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAABmJLR0QA/wD/AP+gvaeTAAAAKUlEQVQYlWP8z3DmPwMaYGQwYUQXY0IXwAUGUCGGoxkYGBiweXAoeAYAz44F3e3U1xUAAAAASUVORK5CYII=")
|
||||
`.
|
||||
|
||||
### transform
|
||||
@@ -211,3 +287,19 @@ The default texture is a 10x10 checkerboard with the top left and bottom right 5
|
||||
|
||||
Creates a node like `gsk_transform_node_new()` with the given properties.
|
||||
|
||||
### glshader
|
||||
|
||||
| property | syntax | default | printed |
|
||||
| ---------- | ------------------ | ---------------------- | ----------- |
|
||||
| bounds | `<rect>` | 50 | always |
|
||||
| sourcecode | `<string>` | "" | always |
|
||||
| args | `<uniform values>` | none | non-default |
|
||||
| child1 | `<node>` | none | non-default |
|
||||
| child2 | `<node>` | none | non-default |
|
||||
| child3 | `<node>` | none | non-default |
|
||||
| child4 | `<node>` | none | non-default |
|
||||
|
||||
Creates a GLShader node. The `sourcecode` must be a GLSL fragment shader.
|
||||
The `args` must match the uniforms of simple types declared in that shader,
|
||||
in order and comma-separated. The `child` properties must match the sampler
|
||||
uniforms in the shader.
|
||||
|
@@ -1,11 +1,12 @@
|
||||
executable('gtk4-print-editor',
|
||||
['print-editor.c'],
|
||||
c_args: common_cflags,
|
||||
dependencies: libgtk_dep,
|
||||
include_directories: confinc,
|
||||
gui_app: true,
|
||||
link_args: extra_demo_ldflags,
|
||||
install: true)
|
||||
sources: ['print-editor.c'],
|
||||
c_args: common_cflags,
|
||||
dependencies: [ libgtk_dep, demo_conf_h ],
|
||||
include_directories: confinc,
|
||||
gui_app: true,
|
||||
link_args: extra_demo_ldflags,
|
||||
install: true,
|
||||
)
|
||||
|
||||
# desktop file
|
||||
install_data('org.gtk.PrintEditor4.desktop', install_dir: gtk_applicationsdir)
|
||||
@@ -17,7 +18,5 @@ install_data('org.gtk.PrintEditor4.appdata.xml', install_dir: gtk_appdatadir)
|
||||
icontheme_dir = join_paths(gtk_datadir, 'icons/hicolor')
|
||||
|
||||
foreach size: ['scalable', 'symbolic']
|
||||
install_subdir('data/' + size,
|
||||
install_dir: icontheme_dir
|
||||
)
|
||||
install_subdir('data/' + size, install_dir: icontheme_dir)
|
||||
endforeach
|
||||
|
@@ -2,9 +2,8 @@
|
||||
Name=Print Editor
|
||||
Comment=A simple editor demonstrating GTK printing
|
||||
Exec=gtk4-print-editor %f
|
||||
Icon=org.gtk.PrintEditor4.Devel
|
||||
Icon=org.gtk.PrintEditor4
|
||||
Terminal=false
|
||||
Type=Application
|
||||
StartupNotify=true
|
||||
Categories=Development;GTK;
|
||||
NoDisplay=true
|
||||
|
@@ -4,6 +4,8 @@
|
||||
#include <glib/gi18n.h>
|
||||
#include <gtk/gtk.h>
|
||||
|
||||
#include "demo_conf.h"
|
||||
|
||||
static GtkWidget *main_window;
|
||||
static GFile *filename = NULL;
|
||||
static GtkPageSetup *page_setup = NULL;
|
||||
@@ -157,7 +159,7 @@ save_file (GFile *save_filename)
|
||||
|
||||
error = NULL;
|
||||
g_file_replace_contents (save_filename,
|
||||
text, -1,
|
||||
text, strlen (text),
|
||||
NULL, FALSE,
|
||||
G_FILE_CREATE_NONE,
|
||||
NULL,
|
||||
@@ -641,22 +643,26 @@ activate_about (GSimpleAction *action,
|
||||
g_strfreev (backends);
|
||||
g_free (setting);
|
||||
|
||||
version = g_strdup_printf ("%s\nRunning against GTK %d.%d.%d",
|
||||
version = g_strdup_printf ("%s%s%s\nRunning against GTK %d.%d.%d",
|
||||
PACKAGE_VERSION,
|
||||
g_strcmp0 (PROFILE, "devel") == 0 ? "-" : "",
|
||||
g_strcmp0 (PROFILE, "devel") == 0 ? VCS_TAG : "",
|
||||
gtk_get_major_version (),
|
||||
gtk_get_minor_version (),
|
||||
gtk_get_micro_version ());
|
||||
|
||||
dialog = g_object_new (GTK_TYPE_ABOUT_DIALOG,
|
||||
"transient-for", main_window,
|
||||
"program-name", "GTK Print Editor",
|
||||
"program-name", g_strcmp0 (PROFILE, "devel") == 0
|
||||
? "GTK Print Editor (Development)"
|
||||
: "GTK Print Editor",
|
||||
"version", version,
|
||||
"copyright", "© 2006-2020 Red Hat, Inc",
|
||||
"copyright", "© 2006-2021 Red Hat, Inc",
|
||||
"license-type", GTK_LICENSE_LGPL_2_1,
|
||||
"website", "http://www.gtk.org",
|
||||
"comments", "Program to demonstrate GTK printing",
|
||||
"authors", authors,
|
||||
"logo-icon-name", "org.gtk.PrintEditor4.Devel",
|
||||
"logo-icon-name", "org.gtk.PrintEditor4",
|
||||
"title", "About GTK Print Editor",
|
||||
"system-information", sysinfo->str,
|
||||
NULL);
|
||||
@@ -807,6 +813,10 @@ activate (GApplication *app)
|
||||
GtkWidget *contents;
|
||||
|
||||
main_window = gtk_application_window_new (GTK_APPLICATION (app));
|
||||
|
||||
if (g_strcmp0 (PROFILE, "devel") == 0)
|
||||
gtk_widget_add_css_class (GTK_WIDGET (main_window), "devel");
|
||||
|
||||
gtk_window_set_icon_name (GTK_WINDOW (main_window), "text-editor");
|
||||
gtk_window_set_default_size (GTK_WINDOW (main_window), 400, 600);
|
||||
gtk_application_window_set_show_menubar (GTK_APPLICATION_WINDOW (main_window), TRUE);
|
||||
|
After Width: | Height: | Size: 234 B |
After Width: | Height: | Size: 231 B |
After Width: | Height: | Size: 184 B |
After Width: | Height: | Size: 159 B |
After Width: | Height: | Size: 165 B |
After Width: | Height: | Size: 165 B |
After Width: | Height: | Size: 159 B |
After Width: | Height: | Size: 119 B |
After Width: | Height: | Size: 104 B |
After Width: | Height: | Size: 115 B |
After Width: | Height: | Size: 117 B |
After Width: | Height: | Size: 266 B |
After Width: | Height: | Size: 129 B |
After Width: | Height: | Size: 200 B |
After Width: | Height: | Size: 160 B |
After Width: | Height: | Size: 319 B |
After Width: | Height: | Size: 263 B |